summaryrefslogtreecommitdiff
path: root/libre/uboot-omap4_panda
diff options
context:
space:
mode:
Diffstat (limited to 'libre/uboot-omap4_panda')
-rw-r--r--libre/uboot-omap4_panda/0001-parabola-arm-modifications.patch135
-rw-r--r--libre/uboot-omap4_panda/PKGBUILD50
-rw-r--r--libre/uboot-omap4_panda/extlinux.conf46
-rw-r--r--libre/uboot-omap4_panda/uEnv.txt2
-rw-r--r--libre/uboot-omap4_panda/uboot-omap4_panda.install26
5 files changed, 259 insertions, 0 deletions
diff --git a/libre/uboot-omap4_panda/0001-parabola-arm-modifications.patch b/libre/uboot-omap4_panda/0001-parabola-arm-modifications.patch
new file mode 100644
index 000000000..09aee7ce0
--- /dev/null
+++ b/libre/uboot-omap4_panda/0001-parabola-arm-modifications.patch
@@ -0,0 +1,135 @@
+diff -Nur u-boot-2016.01.orig/include/configs/ti_omap4_common.h u-boot-2016.01/include/configs/ti_omap4_common.h
+--- u-boot-2016.01.orig/include/configs/ti_omap4_common.h 2016-01-12 11:06:54.000000000 -0300
++++ u-boot-2016.01/include/configs/ti_omap4_common.h 2016-02-24 23:19:09.761629260 -0300
+@@ -46,7 +46,6 @@
+ * the timings to use or use pre-determined timings (based on using the
+ * dynamic method. Default to the static timing infomation.
+ */
+-#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
+ #ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
+ #define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
+ #define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
+@@ -79,33 +78,74 @@
+ #define CONFIG_USB_TTY 1
+ #define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
+
++/* Parabola GNU/Linux-libre extras */
++#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre"
++
++/* Enable Extlinux boot support */
++#define CONFIG_CMD_PXE
++#define CONFIG_MENU
++#define BOOT_TARGET_DEVICES(func)
++#include <config_distro_bootcmd.h>
++
+ /*
+ * Environment setup
+ */
+ #define CONFIG_EXTRA_ENV_SETTINGS \
++ BOOTENV \
+ DEFAULT_LINUX_BOOT_ENV \
+ DEFAULT_MMC_TI_ARGS \
+ "console=ttyO2,115200n8\0" \
+ "fdtfile=undefined\0" \
+ "bootpart=0:2\0" \
+ "bootdir=/boot\0" \
++ "fdtdir=/boot/dtbs\0" \
+ "bootfile=zImage\0" \
++ "rdfile=initramfs-linux.img\0" \
+ "usbtty=cdc_acm\0" \
+ "vram=16M\0" \
+- "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+- "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+- "source ${loadaddr}\0" \
+- "loadbootenv=load mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
+- "importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
+- "env import -t ${loadaddr} ${filesize}\0" \
+- "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
+- "loaduimage=load mmc ${mmcdev} ${loadaddr} uImage\0" \
+- "mmcboot=echo Booting from mmc${mmcdev} ...; " \
+- "run args_mmc; " \
+- "bootz ${loadaddr} - ${fdtaddr}\0" \
+- "uimageboot=echo Booting from mmc${mmcdev} ...; " \
+- "run args_mmc; " \
+- "bootm ${loadaddr}\0" \
++ "optargs=\0" \
++ "mmcargs=setenv bootargs console=${console} " \
++ "vram=${vram} " \
++ "root=${root} " \
++ "${optargs}\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 " \
++ "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}/uEnv.txt ...;" \
++ "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;" \
++ "run scan_dev_for_boot;" \
++ "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 No kernel found;" \
++ "fi;" \
++ "setexpr devnum ${devnum} + 1;" \
++ "done;" \
++ "done;\0" \
+ "findfdt="\
+ "if test $board_name = sdp4430; then " \
+ "setenv fdtfile omap4-sdp.dtb; fi; " \
+@@ -118,32 +158,11 @@
+ "if test $board_name = duovero; then " \
+ "setenv fdtfile omap4-duovero-parlor.dtb; fi;" \
+ "if test $fdtfile = undefined; then " \
+- "echo WARNING: Could not determine device tree to use; fi; \0" \
+- "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
++ "echo WARNING: Could not determine device tree to use; fi; \0"
+
+ #define CONFIG_BOOTCOMMAND \
+ "run findfdt; " \
+- "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 " \
+- "run importbootenv; " \
+- "fi;" \
+- "if test -n ${uenvcmd}; then " \
+- "echo Running uenvcmd ...;" \
+- "run uenvcmd;" \
+- "fi;" \
+- "fi;" \
+- "if run loadimage; then " \
+- "run loadfdt;" \
+- "run mmcboot; " \
+- "fi; " \
+- "if run loaduimage; then " \
+- "run uimageboot;" \
+- "fi; " \
+- "fi"
++ "run mmcboot"
+
+ /*
+ * Defines for SPL
diff --git a/libre/uboot-omap4_panda/PKGBUILD b/libre/uboot-omap4_panda/PKGBUILD
new file mode 100644
index 000000000..c6ee4ac2a
--- /dev/null
+++ b/libre/uboot-omap4_panda/PKGBUILD
@@ -0,0 +1,50 @@
+# U-Boot: PandaBoard and PandaBoard ES
+# Maintainer: André Silva <emulatorman@parabola.nu>
+
+buildarch=4
+
+pkgname=uboot-omap4_panda
+pkgver=2016.01
+pkgrel=1
+pkgdesc="U-Boot for PandaBoard and PandaBoard ES"
+arch=('armv7h')
+url="http://git.denx.de/u-boot.git/"
+replaces=('uboot-pandaboard-linux-libre' 'uboot-pandaboard')
+conflicts=('uboot-pandaboard-linux-libre' 'uboot-pandaboard' 'uboot4grub-omap4_panda')
+makedepends=('bc')
+license=('GPL')
+backup=(boot/extlinux/extlinux.conf)
+install=${pkgname}.install
+backup=('boot/uEnv.txt')
+source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2"
+ '0001-parabola-arm-modifications.patch'
+ 'extlinux.conf'
+ 'uEnv.txt')
+md5sums=('7d4f65fd43d4d706f5c5650e020d899d'
+ 'b74e858feeed48acaba5ac0548d675ca'
+ '12c61073bb860f4c8d8ec59145c267ed'
+ '86004660f2912861a040e335c9c0e85b')
+
+prepare() {
+ cd u-boot-${pkgver}
+
+ patch -Np1 -i ../0001-parabola-arm-modifications.patch
+}
+
+build() {
+ cd u-boot-${pkgver}
+
+ unset LDFLAGS
+
+ make distclean
+ make omap4_panda_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/uboot-omap4_panda/extlinux.conf b/libre/uboot-omap4_panda/extlinux.conf
new file mode 100644
index 000000000..725121811
--- /dev/null
+++ b/libre/uboot-omap4_panda/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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,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=ttyO2,115200n8
+# fdtdir /boot/dtbs/linux-libre-rt
diff --git a/libre/uboot-omap4_panda/uEnv.txt b/libre/uboot-omap4_panda/uEnv.txt
new file mode 100644
index 000000000..55298e1a9
--- /dev/null
+++ b/libre/uboot-omap4_panda/uEnv.txt
@@ -0,0 +1,2 @@
+# Uncomment and add any additional kernel parameters to optargs
+#optargs=
diff --git a/libre/uboot-omap4_panda/uboot-omap4_panda.install b/libre/uboot-omap4_panda/uboot-omap4_panda.install
new file mode 100644
index 000000000..52b834639
--- /dev/null
+++ b/libre/uboot-omap4_panda/uboot-omap4_panda.install
@@ -0,0 +1,26 @@
+extlinux_warning() {
+ echo ">>> WARNING: for new entries, edit /boot/extlinux/extlinux.conf"
+}
+
+flash_uboot() {
+ echo "A new U-Boot version needs to be flashed onto /dev/mmcblk0."
+ echo "Do this now? [y|N]"
+ read -r shouldwe
+ if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then
+ dd if=/boot/MLO of=/dev/mmcblk0 count=1 seek=1 conv=notrunc bs=128k
+ dd if=/boot/u-boot.img of=/dev/mmcblk0 count=2 seek=1 conv=notrunc bs=384k
+ else
+ echo "You can do this later by running:"
+ 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"
+ fi
+ extlinux_warning
+}
+
+post_install() {
+ flash_uboot
+}
+
+post_upgrade() {
+ flash_uboot
+}