uboot-omap: update to 2015.10
authorJohn Crispin <john@openwrt.org>
Thu, 17 Dec 2015 09:29:42 +0000 (09:29 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 17 Dec 2015 09:29:42 +0000 (09:29 +0000)
- tested on Beagleboard C4

- remove upstream patches

- disable THUMB mode on OMAP3 this increases binary size
  (remove CONFIG_SYS_THUMB_BUILD)
- reduce SPL size by disabling EXT feature
  (remove CONFIG_SPL_EXT_SUPPORT)

this fixes 2015.07 and 2015.10-rc3
Beagleboard C4 booting
which were broken by upstream commit
with id: bd2c4522c26d535515aebca52d27c004a7e0c05c

Arm THUMB mode is broken because of an yet unknown errata
see: http://lists.denx.de/pipermail/u-boot/2015-August/225793.html

- backport upstream fix that was introduced in 2015.10-rc5
  and was not fixed in 2015.10 final

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>
SVN-Revision: 47924

12 files changed:
package/boot/uboot-omap/Makefile
package/boot/uboot-omap/patches/001-backport_upstream_image_c_fix_non_android_booting.patch [new file with mode: 0644]
package/boot/uboot-omap/patches/001-switch_omap4_ext4.patch [deleted file]
package/boot/uboot-omap/patches/002-fix_jffs2.patch [deleted file]
package/boot/uboot-omap/patches/003-fix_findfdt_C4.patch [deleted file]
package/boot/uboot-omap/patches/100-disable_thumb_unknown_errata.patch [new file with mode: 0644]
package/boot/uboot-omap/patches/101-disable_ext.patch [new file with mode: 0644]
package/boot/uboot-omap/patches/400-gcc-5-compiler.patch [deleted file]
package/boot/uboot-omap/patches/410-use-static-inline.patch [deleted file]
package/boot/uboot-omap/patches/420-use-weak-in-board.patch [deleted file]
package/boot/uboot-omap/patches/430-use-weak-in-main.patch [deleted file]
package/boot/uboot-omap/patches/440-use-normal_board_usb_init.patch [deleted file]

index e21e2e1b2b080dc23eec471f1e1080ce56381c3e..5441bafba4f49d9275a09cd5ba4c80091471bca2 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=u-boot
-PKG_VERSION:=2013.10
+PKG_VERSION:=2015.10
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
@@ -16,7 +16,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
        http://mirror2.openwrt.org/sources \
        ftp://ftp.denx.de/pub/u-boot
-PKG_MD5SUM:=a076a044b64371edc52f7e562b13f6b2
+PKG_MD5SUM:=7c203b0fc3390a122d8e8b75f147eac5
 
 PKG_LICENSE:=GPL-2.0 GPL-2.0+
 PKG_LICENSE_FILES:=Licenses/README
diff --git a/package/boot/uboot-omap/patches/001-backport_upstream_image_c_fix_non_android_booting.patch b/package/boot/uboot-omap/patches/001-backport_upstream_image_c_fix_non_android_booting.patch
new file mode 100644 (file)
index 0000000..b8e65b5
--- /dev/null
@@ -0,0 +1,33 @@
+From c139b5ff0999ec3d44a02ebdb623a92e5782e53e Mon Sep 17 00:00:00 2001
+From: Tom Rini <trini@konsulko.com>
+Date: Tue, 27 Oct 2015 19:04:40 -0400
+Subject: [PATCH] image.c: Fix non-Android booting with ramdisk and/or device
+ tree
+
+In 1fec3c5 I added a check that if we had an Android image we default to
+trying the kernel address for a ramdisk.  However when we don't have an
+Android image buf is NULL and we oops here.  Ensure that we have 'buf'
+to check first.
+
+Reported-by: elipe Balbi <balbi@ti.com>
+Signed-off-by: Tom Rini <trini@konsulko.com>
+---
+ common/image.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/common/image.c b/common/image.c
+index e607109..85c4f39 100644
+--- a/common/image.c
++++ b/common/image.c
+@@ -913,7 +913,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
+        * Look for an Android boot image.
+        */
+       buf = map_sysmem(images->os.start, 0);
+-      if (genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
++      if (buf && genimg_get_format(buf) == IMAGE_FORMAT_ANDROID)
+               select = argv[0];
+ #endif
+-- 
+1.7.10.4
+
diff --git a/package/boot/uboot-omap/patches/001-switch_omap4_ext4.patch b/package/boot/uboot-omap/patches/001-switch_omap4_ext4.patch
deleted file mode 100644 (file)
index a230dfe..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/configs/omap4_common.h
-+++ b/include/configs/omap4_common.h
-@@ -143,7 +143,7 @@
-       "vram=16M\0" \
-       "mmcdev=0\0" \
-       "mmcroot=/dev/mmcblk0p2 rw\0" \
--      "mmcrootfstype=ext3 rootwait\0" \
-+      "mmcrootfstype=ext4 rootwait\0" \
-       "mmcargs=setenv bootargs console=${console} " \
-               "vram=${vram} " \
-               "root=${mmcroot} " \
diff --git a/package/boot/uboot-omap/patches/002-fix_jffs2.patch b/package/boot/uboot-omap/patches/002-fix_jffs2.patch
deleted file mode 100644 (file)
index 849c633..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Building boards that have JFFS2 support enabled will fail when using
-U-Boot's builtin GCC library, for example like this:
-
-USE_PRIVATE_LIBGCC=yes ./MAKEALL omap3_evm
-...
-fs/jffs2/libjffs2.o: In function `jffs2_1pass_build_lists':
-fs/jffs2/jffs2_1pass.c:1441: undefined reference to `__aeabi_uldivmod'
-
-This is caused by a u64 / u32 division in jffs2_1pass.c; the problem
-can be avoided by using do_div() instead of plain division.
-
-Signed-off-by: Wolfgang Denk <wd@denx.de>
-Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
-Cc: Chris Ruehl <chris.ruehl@gtsys.com.hk>
-
----
- fs/jffs2/jffs2_1pass.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/fs/jffs2/jffs2_1pass.c
-+++ b/fs/jffs2/jffs2_1pass.c
-@@ -1438,7 +1438,7 @@ jffs2_1pass_build_lists(struct part_info
- {
-       struct b_lists *pL;
-       struct jffs2_unknown_node *node;
--      u32 nr_sectors = part->size/part->sector_size;
-+      u32 nr_sectors = do_div(part->size, part->sector_size);
-       u32 i;
-       u32 counter4 = 0;
-       u32 counterF = 0;
diff --git a/package/boot/uboot-omap/patches/003-fix_findfdt_C4.patch b/package/boot/uboot-omap/patches/003-fix_findfdt_C4.patch
deleted file mode 100644 (file)
index b0b85e5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/configs/omap3_beagle.h
-+++ b/include/configs/omap3_beagle.h
-@@ -242,6 +242,8 @@
-                       "setenv fdtfile omap3-beagle.dtb; fi; " \
-               "if test $beaglerev = Cx; then " \
-                       "setenv fdtfile omap3-beagle.dtb; fi; " \
-+              "if test $beaglerev = C4; then " \
-+                      "setenv fdtfile omap3-beagle.dtb; fi; " \
-               "if test $beaglerev = xMAB; then " \
-                       "setenv fdtfile omap3-beagle-xm.dtb; fi; " \
-               "if test $beaglerev = xMC; then " \
diff --git a/package/boot/uboot-omap/patches/100-disable_thumb_unknown_errata.patch b/package/boot/uboot-omap/patches/100-disable_thumb_unknown_errata.patch
new file mode 100644 (file)
index 0000000..7b7bfa8
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/include/configs/ti_armv7_common.h
++++ b/include/configs/ti_armv7_common.h
+@@ -233,8 +233,6 @@
+ #define CONFIG_SPL_EXT_SUPPORT
+ #endif
+-#define CONFIG_SYS_THUMB_BUILD
+-
+ /* General parts of the framework, required. */
+ #define CONFIG_SPL_I2C_SUPPORT
+ #define CONFIG_SPL_LIBCOMMON_SUPPORT
diff --git a/package/boot/uboot-omap/patches/101-disable_ext.patch b/package/boot/uboot-omap/patches/101-disable_ext.patch
new file mode 100644 (file)
index 0000000..9e0e47c
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/include/configs/ti_armv7_common.h
++++ b/include/configs/ti_armv7_common.h
+@@ -230,7 +230,6 @@
+ #define CONFIG_SPL_LIBDISK_SUPPORT
+ #define CONFIG_SPL_MMC_SUPPORT
+ #define CONFIG_SPL_FAT_SUPPORT
+-#define CONFIG_SPL_EXT_SUPPORT
+ #endif
+ /* General parts of the framework, required. */
diff --git a/package/boot/uboot-omap/patches/400-gcc-5-compiler.patch b/package/boot/uboot-omap/patches/400-gcc-5-compiler.patch
deleted file mode 100644 (file)
index 8724927..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sat, 7 Feb 2015 21:52:40 +0000 (+0100)
-Subject: Add linux/compiler-gcc5.h to fix builds with gcc5
-X-Git-Tag: v2015.04-rc2~31
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=478b02f1a7043b673565075ea5016376f3293b23
-
-Add linux/compiler-gcc5.h to fix builds with gcc5
-
-Add linux/compiler-gcc5/h from the kernel sources at:
-
-commit 5631b8fba640a4ab2f8a954f63a603fa34eda96b
-Author: Steven Noonan <steven@uplinklabs.net>
-Date:   Sat Oct 25 15:09:42 2014 -0700
-
-    compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
-
---- /dev/null
-+++ b/include/linux/compiler-gcc5.h
-@@ -0,0 +1,65 @@
-+#ifndef __LINUX_COMPILER_H
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
-+#endif
-+
-+#define __used                                __attribute__((__used__))
-+#define __must_check                  __attribute__((warn_unused_result))
-+#define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
-+
-+/* Mark functions as cold. gcc will assume any path leading to a call
-+   to them will be unlikely.  This means a lot of manual unlikely()s
-+   are unnecessary now for any paths leading to the usual suspects
-+   like BUG(), printk(), panic() etc. [but let's keep them for now for
-+   older compilers]
-+
-+   Early snapshots of gcc 4.3 don't support this and we can't detect this
-+   in the preprocessor, but we can live with this because they're unreleased.
-+   Maketime probing would be overkill here.
-+
-+   gcc also has a __attribute__((__hot__)) to move hot functions into
-+   a special section, but I don't see any sense in this right now in
-+   the kernel context */
-+#define __cold                        __attribute__((__cold__))
-+
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-+
-+#ifndef __CHECKER__
-+# define __compiletime_warning(message) __attribute__((warning(message)))
-+# define __compiletime_error(message) __attribute__((error(message)))
-+#endif /* __CHECKER__ */
-+
-+/*
-+ * Mark a position in code as unreachable.  This can be used to
-+ * suppress control flow warnings after asm blocks that transfer
-+ * control elsewhere.
-+ *
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
-+ * this in the preprocessor, but we can live with this because they're
-+ * unreleased.  Really, we need to have autoconf for the kernel.
-+ */
-+#define unreachable() __builtin_unreachable()
-+
-+/* Mark a function definition as prohibited from being cloned. */
-+#define __noclone     __attribute__((__noclone__))
-+
-+/*
-+ * Tell the optimizer that something else uses this function or variable.
-+ */
-+#define __visible __attribute__((externally_visible))
-+
-+/*
-+ * GCC 'asm goto' miscompiles certain code sequences:
-+ *
-+ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
-+ *
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
-+ *
-+ * (asm goto is automatically volatile - the naming reflects this.)
-+ */
-+#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
-+
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
-+#define __HAVE_BUILTIN_BSWAP32__
-+#define __HAVE_BUILTIN_BSWAP64__
-+#define __HAVE_BUILTIN_BSWAP16__
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
diff --git a/package/boot/uboot-omap/patches/410-use-static-inline.patch b/package/boot/uboot-omap/patches/410-use-static-inline.patch
deleted file mode 100644 (file)
index e030cac..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Jeroen Hofstee <jeroen@myspectrum.nl>
-Date: Sun, 22 Jun 2014 21:10:39 +0000 (+0200)
-Subject: ARM:asm:io.h use static inline
-X-Git-Tag: v2014.10-rc2~47
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=8863aa5c984460ce1112d8db895cbf8b13a6ac9d
-
-ARM:asm:io.h use static inline
-
-When compiling u-boot with W=1 the extern inline void for
-read* is likely causing the most noise. gcc / clang will
-warn there is never a actual declaration for these functions.
-Instead of declaring these extern make them static inline so
-it is actually declared.
-
-cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
-Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
----
-
---- a/arch/arm/include/asm/io.h
-+++ b/arch/arm/include/asm/io.h
-@@ -75,42 +75,42 @@ static inline phys_addr_t virt_to_phys(v
- #define __arch_putw(v,a)              (*(volatile unsigned short *)(a) = (v))
- #define __arch_putl(v,a)              (*(volatile unsigned int *)(a) = (v))
--extern inline void __raw_writesb(unsigned int addr, const void *data, int bytelen)
-+static inline void __raw_writesb(unsigned int addr, const void *data, int bytelen)
- {
-       uint8_t *buf = (uint8_t *)data;
-       while(bytelen--)
-               __arch_putb(*buf++, addr);
- }
--extern inline void __raw_writesw(unsigned int addr, const void *data, int wordlen)
-+static inline void __raw_writesw(unsigned int addr, const void *data, int wordlen)
- {
-       uint16_t *buf = (uint16_t *)data;
-       while(wordlen--)
-               __arch_putw(*buf++, addr);
- }
--extern inline void __raw_writesl(unsigned int addr, const void *data, int longlen)
-+static inline void __raw_writesl(unsigned int addr, const void *data, int longlen)
- {
-       uint32_t *buf = (uint32_t *)data;
-       while(longlen--)
-               __arch_putl(*buf++, addr);
- }
--extern inline void __raw_readsb(unsigned int addr, void *data, int bytelen)
-+static inline void __raw_readsb(unsigned int addr, void *data, int bytelen)
- {
-       uint8_t *buf = (uint8_t *)data;
-       while(bytelen--)
-               *buf++ = __arch_getb(addr);
- }
--extern inline void __raw_readsw(unsigned int addr, void *data, int wordlen)
-+static inline void __raw_readsw(unsigned int addr, void *data, int wordlen)
- {
-       uint16_t *buf = (uint16_t *)data;
-       while(wordlen--)
-               *buf++ = __arch_getw(addr);
- }
--extern inline void __raw_readsl(unsigned int addr, void *data, int longlen)
-+static inline void __raw_readsl(unsigned int addr, void *data, int longlen)
- {
-       uint32_t *buf = (uint32_t *)data;
-       while(longlen--)
diff --git a/package/boot/uboot-omap/patches/420-use-weak-in-board.patch b/package/boot/uboot-omap/patches/420-use-weak-in-board.patch
deleted file mode 100644 (file)
index b46e616..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-From: Jeroen Hofstee <jeroen@myspectrum.nl>
-Date: Wed, 8 Oct 2014 20:57:21 +0000 (+0200)
-Subject: arm: board: use __weak
-X-Git-Tag: v2015.01-rc1~176
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=8590c800ee60e46f15d6085e3c1fed0d6881fc62
-
-arm: board: use __weak
-
-Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
-Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
----
-
---- a/arch/arm/lib/board.c
-+++ b/arch/arm/lib/board.c
-@@ -62,25 +62,15 @@ extern void dataflash_print_info(void);
-  ************************************************************************
-  * May be supplied by boards if desired
-  */
--inline void __coloured_LED_init(void) {}
--void coloured_LED_init(void)
--      __attribute__((weak, alias("__coloured_LED_init")));
--inline void __red_led_on(void) {}
--void red_led_on(void) __attribute__((weak, alias("__red_led_on")));
--inline void __red_led_off(void) {}
--void red_led_off(void) __attribute__((weak, alias("__red_led_off")));
--inline void __green_led_on(void) {}
--void green_led_on(void) __attribute__((weak, alias("__green_led_on")));
--inline void __green_led_off(void) {}
--void green_led_off(void) __attribute__((weak, alias("__green_led_off")));
--inline void __yellow_led_on(void) {}
--void yellow_led_on(void) __attribute__((weak, alias("__yellow_led_on")));
--inline void __yellow_led_off(void) {}
--void yellow_led_off(void) __attribute__((weak, alias("__yellow_led_off")));
--inline void __blue_led_on(void) {}
--void blue_led_on(void) __attribute__((weak, alias("__blue_led_on")));
--inline void __blue_led_off(void) {}
--void blue_led_off(void) __attribute__((weak, alias("__blue_led_off")));
-+__weak void coloured_LED_init(void) {}
-+__weak void red_led_on(void) {}
-+__weak void red_led_off(void) {}
-+__weak void green_led_on(void) {}
-+__weak void green_led_off(void) {}
-+__weak void yellow_led_on(void) {}
-+__weak void yellow_led_off(void) {}
-+__weak void blue_led_on(void) {}
-+__weak void blue_led_off(void) {}
- /*
-  ************************************************************************
-@@ -199,27 +189,21 @@ typedef int (init_fnc_t) (void);
- int print_cpuinfo(void);
--void __dram_init_banksize(void)
-+__weak void dram_init_banksize(void)
- {
-       gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
-       gd->bd->bi_dram[0].size =  gd->ram_size;
- }
--void dram_init_banksize(void)
--      __attribute__((weak, alias("__dram_init_banksize")));
--int __arch_cpu_init(void)
-+__weak int arch_cpu_init(void)
- {
-       return 0;
- }
--int arch_cpu_init(void)
--      __attribute__((weak, alias("__arch_cpu_init")));
--int __power_init_board(void)
-+__weak int power_init_board(void)
- {
-       return 0;
- }
--int power_init_board(void)
--      __attribute__((weak, alias("__power_init_board")));
-       /* Record the board_init_f() bootstage (after arch_cpu_init()) */
- static int mark_bootstage(void)
diff --git a/package/boot/uboot-omap/patches/430-use-weak-in-main.patch b/package/boot/uboot-omap/patches/430-use-weak-in-main.patch
deleted file mode 100644 (file)
index 07c197f..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Jeroen Hofstee <jeroen@myspectrum.nl>
-Date: Thu, 26 Jun 2014 18:18:31 +0000 (+0200)
-Subject: common: main.c: make show_boot_progress __weak
-X-Git-Tag: v2014.10-rc1~130
-X-Git-Url: http://git.denx.de/?p=u-boot.git;a=commitdiff_plain;h=3422299dc28fa8257677d03cc1253e3c9bf17e9f
-
-common: main.c: make show_boot_progress __weak
-
-This not only looks a bit better it also prevents a
-warning with W=1 (no previous prototype).
-
-Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
-Acked-by: Simon Glass <sjg@chromium.org>
----
-
---- a/common/main.c
-+++ b/common/main.c
-@@ -27,8 +27,7 @@ DECLARE_GLOBAL_DATA_PTR;
- /*
-  * Board-specific Platform code can reimplement show_boot_progress () if needed
-  */
--void inline __show_boot_progress (int val) {}
--void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
-+__weak void show_boot_progress(int val) {}
- #define MAX_DELAY_STOP_STR 32
diff --git a/package/boot/uboot-omap/patches/440-use-normal_board_usb_init.patch b/package/boot/uboot-omap/patches/440-use-normal_board_usb_init.patch
deleted file mode 100644 (file)
index c334e37..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/drivers/usb/host/ehci-omap.c
-+++ b/drivers/usb/host/ehci-omap.c
-@@ -96,11 +96,10 @@ static void omap_ehci_soft_phy_reset(int
- }
- #endif
--inline int __board_usb_init(void)
-+static int board_usb_init(void)
- {
-       return 0;
- }
--int board_usb_init(void) __attribute__((weak, alias("__board_usb_init")));
- #if defined(CONFIG_OMAP_EHCI_PHY1_RESET_GPIO) || \
-       defined(CONFIG_OMAP_EHCI_PHY2_RESET_GPIO) || \