diff -ruN u-boot-1.3.2-olimex/board/lpc_2478_stk/lowlevel_init.c u-boot-1.3.2-olimex-patchad/board/lpc_2478_stk/lowlevel_init.c --- u-boot-1.3.2-olimex/board/lpc_2478_stk/lowlevel_init.c 2008-10-07 04:07:17.000000000 +0200 +++ u-boot-1.3.2-olimex-patchad/board/lpc_2478_stk/lowlevel_init.c 2009-10-13 16:07:40.000000000 +0200 @@ -518,19 +518,19 @@ /* move vectors to beginning of SRAM */ asm volatile(" mov r2, #0x40000000 \n" " mov r0, #0x00000000 \n" - " ldmneia r0!, {r3-r10} \n" - " stmneia r2!, {r3-r10} \n" - " ldmneia r0, {r3-r9} \n" - " stmneia r2, {r3-r9} \n" : : : + " ldmia r0!, {r3-r10} \n" + " stmia r2!, {r3-r10} \n" + " ldmia r0, {r3-r9} \n" + " stmia r2, {r3-r9} \n" : : : "r0","r2","r3","r4","r5","r6","r7","r8","r9","r10"); #else /* move vectors to beginning of SRAM */ asm volatile(" mov r2, #0x40000000 \n" " mov r0, #0xa0000000 \n" - " ldmneia r0!, {r3-r10} \n" - " stmneia r2!, {r3-r10} \n" - " ldmneia r0, {r3-r9} \n" - " stmneia r2, {r3-r9} \n" : : : + " ldmia r0!, {r3-r10} \n" + " stmia r2!, {r3-r10} \n" + " ldmia r0, {r3-r9} \n" + " stmia r2, {r3-r9} \n" : : : "r0", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10"); #endif diff -ruN u-boot-1.3.2-olimex/board/lpc_2478_stk/mmc.c u-boot-1.3.2-olimex-patchad/board/lpc_2478_stk/mmc.c --- u-boot-1.3.2-olimex/board/lpc_2478_stk/mmc.c 2008-03-08 23:16:47.000000000 +0100 +++ u-boot-1.3.2-olimex-patchad/board/lpc_2478_stk/mmc.c 2009-11-06 16:45:23.000000000 +0100 @@ -66,7 +66,10 @@ MCI_RXDisable(); dest_addr = (unsigned long *)DMA_DST; -for ( j = 0; j < hw_sect_size; j+=4 ) +/* for ( j = 0; j < hw_sect_size; j+=4 ) */ +/* BLOCK_LENGTH instead of hw_sect_size to enable SD cards sized >= 1GiB */ +/* See http://forum.sparkfun.com/viewtopic.php?t=12459&sid=076950c6527823be8cdfc6bc3a578c8a */ +for ( j = 0; j < BLOCK_LENGTH; j+=4 ) { *p32++ = *dest_addr; //printf("\noffset[%x] = %x", j, *dest_addr);