From 8a02631f8196a9a75ef8dd5a4ef8a96a55d5302f Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Fri, 11 Jan 2013 17:32:46 +0100 Subject: [PATCH] i.MX53 support Was: 'imx53_support.patch' --- kernel/fiasco/src/kern/arm/bsp/imx/Kconfig | 10 +++++++++- kernel/fiasco/src/kern/arm/bsp/imx/Modules | 3 +++ .../fiasco/src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp | 1 + l4/mk/platforms/imx53.conf | 4 ++++ l4/pkg/bootstrap/server/src/Make.rules | 1 + l4/pkg/bootstrap/server/src/platform/imx.cc | 3 +++ 6 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 l4/mk/platforms/imx53.conf diff --git a/kernel/fiasco/src/kern/arm/bsp/imx/Kconfig b/kernel/fiasco/src/kern/arm/bsp/imx/Kconfig index 5ec83881..73f635b4 100644 --- a/kernel/fiasco/src/kern/arm/bsp/imx/Kconfig +++ b/kernel/fiasco/src/kern/arm/bsp/imx/Kconfig @@ -43,6 +43,13 @@ config PF_IMX_6 help Choose for i.MX6 platform. +config PF_IMX_53 + bool "i.MX53" + depends on PF_IMX + select CAN_ARM_CPU_CORTEX_A8 + help + Choose for i.MX53 + endchoice config PF_IMX_RAM_PHYS_BASE @@ -50,4 +57,5 @@ config PF_IMX_RAM_PHYS_BASE default 0xc0000000 if PF_IMX_21 default 0x80000000 if PF_IMX_35 default 0x90000000 if PF_IMX_51 - default 0x10000000 if PF_IMX_6 + default 0x70000000 if PF_IMX_53 + default 0x10000000 if PF_IMX_6 diff --git a/kernel/fiasco/src/kern/arm/bsp/imx/Modules b/kernel/fiasco/src/kern/arm/bsp/imx/Modules index 5321e62b..742b3d36 100644 --- a/kernel/fiasco/src/kern/arm/bsp/imx/Modules +++ b/kernel/fiasco/src/kern/arm/bsp/imx/Modules @@ -9,10 +9,12 @@ PREPROCESS_PARTS += $(if $(CONFIG_PF_IMX_51),imx51 imx_epit \ pic_gic pic_gic_mxc_tzic) PREPROCESS_PARTS += $(if $(CONFIG_PF_IMX_53),imx53 imx_epit \ pic_gic pic_gic_mxc_tzic) + PREPROCESS_PARTS += $(if $(CONFIG_PF_IMX_6),imx6 pic_gic mptimer) CONFIG_KERNEL_LOAD_ADDR := $(CONFIG_PF_IMX_RAM_PHYS_BASE) INTERFACES_KERNEL += $(if $(CONFIG_PF_IMX_51),gic) +INTERFACES_KERNEL += $(if $(CONFIG_PF_IMX_53),gic) INTERFACES_KERNEL += $(if $(CONFIG_PF_IMX_6),gic) MPCORE_PHYS_BASE := 0x00a00000 @@ -24,6 +26,7 @@ pic_IMPL += $(if $(CONFIG_PF_IMX_35),pic-arm-imx) pic_IMPL += $(if $(CONFIG_PF_IMX_51),pic-gic pic-arm-imx51) pic_IMPL += $(if $(CONFIG_PF_IMX_53),pic-gic pic-arm-imx51) pic_IMPL += $(if $(CONFIG_PF_IMX_6),pic-gic pic-arm-imx51) + bootstrap_IMPL += bootstrap-arm-imx timer_IMPL += $(if $(CONFIG_PF_IMX_21),timer-arm-imx21) timer_IMPL += $(if $(CONFIG_PF_IMX_35),timer-arm-imx_epit) diff --git a/kernel/fiasco/src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp b/kernel/fiasco/src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp index 1b849b7e..99bc016a 100644 --- a/kernel/fiasco/src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp +++ b/kernel/fiasco/src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp @@ -118,3 +118,4 @@ public: Devices3_phys_base = 0x02100000, }; }; + diff --git a/l4/mk/platforms/imx53.conf b/l4/mk/platforms/imx53.conf new file mode 100644 index 00000000..b0b45cc0 --- /dev/null +++ b/l4/mk/platforms/imx53.conf @@ -0,0 +1,4 @@ +PLATFORM_NAME = "Freescale i.MX53" +PLATFORM_ARCH = arm +PLATFORM_RAM_BASE = 0x70000000 +PLATFORM_RAM_SIZE_MB = 1024 \ No newline at end of file diff --git a/l4/pkg/bootstrap/server/src/Make.rules b/l4/pkg/bootstrap/server/src/Make.rules index 98658136..d363dd1c 100644 --- a/l4/pkg/bootstrap/server/src/Make.rules +++ b/l4/pkg/bootstrap/server/src/Make.rules @@ -80,6 +80,7 @@ SUPPORT_CC_arm-tegra2 := platform/tegra2.cc SUPPORT_CC_arm-imx21 := platform/imx.cc SUPPORT_CC_arm-imx35 := platform/imx.cc SUPPORT_CC_arm-imx51 := platform/imx.cc +SUPPORT_CC_arm-imx53 := platform/imx.cc SUPPORT_CC_arm-imx6 := platform/imx.cc SUPPORT_CC_arm-om := platform/om.cc SUPPORT_CC_arm-kirkwood := platform/kirkwood.cc diff --git a/l4/pkg/bootstrap/server/src/platform/imx.cc b/l4/pkg/bootstrap/server/src/platform/imx.cc index 9da67d7d..60edc26a 100644 --- a/l4/pkg/bootstrap/server/src/platform/imx.cc +++ b/l4/pkg/bootstrap/server/src/platform/imx.cc @@ -36,6 +36,9 @@ class Platform_arm_imx : public Platform_single_region_ram #elif defined(PLATFORM_TYPE_imx51) static L4::Io_register_block_mmio r(0x73fbc000); static L4::Uart_imx51 _uart; +#elif defined(PLATFORM_TYPE_imx53) + static L4::Io_register_block_mmio r(0x53fbc000); + static L4::Uart_imx51 _uart; #elif defined(PLATFORM_TYPE_imx6) //static L4::Io_register_block_mmio r(0x02020000); // UART1 static L4::Io_register_block_mmio r(0x021e8000); // UART2