From 1b93f88c6b63ae8776b8207a93bbef224cbc1dae Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Mon, 5 Oct 2015 00:42:56 -0300 Subject: uboot-boundary-linux-libre: 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 | 64 ++++++++++++ 8 files changed, 591 insertions(+) create mode 100644 libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch create mode 100644 libre/uboot-boundary-linux-libre/0002-kernel-add-support-for-gcc-5.patch create mode 100644 libre/uboot-boundary-linux-libre/0003-ARM-asm-io.h-use-static-inline.patch create mode 100644 libre/uboot-boundary-linux-libre/0004-common-main.c-make-show_boot_progress-__weak.patch create mode 100644 libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch create mode 100644 libre/uboot-boundary-linux-libre/0006-common-board_f-cosmetic-use-__weak-for-leds.patch create mode 100644 libre/uboot-boundary-linux-libre/6x_bootscript create mode 100644 libre/uboot-boundary-linux-libre/PKGBUILD (limited to 'libre') diff --git a/libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch b/libre/uboot-boundary-linux-libre/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..fe4b43820 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-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 new file mode 100644 index 000000000..30718c561 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-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 new file mode 100644 index 000000000..14ff6a5d8 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-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 new file mode 100644 index 000000000..41b9c5cb2 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-boundary-linux-libre/0005-common-board-use-__weak.patch b/libre/uboot-boundary-linux-libre/0005-common-board-use-__weak.patch new file mode 100644 index 000000000..5cd77dbba --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-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 new file mode 100644 index 000000000..bff38b486 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/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-boundary-linux-libre/6x_bootscript b/libre/uboot-boundary-linux-libre/6x_bootscript new file mode 100644 index 000000000..17d68d86c --- /dev/null +++ b/libre/uboot-boundary-linux-libre/6x_bootscript @@ -0,0 +1,105 @@ +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 new file mode 100644 index 000000000..d1086d599 --- /dev/null +++ b/libre/uboot-boundary-linux-libre/PKGBUILD @@ -0,0 +1,64 @@ +# U-Boot: Boundary Devices Nitrogen6X/Sabre Lite +# Maintainer: Kevin Mihelich +# Maintainer: André Silva + +buildarch=4 + +_pkgname=linux-libre +pkgname=uboot-boundary-${_pkgname} +pkgver=2014.07 +pkgrel=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') +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 +} -- cgit v1.2.3-54-g00ecf