diff options
Diffstat (limited to 'libre/uboot-wandboard-linux-libre')
3 files changed, 308 insertions, 0 deletions
diff --git a/libre/uboot-wandboard-linux-libre/0001-parabola-arm-modifications.patch b/libre/uboot-wandboard-linux-libre/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..ac1170ecf --- /dev/null +++ b/libre/uboot-wandboard-linux-libre/0001-parabola-arm-modifications.patch @@ -0,0 +1,216 @@ +From 8e362b4b2efcf028c06d04f7188b49503ca81ef5 Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich <kevin@archlinuxarm.org> +Date: Sun, 7 Jun 2015 10:32:52 -0600 +Subject: [PATCH] arch linux arm modifications + +Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> +--- + include/configs/wandboard.h | 129 +++++++++++++++++++++++--------------------- + 1 file changed, 67 insertions(+), 62 deletions(-) + +diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h +index b586803..542ed8b 100644 +--- a/include/configs/wandboard.h ++++ b/include/configs/wandboard.h +@@ -51,7 +51,7 @@ + #define CONFIG_CMD_BMODE + #define CONFIG_CMD_SETEXPR + +-#define CONFIG_BOOTDELAY 5 ++#define CONFIG_BOOTDELAY 1 + + #define CONFIG_SYS_MEMTEST_START 0x10000000 + #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) +@@ -76,7 +76,11 @@ + #define CONFIG_BOUNCE_BUFFER + #define CONFIG_CMD_EXT2 + #define CONFIG_CMD_FAT ++#define CONFIG_CMD_EXT4 ++#define CONFIG_CMD_FS_GENERIC + #define CONFIG_DOS_PARTITION ++#define CONFIG_CMD_PART ++#define CONFIG_PARTITION_UUIDS + + /* USB Configs */ + #define CONFIG_CMD_USB +@@ -124,6 +128,8 @@ + #define CONFIG_MXC_OCOTP + #endif + ++#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre" ++ + #if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S) + #define CONFIG_DEFAULT_FDT_FILE "imx6dl-wandboard.dtb" + #elif defined(CONFIG_MX6Q) +@@ -131,42 +137,33 @@ + #endif + + #define CONFIG_EXTRA_ENV_SETTINGS \ +- "script=boot.scr\0" \ +- "image=zImage\0" \ +- "console=ttymxc0\0" \ ++ "bootfile=vmlinuz-linux-libre\0" \ ++ "bootdir=/boot\0" \ ++ "console=ttymxc0,115200\0" \ + "splashpos=m,m\0" \ + "fdt_high=0xffffffff\0" \ ++ "rdaddr=0x12A00000\0" \ ++ "rdfile=initramfs-linux-libre.img\0" \ + "initrd_high=0xffffffff\0" \ +- "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ +- "fdt_addr=0x18000000\0" \ +- "boot_fdt=try\0" \ ++ "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ ++ "fdtdir=/boot/dtbs/linux-libre\0" \ ++ "fdtaddr=0x18000000\0" \ + "ip_dyn=yes\0" \ +- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ +- "mmcpart=1\0" \ +- "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ +- "update_sd_firmware_filename=u-boot.imx\0" \ +- "update_sd_firmware=" \ +- "if test ${ip_dyn} = yes; then " \ +- "setenv get_cmd dhcp; " \ +- "else " \ +- "setenv get_cmd tftp; " \ +- "fi; " \ +- "if mmc dev ${mmcdev}; then " \ +- "if ${get_cmd} ${update_sd_firmware_filename}; then " \ +- "setexpr fw_sz ${filesize} / 0x200; " \ +- "setexpr fw_sz ${fw_sz} + 1; " \ +- "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ +- "fi; " \ +- "fi\0" \ +- "mmcargs=setenv bootargs console=${console},${baudrate} " \ +- "root=${mmcroot}; run videoargs\0" \ ++ "optargs=\0" \ ++ "video=\0" \ ++ "mmcdev=0\0" \ ++ "mmcroot=/dev/mmcblk0p1 rw rootwait\0" \ ++ "mmcargs=setenv bootargs console=${console} " \ ++ "${optargs} " \ ++ "root=${root} " \ ++ "video=${video}\0" \ + "videoargs=" \ + "setenv nextcon 0; " \ + "if hdmidet; then " \ + "setenv bootargs ${bootargs} " \ + "video=mxcfb${nextcon}:dev=hdmi,1280x720M@60," \ + "if=RGB24; " \ +- "setenv fbmen fbmem=28M; " \ ++ "setenv fbmem fbmem=28M; " \ + "setexpr nextcon ${nextcon} + 1; " \ + "else " \ + "echo - no HDMI monitor;" \ +@@ -186,41 +183,57 @@ + "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} ${fdt_file}\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}/${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 " \ ++ "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}/uboot-wandboard-linux-libre/uEnv.txt ...;" \ ++ "if test -e ${devtype} ${bootpart} ${bootdir}/uboot-wandboard-linux-libre/uEnv.txt; then " \ ++ "load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uboot-wandboard-linux-libre/uEnv.txt;" \ ++ "env import -t ${loadaddr} ${filesize};" \ ++ "echo Loaded environment from ${bootdir}/uboot-wandboard-linux-libre/uEnv.txt;" \ ++ "echo Checking if uenvcmd is set ...;" \ ++ "if test -n ${uenvcmd}; then " \ ++ "echo Running uenvcmd ...;" \ ++ "run uenvcmd;" \ ++ "fi;" \ ++ "fi;" \ ++ "if run loadimage; then " \ ++ "run mmcargs;" \ ++ "if run loadfdt; then " \ ++ "if run loadrd; then " \ ++ "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ ++ "else " \ ++ "bootz ${loadaddr} - ${fdtaddr};" \ ++ "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" \ +- "netboot=echo Booting from net ...; " \ ++ "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ ++ "netboot=echo Booting from net ...; " \ + "run netargs; " \ + "if test ${ip_dyn} = yes; then " \ + "setenv get_cmd dhcp; " \ + "else " \ + "setenv get_cmd tftp; " \ + "fi; " \ +- "${get_cmd} ${image}; " \ ++ "${get_cmd} ${bootfile}; " \ + "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ +- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ +- "bootz ${loadaddr} - ${fdt_addr}; " \ ++ "if ${get_cmd} ${fdtaddr} ${fdtfile}; then " \ ++ "bootz ${loadaddr} - ${fdtaddr}; " \ + "else " \ + "if test ${boot_fdt} = try; then " \ + "bootz; " \ +@@ -233,16 +246,7 @@ + "fi;\0" + + #define CONFIG_BOOTCOMMAND \ +- "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;" + + /* Miscellaneous configurable options */ + #define CONFIG_SYS_LONGHELP +@@ -280,6 +284,7 @@ + + #define CONFIG_OF_LIBFDT + #define CONFIG_CMD_BOOTZ ++#define CONFIG_SUPPORT_RAW_INITRD + + #ifndef CONFIG_SYS_DCACHE_OFF + #define CONFIG_CMD_CACHE +-- +2.4.2 + diff --git a/libre/uboot-wandboard-linux-libre/PKGBUILD b/libre/uboot-wandboard-linux-libre/PKGBUILD new file mode 100644 index 000000000..eb580836e --- /dev/null +++ b/libre/uboot-wandboard-linux-libre/PKGBUILD @@ -0,0 +1,69 @@ +# U-Boot: Wandboard +# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org> +# Maintainer: André Silva <emulatorman@parabola.nu> + +buildarch=4 + +_pkgbase=linux-libre +pkgbase=uboot-wandboard-${_pkgbase} +pkgname=("uboot-wandboard-solo-${_pkgbase}" "uboot-wandboard-dual-${_pkgbase}" "uboot-wandboard-quad-${_pkgbase}") +pkgver=2015.04 +pkgrel=1 +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +license=('GPL') +makedepends=('bc') +depends=('linux-libre') +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" + '0001-parabola-arm-modifications.patch') +md5sums=('570bdc2c47270c2a98ca60ff6c5c74cd' + '7b1bcd38116d27e450705948cb8a87a7') + +prepare() { + cd u-boot-${pkgver} + patch -Np1 -i ../0001-parabola-arm-modifications.patch +} + +build() { + cd u-boot-${pkgver} + + unset LDFLAGS + + mkdir bins + for i in solo dl quad; do + make distclean + make wandboard_${i}_config + make + mv u-boot.imx bins/u-boot-${i}.imx + done +} + +package_uboot-wandboard-solo-linux-libre() { + pkgdesc="U-Boot for Wandboard Solo (built for the linux-libre kernel package)" + conflicts=('uboot-wandboard-dual' 'uboot-wandboard-quad') + replaces=('uboot-wandboard-solo') + install=${pkgbase}.install + + mkdir -p "${pkgdir}/boot/${pkgname}" + cp u-boot-${pkgver}/bins/u-boot-solo.imx "${pkgdir}/boot/${pkgname}"/u-boot.imx +} + +package_uboot-wandboard-dual-linux-libre() { + pkgdesc="U-Boot for Wandboard Dual (built for the linux-libre kernel package)" + conflicts=('uboot-wandboard-solo' 'uboot-wandboard-quad') + replaces=('uboot-wandboard-dual') + install=${pkgbase}.install + + mkdir -p "${pkgdir}/boot/${pkgname}" + cp u-boot-${pkgver}/bins/u-boot-dl.imx "${pkgdir}/boot/${pkgname}"/u-boot.imx +} + +package_uboot-wandboard-quad-linux-libre() { + pkgdesc="U-Boot for Wandboard Quad (built for the linux-libre kernel package)" + conflicts=('uboot-wandboard-solo' 'uboot-wandboard-dual') + replaces=('uboot-wandboard-quad') + install=${pkgbase}.install + + mkdir -p "${pkgdir}/boot/${pkgname}" + cp u-boot-${pkgver}/bins/u-boot-quad.imx "${pkgdir}/boot/${pkgname}"/u-boot.imx +} diff --git a/libre/uboot-wandboard-linux-libre/uboot-wandboard-linux-libre.install b/libre/uboot-wandboard-linux-libre/uboot-wandboard-linux-libre.install new file mode 100644 index 000000000..2166fcfc6 --- /dev/null +++ b/libre/uboot-wandboard-linux-libre/uboot-wandboard-linux-libre.install @@ -0,0 +1,23 @@ +flash_uboot() { + echo "A new U-Boot version needs to be flashed onto /dev/mmcblk0." + echo "Do you want to do this now? [y|N]" + read -r shouldwe + if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then + dd if=/boot/boot-wandboard-linux-libre/u-boot.imx of=/dev/mmcblk0 bs=512 seek=2 + sync + else + echo "You can do this later by running:" + echo "# dd if=/boot/boot-wandboard-linux-libre/u-boot.imx of=/dev/mmcblk0 bs=512 seek=2" + fi +} + +## 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 +} |