summaryrefslogtreecommitdiff
path: root/recipes-bsp/u-boot/files
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2012-06-03 23:52:07 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2012-06-03 23:52:07 +0200
commit608f39d17b0ca68d92a7dd161a83641876b3065c (patch)
treebf359c6c0bc21ae6d5ab205be842255432b0ee63 /recipes-bsp/u-boot/files
parentdff3446ed548fcfcf8909ac83045dec7cf0e0e2e (diff)
u-boot base from meta instead of a copy from meta-ti
fix u-boot to no longer fail at runtime, (write beyond array)
Diffstat (limited to 'recipes-bsp/u-boot/files')
-rw-r--r--recipes-bsp/u-boot/files/board_stackcorruption_workaround.patch67
-rw-r--r--recipes-bsp/u-boot/files/bootaddr.patch12
-rw-r--r--recipes-bsp/u-boot/files/colibri_t30.patch220
-rw-r--r--recipes-bsp/u-boot/files/remove-overlay.patch11
-rw-r--r--recipes-bsp/u-boot/files/remove-unused.patch104
-rw-r--r--recipes-bsp/u-boot/files/tegra2-nand-warning.patch12
-rw-r--r--recipes-bsp/u-boot/files/u-boot-board-unused.patch62
-rw-r--r--recipes-bsp/u-boot/files/u-boot-userspacetools.patch12
-rw-r--r--recipes-bsp/u-boot/files/u-boot-warning.patch272
-rw-r--r--recipes-bsp/u-boot/files/u-boot_ap20warning.patch11
10 files changed, 783 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/files/board_stackcorruption_workaround.patch b/recipes-bsp/u-boot/files/board_stackcorruption_workaround.patch
new file mode 100644
index 0000000..c2258e9
--- /dev/null
+++ b/recipes-bsp/u-boot/files/board_stackcorruption_workaround.patch
@@ -0,0 +1,67 @@
+--- git/board/toradex/common/board.c 2012-06-02 21:16:34.000000000 +0200
++++ git/board/toradex/common/board.c 2012-06-03 19:04:03.000000000 +0200
+@@ -263,9 +271,7 @@
+ };
+
+ #ifdef BOARD_LATE_INIT
+-#ifdef CONFIG_TRDX_CFG_BLOCK_OFFSET
+-static unsigned char *config_block;
+-#endif
++static unsigned char *config_block = NULL;
+ #endif
+
+ #ifdef CONFIG_HW_WATCHDOG
+@@ -504,7 +510,8 @@
+ #ifdef BOARD_LATE_INIT
+ int board_late_init(void)
+ {
+- char env_str[64];
++ char env_str[256 ];
++
+ #ifdef CONFIG_TRDX_CFG_BLOCK_OFFSET
+ int do_saveenv = 0;
+ char *addr_str, *end;
+@@ -517,6 +524,9 @@
+ unsigned char toradex_oui[3] = { 0x00, 0x14, 0x2d };
+ int valid = 0;
+
++ unsigned int offset;
++ int ret;
++
+ /* Allocate RAM area for config block */
+ config_block = malloc(size);
+ if (!config_block) {
+@@ -525,9 +535,6 @@
+ }
+
+ for (i = 0; i < 2; i++) {
+- unsigned int offset;
+- int ret;
+-
+ if (i == 0)
+ offset = CONFIG_TRDX_CFG_BLOCK_OFFSET;
+ else
+@@ -699,6 +706,10 @@
+ unsigned short major = 0, minor = 0, release = 0;
+ size_t size = 4096;
+
++ if(config_block == NULL) {
++ return 0;
++ }
++
+ /* Parse revision information in config block */
+ for (i = 0; i < (size - 8); i++) {
+ if (config_block[i] == 0x02 && config_block[i+1] == 0x40 &&
+@@ -731,6 +742,12 @@
+ unsigned int serial = 0;
+ unsigned int serial_offset = 11;
+
++ if(config_block == NULL) {
++ serialnr->low = 0;
++ serialnr->high = 0;
++ return;
++ }
++
+ /* Get MAC address from config block */
+ memcpy(&serial, config_block + serial_offset, 3);
+ serial = ntohl(serial);
diff --git a/recipes-bsp/u-boot/files/bootaddr.patch b/recipes-bsp/u-boot/files/bootaddr.patch
new file mode 100644
index 0000000..d452b61
--- /dev/null
+++ b/recipes-bsp/u-boot/files/bootaddr.patch
@@ -0,0 +1,12 @@
+diff -Naur git.old/include/configs/tegra3-common.h git/include/configs/tegra3-common.h
+--- git.old/include/configs/tegra3-common.h 2012-01-29 22:40:43.240684735 +0100
++++ git/include/configs/tegra3-common.h 2012-01-29 22:49:00.330204308 +0100
+@@ -323,7 +323,7 @@
+ */
+
+ /* Below should be (NV_PA_SDRAM_BASE + 0x00E08000), but ld errors out */
+-#define CONFIG_SYS_TEXT_BASE 0x80E08000
++#define CONFIG_SYS_TEXT_BASE 0x80108000
+ #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
+
+ #define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE
diff --git a/recipes-bsp/u-boot/files/colibri_t30.patch b/recipes-bsp/u-boot/files/colibri_t30.patch
new file mode 100644
index 0000000..485a28f
--- /dev/null
+++ b/recipes-bsp/u-boot/files/colibri_t30.patch
@@ -0,0 +1,220 @@
+diff -Naur git/board/nvidia/cardhu/pinmux-config-common.h git.old/board/nvidia/cardhu/pinmux-config-common.h
+--- git/board/nvidia/cardhu/pinmux-config-common.h 2012-01-28 12:16:26.000000000 +0100
++++ git.old/board/nvidia/cardhu/pinmux-config-common.h 2012-01-28 18:56:06.939970059 +0100
+@@ -174,20 +174,21 @@
+ DEFAULT_PINMUX(LCD_DC1, DISPLAYA, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(CRT_HSYNC, CRT, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(CRT_VSYNC, CRT, NORMAL, NORMAL, OUTPUT),
+- LV_PINMUX(VI_D0, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D1, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D2, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D3, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D0, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D1, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D2, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D3, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+ LV_PINMUX(VI_D4, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D5, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D7, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D10, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_MCLK, VI, UP, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D5, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D7, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D10, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ /* Enable MIC_GND, Pulldown, so this is switched off by default*/
++ LV_PINMUX(VI_MCLK, RSVD1, DOWN, NORMAL, INPUT, DISABLE, DISABLE),
+ DEFAULT_PINMUX(UART2_RXD, IRDA, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(UART2_TXD, IRDA, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(UART2_RTS_N, UARTB, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(UART2_CTS_N, UARTB, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(UART3_TXD, UARTC, NORMAL, NORMAL, OUTPUT),
++ DEFAULT_PINMUX(UART3_TXD, UARTC, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(UART3_RXD, UARTC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(UART3_CTS_N, UARTC, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(UART3_RTS_N, UARTC, NORMAL, NORMAL, OUTPUT),
+@@ -205,13 +206,13 @@
+ DEFAULT_PINMUX(CLK3_OUT, EXTPERIPH3, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(CLK3_REQ, DEV3, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(GMI_WP_N, GMI, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_CS2_N, RSVD1, UP, NORMAL, INPUT), /* EN_VDD_BL1 */
++ DEFAULT_PINMUX(GMI_CS2_N, NAND, UP, NORMAL, INPUT), /* EN_VDD_BL1 */
+ DEFAULT_PINMUX(GMI_AD8, PWM0, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_PWM */
+- DEFAULT_PINMUX(GMI_AD10, NAND, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_EN */
+- DEFAULT_PINMUX(GMI_A16, SPI4, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_A17, SPI4, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_A18, SPI4, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_A19, SPI4, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD10, PWM2, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_EN */
++ DEFAULT_PINMUX(GMI_A16, UARTD, NORMAL, NORMAL, OUTPUT),
++ DEFAULT_PINMUX(GMI_A17, UARTD, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_A18, UARTD, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_A19, UARTD, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(CAM_MCLK, VI_ALT2, UP, NORMAL, INPUT),
+ DEFAULT_PINMUX(GPIO_PCC1, RSVD1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(GPIO_PBB0, RSVD1, NORMAL, NORMAL, INPUT),
+@@ -256,13 +257,9 @@
+ DEFAULT_PINMUX(DAP1_DIN, I2S0, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(DAP1_DOUT, I2S0, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(DAP1_SCLK, I2S0, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(CLK1_REQ, DAP, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(CLK1_OUT, EXTPERIPH1, NORMAL, NORMAL, INPUT),
+-#ifdef CONFIG_SND_HDA_CODEC_REALTEK
+- DEFAULT_PINMUX(SPDIF_IN, DAP2, DOWN, NORMAL, INPUT),
+-#else
++ DEFAULT_PINMUX(CLK1_REQ, DAP, UP, NORMAL, INPUT),
++ DEFAULT_PINMUX(CLK1_OUT, EXTPERIPH1, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(SPDIF_IN, SPDIF, NORMAL, NORMAL, INPUT),
+-#endif
+ DEFAULT_PINMUX(SPDIF_OUT, SPDIF, NORMAL, NORMAL, OUTPUT),
+ #ifdef CONFIG_SND_HDA_CODEC_REALTEK
+ DEFAULT_PINMUX(DAP2_FS, HDA, DOWN, NORMAL, INPUT),
+@@ -280,9 +277,13 @@
+ DEFAULT_PINMUX(SPI1_SCK, SPI1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SPI1_CS0_N, SPI1, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SPI1_MISO, SPI1, NORMAL, NORMAL, INPUT),
+- DEFAULT_PINMUX(PEX_L0_PRSNT_N, PCIE, NORMAL, NORMAL, INPUT),
++ /* ASIX RESET in */
++ DEFAULT_PINMUX(PEX_L0_PRSNT_N, PCIE, UP, NORMAL, INPUT),
++ /* ASIX wakeup */
+ DEFAULT_PINMUX(PEX_L0_RST_N, PCIE, NORMAL, NORMAL, OUTPUT),
+- DEFAULT_PINMUX(PEX_L0_CLKREQ_N, PCIE, NORMAL, NORMAL, INPUT),
++ /* ASIX VBUS in */
++ DEFAULT_PINMUX(PEX_L0_CLKREQ_N, PCIE, UP, NORMAL, INPUT),
++ /* ASIX PME in */
+ DEFAULT_PINMUX(PEX_WAKE_N, PCIE, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(PEX_L1_PRSNT_N, PCIE, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(PEX_L1_RST_N, PCIE, NORMAL, NORMAL, OUTPUT),
+@@ -294,10 +295,9 @@
+ DEFAULT_PINMUX(HDMI_INT, RSVD0, NORMAL, TRISTATE, INPUT),
+
+ /* Gpios */
+- /* SDMMC1 CD gpio */
+- DEFAULT_PINMUX(GMI_IORDY, RSVD1, UP, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_IORDY, NAND, UP, NORMAL, INPUT),
+ /* SDMMC1 WP gpio */
+- LV_PINMUX(VI_D11, RSVD1, UP, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D11, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+
+ /* Touch RESET */
+ DEFAULT_PINMUX(GMI_AD14, NAND, NORMAL, NORMAL, OUTPUT),
+@@ -310,11 +310,11 @@
+ DEFAULT_PINMUX(SDMMC3_DAT4, SDMMC3, UP, NORMAL, INPUT),
+
+ LV_PINMUX(VI_D6, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D8, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_D9, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_PCLK, RSVD1, UP, TRISTATE, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_HSYNC, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+- LV_PINMUX(VI_VSYNC, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D8, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_D9, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_PCLK, VI, UP, TRISTATE, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_HSYNC, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
++ LV_PINMUX(VI_VSYNC, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+ };
+
+ #if 0 // jz
+@@ -358,21 +358,21 @@
+
+ static struct pingroup_config unused_pins_lowpower[] = {
+ DEFAULT_PINMUX(GMI_CS0_N, NAND, UP, TRISTATE, OUTPUT),
+- DEFAULT_PINMUX(GMI_CS3_N, NAND, UP, TRISTATE, OUTPUT),
+- DEFAULT_PINMUX(GMI_CS4_N, NAND, UP, TRISTATE, OUTPUT),
++ DEFAULT_PINMUX(GMI_CS3_N, NAND, NORMAL, NORMAL, OUTPUT),
++ DEFAULT_PINMUX(GMI_CS4_N, NAND, NORMAL, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(GMI_CS7_N, NAND, UP, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_AD0, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD1, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD2, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD3, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD4, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD5, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD6, NAND, NORMAL, TRISTATE, INPUT),
+- DEFAULT_PINMUX(GMI_AD7, NAND, NORMAL, TRISTATE, INPUT),
++ DEFAULT_PINMUX(GMI_AD0, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD1, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD2, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD3, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD4, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD5, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD6, NAND, NORMAL, NORMAL, INPUT),
++ DEFAULT_PINMUX(GMI_AD7, NAND, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(GMI_AD9, PWM1, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(GMI_AD11, NAND, NORMAL, TRISTATE, OUTPUT),
+ DEFAULT_PINMUX(GMI_AD13, NAND, UP, NORMAL, INPUT),
+- DEFAULT_PINMUX(GMI_WR_N, NAND, NORMAL, TRISTATE, OUTPUT),
++ DEFAULT_PINMUX(GMI_WR_N, NAND, NORMAL, NORMAL, OUTPUT),
+ };
+
+ #endif /* PINMUX_CONFIG_COMMON_H */
+diff -Naur git/board/nvidia/cardhu/tegra3-cardhu.dts git.old/board/nvidia/cardhu/tegra3-cardhu.dts
+--- git/board/nvidia/cardhu/tegra3-cardhu.dts 2012-01-28 12:16:26.000000000 +0100
++++ git.old/board/nvidia/cardhu/tegra3-cardhu.dts 2012-01-28 16:52:31.660622281 +0100
+@@ -14,12 +14,17 @@
+ };
+
+ aliases {
++ /* UART A = UART1 */
+ console = "/serial@70006000";
+ usb0 = "/usb@0x7d008000";
+ usb1 = "/usb@0x7d000000";
+
++ /* SDMMC-4 */
+ sdmmc0 = "/sdhci@78000600";
+- sdmmc1 = "/sdhci@78000000";
++ /* SDMMC-1 */
++ /* sdmmc1 = "/sdhci@78000000";*/
++ /* SDMMC-2 */
++ sdmmc1 = "/sdhci@78000200";
+ };
+
+ chosen {
+@@ -40,19 +45,19 @@
+ clock-frequency = <408000000>;
+ };
+
+- sdhci@78000000 {
++ sdhci@78000200 {
+ status = "ok";
+ width = <4>; /* width of SDIO port */
+ removable = <1>;
+ /* Parameter 3 bit 0:1=output, 0=input; bit 1:1=high, 0=low */
+- cd-gpio = <&gpio 69 0>; /* card detect, gpio PI5 */
+- wp-gpio = <&gpio 155 0>; /* write protect, gpio PT3 */
+- power-gpio = <&gpio 31 3>; /* power enable, gpio PD7 */
++ /* cd-gpio = <&gpio 69 0>; *//* card detect, gpio PI5 */
++ /*wp-gpio = <&gpio 155 0>; *//* write protect, gpio PT3 */
++ /*power-gpio = <&gpio 31 3>;*/ /* power enable, gpio PD7 */
+ };
+
+ sdhci@78000600 {
+ status = "ok";
+- width = <4>; /* width of SDIO port */
++ width = <8>; /* width of SDIO port */
+ removable = <0>;
+ };
+
+@@ -61,7 +66,7 @@
+ width = <1366>;
+ height = <768>;
+ bits_per_pixel = <16>;
+- pwfm = <&pwfm0>;
++ /*pwfm = <&pwfm0>;*/
+ display = <&display1>;
+ frame-buffer = <0x1C022000>;
+
+@@ -72,10 +77,10 @@
+ vert_timing = <12 5 20 25>;
+
+ /* Parameter 3 bit 0:1=output, 0=input; bit 1:1=high, 0=low */
+- gpios = <&gpio 56 3>, /* PH0, LCD1_BL_PWM */
+- <&gpio 58 3>, /* PH2, LCD1_BL_EN */
+- <&gpio 90 3>, /* PL2, LVDS1_SHTDN */
+- <&gpio 92 3>; /* PL4, EN_VDD_PNL1 */
++ /*gpios = <&gpio 56 3>,*/ /* PH0, LCD1_BL_PWM */
++ /*<&gpio 58 3>,*/ /* PH2, LCD1_BL_EN */
++ /*<&gpio 90 3>,*/ /* PL2, LVDS1_SHTDN */
++ /*<&gpio 92 3>;*/ /* PL4, EN_VDD_PNL1 */
+ };
+
+ usb@0x7d000000 {
diff --git a/recipes-bsp/u-boot/files/remove-overlay.patch b/recipes-bsp/u-boot/files/remove-overlay.patch
new file mode 100644
index 0000000..dfd9ba3
--- /dev/null
+++ b/recipes-bsp/u-boot/files/remove-overlay.patch
@@ -0,0 +1,11 @@
+--- git/arch/arm/cpu/armv7/u-boot.lds 2012-06-02 21:16:34.000000000 +0200
++++ x
+@@ -68,7 +68,7 @@
+
+ _end = .;
+
+- .bss __rel_dyn_start (OVERLAY) : {
++ .bss __rel_dyn_start : {
+ __bss_start = .;
+ *(.bss)
+ . = ALIGN(4);
diff --git a/recipes-bsp/u-boot/files/remove-unused.patch b/recipes-bsp/u-boot/files/remove-unused.patch
new file mode 100644
index 0000000..92e933f
--- /dev/null
+++ b/recipes-bsp/u-boot/files/remove-unused.patch
@@ -0,0 +1,104 @@
+diff -urNdb u-boot/arch/arm/cpu/armv7/tegra-common/board.c u-boot.new/arch/arm/cpu/armv7/tegra-common/board.c
+--- u-boot/arch/arm/cpu/armv7/tegra-common/board.c 2011-12-15 17:28:52.000000000 +0100
++++ u-boot.new/arch/arm/cpu/armv7/tegra-common/board.c 2011-12-20 15:05:10.603876354 +0100
+@@ -41,6 +41,7 @@
+ u32 reg;
+
+ reg = readl(&pmc->pmc_scratch20);
++ (void) reg;
+ debug("pmc->pmc_scratch20 (ODMData) = 0x%08X\n", reg);
+
+ //Colibri T20 does not use OdmData
+diff -urNdb u-boot/common/cmd_mtdparts.c u-boot.new/common/cmd_mtdparts.c
+--- u-boot/common/cmd_mtdparts.c 2011-12-06 17:10:16.000000000 +0100
++++ u-boot.new/common/cmd_mtdparts.c 2011-12-20 15:12:07.454221888 +0100
+@@ -871,9 +871,12 @@
+ debug("dev type = %d (%s), dev num = %d, mtd-id = %s\n",
+ id->type, MTD_DEV_TYPE(id->type),
+ id->num, id->mtd_id);
++#ifdef DEBUG
+ pend = strchr(p, ';');
+ debug("parsing partitions %.*s\n", (pend ? pend - p : strlen(p)), p);
+-
++#else
++ (void)pend;
++#endif
+
+ /* parse partitions */
+ num_parts = 0;
+diff -urNdb u-boot/common/cmd_ubi.c u-boot.new/common/cmd_ubi.c
+--- u-boot/common/cmd_ubi.c 2011-12-06 17:10:16.000000000 +0100
++++ u-boot.new/common/cmd_ubi.c 2011-12-20 15:14:57.464387590 +0100
+@@ -316,7 +316,6 @@
+ static int ubi_volume_read(char *volume, char *buf, size_t size)
+ {
+ int err, lnum, off, len, tbuf_size;
+- size_t count_save = size;
+ void *tbuf;
+ unsigned long long tmp;
+ struct ubi_volume *vol;
+@@ -347,7 +346,7 @@
+ if (vol->corrupted)
+ printf("read from corrupted volume %d", vol->vol_id);
+ if (offp + size > vol->used_bytes)
+- count_save = size = vol->used_bytes - offp;
++ size = vol->used_bytes - offp;
+
+ tbuf_size = vol->usable_leb_size;
+ if (size < tbuf_size)
+diff -urNdb u-boot/drivers/mtd/ubi/vmt.c u-boot.new/drivers/mtd/ubi/vmt.c
+--- u-boot/drivers/mtd/ubi/vmt.c 2011-12-06 17:10:16.000000000 +0100
++++ u-boot.new/drivers/mtd/ubi/vmt.c 2011-12-20 15:16:48.334522354 +0100
+@@ -684,6 +684,7 @@
+
+ ubi->volumes[vol->vol_id] = NULL;
+ err = ubi_destroy_gluebi(vol);
++ (void) err;
+ cdev_del(&vol->cdev);
+ volume_sysfs_close(vol);
+ }
+diff -urNdb u-boot/drivers/usb/eth/asix.c u-boot.new/drivers/usb/eth/asix.c
+--- u-boot/drivers/usb/eth/asix.c 2011-12-15 17:28:52.000000000 +0100
++++ u-boot.new/drivers/usb/eth/asix.c 2011-12-20 15:22:59.254665754 +0100
+@@ -364,6 +364,8 @@
+
+ rx_ctl = asix_read_rx_ctl(dev);
+ debug("RX_CTL is 0x%04x after software reset\n", rx_ctl);
++ (void)rx_ctl;
++
+ if (asix_write_rx_ctl(dev, 0x0000) < 0)
+ goto out_err;
+
+diff -urNdb u-boot/fs/jffs2/jffs2_1pass.c u-boot.new/fs/jffs2/jffs2_1pass.c
+--- u-boot/fs/jffs2/jffs2_1pass.c 2011-12-06 17:10:01.000000000 +0100
++++ u-boot.new/fs/jffs2/jffs2_1pass.c 2011-12-20 15:40:45.114614263 +0100
+@@ -813,6 +813,7 @@
+ #if 0
+ putLabeledWord("read_inode: returning = ", totalSize);
+ #endif
++ (void) ret;
+ return totalSize;
+ }
+
+@@ -1575,9 +1576,8 @@
+
+ if (*(uint32_t *)(&buf[ofs-buf_ofs]) == 0xffffffff) {
+ uint32_t inbuf_ofs;
+- uint32_t empty_start, scan_end;
++ uint32_t scan_end;
+
+- empty_start = ofs;
+ ofs += 4;
+ scan_end = min_t(uint32_t, EMPTY_SCAN_SIZE(
+ part->sector_size)/8,
+diff -urNdb u-boot/lib/lzo/lzo1x_decompress.c u-boot.new/lib/lzo/lzo1x_decompress.c
+--- u-boot/lib/lzo/lzo1x_decompress.c 2011-12-06 17:10:00.000000000 +0100
++++ u-boot.new/lib/lzo/lzo1x_decompress.c 2011-12-20 15:42:36.064554125 +0100
+@@ -48,6 +48,7 @@
+ src += 7;
+ if (version >= 0x0940)
+ level = *src++;
++ (void) level;
+ if (get_unaligned_be32(src) & HEADER_HAS_FILTER)
+ src += 4; /* filter info */
+
diff --git a/recipes-bsp/u-boot/files/tegra2-nand-warning.patch b/recipes-bsp/u-boot/files/tegra2-nand-warning.patch
new file mode 100644
index 0000000..ad039ca
--- /dev/null
+++ b/recipes-bsp/u-boot/files/tegra2-nand-warning.patch
@@ -0,0 +1,12 @@
+--- /home/tegradev/oe/output/work/colibri-t20-angstrom-linux-gnueabi/u-boot-git-r80/git/board/toradex/common/tegra2_nand.c~ 2012-01-17 11:09:37.000000000 +0100
++++ /home/tegradev/oe/output/work/colibri-t20-angstrom-linux-gnueabi/u-boot-git-r80/git/board/toradex/common/tegra2_nand.c 2012-01-18 20:06:36.439745214 +0100
+@@ -954,7 +954,8 @@
+ tmp_id = nand_read_byte(&tmp_mtd);
+ tmp_3rd = nand_read_byte(&tmp_mtd);
+ tmp_4th = nand_read_byte(&tmp_mtd);
+-
++ (void)tmp_3rd;
++
+ sprintf(compat, "%02X,%02X,%02X", tmp_manf, tmp_id, tmp_4th);
+ node = fdt_node_offset_by_compatible(gd->blob, 0, compat);
+ if (node < 0) {
diff --git a/recipes-bsp/u-boot/files/u-boot-board-unused.patch b/recipes-bsp/u-boot/files/u-boot-board-unused.patch
new file mode 100644
index 0000000..98a33a9
--- /dev/null
+++ b/recipes-bsp/u-boot/files/u-boot-board-unused.patch
@@ -0,0 +1,62 @@
+--- git/board/toradex/common/board.c 2012-06-02 21:16:34.000000000 +0200
++++ git/board/toradex/common/board.c 2012-06-02 22:27:51.000000000 +0200
+@@ -146,14 +146,21 @@
+ #error "tegra: We need CONFIG_TEGRA_PMU to support CONFIG_TEGRA_CLOCK_SCALING"
+ #endif
+
++#define GENERATE_FUSE_DEV_INFO 0
+ static TrdxBootDevice board_get_current_bootdev(void)
+ {
+- unsigned reg, reg1, reg2;
++ unsigned reg;
++#if GENERATE_FUSE_DEV_INFO
++ unsigned reg1 = 0;
++ unsigned reg2;
++#endif
+ unsigned strap_select;
+ unsigned skip_strap;
+ unsigned fuse_select;
++#if GENERATE_FUSE_DEV_INFO
+ unsigned fuse_device_info;
+ unsigned sdmmc_instance;
++#endif
+ TrdxBootDevice boot_device;
+
+ //get the latched strap pins, bit [26:29]
+@@ -187,15 +194,12 @@
+
+ clock_disable(PERIPH_ID_FUSE);
+ #else
+- (void)reg2;
+ #ifdef CONFIG_TEGRA3
+ //simulate a T30 fuse setting
+ reg = NvBootFuseBootDevice_Sdmmc;
+- reg1 = 0;
+ #else
+ //simulate a T20 fuse setting
+ reg = NvBootFuseBootDevice_NandFlash;
+- reg1 = 0;
+ #endif
+ #endif
+ //get the fuse 'SKIP_DEV_SEL_STRAPS', bit 3
+@@ -207,8 +211,10 @@
+ {
+ printf("Using fuses, %u\n", fuse_select);
+ //getting fuse device info and sdmmc instance, bit 7 of fuse_device info
++#if GENERATE_FUSE_DEV_INFO
+ fuse_device_info = reg1 & 0x3fff;
+ sdmmc_instance = ((reg1 & 0x80)==0x80) ? 2 : 3;
++#endif
+ switch(fuse_select)
+ {
+ case NvBootFuseBootDevice_Sdmmc:
+@@ -225,7 +231,9 @@
+ else
+ {
+ /* printf("Using straps, %u\n", strap_select);*/
++#if GENERATE_FUSE_DEV_INFO
+ sdmmc_instance = 3;
++#endif
+ switch(strap_select)
+ {
+ case NvStrapDevSel_Emmc_Primary_x4:
diff --git a/recipes-bsp/u-boot/files/u-boot-userspacetools.patch b/recipes-bsp/u-boot/files/u-boot-userspacetools.patch
new file mode 100644
index 0000000..6e7a3e9
--- /dev/null
+++ b/recipes-bsp/u-boot/files/u-boot-userspacetools.patch
@@ -0,0 +1,12 @@
+diff -urNdb u-boot-git.old//tools/env/Makefile u-boot-git//tools/env/Makefile
+--- u-boot-git.old//tools/env/Makefile 2011-11-19 18:17:17.000000000 +0100
++++ u-boot-git//tools/env/Makefile 2011-11-19 18:15:22.000000000 +0100
+@@ -28,6 +28,8 @@
+
+ CPPFLAGS := -Wall -DUSE_HOSTCC -I$(SRCTREE)/include
+
++CPPFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=soft -mthumb-interwork -mno-thumb
++
+ ifeq ($(MTD_VERSION),old)
+ CPPFLAGS += -DMTD_OLD
+ endif
diff --git a/recipes-bsp/u-boot/files/u-boot-warning.patch b/recipes-bsp/u-boot/files/u-boot-warning.patch
new file mode 100644
index 0000000..2552464
--- /dev/null
+++ b/recipes-bsp/u-boot/files/u-boot-warning.patch
@@ -0,0 +1,272 @@
+#--- git/include/common.h~ 2012-05-31 21:57:20.000000000 +0200
+#+++ git/include/common.h 2012-05-31 21:57:43.000000000 +0200
+@@ -1,3 +1,6 @@
++#pragma GCC diagnostic warning "-Wunused-but-set-variable"
++#pragma GCC diagnostic warning "-Wmaybe-uninitialized"
++#pragma GCC diagnostic warning "-Wstrict-aliasing"
+ /*
+ * (C) Copyright 2000-2009
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/board/toradex/common/tegra2_nand.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/board/toradex/common/tegra2_nand.c
+--- git/board/toradex/common/tegra2_nand.c 2012-06-01 00:56:03.000000000 +0200
++++ git/board/toradex/common/tegra2_nand.c 2012-06-01 01:03:43.000000000 +0200
+@@ -919,7 +919,7 @@
+ struct nand_info *info = &nand_ctrl;
+ struct fdt_nand *config = &info->config;
+ struct mtd_info tmp_mtd;
+- int tmp_manf, tmp_id, tmp_3rd, tmp_4th;
++ int tmp_manf, tmp_id, /*tmp_3rd,*/ tmp_4th;
+ char compat[8];
+ int node;
+
+@@ -952,7 +952,8 @@
+ /* Read manufacturer and device IDs */
+ tmp_manf = nand_read_byte(&tmp_mtd);
+ tmp_id = nand_read_byte(&tmp_mtd);
+- tmp_3rd = nand_read_byte(&tmp_mtd);
++ /*tmp_3rd = nand_read_byte(&tmp_mtd);
++ (void) tmp_3rd;*/
+ tmp_4th = nand_read_byte(&tmp_mtd);
+
+ sprintf(compat, "%02X,%02X,%02X", tmp_manf, tmp_id, tmp_4th);
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/common/cmd_mtdparts.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/common/cmd_mtdparts.c
+--- git/common/cmd_mtdparts.c 2012-06-01 00:56:04.000000000 +0200
++++ git/common/cmd_mtdparts.c 2012-06-01 01:06:16.000000000 +0200
+@@ -838,7 +838,7 @@
+ struct mtdids *id;
+ const char *mtd_id;
+ unsigned int mtd_id_len;
+- const char *p, *pend;
++ const char *p;
+ LIST_HEAD(tmp_list);
+ struct list_head *entry, *n;
+ u16 num_parts;
+@@ -871,8 +871,7 @@
+ debug("dev type = %d (%s), dev num = %d, mtd-id = %s\n",
+ id->type, MTD_DEV_TYPE(id->type),
+ id->num, id->mtd_id);
+- pend = strchr(p, ';');
+- debug("parsing partitions %.*s\n", (pend ? pend - p : strlen(p)), p);
++ debug("parsing partitions %.*s\n", (strchr(p, ';') ? strchr(p, ';') - p : strlen(p)), p);
+
+
+ /* parse partitions */
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/common/cmd_nand.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/common/cmd_nand.c
+--- git/common/cmd_nand.c 2012-06-01 00:56:04.000000000 +0200
++++ git/common/cmd_nand.c 2012-06-01 01:08:03.000000000 +0200
+@@ -190,7 +190,7 @@
+ loff_t *off, loff_t *size)
+ {
+ int ret;
+- loff_t maxsize;
++ loff_t maxsize=0;
+
+ if (argc == 0) {
+ *off = 0;
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/common/cmd_ubi.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/common/cmd_ubi.c
+--- git/common/cmd_ubi.c 2012-06-01 00:56:04.000000000 +0200
++++ git/common/cmd_ubi.c 2012-06-01 01:09:33.000000000 +0200
+@@ -316,7 +316,6 @@
+ static int ubi_volume_read(char *volume, char *buf, size_t size)
+ {
+ int err, lnum, off, len, tbuf_size;
+- size_t count_save = size;
+ void *tbuf;
+ unsigned long long tmp;
+ struct ubi_volume *vol;
+@@ -347,7 +346,7 @@
+ if (vol->corrupted)
+ printf("read from corrupted volume %d", vol->vol_id);
+ if (offp + size > vol->used_bytes)
+- count_save = size = vol->used_bytes - offp;
++ size = vol->used_bytes - offp;
+
+ tbuf_size = vol->usable_leb_size;
+ if (size < tbuf_size)
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/common/cmd_ximg.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/common/cmd_ximg.c
+--- git/common/cmd_ximg.c 2012-06-01 00:56:04.000000000 +0200
++++ git/common/cmd_ximg.c 2012-06-01 01:15:20.000000000 +0200
+@@ -55,7 +55,7 @@
+ int verify;
+ int part = 0;
+ char pbuf[10];
+- image_header_t *hdr;
++ image_header_t *hdr = NULL;
+ #if defined(CONFIG_FIT)
+ const char *uname = NULL;
+ const void* fit_hdr;
+@@ -238,16 +238,22 @@
+ * space, use slower decompression algorithm
+ * which requires at most 2300 KB of memory.
+ */
+- i = BZ2_bzBuffToBuffDecompress(
+- (char*)ntohl(hdr->ih_load),
+- &unc_len, (char *)data, len,
+- CONFIG_SYS_MALLOC_LEN < (4096 * 1024),
+- 0);
+- if (i != BZ_OK) {
+- printf ("BUNZIP2 ERROR %d - "
+- "image not loaded\n", i);
++ if(hdr == NULL) {
++ printf ("hdr not set\n");
+ return 1;
+ }
++ else {
++ i = BZ2_bzBuffToBuffDecompress(
++ (char*)ntohl(hdr->ih_load),
++ &unc_len, (char *)data, len,
++ CONFIG_SYS_MALLOC_LEN < (4096 * 1024),
++ 0);
++ if (i != BZ_OK) {
++ printf ("BUNZIP2 ERROR %d - "
++ "image not loaded\n", i);
++ return 1;
++ }
++ }
+ }
+ break;
+ #endif /* CONFIG_BZIP2 */
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/drivers/mtd/ubi/vmt.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/drivers/mtd/ubi/vmt.c
+--- git/drivers/mtd/ubi/vmt.c 2012-06-01 00:56:04.000000000 +0200
++++ git/drivers/mtd/ubi/vmt.c 2012-06-01 01:17:21.000000000 +0200
+@@ -678,12 +678,10 @@
+ */
+ void ubi_free_volume(struct ubi_device *ubi, struct ubi_volume *vol)
+ {
+- int err;
+-
+ dbg_msg("free volume %d", vol->vol_id);
+
+ ubi->volumes[vol->vol_id] = NULL;
+- err = ubi_destroy_gluebi(vol);
++ (void)ubi_destroy_gluebi(vol);
+ cdev_del(&vol->cdev);
+ volume_sysfs_close(vol);
+ }
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/drivers/usb/eth/asix.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/drivers/usb/eth/asix.c
+--- git/drivers/usb/eth/asix.c 2012-06-01 00:56:04.000000000 +0200
++++ git/drivers/usb/eth/asix.c 2012-06-01 01:22:07.000000000 +0200
+@@ -326,7 +326,6 @@
+ {
+ int embd_phy;
+ unsigned char buf[ETH_ALEN];
+- u16 rx_ctl;
+ struct ueth_data *dev = (struct ueth_data *)eth->priv;
+ int timeout = 0;
+ char *addr_str, *end;
+@@ -363,13 +362,11 @@
+ goto out_err;
+ }
+
+- rx_ctl = asix_read_rx_ctl(dev);
+- debug("RX_CTL is 0x%04x after software reset\n", rx_ctl);
++ (void) asix_read_rx_ctl(dev);
+ if (asix_write_rx_ctl(dev, 0x0000) < 0)
+ goto out_err;
+
+- rx_ctl = asix_read_rx_ctl(dev);
+- debug("RX_CTL is 0x%04x setting to 0x0000\n", rx_ctl);
++ (void) asix_read_rx_ctl(dev);
+
+ if ((dev->pusb_dev->descriptor.idVendor == 0x0b95) && (dev->pusb_dev->descriptor.idProduct == 0x772b)) {
+ #define AX_CMD_READ_EEPROM 0x0B
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/fs/jffs2/jffs2_1pass.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/fs/jffs2/jffs2_1pass.c
+--- git/fs/jffs2/jffs2_1pass.c 2012-06-01 00:56:04.000000000 +0200
++++ git/fs/jffs2/jffs2_1pass.c 2012-06-01 01:26:48.000000000 +0200
+@@ -696,7 +696,6 @@
+ u32 latestVersion = 0;
+ uchar *lDest;
+ uchar *src;
+- long ret;
+ int i;
+ u32 counter = 0;
+ #ifdef CONFIG_SYS_JFFS2_SORT_FRAGMENTS
+@@ -768,28 +767,23 @@
+ #endif
+ switch (jNode->compr) {
+ case JFFS2_COMPR_NONE:
+- ret = (unsigned long) ldr_memcpy(lDest, src, jNode->dsize);
++ (void) ldr_memcpy(lDest, src, jNode->dsize);
+ break;
+ case JFFS2_COMPR_ZERO:
+- ret = 0;
+ for (i = 0; i < jNode->dsize; i++)
+ *(lDest++) = 0;
+ break;
+ case JFFS2_COMPR_RTIME:
+- ret = 0;
+ rtime_decompress(src, lDest, jNode->csize, jNode->dsize);
+ break;
+ case JFFS2_COMPR_DYNRUBIN:
+ /* this is slow but it works */
+- ret = 0;
+ dynrubin_decompress(src, lDest, jNode->csize, jNode->dsize);
+ break;
+ case JFFS2_COMPR_ZLIB:
+- ret = zlib_decompress(src, lDest, jNode->csize, jNode->dsize);
+ break;
+ #if defined(CONFIG_JFFS2_LZO)
+ case JFFS2_COMPR_LZO:
+- ret = lzo_decompress(src, lDest, jNode->csize, jNode->dsize);
+ break;
+ #endif
+ default:
+@@ -1575,9 +1569,8 @@
+
+ if (*(uint32_t *)(&buf[ofs-buf_ofs]) == 0xffffffff) {
+ uint32_t inbuf_ofs;
+- uint32_t empty_start, scan_end;
++ uint32_t scan_end;
+
+- empty_start = ofs;
+ ofs += 4;
+ scan_end = min_t(uint32_t, EMPTY_SCAN_SIZE(
+ part->sector_size)/8,
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/include/u-boot/md5.h u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/include/u-boot/md5.h
+--- git/include/u-boot/md5.h 2012-06-01 00:56:04.000000000 +0200
++++ git/include/u-boot/md5.h 2012-06-01 01:44:25.000000000 +0200
+@@ -11,7 +11,10 @@
+ struct MD5Context {
+ __u32 buf[4];
+ __u32 bits[2];
+- unsigned char in[64];
++ union {
++ unsigned char in[64];
++ __u32 in32[16];
++ };
+ };
+
+ /*
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/lib/lzo/lzo1x_decompress.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/lib/lzo/lzo1x_decompress.c
+--- git/lib/lzo/lzo1x_decompress.c 2012-06-01 00:56:04.000000000 +0200
++++ git/lib/lzo/lzo1x_decompress.c 2012-06-01 01:31:29.000000000 +0200
+@@ -32,7 +32,6 @@
+
+ static inline const unsigned char *parse_header(const unsigned char *src)
+ {
+- u8 level = 0;
+ u16 version;
+ int i;
+
+@@ -47,7 +46,6 @@
+ version = get_unaligned_be16(src);
+ src += 7;
+ if (version >= 0x0940)
+- level = *src++;
+ if (get_unaligned_be32(src) & HEADER_HAS_FILTER)
+ src += 4; /* filter info */
+
+diff -Naur u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0.orig/git/lib/md5.c u-boot-r0+gitra86e39a5abbe0a14106bc7ae828fb48a10396a91-r0/git/lib/md5.c
+--- git/lib/md5.c 2012-06-01 00:56:04.000000000 +0200
++++ git/lib/md5.c 2012-06-01 01:42:05.000000000 +0200
+@@ -153,8 +153,8 @@
+ byteReverse(ctx->in, 14);
+
+ /* Append length in bits and transform */
+- ((__u32 *) ctx->in)[14] = ctx->bits[0];
+- ((__u32 *) ctx->in)[15] = ctx->bits[1];
++ ctx->in32[14] = ctx->bits[0];
++ ctx->in32[15] = ctx->bits[1];
+
+ MD5Transform(ctx->buf, (__u32 *) ctx->in);
+ byteReverse((unsigned char *) ctx->buf, 4);
diff --git a/recipes-bsp/u-boot/files/u-boot_ap20warning.patch b/recipes-bsp/u-boot/files/u-boot_ap20warning.patch
new file mode 100644
index 0000000..d99fc12
--- /dev/null
+++ b/recipes-bsp/u-boot/files/u-boot_ap20warning.patch
@@ -0,0 +1,11 @@
+--- git/arch/arm/cpu/armv7/tegra3/ap20.c 2012-01-28 12:16:25.000000000 +0100
++++ git/arch/arm/cpu/armv7/tegra3/ap20.c~ 2012-01-28 12:42:44.640356495 +0100
+@@ -72,6 +72,8 @@
+ return id == (PG_UP_TAG_0_PID_CPU & 0xff);
+ }
+
++//u-boot treats all errors as warnings, &clkrst->crc_pll[CLOCK_ID_XCPU] uses a subscript out of range
++#pragma GCC diagnostic warning "-Warray-bounds"
+ static int pllx_set_rate(u32 divn, u32 divm, u32 divp, u32 cpcon)
+ {
+ struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;