diff options
| -rw-r--r-- | arch/arm/mach-orion/addr-map.c | 14 | ||||
| -rw-r--r-- | arch/arm/mach-orion/common.c | 52 | ||||
| -rw-r--r-- | arch/arm/mach-orion/db88f5281-setup.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-orion/dns323-setup.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-orion/kurobox_pro-setup.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-orion/pci.c | 10 | ||||
| -rw-r--r-- | arch/arm/mach-orion/rd88f5182-setup.c | 8 | ||||
| -rw-r--r-- | arch/arm/mach-orion/ts209-setup.c | 10 | ||||
| -rw-r--r-- | include/asm-arm/arch-orion/debug-macro.S | 9 | ||||
| -rw-r--r-- | include/asm-arm/arch-orion/entry-macro.S | 4 | ||||
| -rw-r--r-- | include/asm-arm/arch-orion/hardware.h | 13 | ||||
| -rw-r--r-- | include/asm-arm/arch-orion/orion.h | 102 | ||||
| -rw-r--r-- | include/asm-arm/arch-orion/uncompress.h | 4 |
13 files changed, 135 insertions, 111 deletions
diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c index 488da3811a68..2e2fd63643c3 100644 --- a/arch/arm/mach-orion/addr-map.c +++ b/arch/arm/mach-orion/addr-map.c | |||
| @@ -265,15 +265,15 @@ void __init orion_setup_cpu_wins(void) | |||
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | /* | 267 | /* |
| 268 | * Setup windows for PCI+PCIE IO+MAM space | 268 | * Setup windows for PCI+PCIe IO+MEM space. |
| 269 | */ | 269 | */ |
| 270 | orion_setup_cpu_win(ORION_PCIE_IO, ORION_PCIE_IO_BASE, | 270 | orion_setup_cpu_win(ORION_PCIE_IO, ORION_PCIE_IO_PHYS_BASE, |
| 271 | ORION_PCIE_IO_SIZE, ORION_PCIE_IO_REMAP); | 271 | ORION_PCIE_IO_SIZE, ORION_PCIE_IO_BUS_BASE); |
| 272 | orion_setup_cpu_win(ORION_PCI_IO, ORION_PCI_IO_BASE, | 272 | orion_setup_cpu_win(ORION_PCI_IO, ORION_PCI_IO_PHYS_BASE, |
| 273 | ORION_PCI_IO_SIZE, ORION_PCI_IO_REMAP); | 273 | ORION_PCI_IO_SIZE, ORION_PCI_IO_BUS_BASE); |
| 274 | orion_setup_cpu_win(ORION_PCIE_MEM, ORION_PCIE_MEM_BASE, | 274 | orion_setup_cpu_win(ORION_PCIE_MEM, ORION_PCIE_MEM_PHYS_BASE, |
| 275 | ORION_PCIE_MEM_SIZE, -1); | 275 | ORION_PCIE_MEM_SIZE, -1); |
| 276 | orion_setup_cpu_win(ORION_PCI_MEM, ORION_PCI_MEM_BASE, | 276 | orion_setup_cpu_win(ORION_PCI_MEM, ORION_PCI_MEM_PHYS_BASE, |
| 277 | ORION_PCI_MEM_SIZE, -1); | 277 | ORION_PCI_MEM_SIZE, -1); |
| 278 | } | 278 | } |
| 279 | 279 | ||
diff --git a/arch/arm/mach-orion/common.c b/arch/arm/mach-orion/common.c index 5f41fc537fa5..5f0ee4b8a9b7 100644 --- a/arch/arm/mach-orion/common.c +++ b/arch/arm/mach-orion/common.c | |||
| @@ -27,26 +27,26 @@ | |||
| 27 | ****************************************************************************/ | 27 | ****************************************************************************/ |
| 28 | static struct map_desc orion_io_desc[] __initdata = { | 28 | static struct map_desc orion_io_desc[] __initdata = { |
| 29 | { | 29 | { |
| 30 | .virtual = ORION_REGS_BASE, | 30 | .virtual = ORION_REGS_VIRT_BASE, |
| 31 | .pfn = __phys_to_pfn(ORION_REGS_BASE), | 31 | .pfn = __phys_to_pfn(ORION_REGS_PHYS_BASE), |
| 32 | .length = ORION_REGS_SIZE, | 32 | .length = ORION_REGS_SIZE, |
| 33 | .type = MT_DEVICE | 33 | .type = MT_DEVICE |
| 34 | }, | 34 | }, |
| 35 | { | 35 | { |
| 36 | .virtual = ORION_PCIE_IO_BASE, | 36 | .virtual = ORION_PCIE_IO_VIRT_BASE, |
| 37 | .pfn = __phys_to_pfn(ORION_PCIE_IO_BASE), | 37 | .pfn = __phys_to_pfn(ORION_PCIE_IO_PHYS_BASE), |
| 38 | .length = ORION_PCIE_IO_SIZE, | 38 | .length = ORION_PCIE_IO_SIZE, |
| 39 | .type = MT_DEVICE | 39 | .type = MT_DEVICE |
| 40 | }, | 40 | }, |
| 41 | { | 41 | { |
| 42 | .virtual = ORION_PCI_IO_BASE, | 42 | .virtual = ORION_PCI_IO_VIRT_BASE, |
| 43 | .pfn = __phys_to_pfn(ORION_PCI_IO_BASE), | 43 | .pfn = __phys_to_pfn(ORION_PCI_IO_PHYS_BASE), |
| 44 | .length = ORION_PCI_IO_SIZE, | 44 | .length = ORION_PCI_IO_SIZE, |
| 45 | .type = MT_DEVICE | 45 | .type = MT_DEVICE |
| 46 | }, | 46 | }, |
| 47 | { | 47 | { |
| 48 | .virtual = ORION_PCIE_WA_BASE, | 48 | .virtual = ORION_PCIE_WA_VIRT_BASE, |
| 49 | .pfn = __phys_to_pfn(ORION_PCIE_WA_BASE), | 49 | .pfn = __phys_to_pfn(ORION_PCIE_WA_PHYS_BASE), |
| 50 | .length = ORION_PCIE_WA_SIZE, | 50 | .length = ORION_PCIE_WA_SIZE, |
| 51 | .type = MT_DEVICE | 51 | .type = MT_DEVICE |
| 52 | }, | 52 | }, |
| @@ -63,8 +63,8 @@ void __init orion_map_io(void) | |||
| 63 | 63 | ||
| 64 | static struct resource orion_uart_resources[] = { | 64 | static struct resource orion_uart_resources[] = { |
| 65 | { | 65 | { |
| 66 | .start = UART0_BASE, | 66 | .start = UART0_PHYS_BASE, |
| 67 | .end = UART0_BASE + 0xff, | 67 | .end = UART0_PHYS_BASE + 0xff, |
| 68 | .flags = IORESOURCE_MEM, | 68 | .flags = IORESOURCE_MEM, |
| 69 | }, | 69 | }, |
| 70 | { | 70 | { |
| @@ -73,8 +73,8 @@ static struct resource orion_uart_resources[] = { | |||
| 73 | .flags = IORESOURCE_IRQ, | 73 | .flags = IORESOURCE_IRQ, |
| 74 | }, | 74 | }, |
| 75 | { | 75 | { |
| 76 | .start = UART1_BASE, | 76 | .start = UART1_PHYS_BASE, |
| 77 | .end = UART1_BASE + 0xff, | 77 | .end = UART1_PHYS_BASE + 0xff, |
| 78 | .flags = IORESOURCE_MEM, | 78 | .flags = IORESOURCE_MEM, |
| 79 | }, | 79 | }, |
| 80 | { | 80 | { |
| @@ -86,8 +86,8 @@ static struct resource orion_uart_resources[] = { | |||
| 86 | 86 | ||
| 87 | static struct plat_serial8250_port orion_uart_data[] = { | 87 | static struct plat_serial8250_port orion_uart_data[] = { |
| 88 | { | 88 | { |
| 89 | .mapbase = UART0_BASE, | 89 | .mapbase = UART0_PHYS_BASE, |
| 90 | .membase = (char *)UART0_BASE, | 90 | .membase = (char *)UART0_VIRT_BASE, |
| 91 | .irq = IRQ_ORION_UART0, | 91 | .irq = IRQ_ORION_UART0, |
| 92 | .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, | 92 | .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, |
| 93 | .iotype = UPIO_MEM, | 93 | .iotype = UPIO_MEM, |
| @@ -95,8 +95,8 @@ static struct plat_serial8250_port orion_uart_data[] = { | |||
| 95 | .uartclk = ORION_TCLK, | 95 | .uartclk = ORION_TCLK, |
| 96 | }, | 96 | }, |
| 97 | { | 97 | { |
| 98 | .mapbase = UART1_BASE, | 98 | .mapbase = UART1_PHYS_BASE, |
| 99 | .membase = (char *)UART1_BASE, | 99 | .membase = (char *)UART1_VIRT_BASE, |
| 100 | .irq = IRQ_ORION_UART1, | 100 | .irq = IRQ_ORION_UART1, |
| 101 | .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, | 101 | .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, |
| 102 | .iotype = UPIO_MEM, | 102 | .iotype = UPIO_MEM, |
| @@ -122,8 +122,8 @@ static struct platform_device orion_uart = { | |||
| 122 | 122 | ||
| 123 | static struct resource orion_ehci0_resources[] = { | 123 | static struct resource orion_ehci0_resources[] = { |
| 124 | { | 124 | { |
| 125 | .start = ORION_USB0_REG_BASE, | 125 | .start = ORION_USB0_PHYS_BASE, |
| 126 | .end = ORION_USB0_REG_BASE + SZ_4K, | 126 | .end = ORION_USB0_PHYS_BASE + SZ_4K, |
| 127 | .flags = IORESOURCE_MEM, | 127 | .flags = IORESOURCE_MEM, |
| 128 | }, | 128 | }, |
| 129 | { | 129 | { |
| @@ -135,8 +135,8 @@ static struct resource orion_ehci0_resources[] = { | |||
| 135 | 135 | ||
| 136 | static struct resource orion_ehci1_resources[] = { | 136 | static struct resource orion_ehci1_resources[] = { |
| 137 | { | 137 | { |
| 138 | .start = ORION_USB1_REG_BASE, | 138 | .start = ORION_USB1_PHYS_BASE, |
| 139 | .end = ORION_USB1_REG_BASE + SZ_4K, | 139 | .end = ORION_USB1_PHYS_BASE + SZ_4K, |
| 140 | .flags = IORESOURCE_MEM, | 140 | .flags = IORESOURCE_MEM, |
| 141 | }, | 141 | }, |
| 142 | { | 142 | { |
| @@ -177,8 +177,8 @@ static struct platform_device orion_ehci1 = { | |||
| 177 | 177 | ||
| 178 | static struct resource orion_eth_shared_resources[] = { | 178 | static struct resource orion_eth_shared_resources[] = { |
| 179 | { | 179 | { |
| 180 | .start = ORION_ETH_REG_BASE, | 180 | .start = ORION_ETH_PHYS_BASE, |
| 181 | .end = ORION_ETH_REG_BASE + 0xffff, | 181 | .end = ORION_ETH_PHYS_BASE + 0xffff, |
| 182 | .flags = IORESOURCE_MEM, | 182 | .flags = IORESOURCE_MEM, |
| 183 | }, | 183 | }, |
| 184 | }; | 184 | }; |
| @@ -227,8 +227,8 @@ static struct mv64xxx_i2c_pdata orion_i2c_pdata = { | |||
| 227 | static struct resource orion_i2c_resources[] = { | 227 | static struct resource orion_i2c_resources[] = { |
| 228 | { | 228 | { |
| 229 | .name = "i2c base", | 229 | .name = "i2c base", |
| 230 | .start = I2C_BASE, | 230 | .start = I2C_PHYS_BASE, |
| 231 | .end = I2C_BASE + 0x20 -1, | 231 | .end = I2C_PHYS_BASE + 0x20 -1, |
| 232 | .flags = IORESOURCE_MEM, | 232 | .flags = IORESOURCE_MEM, |
| 233 | }, | 233 | }, |
| 234 | { | 234 | { |
| @@ -255,8 +255,8 @@ static struct platform_device orion_i2c = { | |||
| 255 | static struct resource orion_sata_resources[] = { | 255 | static struct resource orion_sata_resources[] = { |
| 256 | { | 256 | { |
| 257 | .name = "sata base", | 257 | .name = "sata base", |
| 258 | .start = ORION_SATA_REG_BASE, | 258 | .start = ORION_SATA_PHYS_BASE, |
| 259 | .end = ORION_SATA_REG_BASE + 0x5000 - 1, | 259 | .end = ORION_SATA_PHYS_BASE + 0x5000 - 1, |
| 260 | .flags = IORESOURCE_MEM, | 260 | .flags = IORESOURCE_MEM, |
| 261 | }, | 261 | }, |
| 262 | { | 262 | { |
diff --git a/arch/arm/mach-orion/db88f5281-setup.c b/arch/arm/mach-orion/db88f5281-setup.c index cb2a95ce5b57..5ef44e1a2d36 100644 --- a/arch/arm/mach-orion/db88f5281-setup.c +++ b/arch/arm/mach-orion/db88f5281-setup.c | |||
| @@ -354,8 +354,8 @@ static void __init db88f5281_init(void) | |||
| 354 | 354 | ||
| 355 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") | 355 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") |
| 356 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ | 356 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ |
| 357 | .phys_io = ORION_REGS_BASE, | 357 | .phys_io = ORION_REGS_PHYS_BASE, |
| 358 | .io_pg_offst = ((ORION_REGS_BASE) >> 18) & 0xfffc, | 358 | .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xfffc, |
| 359 | .boot_params = 0x00000100, | 359 | .boot_params = 0x00000100, |
| 360 | .init_machine = db88f5281_init, | 360 | .init_machine = db88f5281_init, |
| 361 | .map_io = orion_map_io, | 361 | .map_io = orion_map_io, |
diff --git a/arch/arm/mach-orion/dns323-setup.c b/arch/arm/mach-orion/dns323-setup.c index c8a806f249c6..02b280c24820 100644 --- a/arch/arm/mach-orion/dns323-setup.c +++ b/arch/arm/mach-orion/dns323-setup.c | |||
| @@ -259,8 +259,8 @@ static void __init dns323_init(void) | |||
| 259 | * | 259 | * |
| 260 | * Open a special address decode windows for the PCIE WA. | 260 | * Open a special address decode windows for the PCIE WA. |
| 261 | */ | 261 | */ |
| 262 | orion_write(ORION_REGS_BASE | 0x20074, ORION_PCIE_WA_BASE); | 262 | orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); |
| 263 | orion_write(ORION_REGS_BASE | 0x20070, | 263 | orion_write(ORION_REGS_VIRT_BASE | 0x20070, |
| 264 | (0x7941 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); | 264 | (0x7941 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); |
| 265 | 265 | ||
| 266 | /* set MPP to 0 as D-Link's 2.6.12.6 kernel did */ | 266 | /* set MPP to 0 as D-Link's 2.6.12.6 kernel did */ |
| @@ -312,8 +312,8 @@ static void __init dns323_init(void) | |||
| 312 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ | 312 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ |
| 313 | MACHINE_START(DNS323, "D-Link DNS-323") | 313 | MACHINE_START(DNS323, "D-Link DNS-323") |
| 314 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 314 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
| 315 | .phys_io = ORION_REGS_BASE, | 315 | .phys_io = ORION_REGS_PHYS_BASE, |
| 316 | .io_pg_offst = ((ORION_REGS_BASE) >> 18) & 0xFFFC, | 316 | .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, |
| 317 | .boot_params = 0x00000100, | 317 | .boot_params = 0x00000100, |
| 318 | .init_machine = dns323_init, | 318 | .init_machine = dns323_init, |
| 319 | .map_io = orion_map_io, | 319 | .map_io = orion_map_io, |
diff --git a/arch/arm/mach-orion/kurobox_pro-setup.c b/arch/arm/mach-orion/kurobox_pro-setup.c index 2d812ed6b5c7..9bdd987edbb6 100644 --- a/arch/arm/mach-orion/kurobox_pro-setup.c +++ b/arch/arm/mach-orion/kurobox_pro-setup.c | |||
| @@ -192,8 +192,8 @@ static void __init kurobox_pro_init(void) | |||
| 192 | /* | 192 | /* |
| 193 | * Open a special address decode windows for the PCIE WA. | 193 | * Open a special address decode windows for the PCIE WA. |
| 194 | */ | 194 | */ |
| 195 | orion_write(ORION_REGS_BASE | 0x20074, ORION_PCIE_WA_BASE); | 195 | orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); |
| 196 | orion_write(ORION_REGS_BASE | 0x20070, (0x7941 | | 196 | orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | |
| 197 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); | 197 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); |
| 198 | 198 | ||
| 199 | /* | 199 | /* |
| @@ -224,8 +224,8 @@ static void __init kurobox_pro_init(void) | |||
| 224 | 224 | ||
| 225 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") | 225 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") |
| 226 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 226 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
| 227 | .phys_io = ORION_REGS_BASE, | 227 | .phys_io = ORION_REGS_PHYS_BASE, |
| 228 | .io_pg_offst = ((ORION_REGS_BASE) >> 18) & 0xFFFC, | 228 | .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, |
| 229 | .boot_params = 0x00000100, | 229 | .boot_params = 0x00000100, |
| 230 | .init_machine = kurobox_pro_init, | 230 | .init_machine = kurobox_pro_init, |
| 231 | .map_io = orion_map_io, | 231 | .map_io = orion_map_io, |
diff --git a/arch/arm/mach-orion/pci.c b/arch/arm/mach-orion/pci.c index 0498d7c69b30..b109bb46681e 100644 --- a/arch/arm/mach-orion/pci.c +++ b/arch/arm/mach-orion/pci.c | |||
| @@ -156,7 +156,7 @@ static int orion_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, | |||
| 156 | orion_pcie_id(&dev, &rev); | 156 | orion_pcie_id(&dev, &rev); |
| 157 | if (dev == MV88F5181_DEV_ID || dev == MV88F5182_DEV_ID) { | 157 | if (dev == MV88F5181_DEV_ID || dev == MV88F5182_DEV_ID) { |
| 158 | /* extended register space */ | 158 | /* extended register space */ |
| 159 | pcie_addr = ORION_PCIE_WA_BASE; | 159 | pcie_addr = ORION_PCIE_WA_VIRT_BASE; |
| 160 | pcie_addr |= PCIE_CONF_BUS(bus->number) | | 160 | pcie_addr |= PCIE_CONF_BUS(bus->number) | |
| 161 | PCIE_CONF_DEV(PCI_SLOT(devfn)) | | 161 | PCIE_CONF_DEV(PCI_SLOT(devfn)) | |
| 162 | PCIE_CONF_FUNC(PCI_FUNC(devfn)) | | 162 | PCIE_CONF_FUNC(PCI_FUNC(devfn)) | |
| @@ -241,7 +241,7 @@ static int orion_pcie_setup(struct pci_sys_data *sys) | |||
| 241 | */ | 241 | */ |
| 242 | res[0].name = "PCI-EX I/O Space"; | 242 | res[0].name = "PCI-EX I/O Space"; |
| 243 | res[0].flags = IORESOURCE_IO; | 243 | res[0].flags = IORESOURCE_IO; |
| 244 | res[0].start = ORION_PCIE_IO_REMAP; | 244 | res[0].start = ORION_PCIE_IO_BUS_BASE; |
| 245 | res[0].end = res[0].start + ORION_PCIE_IO_SIZE - 1; | 245 | res[0].end = res[0].start + ORION_PCIE_IO_SIZE - 1; |
| 246 | if (request_resource(&ioport_resource, &res[0])) | 246 | if (request_resource(&ioport_resource, &res[0])) |
| 247 | panic("Request PCIE IO resource failed\n"); | 247 | panic("Request PCIE IO resource failed\n"); |
| @@ -252,7 +252,7 @@ static int orion_pcie_setup(struct pci_sys_data *sys) | |||
| 252 | */ | 252 | */ |
| 253 | res[1].name = "PCI-EX Memory Space"; | 253 | res[1].name = "PCI-EX Memory Space"; |
| 254 | res[1].flags = IORESOURCE_MEM; | 254 | res[1].flags = IORESOURCE_MEM; |
| 255 | res[1].start = ORION_PCIE_MEM_BASE; | 255 | res[1].start = ORION_PCIE_MEM_PHYS_BASE; |
| 256 | res[1].end = res[1].start + ORION_PCIE_MEM_SIZE - 1; | 256 | res[1].end = res[1].start + ORION_PCIE_MEM_SIZE - 1; |
| 257 | if (request_resource(&iomem_resource, &res[1])) | 257 | if (request_resource(&iomem_resource, &res[1])) |
| 258 | panic("Request PCIE Memory resource failed\n"); | 258 | panic("Request PCIE Memory resource failed\n"); |
| @@ -477,7 +477,7 @@ static int orion_pci_setup(struct pci_sys_data *sys) | |||
| 477 | */ | 477 | */ |
| 478 | res[0].name = "PCI I/O Space"; | 478 | res[0].name = "PCI I/O Space"; |
| 479 | res[0].flags = IORESOURCE_IO; | 479 | res[0].flags = IORESOURCE_IO; |
| 480 | res[0].start = ORION_PCI_IO_REMAP; | 480 | res[0].start = ORION_PCI_IO_BUS_BASE; |
| 481 | res[0].end = res[0].start + ORION_PCI_IO_SIZE - 1; | 481 | res[0].end = res[0].start + ORION_PCI_IO_SIZE - 1; |
| 482 | if (request_resource(&ioport_resource, &res[0])) | 482 | if (request_resource(&ioport_resource, &res[0])) |
| 483 | panic("Request PCI IO resource failed\n"); | 483 | panic("Request PCI IO resource failed\n"); |
| @@ -488,7 +488,7 @@ static int orion_pci_setup(struct pci_sys_data *sys) | |||
| 488 | */ | 488 | */ |
| 489 | res[1].name = "PCI Memory Space"; | 489 | res[1].name = "PCI Memory Space"; |
| 490 | res[1].flags = IORESOURCE_MEM; | 490 | res[1].flags = IORESOURCE_MEM; |
| 491 | res[1].start = ORION_PCI_MEM_BASE; | 491 | res[1].start = ORION_PCI_MEM_PHYS_BASE; |
| 492 | res[1].end = res[1].start + ORION_PCI_MEM_SIZE - 1; | 492 | res[1].end = res[1].start + ORION_PCI_MEM_SIZE - 1; |
| 493 | if (request_resource(&iomem_resource, &res[1])) | 493 | if (request_resource(&iomem_resource, &res[1])) |
| 494 | panic("Request PCI Memory resource failed\n"); | 494 | panic("Request PCI Memory resource failed\n"); |
diff --git a/arch/arm/mach-orion/rd88f5182-setup.c b/arch/arm/mach-orion/rd88f5182-setup.c index 797c54c80c2b..e851b8ca5ac6 100644 --- a/arch/arm/mach-orion/rd88f5182-setup.c +++ b/arch/arm/mach-orion/rd88f5182-setup.c | |||
| @@ -263,8 +263,8 @@ static void __init rd88f5182_init(void) | |||
| 263 | /* | 263 | /* |
| 264 | * Open a special address decode windows for the PCIE WA. | 264 | * Open a special address decode windows for the PCIE WA. |
| 265 | */ | 265 | */ |
| 266 | orion_write(ORION_REGS_BASE | 0x20074, ORION_PCIE_WA_BASE); | 266 | orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); |
| 267 | orion_write(ORION_REGS_BASE | 0x20070, (0x7941 | | 267 | orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | |
| 268 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); | 268 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); |
| 269 | 269 | ||
| 270 | /* | 270 | /* |
| @@ -305,8 +305,8 @@ static void __init rd88f5182_init(void) | |||
| 305 | 305 | ||
| 306 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") | 306 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") |
| 307 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 307 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
| 308 | .phys_io = ORION_REGS_BASE, | 308 | .phys_io = ORION_REGS_PHYS_BASE, |
| 309 | .io_pg_offst = ((ORION_REGS_BASE) >> 18) & 0xFFFC, | 309 | .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, |
| 310 | .boot_params = 0x00000100, | 310 | .boot_params = 0x00000100, |
| 311 | .init_machine = rd88f5182_init, | 311 | .init_machine = rd88f5182_init, |
| 312 | .map_io = orion_map_io, | 312 | .map_io = orion_map_io, |
diff --git a/arch/arm/mach-orion/ts209-setup.c b/arch/arm/mach-orion/ts209-setup.c index e3e930efd155..8edb2ac09662 100644 --- a/arch/arm/mach-orion/ts209-setup.c +++ b/arch/arm/mach-orion/ts209-setup.c | |||
| @@ -244,7 +244,7 @@ static struct platform_device *qnap_ts209_devices[] __initdata = { | |||
| 244 | * QNAP TS-[12]09 specific power off method via UART1-attached PIC | 244 | * QNAP TS-[12]09 specific power off method via UART1-attached PIC |
| 245 | */ | 245 | */ |
| 246 | 246 | ||
| 247 | #define UART1_REG(x) (UART1_BASE + ((UART_##x) << 2)) | 247 | #define UART1_REG(x) (UART1_VIRT_BASE + ((UART_##x) << 2)) |
| 248 | 248 | ||
| 249 | static void qnap_ts209_power_off(void) | 249 | static void qnap_ts209_power_off(void) |
| 250 | { | 250 | { |
| @@ -282,8 +282,8 @@ static void __init qnap_ts209_init(void) | |||
| 282 | /* | 282 | /* |
| 283 | * Open a special address decode windows for the PCIE WA. | 283 | * Open a special address decode windows for the PCIE WA. |
| 284 | */ | 284 | */ |
| 285 | orion_write(ORION_REGS_BASE | 0x20074, ORION_PCIE_WA_BASE); | 285 | orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); |
| 286 | orion_write(ORION_REGS_BASE | 0x20070, (0x7941 | | 286 | orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | |
| 287 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); | 287 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16)); |
| 288 | 288 | ||
| 289 | /* | 289 | /* |
| @@ -325,8 +325,8 @@ static void __init qnap_ts209_init(void) | |||
| 325 | 325 | ||
| 326 | MACHINE_START(TS209, "QNAP TS-109/TS-209") | 326 | MACHINE_START(TS209, "QNAP TS-109/TS-209") |
| 327 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ | 327 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ |
| 328 | .phys_io = ORION_REGS_BASE, | 328 | .phys_io = ORION_REGS_PHYS_BASE, |
| 329 | .io_pg_offst = ((ORION_REGS_BASE) >> 18) & 0xFFFC, | 329 | .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, |
| 330 | .boot_params = 0x00000100, | 330 | .boot_params = 0x00000100, |
| 331 | .init_machine = qnap_ts209_init, | 331 | .init_machine = qnap_ts209_init, |
| 332 | .map_io = orion_map_io, | 332 | .map_io = orion_map_io, |
diff --git a/include/asm-arm/arch-orion/debug-macro.S b/include/asm-arm/arch-orion/debug-macro.S index e2a80641f214..2746220f5d85 100644 --- a/include/asm-arm/arch-orion/debug-macro.S +++ b/include/asm-arm/arch-orion/debug-macro.S | |||
| @@ -8,9 +8,14 @@ | |||
| 8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include <asm/arch/orion.h> | ||
| 12 | |||
| 11 | .macro addruart,rx | 13 | .macro addruart,rx |
| 12 | mov \rx, #0xf1000000 | 14 | mrc p15, 0, \rx, c1, c0 |
| 13 | orr \rx, \rx, #0x00012000 | 15 | tst \rx, #1 @ MMU enabled? |
| 16 | ldreq \rx, =ORION_REGS_PHYS_BASE | ||
| 17 | ldrne \rx, =ORION_REGS_VIRT_BASE | ||
| 18 | orr \rx, \rx, #0x00012000 | ||
| 14 | .endm | 19 | .endm |
| 15 | 20 | ||
| 16 | #define UART_SHIFT 2 | 21 | #define UART_SHIFT 2 |
diff --git a/include/asm-arm/arch-orion/entry-macro.S b/include/asm-arm/arch-orion/entry-macro.S index b76075a7e44b..cda096b2acfd 100644 --- a/include/asm-arm/arch-orion/entry-macro.S +++ b/include/asm-arm/arch-orion/entry-macro.S | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | * | 3 | * |
| 4 | * Low-level IRQ helper macros for Orion platforms | 4 | * Low-level IRQ helper macros for Orion platforms |
| 5 | * | 5 | * |
| 6 | * This file is licensed under the terms of the GNU General Public | 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 | 7 | * License version 2. This program is licensed "as is" without any |
| 8 | * warranty of any kind, whether express or implied. | 8 | * warranty of any kind, whether express or implied. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
diff --git a/include/asm-arm/arch-orion/hardware.h b/include/asm-arm/arch-orion/hardware.h index 8a12d213fbdc..65da374de735 100644 --- a/include/asm-arm/arch-orion/hardware.h +++ b/include/asm-arm/arch-orion/hardware.h | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | * This program is free software; you can redistribute it and/or modify | 4 | * This program is free software; you can redistribute it and/or modify |
| 5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
| 6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
| 7 | * | ||
| 8 | */ | 7 | */ |
| 9 | 8 | ||
| 10 | #ifndef __ASM_ARCH_HARDWARE_H__ | 9 | #ifndef __ASM_ARCH_HARDWARE_H__ |
| @@ -12,13 +11,11 @@ | |||
| 12 | 11 | ||
| 13 | #include "orion.h" | 12 | #include "orion.h" |
| 14 | 13 | ||
| 15 | #define PCI_MEMORY_VADDR ORION_PCI_SYS_MEM_BASE | 14 | #define pcibios_assign_all_busses() 1 |
| 16 | #define PCI_IO_VADDR ORION_PCI_SYS_IO_BASE | ||
| 17 | 15 | ||
| 18 | #define pcibios_assign_all_busses() 1 | 16 | #define PCIBIOS_MIN_IO 0x00001000 |
| 17 | #define PCIBIOS_MIN_MEM 0x01000000 | ||
| 18 | #define PCIMEM_BASE ORION_PCIE_MEM_PHYS_BASE | ||
| 19 | 19 | ||
| 20 | #define PCIBIOS_MIN_IO 0x1000 | ||
| 21 | #define PCIBIOS_MIN_MEM 0x01000000 | ||
| 22 | #define PCIMEM_BASE PCI_MEMORY_VADDR /* mem base for VGA */ | ||
| 23 | 20 | ||
| 24 | #endif /* _ASM_ARCH_HARDWARE_H */ | 21 | #endif |
diff --git a/include/asm-arm/arch-orion/orion.h b/include/asm-arm/arch-orion/orion.h index f787f752e58c..4a8025466a33 100644 --- a/include/asm-arm/arch-orion/orion.h +++ b/include/asm-arm/arch-orion/orion.h | |||
| @@ -14,32 +14,40 @@ | |||
| 14 | #ifndef __ASM_ARCH_ORION_H__ | 14 | #ifndef __ASM_ARCH_ORION_H__ |
| 15 | #define __ASM_ARCH_ORION_H__ | 15 | #define __ASM_ARCH_ORION_H__ |
| 16 | 16 | ||
| 17 | /******************************************************************************* | 17 | /***************************************************************************** |
| 18 | * Orion Address Map | 18 | * Orion Address Map |
| 19 | * Use the same mapping (1:1 virtual:physical) of internal registers and | 19 | * |
| 20 | * PCI system (PCI+PCIE) for all machines. | 20 | * virt phys size |
| 21 | * Each machine defines the rest of its mapping (e.g. device bus flashes) | 21 | * f0000000 f0000000 16M PCIe WA space (Orion-NAS only) |
| 22 | ******************************************************************************/ | 22 | * f1000000 f1000000 1M on-chip peripheral registers |
| 23 | #define ORION_REGS_BASE 0xf1000000 | 23 | * f2000000 f2000000 1M PCIe I/O space |
| 24 | * f2100000 f2100000 1M PCI I/O space | ||
| 25 | ****************************************************************************/ | ||
| 26 | #define ORION_REGS_PHYS_BASE 0xf1000000 | ||
| 27 | #define ORION_REGS_VIRT_BASE 0xf1000000 | ||
| 24 | #define ORION_REGS_SIZE SZ_1M | 28 | #define ORION_REGS_SIZE SZ_1M |
| 25 | 29 | ||
| 26 | #define ORION_PCI_SYS_MEM_BASE 0xe0000000 | 30 | #define ORION_PCIE_IO_PHYS_BASE 0xf2000000 |
| 27 | #define ORION_PCIE_MEM_BASE ORION_PCI_SYS_MEM_BASE | 31 | #define ORION_PCIE_IO_VIRT_BASE 0xf2000000 |
| 28 | #define ORION_PCIE_MEM_SIZE SZ_128M | 32 | #define ORION_PCIE_IO_BUS_BASE 0x00000000 |
| 29 | #define ORION_PCI_MEM_BASE (ORION_PCIE_MEM_BASE + ORION_PCIE_MEM_SIZE) | ||
| 30 | #define ORION_PCI_MEM_SIZE SZ_128M | ||
| 31 | |||
| 32 | #define ORION_PCI_SYS_IO_BASE 0xf2000000 | ||
| 33 | #define ORION_PCIE_IO_BASE ORION_PCI_SYS_IO_BASE | ||
| 34 | #define ORION_PCIE_IO_SIZE SZ_1M | 33 | #define ORION_PCIE_IO_SIZE SZ_1M |
| 35 | #define ORION_PCIE_IO_REMAP (ORION_PCIE_IO_BASE - ORION_PCI_SYS_IO_BASE) | 34 | |
| 36 | #define ORION_PCI_IO_BASE (ORION_PCIE_IO_BASE + ORION_PCIE_IO_SIZE) | 35 | #define ORION_PCI_IO_PHYS_BASE 0xf2100000 |
| 36 | #define ORION_PCI_IO_VIRT_BASE 0xf2100000 | ||
| 37 | #define ORION_PCI_IO_BUS_BASE 0x00100000 | ||
| 37 | #define ORION_PCI_IO_SIZE SZ_1M | 38 | #define ORION_PCI_IO_SIZE SZ_1M |
| 38 | #define ORION_PCI_IO_REMAP (ORION_PCI_IO_BASE - ORION_PCI_SYS_IO_BASE) | 39 | |
| 39 | /* Relevant only for Orion-NAS */ | 40 | /* Relevant only for Orion-NAS */ |
| 40 | #define ORION_PCIE_WA_BASE 0xf0000000 | 41 | #define ORION_PCIE_WA_PHYS_BASE 0xf0000000 |
| 42 | #define ORION_PCIE_WA_VIRT_BASE 0xf0000000 | ||
| 41 | #define ORION_PCIE_WA_SIZE SZ_16M | 43 | #define ORION_PCIE_WA_SIZE SZ_16M |
| 42 | 44 | ||
| 45 | #define ORION_PCIE_MEM_PHYS_BASE 0xe0000000 | ||
| 46 | #define ORION_PCIE_MEM_SIZE SZ_128M | ||
| 47 | |||
| 48 | #define ORION_PCI_MEM_PHYS_BASE 0xe8000000 | ||
| 49 | #define ORION_PCI_MEM_SIZE SZ_128M | ||
| 50 | |||
| 43 | /******************************************************************************* | 51 | /******************************************************************************* |
| 44 | * Supported Devices & Revisions | 52 | * Supported Devices & Revisions |
| 45 | ******************************************************************************/ | 53 | ******************************************************************************/ |
| @@ -57,25 +65,42 @@ | |||
| 57 | /******************************************************************************* | 65 | /******************************************************************************* |
| 58 | * Orion Registers Map | 66 | * Orion Registers Map |
| 59 | ******************************************************************************/ | 67 | ******************************************************************************/ |
| 60 | #define ORION_DDR_REG_BASE (ORION_REGS_BASE | 0x00000) | 68 | #define ORION_DDR_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x00000) |
| 61 | #define ORION_DEV_BUS_REG_BASE (ORION_REGS_BASE | 0x10000) | 69 | #define ORION_DDR_REG(x) (ORION_DDR_VIRT_BASE | (x)) |
| 62 | #define ORION_BRIDGE_REG_BASE (ORION_REGS_BASE | 0x20000) | 70 | |
| 63 | #define ORION_PCI_REG_BASE (ORION_REGS_BASE | 0x30000) | 71 | #define ORION_DEV_BUS_PHYS_BASE (ORION_REGS_PHYS_BASE | 0x10000) |
| 64 | #define ORION_PCIE_REG_BASE (ORION_REGS_BASE | 0x40000) | 72 | #define ORION_DEV_BUS_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x10000) |
| 65 | #define ORION_USB0_REG_BASE (ORION_REGS_BASE | 0x50000) | 73 | #define ORION_DEV_BUS_REG(x) (ORION_DEV_BUS_VIRT_BASE | (x)) |
| 66 | #define ORION_ETH_REG_BASE (ORION_REGS_BASE | 0x70000) | 74 | #define I2C_PHYS_BASE (ORION_DEV_BUS_PHYS_BASE | 0x1000) |
| 67 | #define ORION_SATA_REG_BASE (ORION_REGS_BASE | 0x80000) | 75 | #define UART0_PHYS_BASE (ORION_DEV_BUS_PHYS_BASE | 0x2000) |
| 68 | #define ORION_USB1_REG_BASE (ORION_REGS_BASE | 0xa0000) | 76 | #define UART0_VIRT_BASE (ORION_DEV_BUS_VIRT_BASE | 0x2000) |
| 69 | 77 | #define UART1_PHYS_BASE (ORION_DEV_BUS_PHYS_BASE | 0x2100) | |
| 70 | #define ORION_DDR_REG(x) (ORION_DDR_REG_BASE | (x)) | 78 | #define UART1_VIRT_BASE (ORION_DEV_BUS_VIRT_BASE | 0x2100) |
| 71 | #define ORION_DEV_BUS_REG(x) (ORION_DEV_BUS_REG_BASE | (x)) | 79 | |
| 72 | #define ORION_BRIDGE_REG(x) (ORION_BRIDGE_REG_BASE | (x)) | 80 | #define ORION_BRIDGE_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x20000) |
| 73 | #define ORION_PCI_REG(x) (ORION_PCI_REG_BASE | (x)) | 81 | #define ORION_BRIDGE_REG(x) (ORION_BRIDGE_VIRT_BASE | (x)) |
| 74 | #define ORION_PCIE_REG(x) (ORION_PCIE_REG_BASE | (x)) | 82 | |
| 75 | #define ORION_USB0_REG(x) (ORION_USB0_REG_BASE | (x)) | 83 | #define ORION_PCI_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x30000) |
| 76 | #define ORION_USB1_REG(x) (ORION_USB1_REG_BASE | (x)) | 84 | #define ORION_PCI_REG(x) (ORION_PCI_VIRT_BASE | (x)) |
| 77 | #define ORION_ETH_REG(x) (ORION_ETH_REG_BASE | (x)) | 85 | |
| 78 | #define ORION_SATA_REG(x) (ORION_SATA_REG_BASE | (x)) | 86 | #define ORION_PCIE_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x40000) |
| 87 | #define ORION_PCIE_REG(x) (ORION_PCIE_VIRT_BASE | (x)) | ||
| 88 | |||
| 89 | #define ORION_USB0_PHYS_BASE (ORION_REGS_PHYS_BASE | 0x50000) | ||
| 90 | #define ORION_USB0_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x50000) | ||
| 91 | #define ORION_USB0_REG(x) (ORION_USB0_VIRT_BASE | (x)) | ||
| 92 | |||
| 93 | #define ORION_ETH_PHYS_BASE (ORION_REGS_PHYS_BASE | 0x70000) | ||
| 94 | #define ORION_ETH_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x70000) | ||
| 95 | #define ORION_ETH_REG(x) (ORION_ETH_VIRT_BASE | (x)) | ||
| 96 | |||
| 97 | #define ORION_SATA_PHYS_BASE (ORION_REGS_PHYS_BASE | 0x80000) | ||
| 98 | #define ORION_SATA_VIRT_BASE (ORION_REGS_VIRT_BASE | 0x80000) | ||
| 99 | #define ORION_SATA_REG(x) (ORION_SATA_VIRT_BASE | (x)) | ||
| 100 | |||
| 101 | #define ORION_USB1_PHYS_BASE (ORION_REGS_PHYS_BASE | 0xa0000) | ||
| 102 | #define ORION_USB1_VIRT_BASE (ORION_REGS_VIRT_BASE | 0xa0000) | ||
| 103 | #define ORION_USB1_REG(x) (ORION_USB1_VIRT_BASE | (x)) | ||
| 79 | 104 | ||
| 80 | /******************************************************************************* | 105 | /******************************************************************************* |
| 81 | * Device Bus Registers | 106 | * Device Bus Registers |
| @@ -100,9 +125,6 @@ | |||
| 100 | #define DEV_BUS_CTRL ORION_DEV_BUS_REG(0x4c0) | 125 | #define DEV_BUS_CTRL ORION_DEV_BUS_REG(0x4c0) |
| 101 | #define DEV_BUS_INT_CAUSE ORION_DEV_BUS_REG(0x4d0) | 126 | #define DEV_BUS_INT_CAUSE ORION_DEV_BUS_REG(0x4d0) |
| 102 | #define DEV_BUS_INT_MASK ORION_DEV_BUS_REG(0x4d4) | 127 | #define DEV_BUS_INT_MASK ORION_DEV_BUS_REG(0x4d4) |
| 103 | #define I2C_BASE ORION_DEV_BUS_REG(0x1000) | ||
| 104 | #define UART0_BASE ORION_DEV_BUS_REG(0x2000) | ||
| 105 | #define UART1_BASE ORION_DEV_BUS_REG(0x2100) | ||
| 106 | #define GPIO_MAX 32 | 128 | #define GPIO_MAX 32 |
| 107 | 129 | ||
| 108 | /*************************************************************************** | 130 | /*************************************************************************** |
diff --git a/include/asm-arm/arch-orion/uncompress.h b/include/asm-arm/arch-orion/uncompress.h index 0cab78ad6332..59f44039909a 100644 --- a/include/asm-arm/arch-orion/uncompress.h +++ b/include/asm-arm/arch-orion/uncompress.h | |||
| @@ -10,8 +10,8 @@ | |||
| 10 | 10 | ||
| 11 | #include <asm/arch/orion.h> | 11 | #include <asm/arch/orion.h> |
| 12 | 12 | ||
| 13 | #define MV_UART_LSR ((volatile unsigned char *)(UART0_BASE + 0x14)) | 13 | #define MV_UART_THR ((volatile unsigned char *)(UART0_PHYS_BASE + 0x0)) |
| 14 | #define MV_UART_THR ((volatile unsigned char *)(UART0_BASE + 0x0)) | 14 | #define MV_UART_LSR ((volatile unsigned char *)(UART0_PHYS_BASE + 0x14)) |
| 15 | 15 | ||
| 16 | #define LSR_THRE 0x20 | 16 | #define LSR_THRE 0x20 |
| 17 | 17 | ||
