Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-loki/lb88rc8480-setup.c
10817 views
1
/*
2
* arch/arm/mach-loki/lb88rc8480-setup.c
3
*
4
* Marvell LB88RC8480 Development Board Setup
5
*
6
* This file is licensed under the terms of the GNU General Public
7
* License version 2. This program is licensed "as is" without any
8
* warranty of any kind, whether express or implied.
9
*/
10
11
#include <linux/kernel.h>
12
#include <linux/init.h>
13
#include <linux/platform_device.h>
14
#include <linux/irq.h>
15
#include <linux/mtd/physmap.h>
16
#include <linux/mtd/nand.h>
17
#include <linux/timer.h>
18
#include <linux/ata_platform.h>
19
#include <linux/mv643xx_eth.h>
20
#include <asm/mach-types.h>
21
#include <asm/mach/arch.h>
22
#include <mach/loki.h>
23
#include "common.h"
24
25
#define LB88RC8480_FLASH_BOOT_CS_BASE 0xf8000000
26
#define LB88RC8480_FLASH_BOOT_CS_SIZE SZ_128M
27
28
#define LB88RC8480_NOR_BOOT_BASE 0xff000000
29
#define LB88RC8480_NOR_BOOT_SIZE SZ_16M
30
31
static struct mtd_partition lb88rc8480_boot_flash_parts[] = {
32
{
33
.name = "kernel",
34
.offset = 0,
35
.size = SZ_2M,
36
}, {
37
.name = "root-fs",
38
.offset = SZ_2M,
39
.size = (SZ_8M + SZ_4M + SZ_1M),
40
}, {
41
.name = "u-boot",
42
.offset = (SZ_8M + SZ_4M + SZ_2M + SZ_1M),
43
.size = SZ_1M,
44
},
45
};
46
47
static struct physmap_flash_data lb88rc8480_boot_flash_data = {
48
.parts = lb88rc8480_boot_flash_parts,
49
.nr_parts = ARRAY_SIZE(lb88rc8480_boot_flash_parts),
50
.width = 1, /* 8 bit bus width */
51
};
52
53
static struct resource lb88rc8480_boot_flash_resource = {
54
.flags = IORESOURCE_MEM,
55
.start = LB88RC8480_NOR_BOOT_BASE,
56
.end = LB88RC8480_NOR_BOOT_BASE + LB88RC8480_NOR_BOOT_SIZE - 1,
57
};
58
59
static struct platform_device lb88rc8480_boot_flash = {
60
.name = "physmap-flash",
61
.id = 0,
62
.dev = {
63
.platform_data = &lb88rc8480_boot_flash_data,
64
},
65
.num_resources = 1,
66
.resource = &lb88rc8480_boot_flash_resource,
67
};
68
69
static struct mv643xx_eth_platform_data lb88rc8480_ge0_data = {
70
.phy_addr = MV643XX_ETH_PHY_ADDR(1),
71
.mac_addr = { 0x00, 0x50, 0x43, 0x11, 0x22, 0x33 },
72
};
73
74
static void __init lb88rc8480_init(void)
75
{
76
/*
77
* Basic setup. Needs to be called early.
78
*/
79
loki_init();
80
81
loki_ge0_init(&lb88rc8480_ge0_data);
82
loki_sas_init();
83
loki_uart0_init();
84
loki_uart1_init();
85
86
loki_setup_dev_boot_win(LB88RC8480_FLASH_BOOT_CS_BASE,
87
LB88RC8480_FLASH_BOOT_CS_SIZE);
88
platform_device_register(&lb88rc8480_boot_flash);
89
}
90
91
MACHINE_START(LB88RC8480, "Marvell LB88RC8480 Development Board")
92
/* Maintainer: Ke Wei <[email protected]> */
93
.boot_params = 0x00000100,
94
.init_machine = lb88rc8480_init,
95
.map_io = loki_map_io,
96
.init_early = loki_init_early,
97
.init_irq = loki_init_irq,
98
.timer = &loki_timer,
99
MACHINE_END
100
101