summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2010-06-17 08:29:09 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-06-17 08:29:09 +0200
commitf7c02aea7b45474126b4723dfeb2581b0fd55447 (patch)
tree891c5d2c71f0c00bbe35235d0e1a8158e567a019 /arch
parenta81786a053ed1f08aab8d70d28dbf33691ab7a37 (diff)
parentc5de3fdcce291a9049a03f86f0553032f5068916 (diff)
downloadbarebox-f7c02aea7b45474126b4723dfeb2581b0fd55447.tar.gz
barebox-f7c02aea7b45474126b4723dfeb2581b0fd55447.tar.xz
Merge branch 'net' into next
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/eukrea_cpuimx25_defconfig23
-rw-r--r--arch/arm/configs/eukrea_cpuimx27_defconfig2
-rw-r--r--arch/arm/cpu/cpu.c15
-rw-r--r--arch/arm/cpu/start.c17
-rw-r--r--arch/arm/mach-imx/include/mach/imx27-regs.h3
5 files changed, 40 insertions, 20 deletions
diff --git a/arch/arm/configs/eukrea_cpuimx25_defconfig b/arch/arm/configs/eukrea_cpuimx25_defconfig
index 81f9c80a3c..574d32292d 100644
--- a/arch/arm/configs/eukrea_cpuimx25_defconfig
+++ b/arch/arm/configs/eukrea_cpuimx25_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# barebox version: 2010.03.0
-# Fri Mar 19 11:12:11 2010
+# barebox version: 2010.05.0
+# Wed Jun 2 01:04:00 2010
#
# CONFIG_BOARD_LINKER_SCRIPT is not set
CONFIG_GENERIC_LINKER_SCRIPT=y
@@ -88,19 +88,20 @@ CONFIG_MALLOC_SIZE=0x1000000
# CONFIG_EXPERIMENTAL is not set
CONFIG_MACH_HAS_LOWLEVEL_INIT=y
CONFIG_MACH_DO_LOWLEVEL_INIT=y
-CONFIG_PROMPT="barebox:"
+CONFIG_PROMPT="cpuimx25:"
CONFIG_BAUDRATE=115200
-# CONFIG_LONGHELP is not set
+CONFIG_LONGHELP=y
CONFIG_CBSIZE=1024
CONFIG_MAXARGS=16
CONFIG_SHELL_HUSH=y
# CONFIG_SHELL_SIMPLE is not set
CONFIG_GLOB=y
CONFIG_PROMPT_HUSH_PS2="cpuimx25>"
+CONFIG_HUSH_FANCY_PROMPT=y
CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y
CONFIG_DYNAMIC_CRC_TABLE=y
-# CONFIG_ERRNO_MESSAGES is not set
+CONFIG_ERRNO_MESSAGES=y
CONFIG_TIMESTAMP=y
CONFIG_CONSOLE_FULL=y
CONFIG_CONSOLE_ACTIVATE_FIRST=y
@@ -153,6 +154,7 @@ CONFIG_CMD_UMOUNT=y
#
CONFIG_CMD_CLEAR=y
CONFIG_CMD_ECHO=y
+CONFIG_CMD_ECHO_E=y
#
# memory
@@ -172,9 +174,9 @@ CONFIG_CMD_FLASH=y
# booting
#
CONFIG_CMD_BOOTM=y
-# CONFIG_CMD_BOOTM_ZLIB is not set
-# CONFIG_CMD_BOOTM_BZLIB is not set
-# CONFIG_CMD_BOOTM_SHOW_TYPE is not set
+CONFIG_CMD_BOOTM_ZLIB=y
+CONFIG_CMD_BOOTM_BZLIB=y
+CONFIG_CMD_BOOTM_SHOW_TYPE=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTU=y
# CONFIG_CMD_LINUX16 is not set
@@ -188,6 +190,7 @@ CONFIG_CMD_HELP=y
CONFIG_CMD_DEVINFO=y
CONFIG_CMD_BMP=y
CONFIG_CMD_GPIO=y
+CONFIG_CMD_UNLZO=y
CONFIG_NET=y
CONFIG_NET_DHCP=y
# CONFIG_NET_RARP is not set
@@ -243,5 +246,9 @@ CONFIG_DRIVER_VIDEO_IMX=y
# CONFIG_FS_CRAMFS is not set
CONFIG_FS_RAMFS=y
CONFIG_FS_DEVFS=y
+CONFIG_ZLIB=y
+CONFIG_BZLIB=y
CONFIG_CRC32=y
# CONFIG_GENERIC_FIND_NEXT_BIT is not set
+CONFIG_PROCESS_ESCAPE_SEQUENCE=y
+CONFIG_LZO_DECOMPRESS=y
diff --git a/arch/arm/configs/eukrea_cpuimx27_defconfig b/arch/arm/configs/eukrea_cpuimx27_defconfig
index 3b92c37ff2..a1cf1adb74 100644
--- a/arch/arm/configs/eukrea_cpuimx27_defconfig
+++ b/arch/arm/configs/eukrea_cpuimx27_defconfig
@@ -92,7 +92,7 @@ CONFIG_HAVE_CONFIGURABLE_MEMORY_LAYOUT=y
CONFIG_MEMORY_LAYOUT_DEFAULT=y
# CONFIG_MEMORY_LAYOUT_FIXED is not set
CONFIG_STACK_SIZE=0x8000
-CONFIG_MALLOC_SIZE=0x400000
+CONFIG_MALLOC_SIZE=0x800000
# CONFIG_BROKEN is not set
# CONFIG_EXPERIMENTAL is not set
CONFIG_MACH_HAS_LOWLEVEL_INIT=y
diff --git a/arch/arm/cpu/cpu.c b/arch/arm/cpu/cpu.c
index fbc91aabf2..2b36a793dc 100644
--- a/arch/arm/cpu/cpu.c
+++ b/arch/arm/cpu/cpu.c
@@ -75,12 +75,19 @@ void arch_shutdown(void)
int i;
#ifdef CONFIG_MMU
+ /* nearly the same as below, but this could also disable
+ * second level cache.
+ */
mmu_disable();
+#else
+ asm volatile (
+ "bl __mmu_cache_flush;"
+ "bl __mmu_cache_off;"
+ :
+ :
+ : "r0", "r1", "r2", "r3", "r6", "r10", "r12", "cc", "memory"
+ );
#endif
-
- /* flush I/D-cache */
- i = 0;
- asm ("mcr p15, 0, %0, c7, c7, 0": :"r" (i));
}
/**
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c
index 67d54a6a76..eea7dcfa3c 100644
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -81,21 +81,24 @@ void __naked __bare_init reset(void)
*/
void __naked __bare_init board_init_lowlevel_return(void)
{
- uint32_t r;
+ uint32_t r, addr;
+
+ /*
+ * Get runtime address of this function. Do not
+ * put any code above this.
+ */
+ __asm__ __volatile__("1: adr %0, 1b":"=r"(addr));
/* Setup the stack */
r = STACK_BASE + STACK_SIZE - 16;
__asm__ __volatile__("mov sp, %0" : : "r"(r));
- /* Get runtime address of this function */
- __asm__ __volatile__("adr %0, 0":"=r"(r));
-
/* Get start of binary image */
- r -= (uint32_t)&board_init_lowlevel_return - TEXT_BASE;
+ addr -= (uint32_t)&board_init_lowlevel_return - TEXT_BASE;
/* relocate to link address if necessary */
- if (r != TEXT_BASE)
- memcpy((void *)TEXT_BASE, (void *)r,
+ if (addr != TEXT_BASE)
+ memcpy((void *)TEXT_BASE, (void *)addr,
(unsigned int)&__bss_start - TEXT_BASE);
/* clear bss */
diff --git a/arch/arm/mach-imx/include/mach/imx27-regs.h b/arch/arm/mach-imx/include/mach/imx27-regs.h
index 6c31ccd914..4e2261261e 100644
--- a/arch/arm/mach-imx/include/mach/imx27-regs.h
+++ b/arch/arm/mach-imx/include/mach/imx27-regs.h
@@ -22,6 +22,7 @@
#define IMX_TIM5_BASE (0x1a000 + IMX_IO_BASE)
#define IMX_UART5_BASE (0x1b000 + IMX_IO_BASE)
#define IMX_UART6_BASE (0x1c000 + IMX_IO_BASE)
+#define IMX_I2C2_BASE (0x1d000 + IMX_IO_BASE)
#define IMX_TIM6_BASE (0x1f000 + IMX_IO_BASE)
#define IMX_AIPI2_BASE (0x20000 + IMX_IO_BASE)
#define IMX_PLL_BASE (0x27000 + IMX_IO_BASE)
@@ -309,6 +310,8 @@
#define PE13_PF_UART1_RXD (GPIO_PORTE | GPIO_IN | GPIO_PF | 13)
#define PE14_PF_UART1_CTS (GPIO_PORTE | GPIO_OUT | GPIO_PF | 14)
#define PE15_PF_UART1_RTS (GPIO_PORTE | GPIO_IN | GPIO_PF | 15)
+#define PC5_PF_I2C2_DATA (GPIO_PORTC | GPIO_OUT | GPIO_PF | 5)
+#define PC6_PF_I2C2_CLK (GPIO_PORTC | GPIO_OUT | GPIO_PF | 6)
#define PC7_PF_USBOTG_DATA5 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 7)
#define PC8_PF_USBOTG_DATA6 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 8)
#define PC9_PF_USBOTG_DATA0 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 9)