diff --git a/alarm/uboot-beaglebone/0001-arch-linux-arm-modifications.patch b/alarm/uboot-beaglebone/0001-arch-linux-arm-modifications.patch index edbe63e1a..dfa8548b0 100644 --- a/alarm/uboot-beaglebone/0001-arch-linux-arm-modifications.patch +++ b/alarm/uboot-beaglebone/0001-arch-linux-arm-modifications.patch @@ -1,29 +1,27 @@ -From d9630c16380114a8b6f6e48a43c72786c5cbadbd Mon Sep 17 00:00:00 2001 +From 02714f8c47a6500209907afcc6faf8823e55c0ca Mon Sep 17 00:00:00 2001 From: Kevin Mihelich -Date: Sun, 7 Jun 2015 16:37:53 -0600 +Date: Mon, 14 Aug 2017 18:37:05 -0600 Subject: [PATCH] arch linux arm modifications -Signed-off-by: Kevin Mihelich --- - configs/am335x_evm_defconfig | 3 +- - include/configs/am335x_evm.h | 167 ++++++++++++++++++------------------------- - 2 files changed, 70 insertions(+), 100 deletions(-) + configs/am335x_boneblack_defconfig | 1 - + include/configs/am335x_evm.h | 8 +++++--- + 2 files changed, 5 insertions(+), 4 deletions(-) -diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig -index 968d041..3406926 100644 ---- a/configs/am335x_evm_defconfig -+++ b/configs/am335x_evm_defconfig -@@ -1,7 +1,6 @@ - CONFIG_SPL=y - CONFIG_SPL_STACK_R=y +diff --git a/configs/am335x_boneblack_defconfig b/configs/am335x_boneblack_defconfig +index 3d86c1b34e..b8a72e57df 100644 +--- a/configs/am335x_boneblack_defconfig ++++ b/configs/am335x_boneblack_defconfig +@@ -5,7 +5,6 @@ CONFIG_AM33XX=y + # CONFIG_SPL_NAND_SUPPORT is not set 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 + CONFIG_DISTRO_DEFAULTS=y +-CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT" + CONFIG_SYS_CONSOLE_INFO_QUIET=y + CONFIG_VERSION_VARIABLE=y + CONFIG_ARCH_MISC_INIT=y diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h -index a87059c..e68e848 100644 +index 0c6d2880da..9afc46411d 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -17,6 +17,7 @@ @@ -33,216 +31,29 @@ index a87059c..e68e848 100644 +#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 + # define CONFIG_TIMESTAMP +@@ -76,10 +77,7 @@ - #ifdef CONFIG_NAND - #define NANDARGS \ -@@ -70,110 +74,79 @@ - #ifndef CONFIG_SPL_BUILD - #define CONFIG_EXTRA_ENV_SETTINGS \ - 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;" \ -+ "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 +158,11 @@ - #endif + #define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ +- func(LEGACY_MMC, legacy_mmc, 0) \ + func(MMC, mmc, 1) \ +- func(LEGACY_MMC, legacy_mmc, 1) \ +- func(NAND, nand, 0) \ + func(PXE, pxe, na) \ + func(DHCP, dhcp, na) - #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 +301,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 +@@ -87,6 +85,10 @@ + "if test ${boot_fit} -eq 1; then " \ + "run update_to_fit;" \ + "fi;" \ ++ "gpio clear 54; " \ ++ "gpio clear 55; " \ ++ "gpio clear 56; " \ ++ "gpio set 53; " \ + "run findfdt; " \ + "run init_console; " \ + "run envboot; " \ -- -2.4.2 +2.14.1 diff --git a/alarm/uboot-beaglebone/PKGBUILD b/alarm/uboot-beaglebone/PKGBUILD index e14c0970c..324700a01 100644 --- a/alarm/uboot-beaglebone/PKGBUILD +++ b/alarm/uboot-beaglebone/PKGBUILD @@ -4,38 +4,45 @@ buildarch=4 pkgname=uboot-beaglebone -pkgver=2015.04 +pkgver=2017.07 pkgrel=1 pkgdesc="U-Boot for Beaglebone and Beaglebone Black" arch=('armv7h') url="http://git.denx.de/u-boot.git/" -makedepends=('git' 'bc') +makedepends=('bc' 'dtc' 'git') license=('GPL') install=${pkgname}.install -source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" +backup=('boot/boot.txt' 'boot/boot.scr') +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver/rc/-rc}.tar.bz2" '0001-arch-linux-arm-modifications.patch' - 'uEnv.txt') -md5sums=('570bdc2c47270c2a98ca60ff6c5c74cd' - 'b09551195d8c45ab7c0ec5df8d66e522' - 'ccb79775b81654e16fca18825c7f2506') + 'boot.txt' + 'mkscr') +md5sums=('b74741e7a9ad1cf9a5bfa87302b80f2b' + 'a0bc17acb85fc3f04f74f6a87453ac97' + 'd9fd8313c6e8b6d217676a69c3813a95' + '021623a04afd29ac3f368977140cfbfd') prepare() { - cd u-boot-${pkgver} + cd u-boot-${pkgver/rc/-rc} git apply ../0001-arch-linux-arm-modifications.patch } build() { - cd u-boot-${pkgver} + cd u-boot-${pkgver/rc/-rc} unset CFLAGS CXXFLAGS LDFLAGS make distclean - make am335x_evm_config - make + make am335x_boneblack_defconfig + echo 'CONFIG_IDENT_STRING=" Arch Linux ARM"' >> .config + make EXTRAVERSION=-${pkgrel} } package() { - cd u-boot-${pkgver} + cd u-boot-${pkgver/rc/-rc} mkdir -p "${pkgdir}"/boot - cp MLO u-boot.img "${srcdir}"/uEnv.txt "${pkgdir}"/boot + cp MLO u-boot.img "${pkgdir}"/boot + + tools/mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d ../boot.txt "${pkgdir}"/boot/boot.scr + cp ../{boot.txt,mkscr} "${pkgdir}"/boot } diff --git a/alarm/uboot-beaglebone/boot.txt b/alarm/uboot-beaglebone/boot.txt new file mode 100644 index 000000000..85569002f --- /dev/null +++ b/alarm/uboot-beaglebone/boot.txt @@ -0,0 +1,21 @@ +# After modifying, run ./mkscr + +if test -n ${distro_bootpart}; then setenv bootpart ${distro_bootpart}; else setenv bootpart 1; fi +part uuid ${devtype} ${devnum}:${bootpart} uuid + +setenv bootargs "console=tty0 console=${console} root=PARTUUID=${uuid} rw rootwait" + +if load ${devtype} ${devnum}:${bootpart} ${kernel_addr_r} /boot/zImage; then + gpio set 54 + echo fdt: ${fdtfile} + if load ${devtype} ${devnum}:${bootpart} ${fdt_addr_r} /boot/dtbs/${fdtfile}; then + gpio set 55 + if load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} /boot/initramfs-linux.img; then + gpio set 56 + bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}; + else + gpio set 56 + bootz ${kernel_addr_r} - ${fdt_addr_r}; + fi; + fi; +fi diff --git a/alarm/uboot-beaglebone/mkscr b/alarm/uboot-beaglebone/mkscr new file mode 100755 index 000000000..272b6a7a5 --- /dev/null +++ b/alarm/uboot-beaglebone/mkscr @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ ! -x /usr/bin/mkimage ]]; then + echo "mkimage not found. Please install uboot-tools:" + echo " pacman -S uboot-tools" + exit 1 +fi + +mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d boot.txt boot.scr diff --git a/alarm/uboot-beaglebone/uEnv.txt b/alarm/uboot-beaglebone/uEnv.txt deleted file mode 100644 index f432efc6b..000000000 --- a/alarm/uboot-beaglebone/uEnv.txt +++ /dev/null @@ -1 +0,0 @@ -optargs=coherent_pool=1M diff --git a/alarm/uboot-beaglebone/uboot-beaglebone.install b/alarm/uboot-beaglebone/uboot-beaglebone.install index 24ccc1acb..3a1a9daed 100644 --- a/alarm/uboot-beaglebone/uboot-beaglebone.install +++ b/alarm/uboot-beaglebone/uboot-beaglebone.install @@ -29,4 +29,8 @@ post_install() { post_upgrade() { flash_uboot + if (( $(vercmp $2 2017.07-1) < 0 )); then + echo ' >>> Note: uEnv.txt is no longer sourced. Make any customizations within /boot/boot.txt' + echo ' and run ./mkscr within /boot to convert it to the boot.scr file.' + fi }