diff options
-rw-r--r-- | libre-testing/uboot-am335x_bone/0001-parabola-arm-modifications.patch | 232 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/PKGBUILD | 47 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/extlinux.conf | 34 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/uEnv.txt | 1 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/uboot-am335x_bone.install | 32 |
5 files changed, 346 insertions, 0 deletions
diff --git a/libre-testing/uboot-am335x_bone/0001-parabola-arm-modifications.patch b/libre-testing/uboot-am335x_bone/0001-parabola-arm-modifications.patch new file mode 100644 index 000000000..062ec61c3 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/0001-parabola-arm-modifications.patch @@ -0,0 +1,232 @@ +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-21 22:12:00.228331339 -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-21 22:49:46.009920163 -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,130 +71,80 @@ + + #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> ++ ++/* ++ * 512M RAM (512M minimum minus space for the framebuffer), ++ * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, ++ * 1M script, 1M pxe and the ramdisk at the end. ++ */ ++#define MEM_LAYOUT_ENV_SETTINGS \ ++ "bootm_size=0x10000000\0" \ ++ "kernel_addr_r=0x82000000\0" \ ++ "fdt_addr_r=0x88000000\0" \ ++ "scriptaddr=0x43100000\0" \ ++ "pxefile_addr_r=0x43200000\0" \ ++ "ramdisk_addr_r=0x88080000\0" ++ + #ifndef CONFIG_SPL_BUILD + #define CONFIG_EXTRA_ENV_SETTINGS \ + DEFAULT_LINUX_BOOT_ENV \ +- "boot_fdt=try\0" \ +- "bootpart=0:2\0" \ ++ MEM_LAYOUT_ENV_SETTINGS \ ++ "bootpart=0:1\0" \ + "bootdir=/boot\0" \ +- "bootfile=zImage\0" \ +- "fdtfile=undefined\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;" \ +- "fi;" \ +- "if test -n $uenvcmd; then " \ +- "echo Running uenvcmd ...;" \ +- "run uenvcmd;" \ ++ "${cape_disable} " \ ++ "${cape_enable} " \ ++ "root=${root} " \ ++ "${cmdline}\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;" \ ++ "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;" \ ++ "gpio clear 54; gpio clear 55;" \ ++ "setexpr devnum ${devnum} + 1;" \ + "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" \ +- "findfdt="\ +- "if test $board_name = A335BONE; then " \ +- "setenv fdtfile am335x-bone.dtb; fi; " \ +- "if test $board_name = A335BNLT; then " \ +- "setenv fdtfile am335x-boneblack.dtb; fi; " \ +- "if test $board_name = A33515BB; then " \ +- "setenv fdtfile am335x-evm.dtb; fi; " \ +- "if test $board_name = A335X_SK; then " \ +- "setenv fdtfile am335x-evmsk.dtb; fi; " \ +- "if test $fdtfile = undefined; then " \ +- "echo WARNING: Could not determine device tree to use; fi; \0" \ ++ "done;" \ ++ "done;\0" \ + NANDARGS \ + DFUARGS + #endif + + #define CONFIG_BOOTCOMMAND \ +- "run findfdt; " \ +- "run mmcboot;" \ +- "setenv mmcdev 1; " \ +- "setenv bootpart 1:2; " \ ++ "gpio set 53;" \ + "run mmcboot;" \ +- "run nandboot;" ++ "gpio clear 54; gpio clear 55;" + + /* NS16550 Configuration */ + #define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */ +@@ -329,9 +283,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/uboot-am335x_bone/PKGBUILD b/libre-testing/uboot-am335x_bone/PKGBUILD new file mode 100644 index 000000000..bfce9b132 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/PKGBUILD @@ -0,0 +1,47 @@ +# U-Boot: BeagleBone and BeagleBone Black +# Maintainer: André Silva <emulatorman@parabola.nu> + +buildarch=4 + +pkgname=uboot-am335x_bone +pkgver=2015.04 +pkgrel=1 +pkgdesc="U-Boot for Beaglebone and Beaglebone Black" +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +replaces=('uboot-beaglebone') +conflicts=('uboot-beaglebone') +provides=('uboot-beaglebone') +makedepends=('bc') +license=('GPL') +install=${pkgname}.install +source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" + '0001-parabola-arm-modifications.patch' + 'extlinux.conf' + 'uEnv.txt') +md5sums=('570bdc2c47270c2a98ca60ff6c5c74cd' + '4f4078a4d5558a56a9144b7e8ed94fb5' + '9bf446920d4344d17eb0673b7a49701a' + 'ccb79775b81654e16fca18825c7f2506') + +prepare() { + cd u-boot-${pkgver} + patch -Np1 -i ../0001-parabola-arm-modifications.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/uboot-am335x_bone/extlinux.conf b/libre-testing/uboot-am335x_bone/extlinux.conf new file mode 100644 index 000000000..0273d81c3 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/extlinux.conf @@ -0,0 +1,34 @@ +# Config file +# /boot/extlinux/extlinux.conf + +DEFAULT parabola-boneblack +TIMEOUT 500 + +# Menu Configuration +UI menu.c32 + +# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu +MENU TITLE Parabola GNU/Linux-libre +MENU COLOR border 35;40 #ff777caa #a0000000 std +MENU COLOR title 1;35;40 #ff777caa #a0000000 std +MENU COLOR sel 7;35;47 #e0ffffff #20777caa all +MENU COLOR unsel 35;40 #ff777caa #a0000000 std +MENU COLOR help 35;40 #c0b2b2b2 #a0000000 std +MENU COLOR timeout_msg 35;40 #ff777caa #00000000 std +MENU COLOR timeout 1;35;40 #ff777caa #00000000 std +MENU COLOR msg07 35;40 #ff777caa #a0000000 std +MENU COLOR tabmsg 35;40 #ff777caa #00000000 std + +# Boot sections + +LABEL parabola-bone + MENU LABEL Parabola GNU/Linux-libre w/ linux-libre kernel for BeagleBone + LINUX /boot/vmlinuz-linux-libre + APPEND console=ttyO0,115200n8 console=tty1 loglevel=8 rootwait rw earlyprintk root=/dev/mmcblk0p1 + FDTDIR /boot/dtbs/linux-libre/am335x-bone.dtb + +LABEL parabola-boneblack + MENU LABEL Parabola GNU/Linux-libre w/ linux-libre kernel for BeagleBone Black + LINUX /boot/vmlinuz-linux-libre + APPEND console=ttyO0,115200n8 console=tty1 loglevel=8 rootwait rw earlyprintk root=/dev/mmcblk0p1 + FDTDIR /boot/dtbs/linux-libre/am335x-boneblack.dtb diff --git a/libre-testing/uboot-am335x_bone/uEnv.txt b/libre-testing/uboot-am335x_bone/uEnv.txt new file mode 100644 index 000000000..f432efc6b --- /dev/null +++ b/libre-testing/uboot-am335x_bone/uEnv.txt @@ -0,0 +1 @@ +optargs=coherent_pool=1M diff --git a/libre-testing/uboot-am335x_bone/uboot-am335x_bone.install b/libre-testing/uboot-am335x_bone/uboot-am335x_bone.install new file mode 100644 index 000000000..24ccc1acb --- /dev/null +++ b/libre-testing/uboot-am335x_bone/uboot-am335x_bone.install @@ -0,0 +1,32 @@ +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" +} + +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 +} + +post_install() { + flash_uboot +} + +post_upgrade() { + flash_uboot +} |