diff options
author | Isaac David <isacdaavid@isacdaavid.info> | 2017-06-09 15:44:53 -0500 |
---|---|---|
committer | Isaac David <isacdaavid@isacdaavid.info> | 2017-06-09 15:44:53 -0500 |
commit | a63182bc739fa2ef86861a939898717e04cb7153 (patch) | |
tree | 28812dc1e6d2b13c2df520d1728e206bf2c75a1e /libre-testing/uboot4extlinux-am335x_bone | |
parent | 25de18693e983c778578ab569df252911b5445e1 (diff) | |
download | abslibre-a63182bc739fa2ef86861a939898717e04cb7153.tar.gz abslibre-a63182bc739fa2ef86861a939898717e04cb7153.tar.bz2 abslibre-a63182bc739fa2ef86861a939898717e04cb7153.zip |
libre-testing/uboot4extlinux-*: new versions and configs
also patch old u-boot tarballs to build with gcc7
Diffstat (limited to 'libre-testing/uboot4extlinux-am335x_bone')
6 files changed, 456 insertions, 0 deletions
diff --git a/libre-testing/uboot4extlinux-am335x_bone/0001-parabola-arm-modifications.patch b/libre-testing/uboot4extlinux-am335x_bone/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..0f1c145da --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/0001-parabola-arm-modifications.patch @@ -0,0 +1,243 @@ +diff -Nur u-boot-2015.04.orig/configs/am335x_evm_defconfig u-boot-2015.04/configs/am335x_evm_defconfig +--- u-boot-2015.04.orig/configs/am335x_evm_defconfig 2015-04-13 11:53:03.000000000 -0300 ++++ u-boot-2015.04/configs/am335x_evm_defconfig 2016-02-24 12:05:57.627551576 -0300 +@@ -1,7 +1,6 @@ + CONFIG_SPL=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_ADDR=0x82000000 +-CONFIG_SYS_EXTRA_OPTIONS="NAND" +-CONFIG_CONS_INDEX=1 ++CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1" + CONFIG_ARM=y + CONFIG_TARGET_AM335X_EVM=y +diff -Nur u-boot-2015.04.orig/include/configs/am335x_evm.h u-boot-2015.04/include/configs/am335x_evm.h +--- u-boot-2015.04.orig/include/configs/am335x_evm.h 2015-04-13 11:53:03.000000000 -0300 ++++ u-boot-2015.04/include/configs/am335x_evm.h 2016-02-24 12:09:41.983016704 -0300 +@@ -17,6 +17,7 @@ + #define __CONFIG_AM335X_EVM_H + + #include <configs/ti_am335x_common.h> ++#define CONFIG_ENV_IS_NOWHERE + + #ifndef CONFIG_SPL_BUILD + #ifndef CONFIG_FIT +@@ -45,6 +46,9 @@ + /* Enhance our eMMC support / experience. */ + #define CONFIG_CMD_GPT + #define CONFIG_EFI_PARTITION ++#define CONFIG_CMD_PART ++#define CONFIG_PARTITION_UUIDS ++#define CONFIG_CMD_SETEXPR + + #ifdef CONFIG_NAND + #define NANDARGS \ +@@ -67,113 +71,90 @@ + + #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG + ++/* Enable Extlinux boot support */ ++#define CONFIG_CMD_PXE ++#define CONFIG_MENU ++#define BOOT_TARGET_DEVICES(func) ++#include <config_distro_bootcmd.h> ++ + #ifndef CONFIG_SPL_BUILD + #define CONFIG_EXTRA_ENV_SETTINGS \ ++ BOOTENV \ + DEFAULT_LINUX_BOOT_ENV \ +- "boot_fdt=try\0" \ +- "bootpart=0:2\0" \ ++ "bootpart=0:1\0" \ + "bootdir=/boot\0" \ ++ "fdtdir=/boot/dtbs\0" \ + "bootfile=zImage\0" \ + "fdtfile=undefined\0" \ ++ "rdfile=initramfs-linux.img\0" \ + "console=ttyO0,115200n8\0" \ + "partitions=" \ + "uuid_disk=${uuid_gpt_disk};" \ + "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \ + "optargs=\0" \ +- "mmcdev=0\0" \ +- "mmcroot=/dev/mmcblk0p2 ro\0" \ +- "mmcrootfstype=ext4 rootwait\0" \ +- "rootpath=/export/rootfs\0" \ +- "nfsopts=nolock\0" \ +- "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ +- "::off\0" \ +- "ramroot=/dev/ram0 rw\0" \ +- "ramrootfstype=ext2\0" \ ++ "cape_disable=\0" \ ++ "cape_enable=\0" \ ++ "cmdline=\0" \ + "mmcargs=setenv bootargs console=${console} " \ + "${optargs} " \ +- "root=${mmcroot} " \ +- "rootfstype=${mmcrootfstype}\0" \ +- "spiroot=/dev/mtdblock4 rw\0" \ +- "spirootfstype=jffs2\0" \ +- "spisrcaddr=0xe0000\0" \ +- "spiimgsize=0x362000\0" \ +- "spibusno=0\0" \ +- "spiargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=${spiroot} " \ +- "rootfstype=${spirootfstype}\0" \ +- "netargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=/dev/nfs " \ +- "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ +- "ip=dhcp\0" \ +- "bootenv=uEnv.txt\0" \ +- "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \ +- "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \ +- "source ${loadaddr}\0" \ +- "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ +- "importbootenv=echo Importing environment from mmc ...; " \ +- "env import -t -r $loadaddr $filesize\0" \ +- "ramargs=setenv bootargs console=${console} " \ +- "${optargs} " \ +- "root=${ramroot} " \ +- "rootfstype=${ramrootfstype}\0" \ +- "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ +- "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ +- "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ +- "mmcloados=run mmcargs; " \ +- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ +- "if run loadfdt; then " \ +- "bootz ${loadaddr} - ${fdtaddr}; " \ +- "else " \ +- "if test ${boot_fdt} = try; then " \ +- "bootz; " \ +- "else " \ +- "echo WARN: Cannot load the DT; " \ +- "fi; " \ +- "fi; " \ +- "else " \ +- "bootz; " \ +- "fi;\0" \ +- "mmcboot=mmc dev ${mmcdev}; " \ +- "if mmc rescan; then " \ +- "echo SD/MMC found on device ${mmcdev};" \ +- "if run loadbootscript; then " \ +- "run bootscript;" \ +- "else " \ +- "if run loadbootenv; then " \ +- "echo Loaded environment from ${bootenv};" \ +- "run importbootenv;" \ ++ "${cape_disable} " \ ++ "${cape_enable} " \ ++ "root=${root} " \ ++ "${cmdline}\0" \ ++ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ ++ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ ++ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ ++ "mmcboot=usb start;" \ ++ "for devtype in mmc usb; do " \ ++ "for devnum in 0 1; do " \ ++ "if ${devtype} dev ${devnum}; then " \ ++ "echo ${devtype} found on device ${devnum};" \ ++ "setenv bootpart ${devnum}:1;" \ ++ "part uuid ${devtype} ${bootpart} uuid;" \ ++ "setenv root PARTUUID=${uuid} rw rootwait fixrtc;" \ ++ "echo Checking for: ${bootdir}/uEnv.txt ...;" \ ++ "gpio set 54;" \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from ${bootdir}/uEnv.txt;" \ ++ "if test -n ${cape}; then " \ ++ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtbase}-${cape}.dtb; then " \ ++ "setenv fdtfile ${fdtbase}-${cape}.dtb; " \ ++ "fi; " \ ++ "echo using: $fdtfile...; " \ ++ "fi; " \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi;" \ ++ "gpio set 55;" \ ++ "run scan_dev_for_boot;" \ ++ "if run loadimage; then " \ ++ "run mmcargs;" \ ++ "if run loadfdt; then " \ ++ "gpio set 56;" \ ++ "if run loadrd; then " \ ++ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ ++ "else " \ ++ "bootz ${loadaddr} - ${fdtaddr};" \ ++ "fi;" \ ++ "fi;" \ ++ "else " \ ++ "echo No kernel found;" \ ++ "fi;" \ ++ "gpio clear 54; gpio clear 55;" \ ++ "setexpr devnum ${devnum} + 1;" \ + "fi;" \ +- "if test -n $uenvcmd; then " \ +- "echo Running uenvcmd ...;" \ +- "run uenvcmd;" \ +- "fi;" \ +- "if run loadimage; then " \ +- "run mmcloados;" \ +- "fi;" \ +- "fi ;" \ +- "fi;\0" \ +- "spiboot=echo Booting from spi ...; " \ +- "run spiargs; " \ +- "sf probe ${spibusno}:0; " \ +- "sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \ +- "bootz ${loadaddr}\0" \ +- "netboot=echo Booting from network ...; " \ +- "setenv autoload no; " \ +- "dhcp; " \ +- "tftp ${loadaddr} ${bootfile}; " \ +- "tftp ${fdtaddr} ${fdtfile}; " \ +- "run netargs; " \ +- "bootz ${loadaddr} - ${fdtaddr}\0" \ +- "ramboot=echo Booting from ramdisk ...; " \ +- "run ramargs; " \ +- "bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \ ++ "done;" \ ++ "done;\0" \ + "findfdt="\ + "if test $board_name = A335BONE; then " \ +- "setenv fdtfile am335x-bone.dtb; fi; " \ ++ "setenv fdtfile am335x-bone.dtb; setenv fdtbase am335x-bone; fi; " \ + "if test $board_name = A335BNLT; then " \ +- "setenv fdtfile am335x-boneblack.dtb; fi; " \ ++ "setenv fdtfile am335x-boneblack.dtb; setenv fdtbase am335x-boneblack; setenv umsmedia 1; fi; " \ + "if test $board_name = A33515BB; then " \ + "setenv fdtfile am335x-evm.dtb; fi; " \ + "if test $board_name = A335X_SK; then " \ +@@ -185,12 +166,11 @@ + #endif + + #define CONFIG_BOOTCOMMAND \ +- "run findfdt; " \ +- "run mmcboot;" \ +- "setenv mmcdev 1; " \ +- "setenv bootpart 1:2; " \ ++ "gpio set 53;" \ ++ "run findfdt;" \ + "run mmcboot;" \ +- "run nandboot;" ++ "gpio clear 54; gpio clear 55;" \ ++ "gpio set 56" + + /* NS16550 Configuration */ + #define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */ +@@ -329,9 +309,8 @@ + #endif + + #ifdef CONFIG_MUSB_GADGET +-#define CONFIG_USB_ETHER +-#define CONFIG_USB_ETH_RNDIS +-#define CONFIG_USBNET_HOST_ADDR "de:ad:be:af:00:00" ++#define CONFIG_CMD_USB_MASS_STORAGE ++#define CONFIG_USB_GADGET_MASS_STORAGE + + /* USB TI's IDs */ + #define CONFIG_G_DNL_VENDOR_NUM 0x0451 diff --git a/libre-testing/uboot4extlinux-am335x_bone/0002-kernel-add-support-for-gcc-7.patch b/libre-testing/uboot4extlinux-am335x_bone/0002-kernel-add-support-for-gcc-7.patch new file mode 100644 index 000000000..ca59b159a --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/0002-kernel-add-support-for-gcc-7.patch @@ -0,0 +1,68 @@ +diff --git a/include/linux/compiler-gcc7.h b/include/linux/compiler-gcc7.h +new file mode 100644 +index 0000000..ba064fa +--- /dev/null ++++ b/include/linux/compiler-gcc7.h +@@ -0,0 +1,59 @@ ++#ifndef __LINUX_COMPILER_H ++#error "Please don't include <linux/compiler-gcc7.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] ++ ++ 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. ++ */ ++#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 */ ++ ++#define KASAN_ABI_VERSION 4 +-- +2.1.4 + diff --git a/libre-testing/uboot4extlinux-am335x_bone/PKGBUILD b/libre-testing/uboot4extlinux-am335x_bone/PKGBUILD new file mode 100644 index 000000000..0374e774d --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/PKGBUILD @@ -0,0 +1,49 @@ +# U-Boot: BeagleBone and BeagleBone Black +# Maintainer: Isaac David <isacdaavid@at@isacdaavid.info> +# Contributor: André Silva <emulatorman@parabola.nu> +# Contributor: Jookia <166291@gmail.com> +# Contributor: Márcio Silva <coadde@parabola.nu> + +pkgname=uboot4extlinux-am335x_bone +pkgver=2015.04 +pkgrel=4 +pkgdesc="U-Boot with Extlinux support for BeagleBone and BeagleBone Black" +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +conflicts=('uboot-am335x_bone' 'uboot4grub-am335x_bone') +makedepends=('bc') +license=('GPL') +backup=(boot/extlinux/extlinux.conf) +install=${pkgname}.install +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" + '0001-parabola-arm-modifications.patch' + '0002-kernel-add-support-for-gcc-7.patch' + 'extlinux.conf' + 'uEnv.txt') +sha256sums=('0a1a70df586655f527befa6f12e184e96ed61b126e5a567382321b17200f5d60' + 'ba5c395e5250fa13d608823e278936862d4fc472cfbf24dc94d9d90e5d9360b7' + '9e80aa27cccdb07b03d56a970f247c91d586d0b936868c076c20acc2e68a3968' + 'e96d167d99967ebefde8d02b27b4564e46409cc0c8738d5de72f431a2e438cf8' + '4ef3c3177e4476cdb1790dd021d2383ef9913c029d005ffbeb61b958e753672e') + +prepare() { + cd u-boot-${pkgver} + patch -Np1 -i ../0001-parabola-arm-modifications.patch + patch -Np1 -i ../0002-kernel-add-support-for-gcc-7.patch +} + +build() { + cd u-boot-${pkgver} + + unset CFLAGS CXXFLAGS LDFLAGS + make distclean + make am335x_evm_config + make +} + +package() { + cd u-boot-${pkgver} + mkdir -p "${pkgdir}"/boot/extlinux + cp MLO u-boot.img "${srcdir}"/uEnv.txt "${pkgdir}"/boot + cp "${srcdir}"/extlinux.conf "${pkgdir}"/boot/extlinux +} diff --git a/libre-testing/uboot4extlinux-am335x_bone/extlinux.conf b/libre-testing/uboot4extlinux-am335x_bone/extlinux.conf new file mode 100644 index 000000000..3c50750b7 --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/extlinux.conf @@ -0,0 +1,58 @@ +menu title Welcome to U-Boot with Extlinux support! + +timeout 50 + +label Parabola GNU/Linux-libre, linux-libre kernel + kernel /boot/vmlinuz-linux-libre + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre + +label Parabola GNU/Linux-libre, linux-libre-lts kernel + kernel /boot/vmlinuz-linux-libre-lts + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-lts + +label Parabola GNU/Linux-libre, linux-libre-knock kernel + kernel /boot/vmlinuz-linux-libre-knock + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-knock + +label Parabola GNU/Linux-libre, linux-libre-lts-knock kernel + kernel /boot/vmlinuz-linux-libre-lts-knock + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-lts-knock + +label Parabola GNU/Linux-libre, linux-libre-hardened kernel + kernel /boot/vmlinuz-linux-libre-hardened + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-hardened + +label Parabola GNU/Linux-libre, linux-libre-apparmor kernel + kernel /boot/vmlinuz-linux-libre-apparmor + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-apparmor + +label Parabola GNU/Linux-libre, linux-libre-lts-apparmor kernel + kernel /boot/vmlinuz-linux-libre-lts-apparmor + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-lts-apparmor + +label Parabola GNU/Linux-libre, linux-libre-audit kernel + kernel /boot/vmlinuz-linux-libre-audit + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-audit + +label Parabola GNU/Linux-libre, linux-libre-pck kernel + kernel /boot/vmlinuz-linux-libre-pck + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-pck + +label Parabola GNU/Linux-libre, linux-libre-rt kernel + kernel /boot/vmlinuz-linux-libre-rt + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-rt + +label Parabola GNU/Linux-libre, linux-libre-xen kernel + kernel /boot/vmlinuz-linux-libre-xen + append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 + fdtdir /boot/dtbs/linux-libre-xen diff --git a/libre-testing/uboot4extlinux-am335x_bone/uEnv.txt b/libre-testing/uboot4extlinux-am335x_bone/uEnv.txt new file mode 100644 index 000000000..f432efc6b --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/uEnv.txt @@ -0,0 +1 @@ +optargs=coherent_pool=1M diff --git a/libre-testing/uboot4extlinux-am335x_bone/uboot4extlinux-am335x_bone.install b/libre-testing/uboot4extlinux-am335x_bone/uboot4extlinux-am335x_bone.install new file mode 100644 index 000000000..93306e01e --- /dev/null +++ b/libre-testing/uboot4extlinux-am335x_bone/uboot4extlinux-am335x_bone.install @@ -0,0 +1,37 @@ +flash_instructions() { + echo "# dd if=/boot/MLO of=/dev/mmcblk0 count=1 seek=1 conv=notrunc bs=128k" + echo "# dd if=/boot/u-boot.img of=/dev/mmcblk0 count=2 seek=1 conv=notrunc bs=384k" +} + +extlinux_warning() { + echo "==> WARNING: Remember to set up your kernels in /boot/extlinux/extlinux.conf" +} + +flash_uboot() { + root=$(mount | awk '/ on \/ / { print $1; }') + if [[ $root =~ ^/dev/mmcblk.*$ ]]; then + root=${root:0:12} + echo "A new U-Boot version needs to be flashed onto $root." + echo "Do this now? [y|N]" + read -r shouldwe + if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then + dd if=/boot/MLO of=$root count=1 seek=1 conv=notrunc bs=128k + dd if=/boot/u-boot.img of=$root count=2 seek=1 conv=notrunc bs=384k + else + echo "You can do this later by running:" + flash_instructions + fi + else + echo "Flash the new U-Boot version onto your boot device. For example:" + flash_instructions + fi + extlinux_warning +} + +post_install() { + flash_uboot +} + +post_upgrade() { + flash_uboot +} |