diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-02-24 12:21:32 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-02-24 12:21:32 -0300 |
commit | b4969e199acb9c27641f860eb3cad33013a23cd6 (patch) | |
tree | 3cca9287c1772c2203f1fab60fd25132b92db7be | |
parent | b68e91f1a5d6bbda6bcb72368c33fa5a1bef6653 (diff) | |
download | abslibre-b4969e199acb9c27641f860eb3cad33013a23cd6.tar.gz abslibre-b4969e199acb9c27641f860eb3cad33013a23cd6.tar.bz2 abslibre-b4969e199acb9c27641f860eb3cad33013a23cd6.zip |
uboot-am335x_bone-2015.04-5.1: use patch based on Arch ARM to add Extlinux support
-rw-r--r-- | libre-testing/uboot-am335x_bone/0001-parabola-arm-modifications.patch | 243 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/PKGBUILD | 53 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/extlinux.conf | 46 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/uEnv.txt | 1 | ||||
-rw-r--r-- | libre-testing/uboot-am335x_bone/uboot-am335x_bone.install | 37 |
5 files changed, 380 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..0f1c145da --- /dev/null +++ b/libre-testing/uboot-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/uboot-am335x_bone/PKGBUILD b/libre-testing/uboot-am335x_bone/PKGBUILD new file mode 100644 index 000000000..2870d2e82 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/PKGBUILD @@ -0,0 +1,53 @@ +# U-Boot: BeagleBone and BeagleBone Black +# Maintainer: André Silva <emulatorman@parabola.nu> +# Contributor: Jookia <166291@gmail.com> +# Contributor: Márcio Silva <coadde@parabola.nu> + +buildarch=4 + +pkgname=uboot-am335x_bone +pkgver=2015.04 +pkgrel=5.1 +pkgdesc="U-Boot for BeagleBone and BeagleBone Black" +arch=('armv7h') +url="http://git.denx.de/u-boot.git/" +replaces=('uboot-beaglebone-linux-libre' 'uboot-beaglebone-linux-libre-lts' + 'uboot-beaglebone-linux-libre-grsec' 'uboot-beaglebone-linux-libre-pck' + 'uboot-beaglebone') +conflicts=('uboot-beaglebone-linux-libre' 'uboot-beaglebone-linux-libre-lts' + 'uboot-beaglebone-linux-libre-grsec' 'uboot-beaglebone-linux-libre-pck' + 'uboot-beaglebone' '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' + 'extlinux.conf' + 'uEnv.txt') +md5sums=('570bdc2c47270c2a98ca60ff6c5c74cd' + '37784c8f8f52a615d65e775018d237fb' + '068f6b4e8047115e73f29af5f384889b' + '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..52de94d49 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/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/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-grsec kernel +# kernel /boot/vmlinuz-linux-libre-grsec +# append root=/dev/mmcblk0p1 rw console=ttyO0,115200n8 +# 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/mmcblk0p1 rw console=ttyO0,115200n8 +# 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/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 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..6428bd269 --- /dev/null +++ b/libre-testing/uboot-am335x_bone/uboot-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: for new entries, edit /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 +} |