diff options
Diffstat (limited to 'libre/uboot4extlinux-wandboard')
4 files changed, 274 insertions, 0 deletions
diff --git a/libre/uboot4extlinux-wandboard/0001-parabola-arm-modifications.patch b/libre/uboot4extlinux-wandboard/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..c50ca9e00 --- /dev/null +++ b/libre/uboot4extlinux-wandboard/0001-parabola-arm-modifications.patch @@ -0,0 +1,153 @@ +diff -Nur u-boot-2015.10.orig/include/configs/mx6_common.h u-boot-2015.10/include/configs/mx6_common.h +--- u-boot-2015.10.orig/include/configs/mx6_common.h 2015-10-19 20:59:38.000000000 -0300 ++++ u-boot-2015.10/include/configs/mx6_common.h 2016-02-26 20:52:16.196805960 -0300 +@@ -68,7 +68,7 @@ + #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR + + #ifndef CONFIG_BOOTDELAY +-#define CONFIG_BOOTDELAY 3 ++#define CONFIG_BOOTDELAY 1 + #endif + + /* allow to overwrite serial and ethaddr */ +@@ -82,6 +82,8 @@ + #define CONFIG_SUPPORT_RAW_INITRD + #define CONFIG_CMD_FS_GENERIC + #define CONFIG_DOS_PARTITION ++#define CONFIG_CMD_PART ++#define CONFIG_PARTITION_UUIDS + #define CONFIG_CMD_EXT2 + #define CONFIG_CMD_EXT4 + #define CONFIG_CMD_EXT4_WRITE +diff -Nur u-boot-2015.10.orig/include/configs/wandboard.h u-boot-2015.10/include/configs/wandboard.h +--- u-boot-2015.10.orig/include/configs/wandboard.h 2015-10-19 20:59:38.000000000 -0300 ++++ u-boot-2015.10/include/configs/wandboard.h 2016-02-26 20:55:20.041265918 -0300 +@@ -86,19 +86,33 @@ + #define CONFIG_IMX_HDMI + #define CONFIG_IMX_VIDEO_SKIP + ++#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" ++ ++/* Enable Extlinux boot support */ ++#define CONFIG_CMD_PXE ++#define CONFIG_MENU ++#define BOOT_TARGET_DEVICES(func) ++#include <config_distro_bootcmd.h> ++ + #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG + #define CONFIG_EXTRA_ENV_SETTINGS \ ++ BOOTENV \ + "script=boot.scr\0" \ + "image=zImage\0" \ ++ "bootdir=/boot\0" \ + "console=ttymxc0\0" \ + "splashpos=m,m\0" \ + "fdtfile=undefined\0" \ ++ "fdtdir=/boot/dtbs\0" \ + "fdt_high=0xffffffff\0" \ + "initrd_high=0xffffffff\0" \ + "fdt_addr=0x18000000\0" \ ++ "rdaddr=0x12A00000\0" \ ++ "rdfile=initramfs-linux.img\0" \ + "boot_fdt=try\0" \ ++ "optargs=\0" \ + "ip_dyn=yes\0" \ +- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ ++ "mmcdev=0\0" \ + "mmcpart=1\0" \ + "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "update_sd_firmware_filename=u-boot.imx\0" \ +@@ -116,7 +130,9 @@ + "fi; " \ + "fi\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ +- "root=${mmcroot}; run videoargs\0" \ ++ "${optargs} " \ ++ "root=${root} " \ ++ "video=${video}\0" \ + "videoargs=" \ + "setenv nextcon 0; " \ + "if hdmidet; then " \ +@@ -143,27 +159,44 @@ + "echo '- no FWBADAPT-7WVGA-LCD-F07A-0102 display';" \ + "fi; " \ + "setenv bootargs ${bootargs} ${fbmem}\0" \ +- "loadbootscript=" \ +- "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ +- "bootscript=echo Running bootscript from mmc ...; " \ +- "source\0" \ +- "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ +- "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile}\0" \ +- "mmcboot=echo Booting from mmc ...; " \ +- "run mmcargs; " \ +- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ +- "if run loadfdt; then " \ +- "bootz ${loadaddr} - ${fdt_addr}; " \ +- "else " \ +- "if test ${boot_fdt} = try; then " \ +- "bootz; " \ ++ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${image}\0" \ ++ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ ++ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdt_addr} ${fdtdir}/${fdtfile}\0" \ ++ "mmcboot=usb start;" \ ++ "for devtype in mmc usb; do " \ ++ "setenv devnum 0;" \ ++ "while ${devtype} dev ${devnum}; do " \ ++ "echo ${devtype} found on device ${devnum};" \ ++ "setenv bootpart ${devnum}:1;" \ ++ "part uuid ${devtype} ${bootpart} uuid;" \ ++ "setenv root PARTUUID=${uuid} rw rootwait;" \ ++ "echo Checking for: ${bootdir}/uEnv.txt ...;" \ ++ "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;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi;" \ ++ "run scan_dev_for_boot;" \ ++ "if run loadimage; then " \ ++ "run mmcargs;" \ ++ "if run loadfdt; then " \ ++ "if run loadrd; then " \ ++ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdt_addr};" \ ++ "else " \ ++ "bootz ${loadaddr} - ${fdt_addr};" \ ++ "fi;" \ ++ "fi;" \ + "else " \ +- "echo WARN: Cannot load the DT; " \ +- "fi; " \ +- "fi; " \ +- "else " \ +- "bootz; " \ +- "fi;\0" \ ++ "echo No kernel found;" \ ++ "fi;" \ ++ "setexpr devnum ${devnum} + 1;" \ ++ "done;" \ ++ "done;\0" \ + "netargs=setenv bootargs console=${console},${baudrate} " \ + "root=/dev/nfs " \ + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ +@@ -202,16 +235,7 @@ + + #define CONFIG_BOOTCOMMAND \ + "run findfdt; " \ +- "mmc dev ${mmcdev}; if mmc rescan; then " \ +- "if run loadbootscript; then " \ +- "run bootscript; " \ +- "else " \ +- "if run loadimage; then " \ +- "run mmcboot; " \ +- "else run netboot; " \ +- "fi; " \ +- "fi; " \ +- "else run netboot; fi" ++ "run mmcboot;" + + /* Physical Memory Map */ + #define CONFIG_NR_DRAM_BANKS 1 diff --git a/libre/uboot4extlinux-wandboard/PKGBUILD b/libre/uboot4extlinux-wandboard/PKGBUILD new file mode 100644 index 000000000..b97e0b1df --- /dev/null +++ b/libre/uboot4extlinux-wandboard/PKGBUILD @@ -0,0 +1,46 @@ +# U-Boot: Wandboard +# Maintainer: André Silva <emulatorman@parabola.nu> + +buildarch=4 + +pkgname=uboot4extlinux-wandboard +pkgver=2015.10 +pkgrel=1 +pkgdesc="U-Boot with Extlinux support for Wandboard" +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +license=('GPL') +makedepends=('bc') +replaces=('uboot-wandboard-solo' 'uboot-wandboard-dual' 'uboot-wandboard-quad' 'uboot-wandboard' 'uboot-wandboard-linux-libre') +conflicts=('uboot-wandboard' 'uboot-wandboard-linux-libre' 'uboot4grub-wandboard') +install=${pkgname}.install +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" + '0001-parabola-arm-modifications.patch' + 'extlinux.conf') +md5sums=('7c203b0fc3390a122d8e8b75f147eac5' + 'b456e16c44508868ce6d265da625d768' + '3367c0142a98a62fed243be74f5c465d') + +prepare() { + cd u-boot-${pkgver} + patch -Np1 -i ../0001-parabola-arm-modifications.patch +} + +build() { + cd u-boot-${pkgver} + + unset LDFLAGS + + make distclean + make wandboard_defconfig + make +} + +package() { + cd u-boot-${pkgver} + mkdir -p "${pkgdir}"/boot/extlinux + + mkdir -p "${pkgdir}"/boot + cp SPL u-boot.img "${pkgdir}"/boot + cp "${srcdir}"/extlinux.conf "${pkgdir}"/boot/extlinux +} diff --git a/libre/uboot4extlinux-wandboard/extlinux.conf b/libre/uboot4extlinux-wandboard/extlinux.conf new file mode 100644 index 000000000..16cc3a38f --- /dev/null +++ b/libre/uboot4extlinux-wandboard/extlinux.conf @@ -0,0 +1,46 @@ +menu title Welcome to U-Boot with Extlinux support! + +label Parabola GNU/Linux-libre, linux-libre kernel + kernel /boot/vmlinuz-linux-libre + append root=/dev/mmcblk0p2 rw console=ttymxc0 + fdtdir /boot/dtbs/linux-libre + +#label Parabola GNU/Linux-libre, linux-libre-lts kernel +# kernel /boot/vmlinuz-linux-libre-lts +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-lts + +#label Parabola GNU/Linux-libre, linux-libre-knock kernel +# kernel /boot/vmlinuz-linux-libre-knock +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# 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/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-lts-knock + +#label Parabola GNU/Linux-libre, linux-libre-grsec kernel +# kernel /boot/vmlinuz-linux-libre-grsec +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-grsec + +#label Parabola GNU/Linux-libre, linux-libre-grsec-knock kernel +# kernel /boot/vmlinuz-linux-libre-grsec-knock +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-grsec-knock + +#label Parabola GNU/Linux-libre, linux-libre-audit kernel +# kernel /boot/vmlinuz-linux-libre-audit +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-audit + +#label Parabola GNU/Linux-libre, linux-libre-pck kernel +# kernel /boot/vmlinuz-linux-libre-pck +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-pck + +#label Parabola GNU/Linux-libre, linux-libre-rt kernel +# kernel /boot/vmlinuz-linux-libre-rt +# append root=/dev/mmcblk0p2 rw console=ttymxc0 +# fdtdir /boot/dtbs/linux-libre-rt diff --git a/libre/uboot4extlinux-wandboard/uboot4extlinux-wandboard.install b/libre/uboot4extlinux-wandboard/uboot4extlinux-wandboard.install new file mode 100644 index 000000000..ddfb5c83f --- /dev/null +++ b/libre/uboot4extlinux-wandboard/uboot4extlinux-wandboard.install @@ -0,0 +1,29 @@ +extlinux_warning() { + echo "==> WARNING: U-Boot uses Extlinux support to boot up. For setting it up, edit /boot/extlinux/extlinux.conf" +} + +flash_uboot() { + echo "A new U-Boot version needs to be flashed onto /dev/mmcblk0." + echo "Do this now? [y|N]" + read -r shouldwe + if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then + dd if=/boot/SPL of=/dev/mmcblk0 seek=1 bs=1k + dd if=/boot/u-boot.img of=/dev/mmcblk0 seek=69 bs=1k + else + echo "You can do this later by running:" + echo "# dd if=/boot/SPL of=/dev/mmcblk0 seek=1 bs=1k" + echo "# dd if=/boot/u-boot.img of=/dev/mmcblk0 seek=69 bs=1k" + fi + extlinux_warning +} + +## arg 1: the new package version +post_install() { + flash_uboot +} + +## arg 1: the new package version +## arg 2: the old package version +post_upgrade() { + flash_uboot +} |