summaryrefslogtreecommitdiff
path: root/libre/uboot4extlinux-ti-soc
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-08-14 16:11:22 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2020-08-14 16:16:39 +0200
commit67c574bbda146dbaf74221f9c520973d633bab62 (patch)
tree4f1747297f7a26a7e62b0964fcc01afe20b0bd34 /libre/uboot4extlinux-ti-soc
parent17abe9678b3b6e0610fe40e67484d225bcddc706 (diff)
libre: Merge uboot4extlinux{am335x,omap3}, uboot-omap4_panda: into uboot4extlinux-ti-soc
uboot4extlinux-am335x and uboot4extlinux-omap3 were almost identical, the only difference was the extlinux.conf file. So they were migrated together in a single package for all TI SOCs. I think having a single package saves maintenance time: We only have one package to update for all the supported boards. One downside is that it can increase the compilation time, but in overal it probably saves a lot of time. Another downside is that we cannot test the package separately for each boards and have to test all the boards for each new update. However since we are very close to upstream u-boot, there is very few probability of having breakages that we don't know about. Factorizing the package can also increase confidence that it will work on the boards we don't have, by testing on the boards we have. For instance I've only been able to test this package on the following boards as I don't have any of the other boards: - Beagleboard XM - Beaglebone Green The support for the Pandaborad from uboot-omap4_panda was added along the way to furthurer unify u-boot packages. In addition the version was updated and some whitespace fixes were done. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'libre/uboot4extlinux-ti-soc')
-rw-r--r--libre/uboot4extlinux-ti-soc/0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch44
-rw-r--r--libre/uboot4extlinux-ti-soc/PKGBUILD168
-rw-r--r--libre/uboot4extlinux-ti-soc/extlinux-am335x.conf21
-rw-r--r--libre/uboot4extlinux-ti-soc/extlinux-omap.conf21
-rw-r--r--libre/uboot4extlinux-ti-soc/uboot4extlinux-ti-soc.install37
5 files changed, 291 insertions, 0 deletions
diff --git a/libre/uboot4extlinux-ti-soc/0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch b/libre/uboot4extlinux-ti-soc/0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch
new file mode 100644
index 000000000..d746bde6e
--- /dev/null
+++ b/libre/uboot4extlinux-ti-soc/0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch
@@ -0,0 +1,44 @@
+From a49275a3cc03970939585610ebcf3b3d7e547037 Mon Sep 17 00:00:00 2001
+From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+Date: Sat, 9 Nov 2019 18:53:40 +0100
+Subject: [PATCH] omap34xx: SPL: enable MMC raw boot with u-boot.img
+
+The following commit enabled raw SPL booting:
+ 22d90d560a omap3: Use raw SPL by default for mmc1
+but it was reverted by the following commit:
+ 821c89d38c Revert "omap3: Use raw SPL by default for mmc1"
+because SPL is unable to distinguish between RAW images and
+garbage.
+
+However if CONFIG_SPL_RAW_IMAGE_SUPPORT is disabled, SPL does
+identify if there is a valid image with spl_parse_image_header.
+
+With this change, and CONFIG_SPL_RAW_IMAGE_SUPPORT disabled,
+raw MMC boot will be tried first, and if it fails, it FS will
+be tried.
+
+The two scenarios have been tested on a BeagleBoard XM Revision C1.
+
+Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+---
+ arch/arm/mach-omap2/boot-common.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c
+index 734fa9d9e6..a48244e1c5 100644
+--- a/arch/arm/mach-omap2/boot-common.c
++++ b/arch/arm/mach-omap2/boot-common.c
+@@ -132,8 +132,10 @@ void save_omap_boot_params(void)
+ (boot_device <= MMC_BOOT_DEVICES_END)) {
+ switch (boot_device) {
+ case BOOT_DEVICE_MMC1:
++#ifdef CONFIG_SPL_RAW_IMAGE_SUPPORT
+ boot_mode = MMCSD_MODE_FS;
+ break;
++#endif
+ case BOOT_DEVICE_MMC2:
+ boot_mode = MMCSD_MODE_RAW;
+ break;
+--
+2.24.0
+
diff --git a/libre/uboot4extlinux-ti-soc/PKGBUILD b/libre/uboot4extlinux-ti-soc/PKGBUILD
new file mode 100644
index 000000000..c59c42bdb
--- /dev/null
+++ b/libre/uboot4extlinux-ti-soc/PKGBUILD
@@ -0,0 +1,168 @@
+# U-Boot: BeagleBoard, BeagleBone, BeagleBone Black
+# Maintainer: André Silva <emulatorman@hyperbola.info>
+# Contributor: Jookia <166291@gmail.com>
+# Contributor: Márcio Silva <coadde@hyperbola.info>
+
+pkgbase=uboot4extlinux-ti-soc
+pkgname=('uboot4extlinux-am335x_bone'
+ 'uboot4extlinux-chiliboard'
+ 'uboot4extlinux-omap3_beagle'
+ 'uboot4extlinux-omap4_panda')
+pkgver=2020.07
+pkgrel=1
+arch=('armv7h')
+url="http://git.denx.de/u-boot.git/"
+license=('GPL')
+makedepends=('bc' 'bison' 'dtc' 'flex' 'python' 'python2' 'swig')
+backup=(boot/extlinux/extlinux.conf)
+source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2"
+ '0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch'
+ 'extlinux-am335x.conf'
+ 'extlinux-omap.conf')
+sha256sums=('c1f5bf9ee6bb6e648edbf19ce2ca9452f614b08a9f886f1a566aa42e8cf05f6a'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+boards=('am335x_evm'
+ 'chiliboard'
+ 'omap3_beagle'
+ 'omap4_panda')
+
+prepare() {
+ cd u-boot-${pkgver}
+
+ # The default is 0x300 512b blocks which forces u-boot.img to be locarted at
+ # 384k on the microSD. As u-boot.img is big, it often goes over the 1MB empty
+ # space that is created by default when partitioning block devices. That
+ # corrupts the first partition. Using 0x200 leaves more space to u-boot.img
+ # and is well aligned to 128k.
+ for i in ${boards[@]}; do
+ echo 'CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200' >> \
+ configs/${i}_defconfig
+ done
+
+ # See the 0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch for
+ # rationale for this configuration
+ echo '# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set' >> \
+ configs/omap3_beagle_defconfig
+
+ # We want to enable users to use both RAW mode and filesystems to install
+ # u-boot, but as filesystems are more complicated due to constraints that
+ # need to be respected for it to work we default to raw block. This patch
+ # restores the ability of using RAW block mode on OMAP >= 2. RAW partitions
+ # have not been tested yet and may or may not work but they have constraints
+ # as well.
+ patch -Np1 -i ../0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch
+}
+
+build() {
+ cd u-boot-${pkgver}
+
+ unset CFLAGS CXXFLAGS LDFLAGS
+
+ for i in ${boards[@]}; do
+ mkdir -p ../bin_${i}
+ make distclean
+ make ${i}_defconfig
+ echo 'CONFIG_IDENT_STRING=" Parabola GNU/Linux-libre"' >> .config
+ make EXTRAVERSION=-${pkgrel}
+ mv -f MLO u-boot.img ../bin_${i}
+ done
+}
+
+package_uboot4extlinux-am335x_bone() {
+ pkgdesc="U-Boot with Extlinux support for various BeagleBones, the AM335x GP EVM and the EVM SK"
+
+ install=${pkgbase}.install
+ provides=('uboot4extlinux-am335x')
+ conflicts=('uboot-am335x_bone' 'uboot4grub-am335x_bone')
+
+ install -d "${pkgdir}"/boot/extlinux
+ install -d "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 \
+ bin_am335x_evm/MLO \
+ bin_am335x_evm/u-boot.img \
+ "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 extlinux-am335x.conf "${pkgdir}"/boot/extlinux/extlinux.conf
+
+ # Package documentation as well
+ install -d "${pkgdir}"/usr/share/doc/u-boot
+ # The README might move in doc/board/ at some point
+ install -Dm644 u-boot-${pkgver}/board/ti/am335x/README \
+ "${pkgdir}"/usr/share/doc/u-boot/am335x_bone.txt
+}
+
+package_uboot4extlinux-chiliboard() {
+ pkgdesc="U-Boot with Extlinux support for the ChiliBoard"
+
+ install=${pkgbase}.install
+ provides=('uboot4extlinux-am335x')
+ conflicts=('uboot-chiliboard')
+
+ install -d "${pkgdir}"/boot/extlinux
+ install -d "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 \
+ bin_chiliboard/MLO \
+ bin_chiliboard/u-boot.img \
+ "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 extlinux-am335x.conf "${pkgdir}"/boot/extlinux/extlinux.conf
+
+ # Package documentation as well
+ install -d "${pkgdir}"/usr/share/doc/u-boot
+ # The README might move in doc/board/ at some point
+ install -Dm644 u-boot-${pkgver}/board/grinn/chiliboard/README \
+ "${pkgdir}"/usr/share/doc/u-boot/chiliboard.txt
+}
+
+package_uboot4extlinux-omap3_beagle() {
+ pkgdesc="U-Boot with Extlinux support for various BeagleBoards"
+
+ install=${pkgbase}.install
+ provides=('uboot4extlinux-omap3')
+ conflicts=('grub-omap3_beagle'
+ 'grub-omap3_beagle_xm'
+ 'grub-omap3_beagle_xm_ab'
+ 'uboot-omap3_beagle')
+
+ install -d "${pkgdir}"/boot/extlinux
+ install -d "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 \
+ bin_omap3_beagle/MLO \
+ bin_omap3_beagle/u-boot.img \
+ "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 extlinux-omap.conf "${pkgdir}"/boot/extlinux/extlinux.conf
+
+ # Package documentation as well
+ install -d "${pkgdir}"/usr/share/doc/u-boot
+ # The README might be converted to ReStructuredText at some point and be moved because of that
+ install -Dm644 u-boot-${pkgver}/doc/README.omap3 "${pkgdir}"/usr/share/doc/u-boot/
+}
+
+package_uboot4extlinux-omap4_panda() {
+ pkgdesc="U-Boot with Extlinux support for the PandaBoard and PandaBoard ES"
+
+ install=${pkgbase}.install
+ provides=('uboot4extlinux-omap4_panda')
+
+ conflicts=('uboot4grub-omap4_panda'
+ 'uboot-omap4_panda'
+ 'uboot-pandaboard-linux-libre'
+ 'uboot-pandaboard')
+
+ install -d "${pkgdir}"/boot/extlinux
+ install -d "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 \
+ bin_omap4_panda/MLO \
+ bin_omap4_panda/u-boot.img \
+ "${pkgdir}"/boot/u-boot/images/
+
+ install -Dm644 extlinux-omap.conf "${pkgdir}"/boot/extlinux/extlinux.conf
+}
diff --git a/libre/uboot4extlinux-ti-soc/extlinux-am335x.conf b/libre/uboot4extlinux-ti-soc/extlinux-am335x.conf
new file mode 100644
index 000000000..86d5e0df7
--- /dev/null
+++ b/libre/uboot4extlinux-ti-soc/extlinux-am335x.conf
@@ -0,0 +1,21 @@
+menu title Welcome to U-Boot with Extlinux support!
+
+timeout 50
+
+label Parabola GNU/Linux-libre, linux-libre kernel
+ kernel /boot/vmlinuz-linux-libre
+ initrd /boot/initramfs-linux-libre.img
+ append coherent_pool=1M console=ttyO0,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre
+
+label Parabola GNU/Linux-libre, linux-libre-lts kernel
+ kernel /boot/vmlinuz-linux-libre-lts
+ initrd /boot/initramfs-linux-libre-lts.img
+ append coherent_pool=1M console=ttyO0,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre-lts
+
+label Parabola GNU/Linux-libre, linux-libre-pck kernel
+ kernel /boot/vmlinuz-linux-libre-pck
+ initrd /boot/initramfs-linux-libre-pck.img
+ append coherent_pool=1M console=ttyO0,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre-pck
diff --git a/libre/uboot4extlinux-ti-soc/extlinux-omap.conf b/libre/uboot4extlinux-ti-soc/extlinux-omap.conf
new file mode 100644
index 000000000..3307eb9de
--- /dev/null
+++ b/libre/uboot4extlinux-ti-soc/extlinux-omap.conf
@@ -0,0 +1,21 @@
+menu title Welcome to U-Boot with Extlinux support!
+
+timeout 50
+
+label Parabola GNU/Linux-libre, linux-libre kernel
+ kernel /boot/vmlinuz-linux-libre
+ initrd /boot/initramfs-linux-libre.img
+ append console=ttyO2,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre
+
+label Parabola GNU/Linux-libre, linux-libre-lts kernel
+ kernel /boot/vmlinuz-linux-libre-lts
+ initrd /boot/initramfs-linux-libre-lts.img
+ append console=ttyO2,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre-lts
+
+label Parabola GNU/Linux-libre, linux-libre-pck kernel
+ kernel /boot/vmlinuz-linux-libre-pck
+ initrd /boot/initramfs-linux-libre-pck.img
+ append console=ttyO2,115200 root=/dev/mmcblk0p1 rw rootwait
+ fdtdir /boot/dtbs/linux-libre-pck
diff --git a/libre/uboot4extlinux-ti-soc/uboot4extlinux-ti-soc.install b/libre/uboot4extlinux-ti-soc/uboot4extlinux-ti-soc.install
new file mode 100644
index 000000000..f33e8c1e3
--- /dev/null
+++ b/libre/uboot4extlinux-ti-soc/uboot4extlinux-ti-soc.install
@@ -0,0 +1,37 @@
+flash_instructions() {
+ echo "# dd if=/boot/u-boot/images/MLO of=/dev/mmcblk0 count=1 seek=1 conv=notrunc bs=128k"
+ echo "# dd if=/boot/u-boot/images/u-boot.img of=/dev/mmcblk0 count=6 seek=2 conv=notrunc bs=128k"
+}
+
+extlinux_warning() {
+ echo "==> WARNING: Remember to set up your kernels in /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 you want to do this now? [y|N]"
+ read -r shouldwe
+ if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then
+ dd if=/boot/u-boot/images/MLO of=$root bs=128k seek=1 count=1 conv=notrunc
+ dd if=/boot/u-boot/images/u-boot.img of=$root bs=128k seek=2 count=6 conv=notrunc
+ 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
+}