summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/kindle-mx50/lowlevel.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boards/kindle-mx50/lowlevel.c')
-rw-r--r--arch/arm/boards/kindle-mx50/lowlevel.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/boards/kindle-mx50/lowlevel.c b/arch/arm/boards/kindle-mx50/lowlevel.c
new file mode 100644
index 0000000000..dc321b533b
--- /dev/null
+++ b/arch/arm/boards/kindle-mx50/lowlevel.c
@@ -0,0 +1,50 @@
+#include <common.h>
+#include <linux/sizes.h>
+#include <io.h>
+#include <asm/barebox-arm-head.h>
+#include <asm/barebox-arm.h>
+#include <asm/sections.h>
+#include <asm/cache.h>
+#include <asm/mmu.h>
+#include <mach/imx50-regs.h>
+#include <mach/generic.h>
+
+extern char __dtb_imx50_kindle_d01100_start[];
+extern char __dtb_imx50_kindle_d01200_start[];
+extern char __dtb_imx50_kindle_ey21_start[];
+
+ENTRY_FUNCTION(start_imx50_kindle_d01100, r0, r1, r2)
+{
+ void *fdt;
+
+ imx5_cpu_lowlevel_init();
+ arm_setup_stack(MX50_IRAM_BASE_ADDR + MX50_IRAM_SIZE - 8);
+
+ fdt = __dtb_imx50_kindle_d01100_start - get_runtime_offset();
+
+ barebox_arm_entry(MX50_CSD0_BASE_ADDR, SZ_256M, fdt);
+}
+
+ENTRY_FUNCTION(start_imx50_kindle_d01200, r0, r1, r2)
+{
+ void *fdt;
+
+ imx5_cpu_lowlevel_init();
+ arm_setup_stack(MX50_IRAM_BASE_ADDR + MX50_IRAM_SIZE - 8);
+
+ fdt = __dtb_imx50_kindle_d01200_start - get_runtime_offset();
+
+ barebox_arm_entry(MX50_CSD0_BASE_ADDR, SZ_256M, fdt);
+}
+
+ENTRY_FUNCTION(start_imx50_kindle_ey21, r0, r1, r2)
+{
+ void *fdt;
+
+ imx5_cpu_lowlevel_init();
+ arm_setup_stack(MX50_IRAM_BASE_ADDR + MX50_IRAM_SIZE - 8);
+
+ fdt = __dtb_imx50_kindle_ey21_start - get_runtime_offset();
+
+ barebox_arm_entry(MX50_CSD0_BASE_ADDR, SZ_256M, fdt);
+}