提交 c231d697 编写于 作者: C Colin Cross

[ARM] tegra: update iomap

Add missing io address map entries from datasheet.
Add the IRAM area to the statically mapped io regions.
Correct the onewire, USB, and statmon addresses
Signed-off-by: NColin Cross <ccross@android.com>
上级 b5153163
...@@ -33,6 +33,10 @@ ...@@ -33,6 +33,10 @@
* *
*/ */
#define IO_IRAM_PHYS 0x40000000
#define IO_IRAM_VIRT 0xFE400000
#define IO_IRAM_SIZE SZ_256K
#define IO_CPU_PHYS 0x50040000 #define IO_CPU_PHYS 0x50040000
#define IO_CPU_VIRT 0xFE000000 #define IO_CPU_VIRT 0xFE000000
#define IO_CPU_SIZE SZ_16K #define IO_CPU_SIZE SZ_16K
...@@ -55,6 +59,8 @@ ...@@ -55,6 +59,8 @@
IO_TO_VIRT_XLATE((n), IO_APB_PHYS, IO_APB_VIRT) : \ IO_TO_VIRT_XLATE((n), IO_APB_PHYS, IO_APB_VIRT) : \
IO_TO_VIRT_BETWEEN((n), IO_CPU_PHYS, IO_CPU_SIZE) ? \ IO_TO_VIRT_BETWEEN((n), IO_CPU_PHYS, IO_CPU_SIZE) ? \
IO_TO_VIRT_XLATE((n), IO_CPU_PHYS, IO_CPU_VIRT) : \ IO_TO_VIRT_XLATE((n), IO_CPU_PHYS, IO_CPU_VIRT) : \
IO_TO_VIRT_BETWEEN((n), IO_IRAM_PHYS, IO_IRAM_SIZE) ? \
IO_TO_VIRT_XLATE((n), IO_IRAM_PHYS, IO_IRAM_VIRT) : \
0) 0)
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
......
...@@ -23,9 +23,15 @@ ...@@ -23,9 +23,15 @@
#include <asm/sizes.h> #include <asm/sizes.h>
#define TEGRA_IRAM_BASE 0x40000000
#define TEGRA_IRAM_SIZE SZ_256K
#define TEGRA_ARM_PERIF_BASE 0x50040000 #define TEGRA_ARM_PERIF_BASE 0x50040000
#define TEGRA_ARM_PERIF_SIZE SZ_8K #define TEGRA_ARM_PERIF_SIZE SZ_8K
#define TEGRA_ARM_PL310_BASE 0x50043000
#define TEGRA_ARM_PL310_SIZE SZ_4K
#define TEGRA_ARM_INT_DIST_BASE 0x50041000 #define TEGRA_ARM_INT_DIST_BASE 0x50041000
#define TEGRA_ARM_INT_DIST_SIZE SZ_4K #define TEGRA_ARM_INT_DIST_SIZE SZ_4K
...@@ -68,7 +74,22 @@ ...@@ -68,7 +74,22 @@
#define TEGRA_FLOW_CTRL_BASE 0x60007000 #define TEGRA_FLOW_CTRL_BASE 0x60007000
#define TEGRA_FLOW_CTRL_SIZE 20 #define TEGRA_FLOW_CTRL_SIZE 20
#define TEGRA_STATMON_BASE 0x6000C4000 #define TEGRA_AHB_DMA_BASE 0x60008000
#define TEGRA_AHB_DMA_SIZE SZ_4K
#define TEGRA_AHB_DMA_CH0_BASE 0x60009000
#define TEGRA_AHB_DMA_CH0_SIZE 32
#define TEGRA_APB_DMA_BASE 0x6000A000
#define TEGRA_APB_DMA_SIZE SZ_4K
#define TEGRA_APB_DMA_CH0_BASE 0x6000B000
#define TEGRA_APB_DMA_CH0_SIZE 32
#define TEGRA_AHB_GIZMO_BASE 0x6000C004
#define TEGRA_AHB_GIZMO_SIZE 0x10C
#define TEGRA_STATMON_BASE 0x6000C400
#define TEGRA_STATMON_SIZE SZ_1K #define TEGRA_STATMON_SIZE SZ_1K
#define TEGRA_GPIO_BASE 0x6000D000 #define TEGRA_GPIO_BASE 0x6000D000
...@@ -137,7 +158,7 @@ ...@@ -137,7 +158,7 @@
#define TEGRA_I2C3_BASE 0x7000C500 #define TEGRA_I2C3_BASE 0x7000C500
#define TEGRA_I2C3_SIZE SZ_256 #define TEGRA_I2C3_SIZE SZ_256
#define TEGRA_OWR_BASE 0x7000D000 #define TEGRA_OWR_BASE 0x7000C600
#define TEGRA_OWR_SIZE 80 #define TEGRA_OWR_SIZE 80
#define TEGRA_DVC_BASE 0x7000D000 #define TEGRA_DVC_BASE 0x7000D000
...@@ -182,12 +203,12 @@ ...@@ -182,12 +203,12 @@
#define TEGRA_USB_BASE 0xC5000000 #define TEGRA_USB_BASE 0xC5000000
#define TEGRA_USB_SIZE SZ_16K #define TEGRA_USB_SIZE SZ_16K
#define TEGRA_USB1_BASE 0xC5004000 #define TEGRA_USB2_BASE 0xC5004000
#define TEGRA_USB1_SIZE SZ_16K
#define TEGRA_USB2_BASE 0xC5008000
#define TEGRA_USB2_SIZE SZ_16K #define TEGRA_USB2_SIZE SZ_16K
#define TEGRA_USB3_BASE 0xC5008000
#define TEGRA_USB3_SIZE SZ_16K
#define TEGRA_SDMMC1_BASE 0xC8000000 #define TEGRA_SDMMC1_BASE 0xC8000000
#define TEGRA_SDMMC1_SIZE SZ_512 #define TEGRA_SDMMC1_SIZE SZ_512
......
...@@ -49,6 +49,12 @@ static struct map_desc tegra_io_desc[] __initdata = { ...@@ -49,6 +49,12 @@ static struct map_desc tegra_io_desc[] __initdata = {
.length = IO_CPU_SIZE, .length = IO_CPU_SIZE,
.type = MT_DEVICE, .type = MT_DEVICE,
}, },
{
.virtual = IO_IRAM_VIRT,
.pfn = __phys_to_pfn(IO_IRAM_PHYS),
.length = IO_IRAM_SIZE,
.type = MT_DEVICE,
},
}; };
void __init tegra_map_common_io(void) void __init tegra_map_common_io(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册