diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-08-01 17:50:05 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-08-01 17:50:05 +0200 |
commit | 33838de7a241242c40f23fa3f95939d29c78544d (patch) | |
tree | 3034267f86c43ae67b5791db43d46d145de57ee1 /arch/arm/mach-imx | |
parent | 2935411dea8ed1b76e0e42a8f1988ba127c3dc02 (diff) | |
parent | f854b2370efc81bf1b3c5e50d743a6ed71301ae2 (diff) | |
download | barebox-33838de7a241242c40f23fa3f95939d29c78544d.tar.gz barebox-33838de7a241242c40f23fa3f95939d29c78544d.tar.xz |
Merge branch 'for-next/sabrelite'
Conflicts:
arch/arm/Makefile
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 15 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/barebox.lds.h | 12 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/devices-imx6.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/include/mach/imx-flash-header.h | 9 | ||||
-rw-r--r-- | arch/arm/mach-imx/speed-imx51.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/speed-imx53.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-imx/speed-imx6.c | 5 |
7 files changed, 55 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 9afd6150d9..b488725d7f 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -26,6 +26,7 @@ config ARCH_TEXT_BASE default 0x97f00000 if MACH_TX51 default 0x4fc00000 if MACH_MX6Q_ARM2 default 0x97f00000 if MACH_CCMX51 + default 0x4fc00000 if MACH_SABRELITE config BOARDINFO default "Eukrea CPUIMX25" if MACH_EUKREA_CPUIMX25 @@ -51,6 +52,7 @@ config BOARDINFO default "Ka-Ro tx51" if MACH_TX51 default "Freescale i.MX6q armadillo2" if MACH_MX6Q_ARM2 default "ConnectCore i.MX51" if MACH_CCMX51 + default "Sabre Lite" if MACH_SABRELITE choice prompt "Select boot mode" @@ -100,6 +102,16 @@ config ARCH_IMX_INTERNAL_BOOT_NOR config ARCH_IMX_INTERNAL_BOOT_ONENAND bool "OneNAND" +config ARCH_IMX_INTERNAL_BOOT_SERIAL + bool "Serial (read help)" + help + Normally the first instruction of the barebox image contains a jump + to the real start of the image which means that you can start it by + jumping to the load address. With serial boot images this is not + possible because the first instruction is occupied by a magic for the + ROM boot code. You can still start this image as a second stage loader, + but you have to add 0x400 to the entry point. + endchoice config NAND_IMX_BOOT @@ -459,6 +471,9 @@ choice config MACH_MX6Q_ARM2 bool "Freescale i.MX6q Armadillo2" +config MACH_SABRELITE + bool "Freescale i.MX6 Sabre Lite" + endchoice endif diff --git a/arch/arm/mach-imx/include/mach/barebox.lds.h b/arch/arm/mach-imx/include/mach/barebox.lds.h index a2932bd79f..2e60282c6d 100644 --- a/arch/arm/mach-imx/include/mach/barebox.lds.h +++ b/arch/arm/mach-imx/include/mach/barebox.lds.h @@ -1,6 +1,16 @@ #ifdef CONFIG_ARCH_IMX_INTERNAL_BOOT +#ifdef CONFIG_ARCH_IMX_INTERNAL_BOOT_SERIAL +#define PRE_IMAGE \ + .pre_image : { \ + KEEP(*(.flash_header_0x0*)) \ + KEEP(*(.dcd_entry_0x0*)) \ + KEEP(*(.image_len_0x0*)) \ + . = 0x400; \ + } +#else + #define PRE_IMAGE \ .pre_image : { \ KEEP(*(.flash_header_start*)) \ @@ -19,4 +29,4 @@ . = 0x2000; \ } #endif - +#endif diff --git a/arch/arm/mach-imx/include/mach/devices-imx6.h b/arch/arm/mach-imx/include/mach/devices-imx6.h index e4a72accd6..ca063c5459 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx6.h +++ b/arch/arm/mach-imx/include/mach/devices-imx6.h @@ -44,3 +44,8 @@ static inline struct device_d *imx6_add_fec(struct fec_platform_data *pdata) { return imx_add_fec((void *)MX6_ENET_BASE_ADDR, pdata); } + +static inline struct device_d *imx6_add_spi0(struct spi_imx_master *pdata) +{ + return imx_add_spi((void *)MX6_ECSPI1_BASE_ADDR, 0, pdata); +} diff --git a/arch/arm/mach-imx/include/mach/imx-flash-header.h b/arch/arm/mach-imx/include/mach/imx-flash-header.h index ca2fe9f3d3..a51d4736fa 100644 --- a/arch/arm/mach-imx/include/mach/imx-flash-header.h +++ b/arch/arm/mach-imx/include/mach/imx-flash-header.h @@ -15,6 +15,11 @@ #define __dcd_entry_section __section(.dcd_entry_0x0100) #define __image_len_section __section(.image_len_0x0100) #define FLASH_HEADER_OFFSET 0x0100 +#elif defined(CONFIG_ARCH_IMX_INTERNAL_BOOT_SERIAL) + #define __flash_header_section __section(.flash_header_0x0) + #define __dcd_entry_section __section(.dcd_entry_0x0) + #define __image_len_section __section(.image_len_0x0) + #define FLASH_HEADER_OFFSET 0x0 #else #define __flash_header_section __section(.flash_header_0x0400) #define __dcd_entry_section __section(.dcd_entry_0x0400) @@ -34,6 +39,10 @@ #define __dcd_entry_0x0400 __section(.dcd_entry_0x0400) #define __image_len_0x0400 __section(.image_len_0x0400) +#define __flash_header_0x0 __section(.flash_header_0x0) +#define __dcd_entry_0x0 __section(.dcd_entry_0x0) +#define __image_len_0x0 __section(.image_len_0x0) + /* * NOR is not automatically copied anywhere by the boot ROM */ diff --git a/arch/arm/mach-imx/speed-imx51.c b/arch/arm/mach-imx/speed-imx51.c index 87fbc75313..288fe1a640 100644 --- a/arch/arm/mach-imx/speed-imx51.c +++ b/arch/arm/mach-imx/speed-imx51.c @@ -228,6 +228,11 @@ unsigned long imx_get_usbclk(void) return rate / (prediv * podf); } +unsigned long imx_get_cspiclk(void) +{ + return 166000000; /* FIXME: bogus value */ +} + /* * Set the divider of the CLKO pin. Returns * the new divider (which may be smaller diff --git a/arch/arm/mach-imx/speed-imx53.c b/arch/arm/mach-imx/speed-imx53.c index 653dae33b6..ede5ffd75b 100644 --- a/arch/arm/mach-imx/speed-imx53.c +++ b/arch/arm/mach-imx/speed-imx53.c @@ -217,6 +217,11 @@ unsigned long imx_get_mmcclk(void) return rate / (prediv * podf); } +unsigned long imx_get_cspiclk(void) +{ + return 166000000; /* FIXME: bogus value */ +} + void imx_dump_clocks(void) { printf("pll1: %ld\n", pll1_main_get_rate()); diff --git a/arch/arm/mach-imx/speed-imx6.c b/arch/arm/mach-imx/speed-imx6.c index 4cc9fdbbc4..df2454532d 100644 --- a/arch/arm/mach-imx/speed-imx6.c +++ b/arch/arm/mach-imx/speed-imx6.c @@ -332,6 +332,11 @@ u32 imx_get_fecclk(void) return __get_ipg_clk(); } +u32 imx_get_cspiclk(void) +{ + return __get_cspi_clk(); +} + void imx_dump_clocks(void) { u32 freq; |