From fc636b58da09547a89bd8955eef7b915efb9ed0f Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Wed, 2 Mar 2016 01:57:51 -0300 Subject: uboot-nitrogen6q: add new package to [libre] --- .../0001-parabola-arm-modifications.patch | 25 ----- .../0002-kernel-add-support-for-gcc-5.patch | 97 ------------------ .../0003-ARM-asm-io.h-use-static-inline.patch | 76 -------------- ...mon-main.c-make-show_boot_progress-__weak.patch | 31 ------ .../0005-common-board-use-__weak.patch | 84 ---------------- ...mmon-board_f-cosmetic-use-__weak-for-leds.patch | 109 --------------------- libre/uboot-boundary-linux-libre/6x_bootscript | 105 -------------------- libre/uboot-boundary-linux-libre/PKGBUILD | 65 ------------ .../0001-parabola-arm-modifications.patch | 25 +++++ .../0002-kernel-add-support-for-gcc-5.patch | 97 ++++++++++++++++++ .../0003-ARM-asm-io.h-use-static-inline.patch | 76 ++++++++++++++ ...mon-main.c-make-show_boot_progress-__weak.patch | 31 ++++++ .../0005-common-board-use-__weak.patch | 84 ++++++++++++++++ ...mmon-board_f-cosmetic-use-__weak-for-leds.patch | 109 +++++++++++++++++++++ libre/uboot-nitrogen6q/6x_bootscript | 105 ++++++++++++++++++++ libre/uboot-nitrogen6q/PKGBUILD | 64 ++++++++++++ 16 files changed, 591 insertions(+), 592 deletions(-) delete mode 100644 libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch delete mode 100644 libre/uboot-boundary-linux-libre/0002-kernel-add-support-for-gcc-5.patch delete mode 100644 libre/uboot-boundary-linux-libre/0003-ARM-asm-io.h-use-static-inline.patch delete mode 100644 libre/uboot-boundary-linux-libre/0004-common-main.c-make-show_boot_progress-__weak.patch delete mode 100644 libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch delete mode 100644 libre/uboot-boundary-linux-libre/0006-common-board_f-cosmetic-use-__weak-for-leds.patch delete mode 100644 libre/uboot-boundary-linux-libre/6x_bootscript delete mode 100644 libre/uboot-boundary-linux-libre/PKGBUILD create mode 100644 libre/uboot-nitrogen6q/0001-parabola-arm-modifications.patch create mode 100644 libre/uboot-nitrogen6q/0002-kernel-add-support-for-gcc-5.patch create mode 100644 libre/uboot-nitrogen6q/0003-ARM-asm-io.h-use-static-inline.patch create mode 100644 libre/uboot-nitrogen6q/0004-common-main.c-make-show_boot_progress-__weak.patch create mode 100644 libre/uboot-nitrogen6q/0005-common-board-use-__weak.patch create mode 100644 libre/uboot-nitrogen6q/0006-common-board_f-cosmetic-use-__weak-for-leds.patch create mode 100644 libre/uboot-nitrogen6q/6x_bootscript create mode 100644 libre/uboot-nitrogen6q/PKGBUILD diff --git a/libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch b/libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch deleted file mode 100644 index fe4b43820..000000000 --- a/libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h -index f3efbb0..7dfaffc 100644 ---- a/include/configs/nitrogen6x.h -+++ b/include/configs/nitrogen6x.h -@@ -82,6 +82,8 @@ - #define CONFIG_CMD_EXT4 - #define CONFIG_CMD_FS_GENERIC - #define CONFIG_DOS_PARTITION -+#define CONFIG_CMD_PART -+#define CONFIG_PARTITION_UUIDS - - #ifdef CONFIG_MX6Q - #define CONFIG_CMD_SATA -@@ -195,6 +197,8 @@ - #define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC CONFIG_DRIVE_USB - #define CONFIG_UMSDEVS CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC - -+#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" -+ - #if defined(CONFIG_SABRELITE) - #define CONFIG_EXTRA_ENV_SETTINGS \ - "script=boot.scr\0" \ --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/0002-kernel-add-support-for-gcc-5.patch b/libre/uboot-boundary-linux-libre/0002-kernel-add-support-for-gcc-5.patch deleted file mode 100644 index 30718c561..000000000 --- a/libre/uboot-boundary-linux-libre/0002-kernel-add-support-for-gcc-5.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 5b07fc2c680ad4279a45d863108544020b4d74cd Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 13 Oct 2014 15:51:05 -0700 -Subject: [PATCH 2/6] kernel: add support for gcc 5 - -We're missing include/linux/compiler-gcc5.h which is required now -because gcc branched off to v5 in trunk. - -Just copy the relevant bits out of include/linux/compiler-gcc4.h, -no new code is added as of now. - -This fixes a build error when using gcc 5. - -Signed-off-by: Sasha Levin -Cc: -Signed-off-by: Andrew Morton -Signed-off-by: Linus Torvalds ---- - include/linux/compiler-gcc5.h | 66 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 66 insertions(+) - create mode 100644 include/linux/compiler-gcc5.h - -diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h -new file mode 100644 -index 0000000..cdd1cc2 ---- /dev/null -+++ b/include/linux/compiler-gcc5.h -@@ -0,0 +1,66 @@ -+#ifndef __LINUX_COMPILER_H -+#error "Please don't include directly, include 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. -+ * Fixed in GCC 4.8.2 and later versions. -+ * -+ * (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 */ --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/0003-ARM-asm-io.h-use-static-inline.patch b/libre/uboot-boundary-linux-libre/0003-ARM-asm-io.h-use-static-inline.patch deleted file mode 100644 index 14ff6a5d8..000000000 --- a/libre/uboot-boundary-linux-libre/0003-ARM-asm-io.h-use-static-inline.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 282ed8801c3e75e4c94943f56d399d630833591b Mon Sep 17 00:00:00 2001 -From: Jeroen Hofstee -Date: Sun, 22 Jun 2014 23:10:39 +0200 -Subject: [PATCH 3/6] 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 -Signed-off-by: Jeroen Hofstee ---- - arch/arm/include/asm/io.h | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h -index 214f3ea..dc6138a 100644 ---- a/arch/arm/include/asm/io.h -+++ b/arch/arm/include/asm/io.h -@@ -77,7 +77,7 @@ static inline phys_addr_t virt_to_phys(void * vaddr) - #define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v)) - #define __arch_putq(v,a) (*(volatile unsigned long long *)(a) = (v)) - --extern inline void __raw_writesb(unsigned long addr, const void *data, -+static inline void __raw_writesb(unsigned long addr, const void *data, - int bytelen) - { - uint8_t *buf = (uint8_t *)data; -@@ -85,7 +85,7 @@ extern inline void __raw_writesb(unsigned long addr, const void *data, - __arch_putb(*buf++, addr); - } - --extern inline void __raw_writesw(unsigned long addr, const void *data, -+static inline void __raw_writesw(unsigned long addr, const void *data, - int wordlen) - { - uint16_t *buf = (uint16_t *)data; -@@ -93,7 +93,7 @@ extern inline void __raw_writesw(unsigned long addr, const void *data, - __arch_putw(*buf++, addr); - } - --extern inline void __raw_writesl(unsigned long addr, const void *data, -+static inline void __raw_writesl(unsigned long addr, const void *data, - int longlen) - { - uint32_t *buf = (uint32_t *)data; -@@ -101,21 +101,21 @@ extern inline void __raw_writesl(unsigned long addr, const void *data, - __arch_putl(*buf++, addr); - } - --extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen) -+static inline void __raw_readsb(unsigned long addr, void *data, int bytelen) - { - uint8_t *buf = (uint8_t *)data; - while(bytelen--) - *buf++ = __arch_getb(addr); - } - --extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen) -+static inline void __raw_readsw(unsigned long addr, void *data, int wordlen) - { - uint16_t *buf = (uint16_t *)data; - while(wordlen--) - *buf++ = __arch_getw(addr); - } - --extern inline void __raw_readsl(unsigned long addr, void *data, int longlen) -+static inline void __raw_readsl(unsigned long addr, void *data, int longlen) - { - uint32_t *buf = (uint32_t *)data; - while(longlen--) --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/0004-common-main.c-make-show_boot_progress-__weak.patch b/libre/uboot-boundary-linux-libre/0004-common-main.c-make-show_boot_progress-__weak.patch deleted file mode 100644 index 41b9c5cb2..000000000 --- a/libre/uboot-boundary-linux-libre/0004-common-main.c-make-show_boot_progress-__weak.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 8158ac85f16963ff1d075255cd3f34b4f0614265 Mon Sep 17 00:00:00 2001 -From: Jeroen Hofstee -Date: Thu, 26 Jun 2014 20:18:31 +0200 -Subject: [PATCH 4/6] 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 -Acked-by: Simon Glass ---- - common/main.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/common/main.c b/common/main.c -index 32618f1..2979fbe 100644 ---- a/common/main.c -+++ b/common/main.c -@@ -17,8 +17,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) {} - - static void modem_init(void) - { --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch b/libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch deleted file mode 100644 index 5cd77dbba..000000000 --- a/libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch +++ /dev/null @@ -1,84 +0,0 @@ -From deda59a4022fcedd781a893fe5e1bb495988858f Mon Sep 17 00:00:00 2001 -From: Jeroen Hofstee -Date: Wed, 8 Oct 2014 22:57:22 +0200 -Subject: [PATCH 5/6] common: board: use __weak - -Signed-off-by: Jeroen Hofstee ---- - common/board_f.c | 10 ++-------- - common/board_r.c | 10 ++-------- - 2 files changed, 4 insertions(+), 16 deletions(-) - -diff --git a/common/board_f.c b/common/board_f.c -index 4ea4cb2..215cc4a 100644 ---- a/common/board_f.c -+++ b/common/board_f.c -@@ -130,14 +130,11 @@ int init_func_watchdog_reset(void) - } - #endif /* CONFIG_WATCHDOG */ - --void __board_add_ram_info(int use_default) -+__weak void board_add_ram_info(int use_default) - { - /* please define platform specific board_add_ram_info() */ - } - --void board_add_ram_info(int) -- __attribute__ ((weak, alias("__board_add_ram_info"))); -- - static int init_baud_rate(void) - { - gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE); -@@ -219,7 +216,7 @@ static int show_dram_config(void) - return 0; - } - --void __dram_init_banksize(void) -+__weak void dram_init_banksize(void) - { - #if defined(CONFIG_NR_DRAM_BANKS) && defined(CONFIG_SYS_SDRAM_BASE) - gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; -@@ -227,9 +224,6 @@ void __dram_init_banksize(void) - #endif - } - --void dram_init_banksize(void) -- __attribute__((weak, alias("__dram_init_banksize"))); -- - #if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C) - static int init_func_i2c(void) - { -diff --git a/common/board_r.c b/common/board_r.c -index 602a239..fa4bd9c 100644 ---- a/common/board_r.c -+++ b/common/board_r.c -@@ -60,7 +60,7 @@ DECLARE_GLOBAL_DATA_PTR; - - ulong monitor_flash_len; - --int __board_flash_wp_on(void) -+__weak int board_flash_wp_on(void) - { - /* - * Most flashes can't be detected when write protection is enabled, -@@ -70,16 +70,10 @@ int __board_flash_wp_on(void) - return 0; - } - --int board_flash_wp_on(void) -- __attribute__ ((weak, alias("__board_flash_wp_on"))); -- --void __cpu_secondary_init_r(void) -+__weak void cpu_secondary_init_r(void) - { - } - --void cpu_secondary_init_r(void) -- __attribute__ ((weak, alias("__cpu_secondary_init_r"))); -- - static int initr_secondary_cpu(void) - { - /* --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/0006-common-board_f-cosmetic-use-__weak-for-leds.patch b/libre/uboot-boundary-linux-libre/0006-common-board_f-cosmetic-use-__weak-for-leds.patch deleted file mode 100644 index bff38b486..000000000 --- a/libre/uboot-boundary-linux-libre/0006-common-board_f-cosmetic-use-__weak-for-leds.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 137c23ed9e6ad2cba575842065bffa6e59170e17 Mon Sep 17 00:00:00 2001 -From: Jeroen Hofstee -Date: Mon, 23 Jun 2014 23:20:19 +0200 -Subject: [PATCH 6/6] common: board_f: cosmetic use __weak for leds - -First of all this looks a lot better, but it also -prevents a gcc warning (W=1), that the weak function -has no previous prototype. - -cc: Simon Glass -Signed-off-by: Jeroen Hofstee -Acked-by: Simon Glass ---- - common/board_f.c | 29 ++++++++++------------------- - include/status_led.h | 22 +++++++++++----------- - 2 files changed, 21 insertions(+), 30 deletions(-) - -diff --git a/common/board_f.c b/common/board_f.c -index 215cc4a..6e955bb 100644 ---- a/common/board_f.c -+++ b/common/board_f.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -78,25 +79,15 @@ DECLARE_GLOBAL_DATA_PTR; - ************************************************************************ - * 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) {} - - /* - * Why is gd allocated a register? Prior to reloc it might be better to -diff --git a/include/status_led.h b/include/status_led.h -index 0eb91b8..b8aaaf7 100644 ---- a/include/status_led.h -+++ b/include/status_led.h -@@ -272,19 +272,21 @@ extern void __led_set (led_id_t mask, int state); - # include - #endif - -+#endif /* CONFIG_STATUS_LED */ -+ - /* - * Coloured LEDs API - */ - #ifndef __ASSEMBLY__ --extern void coloured_LED_init (void); --extern void red_led_on(void); --extern void red_led_off(void); --extern void green_led_on(void); --extern void green_led_off(void); --extern void yellow_led_on(void); --extern void yellow_led_off(void); --extern void blue_led_on(void); --extern void blue_led_off(void); -+void coloured_LED_init(void); -+void red_led_on(void); -+void red_led_off(void); -+void green_led_on(void); -+void green_led_off(void); -+void yellow_led_on(void); -+void yellow_led_off(void); -+void blue_led_on(void); -+void blue_led_off(void); - #else - .extern LED_init - .extern red_led_on -@@ -297,6 +299,4 @@ extern void blue_led_off(void); - .extern blue_led_off - #endif - --#endif /* CONFIG_STATUS_LED */ -- - #endif /* _STATUS_LED_H_ */ --- -2.4.4 - diff --git a/libre/uboot-boundary-linux-libre/6x_bootscript b/libre/uboot-boundary-linux-libre/6x_bootscript deleted file mode 100644 index 17d68d86c..000000000 --- a/libre/uboot-boundary-linux-libre/6x_bootscript +++ /dev/null @@ -1,105 +0,0 @@ -echo "checking for U-Boot upgrades.."; -setenv offset 0x400 -if load ${dtype} ${disk}:1 12000000 /boot/uboot-boundary-linux-libre/u-boot.imx; then - echo " found u-boot.imx $filesize bytes)"; - if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000; then - echo "probed SPI ROM"; - if sf read 0x12400000 $offset $filesize; then - if cmp.b 0x12000000 0x12400000 $filesize; then - echo " no upgrade needed"; - else - echo " need U-Boot upgrade, flashing in 5 seconds.."; - for n in 5 4 3 2 1; do - echo $n; - sleep 1; - done - echo " erasing flash.."; - sf erase 0 0xC0000; - # two steps to prevent bricking - echo " writing flash.."; - sf write 0x12000000 $offset $filesize; - echo " verifying flash.."; - if sf read 0x12400000 $offset $filesize; then - if cmp.b 0x12000000 0x12400000 $filesize; then - echo "---- U-Boot upgraded. resetting.."; - reset; - else - echo " read verification error"; - fi - else - echo " error re-reading EEPROM"; - fi - fi - else - echo " error reading boot loader from EEPROM"; - fi - else - echo " error initializing EEPROM"; - fi; -else - echo " no U-Boot image found on SD card"; -fi - -setenv bootargs -setenv nextcon 0; - -if hdmidet ; then - setenv bootargs $bootargs video=mxcfb${nextcon}:dev=hdmi,1280x720M@60,if=RGB24 - setenv fbmem "fbmem=28M"; - setexpr nextcon $nextcon + 1 -else - echo "------ no HDMI monitor"; -fi - -i2c dev 2 -if i2c probe 0x04 ; then - setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,LDB-XGA,if=RGB666 - if test "0" -eq $nextcon; then - setenv fbmem "fbmem=10M"; - else - setenv fbmem ${fbmem},10M - fi - setexpr nextcon $nextcon + 1 -else - echo "------ no Freescale display"; -fi - -if i2c probe 0x38 ; then - setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,1024x600M@60,if=RGB666 - if test "0" -eq $nextcon; then - setenv fbmem "fbmem=10M"; - else - setenv fbmem ${fbmem},10M - fi - setexpr nextcon $nextcon + 1 -else - echo "------ no 1024x600 display"; -fi - -if i2c probe 0x48 ; then - setenv bootargs $bootargs video=mxcfb${nextcon}:dev=lcd,CLAA-WVGA,if=RGB666 - if test "0" -eq $nextcon; then - setenv fbmem "fbmem=10M"; - else - setenv fbmem ${fbmem},10M - fi - setexpr nextcon $nextcon + 1 -else - echo "------ no 800x480 display"; -fi - -while test "3" -ne $nextcon ; do - setenv bootargs $bootargs video=mxcfb${nextcon}:off ; - setexpr nextcon $nextcon + 1 ; -done - -setenv bootargs $bootargs $fbmem - -part uuid ${dtype} ${disk}:1 uuid - -setenv bootargs $bootargs console=ttymxc1,115200 vmalloc=400M root=PARTUUID=${uuid} rw rootwait consoleblank=0 - -setenv fdtfile imx6q-nitrogen6x.dtb -load ${dtype} ${disk}:1 10800000 /boot/vmlinuz-linux-libre && load ${dtype} ${disk}:1 11000000 /boot/dtbs/linux-libre/${fdtfile} && bootz 10800000 - 11000000 - -load ${dtype} ${disk}:1 10800000 /boot/uImage-linux-libre && bootm 10800000 diff --git a/libre/uboot-boundary-linux-libre/PKGBUILD b/libre/uboot-boundary-linux-libre/PKGBUILD deleted file mode 100644 index 48d302b3e..000000000 --- a/libre/uboot-boundary-linux-libre/PKGBUILD +++ /dev/null @@ -1,65 +0,0 @@ -# U-Boot: Boundary Devices Nitrogen6X/Sabre Lite -# Maintainer (Arch): Kevin Mihelich -# Contributor: André Silva - -buildarch=4 - -_pkgname=linux-libre -pkgname=uboot-boundary-${_pkgname} -pkgver=2014.07 -pkgrel=1.1 -arch=('armv7h') -pkgdesc="U-Boot for Nitrogen6X/Sabre Lite (built for the linux-libre kernel package)" -url="http://git.denx.de/u-boot.git/" -license=('GPL') -makedepends=('bc') -depends=('linux-libre') -replaces=('uboot-boundary') -backup=('6x_bootscript') -_commit=bb9dde563768731423fd6c560e95e1793a90710a -source=("https://github.com/boundarydevices/u-boot-imx6/archive/${_commit}.tar.gz" - '0001-parabola-arm-modifications.patch' - '0002-kernel-add-support-for-gcc-5.patch' - '0003-ARM-asm-io.h-use-static-inline.patch' - '0004-common-main.c-make-show_boot_progress-__weak.patch' - '0005-common-board-use-__weak.patch' - '0006-common-board_f-cosmetic-use-__weak-for-leds.patch' - '6x_bootscript') -md5sums=('b12f5f383c57de06f16625b3465e74d9' - '56466a99abaa51e000ec1b133078e084' - '721a46867e189d8dedc6b6f86a536a34' - 'f6b687eca2d2d01f741cbda90dbacb41' - '8087672256020417438b12ec4946e1cf' - 'a536d28bf45add6dbf9f84277f943de8' - '2823d0e0c3c826632f6ae934f2b746d9' - '84fe5cde8913ed3380d2069db12dca7e') - -prepare() { - cd u-boot-imx6-${_commit} - - patch -Np1 -i ../0001-parabola-arm-modifications.patch - patch -Np1 -i ../0002-kernel-add-support-for-gcc-5.patch - patch -Np1 -i ../0003-ARM-asm-io.h-use-static-inline.patch - patch -Np1 -i ../0004-common-main.c-make-show_boot_progress-__weak.patch - patch -Np1 -i ../0005-common-board-use-__weak.patch - patch -Np1 -i ../0006-common-board_f-cosmetic-use-__weak-for-leds.patch -} - -build() { - cd u-boot-imx6-${_commit} - - unset CFLAGS - unset CXXFLAGS - - make distclean - make nitrogen6q_config - make -} - -package() { - cd u-boot-imx6-${_commit} - - mkdir -p "${pkgdir}/boot/${pkgname}" - cp u-boot.imx "${pkgdir}/boot/${pkgname}" - tools/mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot script" -d ../6x_bootscript "${pkgdir}/boot/${pkgname}"/6x_bootscript -} diff --git a/libre/uboot-nitrogen6q/0001-parabola-arm-modifications.patch b/libre/uboot-nitrogen6q/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..fe4b43820 --- /dev/null +++ b/libre/uboot-nitrogen6q/0001-parabola-arm-modifications.patch @@ -0,0 +1,25 @@ +diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h +index f3efbb0..7dfaffc 100644 +--- a/include/configs/nitrogen6x.h ++++ b/include/configs/nitrogen6x.h +@@ -82,6 +82,8 @@ + #define CONFIG_CMD_EXT4 + #define CONFIG_CMD_FS_GENERIC + #define CONFIG_DOS_PARTITION ++#define CONFIG_CMD_PART ++#define CONFIG_PARTITION_UUIDS + + #ifdef CONFIG_MX6Q + #define CONFIG_CMD_SATA +@@ -195,6 +197,8 @@ + #define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC CONFIG_DRIVE_USB + #define CONFIG_UMSDEVS CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC + ++#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" ++ + #if defined(CONFIG_SABRELITE) + #define CONFIG_EXTRA_ENV_SETTINGS \ + "script=boot.scr\0" \ +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/0002-kernel-add-support-for-gcc-5.patch b/libre/uboot-nitrogen6q/0002-kernel-add-support-for-gcc-5.patch new file mode 100644 index 000000000..30718c561 --- /dev/null +++ b/libre/uboot-nitrogen6q/0002-kernel-add-support-for-gcc-5.patch @@ -0,0 +1,97 @@ +From 5b07fc2c680ad4279a45d863108544020b4d74cd Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 13 Oct 2014 15:51:05 -0700 +Subject: [PATCH 2/6] kernel: add support for gcc 5 + +We're missing include/linux/compiler-gcc5.h which is required now +because gcc branched off to v5 in trunk. + +Just copy the relevant bits out of include/linux/compiler-gcc4.h, +no new code is added as of now. + +This fixes a build error when using gcc 5. + +Signed-off-by: Sasha Levin +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +--- + include/linux/compiler-gcc5.h | 66 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 66 insertions(+) + create mode 100644 include/linux/compiler-gcc5.h + +diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h +new file mode 100644 +index 0000000..cdd1cc2 +--- /dev/null ++++ b/include/linux/compiler-gcc5.h +@@ -0,0 +1,66 @@ ++#ifndef __LINUX_COMPILER_H ++#error "Please don't include directly, include 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. ++ * Fixed in GCC 4.8.2 and later versions. ++ * ++ * (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 */ +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/0003-ARM-asm-io.h-use-static-inline.patch b/libre/uboot-nitrogen6q/0003-ARM-asm-io.h-use-static-inline.patch new file mode 100644 index 000000000..14ff6a5d8 --- /dev/null +++ b/libre/uboot-nitrogen6q/0003-ARM-asm-io.h-use-static-inline.patch @@ -0,0 +1,76 @@ +From 282ed8801c3e75e4c94943f56d399d630833591b Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee +Date: Sun, 22 Jun 2014 23:10:39 +0200 +Subject: [PATCH 3/6] 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 +Signed-off-by: Jeroen Hofstee +--- + arch/arm/include/asm/io.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h +index 214f3ea..dc6138a 100644 +--- a/arch/arm/include/asm/io.h ++++ b/arch/arm/include/asm/io.h +@@ -77,7 +77,7 @@ static inline phys_addr_t virt_to_phys(void * vaddr) + #define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v)) + #define __arch_putq(v,a) (*(volatile unsigned long long *)(a) = (v)) + +-extern inline void __raw_writesb(unsigned long addr, const void *data, ++static inline void __raw_writesb(unsigned long addr, const void *data, + int bytelen) + { + uint8_t *buf = (uint8_t *)data; +@@ -85,7 +85,7 @@ extern inline void __raw_writesb(unsigned long addr, const void *data, + __arch_putb(*buf++, addr); + } + +-extern inline void __raw_writesw(unsigned long addr, const void *data, ++static inline void __raw_writesw(unsigned long addr, const void *data, + int wordlen) + { + uint16_t *buf = (uint16_t *)data; +@@ -93,7 +93,7 @@ extern inline void __raw_writesw(unsigned long addr, const void *data, + __arch_putw(*buf++, addr); + } + +-extern inline void __raw_writesl(unsigned long addr, const void *data, ++static inline void __raw_writesl(unsigned long addr, const void *data, + int longlen) + { + uint32_t *buf = (uint32_t *)data; +@@ -101,21 +101,21 @@ extern inline void __raw_writesl(unsigned long addr, const void *data, + __arch_putl(*buf++, addr); + } + +-extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen) ++static inline void __raw_readsb(unsigned long addr, void *data, int bytelen) + { + uint8_t *buf = (uint8_t *)data; + while(bytelen--) + *buf++ = __arch_getb(addr); + } + +-extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen) ++static inline void __raw_readsw(unsigned long addr, void *data, int wordlen) + { + uint16_t *buf = (uint16_t *)data; + while(wordlen--) + *buf++ = __arch_getw(addr); + } + +-extern inline void __raw_readsl(unsigned long addr, void *data, int longlen) ++static inline void __raw_readsl(unsigned long addr, void *data, int longlen) + { + uint32_t *buf = (uint32_t *)data; + while(longlen--) +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/0004-common-main.c-make-show_boot_progress-__weak.patch b/libre/uboot-nitrogen6q/0004-common-main.c-make-show_boot_progress-__weak.patch new file mode 100644 index 000000000..41b9c5cb2 --- /dev/null +++ b/libre/uboot-nitrogen6q/0004-common-main.c-make-show_boot_progress-__weak.patch @@ -0,0 +1,31 @@ +From 8158ac85f16963ff1d075255cd3f34b4f0614265 Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee +Date: Thu, 26 Jun 2014 20:18:31 +0200 +Subject: [PATCH 4/6] 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 +Acked-by: Simon Glass +--- + common/main.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/common/main.c b/common/main.c +index 32618f1..2979fbe 100644 +--- a/common/main.c ++++ b/common/main.c +@@ -17,8 +17,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) {} + + static void modem_init(void) + { +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/0005-common-board-use-__weak.patch b/libre/uboot-nitrogen6q/0005-common-board-use-__weak.patch new file mode 100644 index 000000000..5cd77dbba --- /dev/null +++ b/libre/uboot-nitrogen6q/0005-common-board-use-__weak.patch @@ -0,0 +1,84 @@ +From deda59a4022fcedd781a893fe5e1bb495988858f Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee +Date: Wed, 8 Oct 2014 22:57:22 +0200 +Subject: [PATCH 5/6] common: board: use __weak + +Signed-off-by: Jeroen Hofstee +--- + common/board_f.c | 10 ++-------- + common/board_r.c | 10 ++-------- + 2 files changed, 4 insertions(+), 16 deletions(-) + +diff --git a/common/board_f.c b/common/board_f.c +index 4ea4cb2..215cc4a 100644 +--- a/common/board_f.c ++++ b/common/board_f.c +@@ -130,14 +130,11 @@ int init_func_watchdog_reset(void) + } + #endif /* CONFIG_WATCHDOG */ + +-void __board_add_ram_info(int use_default) ++__weak void board_add_ram_info(int use_default) + { + /* please define platform specific board_add_ram_info() */ + } + +-void board_add_ram_info(int) +- __attribute__ ((weak, alias("__board_add_ram_info"))); +- + static int init_baud_rate(void) + { + gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE); +@@ -219,7 +216,7 @@ static int show_dram_config(void) + return 0; + } + +-void __dram_init_banksize(void) ++__weak void dram_init_banksize(void) + { + #if defined(CONFIG_NR_DRAM_BANKS) && defined(CONFIG_SYS_SDRAM_BASE) + gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; +@@ -227,9 +224,6 @@ void __dram_init_banksize(void) + #endif + } + +-void dram_init_banksize(void) +- __attribute__((weak, alias("__dram_init_banksize"))); +- + #if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C) + static int init_func_i2c(void) + { +diff --git a/common/board_r.c b/common/board_r.c +index 602a239..fa4bd9c 100644 +--- a/common/board_r.c ++++ b/common/board_r.c +@@ -60,7 +60,7 @@ DECLARE_GLOBAL_DATA_PTR; + + ulong monitor_flash_len; + +-int __board_flash_wp_on(void) ++__weak int board_flash_wp_on(void) + { + /* + * Most flashes can't be detected when write protection is enabled, +@@ -70,16 +70,10 @@ int __board_flash_wp_on(void) + return 0; + } + +-int board_flash_wp_on(void) +- __attribute__ ((weak, alias("__board_flash_wp_on"))); +- +-void __cpu_secondary_init_r(void) ++__weak void cpu_secondary_init_r(void) + { + } + +-void cpu_secondary_init_r(void) +- __attribute__ ((weak, alias("__cpu_secondary_init_r"))); +- + static int initr_secondary_cpu(void) + { + /* +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/0006-common-board_f-cosmetic-use-__weak-for-leds.patch b/libre/uboot-nitrogen6q/0006-common-board_f-cosmetic-use-__weak-for-leds.patch new file mode 100644 index 000000000..bff38b486 --- /dev/null +++ b/libre/uboot-nitrogen6q/0006-common-board_f-cosmetic-use-__weak-for-leds.patch @@ -0,0 +1,109 @@ +From 137c23ed9e6ad2cba575842065bffa6e59170e17 Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee +Date: Mon, 23 Jun 2014 23:20:19 +0200 +Subject: [PATCH 6/6] common: board_f: cosmetic use __weak for leds + +First of all this looks a lot better, but it also +prevents a gcc warning (W=1), that the weak function +has no previous prototype. + +cc: Simon Glass +Signed-off-by: Jeroen Hofstee +Acked-by: Simon Glass +--- + common/board_f.c | 29 ++++++++++------------------- + include/status_led.h | 22 +++++++++++----------- + 2 files changed, 21 insertions(+), 30 deletions(-) + +diff --git a/common/board_f.c b/common/board_f.c +index 215cc4a..6e955bb 100644 +--- a/common/board_f.c ++++ b/common/board_f.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -78,25 +79,15 @@ DECLARE_GLOBAL_DATA_PTR; + ************************************************************************ + * 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) {} + + /* + * Why is gd allocated a register? Prior to reloc it might be better to +diff --git a/include/status_led.h b/include/status_led.h +index 0eb91b8..b8aaaf7 100644 +--- a/include/status_led.h ++++ b/include/status_led.h +@@ -272,19 +272,21 @@ extern void __led_set (led_id_t mask, int state); + # include + #endif + ++#endif /* CONFIG_STATUS_LED */ ++ + /* + * Coloured LEDs API + */ + #ifndef __ASSEMBLY__ +-extern void coloured_LED_init (void); +-extern void red_led_on(void); +-extern void red_led_off(void); +-extern void green_led_on(void); +-extern void green_led_off(void); +-extern void yellow_led_on(void); +-extern void yellow_led_off(void); +-extern void blue_led_on(void); +-extern void blue_led_off(void); ++void coloured_LED_init(void); ++void red_led_on(void); ++void red_led_off(void); ++void green_led_on(void); ++void green_led_off(void); ++void yellow_led_on(void); ++void yellow_led_off(void); ++void blue_led_on(void); ++void blue_led_off(void); + #else + .extern LED_init + .extern red_led_on +@@ -297,6 +299,4 @@ extern void blue_led_off(void); + .extern blue_led_off + #endif + +-#endif /* CONFIG_STATUS_LED */ +- + #endif /* _STATUS_LED_H_ */ +-- +2.4.4 + diff --git a/libre/uboot-nitrogen6q/6x_bootscript b/libre/uboot-nitrogen6q/6x_bootscript new file mode 100644 index 000000000..45e5fe9b6 --- /dev/null +++ b/libre/uboot-nitrogen6q/6x_bootscript @@ -0,0 +1,105 @@ +echo "checking for U-Boot upgrades.."; +setenv offset 0x400 +if load ${dtype} ${disk}:1 12000000 /boot/u-boot.imx; then + echo " found u-boot.imx $filesize bytes)"; + if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000; then + echo "probed SPI ROM"; + if sf read 0x12400000 $offset $filesize; then + if cmp.b 0x12000000 0x12400000 $filesize; then + echo " no upgrade needed"; + else + echo " need U-Boot upgrade, flashing in 5 seconds.."; + for n in 5 4 3 2 1; do + echo $n; + sleep 1; + done + echo " erasing flash.."; + sf erase 0 0xC0000; + # two steps to prevent bricking + echo " writing flash.."; + sf write 0x12000000 $offset $filesize; + echo " verifying flash.."; + if sf read 0x12400000 $offset $filesize; then + if cmp.b 0x12000000 0x12400000 $filesize; then + echo "---- U-Boot upgraded. resetting.."; + reset; + else + echo " read verification error"; + fi + else + echo " error re-reading EEPROM"; + fi + fi + else + echo " error reading boot loader from EEPROM"; + fi + else + echo " error initializing EEPROM"; + fi; +else + echo " no U-Boot image found on SD card"; +fi + +setenv bootargs +setenv nextcon 0; + +if hdmidet ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=hdmi,1280x720M@60,if=RGB24 + setenv fbmem "fbmem=28M"; + setexpr nextcon $nextcon + 1 +else + echo "------ no HDMI monitor"; +fi + +i2c dev 2 +if i2c probe 0x04 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,LDB-XGA,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no Freescale display"; +fi + +if i2c probe 0x38 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,1024x600M@60,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no 1024x600 display"; +fi + +if i2c probe 0x48 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=lcd,CLAA-WVGA,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no 800x480 display"; +fi + +while test "3" -ne $nextcon ; do + setenv bootargs $bootargs video=mxcfb${nextcon}:off ; + setexpr nextcon $nextcon + 1 ; +done + +setenv bootargs $bootargs $fbmem + +part uuid ${dtype} ${disk}:1 uuid + +setenv bootargs $bootargs console=ttymxc1,115200 vmalloc=400M root=PARTUUID=${uuid} rw rootwait consoleblank=0 + +setenv fdtfile imx6q-nitrogen6x.dtb +load ${dtype} ${disk}:1 10800000 /boot/vmlinuz-linux-libre && load ${dtype} ${disk}:1 11000000 /boot/dtbs/linux-libre/${fdtfile} && bootz 10800000 - 11000000 + +load ${dtype} ${disk}:1 10800000 /boot/uImage && bootm 10800000 diff --git a/libre/uboot-nitrogen6q/PKGBUILD b/libre/uboot-nitrogen6q/PKGBUILD new file mode 100644 index 000000000..775cb713c --- /dev/null +++ b/libre/uboot-nitrogen6q/PKGBUILD @@ -0,0 +1,64 @@ +# U-Boot: Boundary Devices Nitrogen6X/Sabre Lite +# Maintainer: André Silva + +buildarch=4 + +pkgname=uboot-nitrogen6q +pkgver=2014.07 +pkgrel=1 +arch=('armv7h') +pkgdesc="U-Boot for Nitrogen6X/Sabre Lite" +url="https://github.com/boundarydevices/u-boot-imx6/tree/production" +license=('GPL') +makedepends=('bc') +depends=('linux-libre') +replaces=('uboot-boundary' 'uboot-boundary-linux-libre') +conflicts=('uboot4extlinux-nitrogen6q' 'uboot4grub-nitrogen6q') +backup=('6x_bootscript') +_commit=bb9dde563768731423fd6c560e95e1793a90710a +source=("https://github.com/boundarydevices/u-boot-imx6/archive/${_commit}.tar.gz" + '0001-parabola-arm-modifications.patch' + '0002-kernel-add-support-for-gcc-5.patch' + '0003-ARM-asm-io.h-use-static-inline.patch' + '0004-common-main.c-make-show_boot_progress-__weak.patch' + '0005-common-board-use-__weak.patch' + '0006-common-board_f-cosmetic-use-__weak-for-leds.patch' + '6x_bootscript') +md5sums=('b12f5f383c57de06f16625b3465e74d9' + '56466a99abaa51e000ec1b133078e084' + '721a46867e189d8dedc6b6f86a536a34' + 'f6b687eca2d2d01f741cbda90dbacb41' + '8087672256020417438b12ec4946e1cf' + 'a536d28bf45add6dbf9f84277f943de8' + '2823d0e0c3c826632f6ae934f2b746d9' + '84fe5cde8913ed3380d2069db12dca7e') + +prepare() { + cd u-boot-imx6-${_commit} + + patch -Np1 -i ../0001-parabola-arm-modifications.patch + patch -Np1 -i ../0002-kernel-add-support-for-gcc-5.patch + patch -Np1 -i ../0003-ARM-asm-io.h-use-static-inline.patch + patch -Np1 -i ../0004-common-main.c-make-show_boot_progress-__weak.patch + patch -Np1 -i ../0005-common-board-use-__weak.patch + patch -Np1 -i ../0006-common-board_f-cosmetic-use-__weak-for-leds.patch +} + +build() { + cd u-boot-imx6-${_commit} + + unset CFLAGS + unset CXXFLAGS + + make distclean + make nitrogen6q_config + make +} + +package() { + cd u-boot-imx6-${_commit} + + mkdir -p "${pkgdir}"/boot + cp u-boot.imx "${pkgdir}"/boot + tools/mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot script" -d ../6x_bootscript ${pkgdir}/6x_bootscript +} -- cgit v1.2.3