diff options
Diffstat (limited to 'libre/uboot4extlinux-imx')
12 files changed, 616 insertions, 385 deletions
diff --git a/libre/uboot4extlinux-imx/0001-board-tbs2910-disable-loadb-and-loads-commands.patch b/libre/uboot4extlinux-imx/0001-board-tbs2910-disable-loadb-and-loads-commands.patch new file mode 100644 index 000000000..8f87c565c --- /dev/null +++ b/libre/uboot4extlinux-imx/0001-board-tbs2910-disable-loadb-and-loads-commands.patch @@ -0,0 +1,44 @@ +From 9fd573c8fb080b9f729015705b489d856904445b Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:19 +0200 +Subject: [PATCH 1/6] board: tbs2910: disable loadb and loads commands + +The loadb and loads commands are not needed for booting. + +There are also more reliable and faster alternatives to +loadb and loads that can be used with the current configuration. + +As that the resulting image is already very close to the +size limit, removing the loadb and loads commands shouldn't +hurt. + +With arm-linux-gnueabi-gcc 9.2.0-1 from the Parabola +GNU/Linux distribution we have the following size +reduction: +- text: 6733 bytes +- data: 116 bytes +- bss: 1172 bytes +- total: 8021 bytes + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Acked-by: Soeren Moch <smoch@web.de> +--- + configs/tbs2910_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig +index 2ff0e160f7..2623eb73cd 100644 +--- a/configs/tbs2910_defconfig ++++ b/configs/tbs2910_defconfig +@@ -28,6 +28,8 @@ CONFIG_SYS_MEMTEST_START=0x10000000 + CONFIG_SYS_MEMTEST_END=0x2f400000 + CONFIG_CMD_GPIO=y + CONFIG_CMD_I2C=y ++# CONFIG_CMD_LOADB is not set ++# CONFIG_CMD_LOADS is not set + CONFIG_CMD_MMC=y + CONFIG_CMD_PART=y + CONFIG_CMD_PCI=y +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/0002-board-tbs2910-disable-CONFIG_GZIP.patch b/libre/uboot4extlinux-imx/0002-board-tbs2910-disable-CONFIG_GZIP.patch new file mode 100644 index 000000000..a77cdae6d --- /dev/null +++ b/libre/uboot4extlinux-imx/0002-board-tbs2910-disable-CONFIG_GZIP.patch @@ -0,0 +1,37 @@ +From b3e5d2937972a4385ff665366253244b25f0c0a2 Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:20 +0200 +Subject: [PATCH 2/6] board: tbs2910: disable CONFIG_GZIP + +As that the resulting image is already very close to the +size limit, and that CONFIG_GZIP is not strictly required, +removing it shouldn't hurt. + +With arm-linux-gnueabi-gcc 9.2.0-1 from the Parabola +GNU/Linux distribution we have the following size +reduction: +- text: 9752 +- data: 0 +- bss: 16 +- total: 9768 + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Acked-by: Soeren Moch <smoch@web.de> +--- + configs/tbs2910_defconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig +index 2623eb73cd..cc459e6de6 100644 +--- a/configs/tbs2910_defconfig ++++ b/configs/tbs2910_defconfig +@@ -88,5 +88,6 @@ CONFIG_USB_GADGET_DOWNLOAD=y + CONFIG_I2C_EDID=y + CONFIG_VIDEO_IPUV3=y + CONFIG_VIDEO=y ++# CONFIG_GZIP is not set + CONFIG_OF_LIBFDT_ASSUME_MASK=0xff + # CONFIG_EFI_LOADER is not set +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/0003-board-tbs2910-move-CONFIG_BOOTCOMMAND-from-header-to.patch b/libre/uboot4extlinux-imx/0003-board-tbs2910-move-CONFIG_BOOTCOMMAND-from-header-to.patch new file mode 100644 index 000000000..7c59f3ccf --- /dev/null +++ b/libre/uboot4extlinux-imx/0003-board-tbs2910-move-CONFIG_BOOTCOMMAND-from-header-to.patch @@ -0,0 +1,51 @@ +From 0c7550f03a67d9fd2b67e4c299f6d8908e2c7d5b Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:21 +0200 +Subject: [PATCH 3/6] board: tbs2910: move CONFIG_BOOTCOMMAND from header to + defconfig + +This doesn't affect the size of the image: with +arm-linux-gnueabi-gcc 9.2.0-1 from the Parabola GNU/Linux +distribution, the text, data, bss and total sizes remain +unchanged. + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Reviewed-by: Soeren Moch <smoch@web.de> +--- + configs/tbs2910_defconfig | 2 ++ + include/configs/tbs2910.h | 8 -------- + 2 files changed, 2 insertions(+), 8 deletions(-) + +diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig +index cc459e6de6..d14ff45615 100644 +--- a/configs/tbs2910_defconfig ++++ b/configs/tbs2910_defconfig +@@ -10,6 +10,8 @@ CONFIG_PRE_CON_BUF_ADDR=0x7c000000 + CONFIG_CMD_HDMIDETECT=y + CONFIG_AHCI=y + CONFIG_BOOTDELAY=3 ++CONFIG_USE_BOOTCOMMAND=y ++CONFIG_BOOTCOMMAND="mmc rescan; if run bootcmd_up1; then run bootcmd_up2; else run bootcmd_mmc; fi" + CONFIG_USE_PREBOOT=y + CONFIG_PREBOOT="echo PCI:; pci enum; pci 1; usb start; if hdmidet; then run set_con_hdmi; else run set_con_serial; fi" + CONFIG_PRE_CONSOLE_BUFFER=y +diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h +index 7376b91f55..a230111251 100644 +--- a/include/configs/tbs2910.h ++++ b/include/configs/tbs2910.h +@@ -100,12 +100,4 @@ + "stdin=serial,usbkbd\0" \ + "stdout=serial,vga\0" + +-#define CONFIG_BOOTCOMMAND \ +- "mmc rescan; " \ +- "if run bootcmd_up1; then " \ +- "run bootcmd_up2; " \ +- "else " \ +- "run bootcmd_mmc; " \ +- "fi" +- + #endif /* __TBS2910_CONFIG_H * */ +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/0004-board-tbs2910_defconfig-Add-support-for-booting-gene.patch b/libre/uboot4extlinux-imx/0004-board-tbs2910_defconfig-Add-support-for-booting-gene.patch new file mode 100644 index 000000000..19e61a257 --- /dev/null +++ b/libre/uboot4extlinux-imx/0004-board-tbs2910_defconfig-Add-support-for-booting-gene.patch @@ -0,0 +1,56 @@ +From e63ab4527ea4ee23de7ee3335d14ee597667b457 Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:22 +0200 +Subject: [PATCH 4/6] board: tbs2910_defconfig: Add support for booting general + purpose distributions + +This is needed to enable distro_boot support later on. + +Adding the necessary configuration to enable booting general +purpose distributions is typically done by enabling +CONFIG_DISTRO_DEFAULTS. + +However the resulting image size is is already very close to +the size limit and PXE isn't strictly needed, so instead we +made sure that all the configuration selected by +CONFIG_DISTRO_DEFAULTS were selected, with the exception of +PXE related configuration (CONFIG_BOOTP_PXE and +CONFIG_CMD_PXE) that are both disabled. + +With arm-linux-gnueabi-gcc 9.3.0-1 from the Parabola +GNU/Linux distribution, we have the following size +differences: +- text: +7526 bytes +- data: +28 bytes +- bss: -12 bytes +- total: +7542 bytes + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Reviewed-by: Soeren Moch <smoch@web.de> +--- + configs/tbs2910_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig +index d14ff45615..fc9095c859 100644 +--- a/configs/tbs2910_defconfig ++++ b/configs/tbs2910_defconfig +@@ -9,6 +9,7 @@ CONFIG_NR_DRAM_BANKS=1 + CONFIG_PRE_CON_BUF_ADDR=0x7c000000 + CONFIG_CMD_HDMIDETECT=y + CONFIG_AHCI=y ++CONFIG_ENV_VARS_UBOOT_CONFIG=y + CONFIG_BOOTDELAY=3 + CONFIG_USE_BOOTCOMMAND=y + CONFIG_BOOTCOMMAND="mmc rescan; if run bootcmd_up1; then run bootcmd_up2; else run bootcmd_mmc; fi" +@@ -43,6 +44,7 @@ CONFIG_CMD_MII=y + CONFIG_CMD_PING=y + CONFIG_CMD_CACHE=y + CONFIG_CMD_TIME=y ++CONFIG_CMD_SYSBOOT=y + CONFIG_CMD_EXT2=y + CONFIG_CMD_EXT4=y + CONFIG_CMD_EXT4_WRITE=y +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/0005-board-tbs2910-Enable-distro_boot-support.patch b/libre/uboot4extlinux-imx/0005-board-tbs2910-Enable-distro_boot-support.patch new file mode 100644 index 000000000..184da5de4 --- /dev/null +++ b/libre/uboot4extlinux-imx/0005-board-tbs2910-Enable-distro_boot-support.patch @@ -0,0 +1,89 @@ +From 9658884f3d923ab266903fd18ee7ff6ecf4ff096 Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:24 +0200 +Subject: [PATCH 5/6] board: tbs2910: Enable distro_boot support. + +This keeps the compatibility with the old bootcmd. + +The fdtfile environment variable also needed to be set to +imx6q-tbs2910.dtb to enable booting mainline kernels +otherwise with extlinux.conf it tries to load +mx6-tbs2910.dtb instead. + +With arm-linux-gnueabi-gcc 9.2.0-1 from the Parabola +GNU/Linux distribution, we have the following size +differences: +- text: +2041 bytes +- data: 0 bytes +- bss: 0 bytes +- total: +2041 bytes + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Reviewed-by: Soeren Moch <smoch@web.de> +--- + configs/tbs2910_defconfig | 3 ++- + include/configs/tbs2910.h | 18 ++++++++++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig +index fc9095c859..fbd2293add 100644 +--- a/configs/tbs2910_defconfig ++++ b/configs/tbs2910_defconfig +@@ -12,11 +12,12 @@ CONFIG_AHCI=y + CONFIG_ENV_VARS_UBOOT_CONFIG=y + CONFIG_BOOTDELAY=3 + CONFIG_USE_BOOTCOMMAND=y +-CONFIG_BOOTCOMMAND="mmc rescan; if run bootcmd_up1; then run bootcmd_up2; else run bootcmd_mmc; fi" ++CONFIG_BOOTCOMMAND="mmc rescan; if run bootcmd_up1; then run bootcmd_up2; else run bootcmd_mmc || run distro_bootcmd; fi" + CONFIG_USE_PREBOOT=y + CONFIG_PREBOOT="echo PCI:; pci enum; pci 1; usb start; if hdmidet; then run set_con_hdmi; else run set_con_serial; fi" + CONFIG_PRE_CONSOLE_BUFFER=y + CONFIG_SUPPORT_RAW_INITRD=y ++CONFIG_DEFAULT_FDT_FILE="imx6q-tbs2910.dtb" + CONFIG_BOUNCE_BUFFER=y + CONFIG_BOARD_EARLY_INIT_F=y + CONFIG_HUSH_PARSER=y +diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h +index a230111251..17de122852 100644 +--- a/include/configs/tbs2910.h ++++ b/include/configs/tbs2910.h +@@ -76,6 +76,7 @@ + #define CONFIG_BOARD_SIZE_LIMIT 392192 /* (CONFIG_ENV_OFFSET - 1024) */ + + #define CONFIG_EXTRA_ENV_SETTINGS \ ++ BOOTENV \ + "bootargs_mmc1=console=ttymxc0,115200 di0_primary console=tty1\0" \ + "bootargs_mmc2=video=mxcfb0:dev=hdmi,1920x1080M@60 " \ + "video=mxcfb1:off video=mxcfb2:off fbmem=28M\0" \ +@@ -92,6 +93,13 @@ + "bootm 0x10800000 0x10d00000\0" \ + "console=ttymxc0\0" \ + "fan=gpio set 92\0" \ ++ "fdt_addr=0x13000000\0" \ ++ "fdt_addr_r=0x13000000\0" \ ++ "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ ++ "kernel_addr_r=0x10008000\0" \ ++ "pxefile_addr_r=0x10008000\0" \ ++ "ramdisk_addr_r=0x18000000\0" \ ++ "scriptaddr=0x14000000\0" \ + "set_con_serial=setenv stdout serial; " \ + "setenv stderr serial\0" \ + "set_con_hdmi=setenv stdout serial,vga; " \ +@@ -100,4 +108,14 @@ + "stdin=serial,usbkbd\0" \ + "stdout=serial,vga\0" + ++/* Enable distro boot */ ++#define BOOT_TARGET_DEVICES(func) \ ++ func(MMC, mmc, 0) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 2) \ ++ func(SATA, sata, 0) \ ++ func(USB, usb, 0) ++ ++#include <config_distro_bootcmd.h> ++ + #endif /* __TBS2910_CONFIG_H * */ +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/0006-board-tbs2910-add-documentation.patch b/libre/uboot4extlinux-imx/0006-board-tbs2910-add-documentation.patch new file mode 100644 index 000000000..6b78b7466 --- /dev/null +++ b/libre/uboot4extlinux-imx/0006-board-tbs2910-add-documentation.patch @@ -0,0 +1,255 @@ +From f3767bcb31d0ce5c6381d5f6c33a951774ee6d41 Mon Sep 17 00:00:00 2001 +From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +Date: Sat, 30 May 2020 05:24:25 +0200 +Subject: [PATCH 6/6] board: tbs2910: add documentation + +This documents the u-boot installation procedure and the +hardware in order to get started. + +Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +[trini: Add MAINTAINERS entry for doc file per Soeren's request] +--- + board/tbs/tbs2910/MAINTAINERS | 1 + + doc/board/index.rst | 1 + + doc/board/tbs/index.rst | 9 ++ + doc/board/tbs/tbs2910.rst | 191 ++++++++++++++++++++++++++++++++++ + 4 files changed, 202 insertions(+) + create mode 100644 doc/board/tbs/index.rst + create mode 100644 doc/board/tbs/tbs2910.rst + +diff --git a/board/tbs/tbs2910/MAINTAINERS b/board/tbs/tbs2910/MAINTAINERS +index a3ad2f712a..1e3c0d0ece 100644 +--- a/board/tbs/tbs2910/MAINTAINERS ++++ b/board/tbs/tbs2910/MAINTAINERS +@@ -4,4 +4,5 @@ S: Maintained + F: arch/arm/dts/imx6q-tbs2910.dts + F: board/tbs/tbs2910/ + F: configs/tbs2910_defconfig ++F: doc/board/tbs/ + F: include/configs/tbs2910.h +diff --git a/doc/board/index.rst b/doc/board/index.rst +index 01b233f737..bb4473152a 100644 +--- a/doc/board/index.rst ++++ b/doc/board/index.rst +@@ -18,5 +18,6 @@ Board-specific doc + rockchip/index + sifive/index + st/index ++ tbs/index + toradex/index + xilinx/index +diff --git a/doc/board/tbs/index.rst b/doc/board/tbs/index.rst +new file mode 100644 +index 0000000000..b677bc624f +--- /dev/null ++++ b/doc/board/tbs/index.rst +@@ -0,0 +1,9 @@ ++.. SPDX-License-Identifier: GPL-2.0+ ++ ++TBS ++=== ++ ++.. toctree:: ++ :maxdepth: 2 ++ ++ tbs2910 +diff --git a/doc/board/tbs/tbs2910.rst b/doc/board/tbs/tbs2910.rst +new file mode 100644 +index 0000000000..e97f2b6e61 +--- /dev/null ++++ b/doc/board/tbs/tbs2910.rst +@@ -0,0 +1,191 @@ ++TBS2910 Matrix ARM miniPC ++========================= ++ ++Building ++-------- ++To build u-boot for the TBS2910 Matrix ARM miniPC, you can use the following ++procedure: ++ ++First add the ARM toolchain to your PATH ++ ++Then setup the ARCH and cross compilation environment variables. ++ ++When this is done you can then build u-boot for the TBS2910 Matrix ARM miniPC ++with the following commands: ++ ++.. code-block:: none ++ ++ make mrproper ++ make tbs2910_defconfig ++ make ++ ++Once the build is complete, you can find the resulting image as u-boot.imx in ++the current directory. ++ ++UART ++---- ++The UART voltage is at 3.3V and its settings are 115200bps 8N1 ++ ++BOOT/UPDATE boot switch: ++------------------------ ++The BOOT/UPDATE switch (SW11) is connected to the BOOT_MODE0 and ++BOOT_MODE1 SoC pins. It has "BOOT" and "UPDATE" markings both on ++the PCB and on the plastic case. ++ ++When set to the "UPDATE" position, the SoC will use the "Boot From Fuses" ++configuration, and since BT_FUSE_SEL is 0, this makes the SOC jump to serial ++downloader. ++ ++When set in the "BOOT" position, the SoC will use the "Internal boot" ++configuration, and since BT_FUSE_SEL is 0, it will then use the GPIO pins ++for the boot configuration. ++ ++SW6 binary DIP switch array on the PCB revision 2.1: ++---------------------------------------------------- ++On that PCB revision, SW6 has 8 positions. ++ ++Switching a position to ON sets the corresponding ++register to 1. ++ ++See the following table for a correspondence between the switch positions and ++registers: ++ ++=============== ============ ++Switch position Register ++=============== ============ ++1 BOOT_CFG2[3] ++2 BOOT_CFG2[4] ++3 BOOT_CFG2[5] ++4 BOOT_CFG2[6] ++5 BOOT_CFG1[4] ++6 BOOT_CFG1[5] ++7 BOOT_CFG1[6] ++8 BOOT_CFG1[7] ++=============== ============ ++ ++For example: ++ ++ - To boot from the eMMC: 1:ON , 2:ON, 3:ON, 4:OFF, 5:OFF, 6:ON, 7:ON, 8:OFF ++ - To boot from the microSD slot: 1: ON, 2: OFF, 3: OFF, 4: OFF, 5:OFF, 6:OFF, ++ 7:ON, 8:OFF ++ - To boot from the SD slot: 1: OFF, 2: ON, 3: OFF, 4: OFF, 5:OFF, 6:OFF, 7:ON, ++ 8:OFF ++ - To boot from SATA: 1: OFF, 2: OFF, 3: OFF, 4: OFF, 5:OFF, 6:ON, 7:OFF, 8:OFF ++ ++You can refer to the BOOT_CFG registers in the I.MX6Q reference manual for ++additional details. ++ ++SW6 binary DIP switch array on the PCB revision 2.3: ++---------------------------------------------------- ++On that PCB revision, SW6 has only 4 positions. ++ ++Switching a position to ON sets the corresponding ++register to 1. ++ ++See the following table for a correspondence between the switch positions and ++registers: ++ ++=============== ============ ++Switch position Register ++=============== ============ ++1 BOOT_CFG2[3] ++2 BOOT_CFG2[4] ++3 BOOT_CFG2[5] ++4 BOOT_CFG1[5] ++=============== ============ ++ ++For example: ++ ++- To boot from the eMMC: 1:ON, 2:ON, 3:ON, 4:ON ++- To boot from the microSD slot: 1:ON, 2:OFF, 3:OFF, 4:OFF ++- To boot from the SD slot: 1:OFF, 2:ON, 3:OFF, 4:OFF ++ ++You can refer to the BOOT_CFG registers in the I.MX6Q reference manual for ++additional details. ++ ++Loading u-boot from USB: ++------------------------ ++If you need to load u-boot from USB, you can use the following instructions: ++ ++First build imx_usb_loader, as we will need it to load u-boot from USB. This ++can be done with the following commands: ++ ++.. code-block:: none ++ ++ git clone git://github.com/boundarydevices/imx_usb_loader.git ++ cd imx_usb_loader ++ make ++ ++This will create the resulting imx_usb binary. ++ ++When this is done, you can copy the u-boot.imx image that you built earlier ++in in the imx_usb_loader directory. ++ ++You will then need to power off the TBS2910 Matrix ARM miniPC and make sure that ++the boot switch is set to "UPDATE" ++ ++Once this is done you can connect an USB cable between the computer that will ++run imx_usb and the TBS2910 Matrix ARM miniPC. ++ ++If you also need to access the u-boot console, you will also need to connect an ++UART cable between the computer running imx_usb and the TBS2910 Matrix ARM ++miniPC. ++ ++Once everything is connected you can finally power on the TBS2910 Matrix ARM ++miniPC. The SoC will then jump to the serial download and wait for you. ++ ++Finlay, you can load u-boot through USB with with the following command: ++ ++.. code-block:: none ++ ++ sudo ./imx_usb -v u-boot.imx ++ ++The u-boot boot messages will then appear in the serial console. ++ ++Install u-boot on the eMMC: ++--------------------------- ++To install u-boot on the eMMC, you first need to boot the TBS2910 Matrix ARM ++miniPC. ++ ++Once booted, you can flash u-boot.imx to mmcblk0boot0 with the ++following commands: ++ ++.. code-block:: none ++ ++ sudo echo 0 >/sys/block/mmcblk0boot0/force_ro ++ sudo dd if=u-boot.imx of=/dev/mmcblk0boot0 bs=1k seek=1; sync ++ ++Note that the eMMC card node may vary, so adjust this as needed. ++ ++Once the new u-boot version is installed, to boot on it you then need to power ++off the TBS2910 Matrix ARM miniPC. ++ ++Once it is off, you need make sure that the boot switch is set to "BOOT" and ++that the SW6 switch is set to boot on the eMMC as described in the previous ++sections. ++ ++If you also need to access the u-boot console, you will also need to connect an ++UART cable between the computer running imx_usb and the TBS2910 Matrix ARM ++miniPC. ++ ++You can then power up the TBS2910 Matrix ARM miniPC and U-Boot messages will ++appear in the serial console. ++ ++Booting a distribution: ++----------------------- ++When booting on the TBS2910 Matrix ARM miniPC, by default U-Boot will first try ++to boot from hardcoded offsets from the start of the eMMC. This is for ++compatibility with the stock GNU/Linux distribution. ++ ++If that fails it will then try to boot from several interfaces using ++'distro_bootcmd': It will first try to boot from the microSD slot, then the ++SD slot, then the internal eMMC, then the SATA interface and finally the USB ++interface. For more information on how to configure your distribution to boot, ++see 'README.distro'. ++ ++Links: ++------ ++ - https://www.tbsdtv.com/download/document/tbs2910/TBS2910-Matrix-ARM-mini-PC-SCH_rev2.1.pdf ++ - The schematics for the revision 2.1 of the TBS2910 Matrix ARM miniPC. ++ - https://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf - The ++ SoC reference manual for additional details on the BOOT_CFG registers. +-- +2.27.0 + diff --git a/libre/uboot4extlinux-imx/PKGBUILD b/libre/uboot4extlinux-imx/PKGBUILD index b6b7652a7..f4bb6aec0 100644 --- a/libre/uboot4extlinux-imx/PKGBUILD +++ b/libre/uboot4extlinux-imx/PKGBUILD @@ -4,14 +4,25 @@ # Contributor: Timothy Redaelli <timothy.redaelli@gmail.com> # Maintainer: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +# TODO: +# - Add the following boards +# - 'mx6cuboxi' +# - 'nitrogen6q' +# - 'udoo' +# - 'usbarmory' +# - 'wandboard' +# - Improve the .install: +# - Make it more generic: share the main part of the code. +# - Check for the machine name with the device tree and ask for confirmation +# if the machine is not the same but don't prevent users from installing +# this bootloader on a totally different machine as the installation could +# be done in a chroot or in other ways that packagers can't predict. +# - Handle more than one boot device (microSD, eMMC, USB, etc) +# - Point to the device documentation if there is some + pkgbase=uboot4extlinux-imx -pkgname=('uboot4extlinux-mx6cuboxi' - 'uboot4extlinux-nitrogen6q' - 'uboot4extlinux-tbs2910' - 'uboot4extlinux-udoo' - 'uboot4extlinux-usbarmory' - 'uboot4extlinux-wandboard') -pkgver=2020.01 +pkgname=('uboot4extlinux-tbs2910') +pkgver=2020.04 pkgrel=1 arch=('armv7h') url="http://git.denx.de/u-boot.git/" @@ -19,38 +30,40 @@ license=('GPL') makedepends=('bc' 'dtc' 'python' 'python2' 'swig') backup=(boot/extlinux/extlinux.conf) source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2" - 'extlinux.conf' - 'tbs2910.h' - 'tbs2910_defconfig') -sha256sums=('aa453c603208b1b27bd03525775a7f79b443adec577fdc6e8f06974025a135f1' - 'SKIP' - 'SKIP' + 'extlinux.conf') + +sha256sums=('fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372' 'SKIP') -# TODO -# boards=('mx6cuboxi' -# 'nitrogen6q' -# 'tbs2910' -# 'udoo' -# 'usbarmory' -# 'wandboard') +# Distro boot config and documentation for the TBS TBS2910 +# The patches are from the next branch of u-boot git +# a bit after the v2020.07-rc4 tag. They should make it in 1 or two +# u-boot release. +source+=('0001-board-tbs2910-disable-loadb-and-loads-commands.patch' + '0002-board-tbs2910-disable-CONFIG_GZIP.patch' + '0003-board-tbs2910-move-CONFIG_BOOTCOMMAND-from-header-to.patch' + '0004-board-tbs2910_defconfig-Add-support-for-booting-gene.patch' + '0005-board-tbs2910-Enable-distro_boot-support.patch' + '0006-board-tbs2910-add-documentation.patch') +sha256sums+=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP') + boards=('tbs2910') prepare() { cd u-boot-${pkgver} - # TODO: send patches upstream - # tbs2910.h: needed for generic distro booting - # tbs2910_defconfig: needed for generic distro booting - # and to fit within the size constraints - cp -f ../tbs2910.h include/configs/tbs2910.h - cp -f ../tbs2910_defconfig configs/tbs2910_defconfig - - for i in ${boards[@]}; do - echo 'CONFIG_DISTRO_DEFAULTS=y' >> configs/${i}_defconfig - echo 'CONFIG_SD_BOOT=y' >> configs/${i}_defconfig - echo 'CONFIG_SATA_BOOT=y' >> configs/${i}_defconfig - done + # TBS2910 patches + patch -Np1 -i ../0001-board-tbs2910-disable-loadb-and-loads-commands.patch + patch -Np1 -i ../0002-board-tbs2910-disable-CONFIG_GZIP.patch + patch -Np1 -i ../0003-board-tbs2910-move-CONFIG_BOOTCOMMAND-from-header-to.patch + patch -Np1 -i ../0004-board-tbs2910_defconfig-Add-support-for-booting-gene.patch + patch -Np1 -i ../0005-board-tbs2910-Enable-distro_boot-support.patch + patch -Np1 -i ../0006-board-tbs2910-add-documentation.patch } @@ -69,35 +82,9 @@ build() { done } -package_uboot4extlinux-nitrogen6q() { - pkgdesc="U-Boot with Extlinux support for the Boundary Devices i.MX6 Quad Nitrogen6" - install=${pkgbase}.install - provides=('uboot4extlinux-imx') - conflicts=('uboot-nitrogen6q') - - install -d "${pkgdir}"/boot/extlinux - install -d "${pkgdir}"/boot/u-boot/images/ - install -Dm644 bin_nitrogen6q/u-boot.imx "${pkgdir}"/boot/u-boot/images/ - - install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux -} - -package_uboot4extlinux-mx6cuboxi() { - pkgdesc="U-Boot with Extlinux support for the SolidRun Cubox-i" - install=${pkgbase}.install - provides=('uboot4extlinux-imx') - conflicts=('uboot-mx6_cubox-i') - - install -d "${pkgdir}"/boot/extlinux - install -d "${pkgdir}"/boot/u-boot/images/ - install -Dm644 bin_mx6cuboxi/u-boot.imx "${pkgdir}"/boot/u-boot/images/ - - install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux -} - package_uboot4extlinux-tbs2910() { pkgdesc="U-Boot with Extlinux support for the TBS2910 Matrix ARM mini PC" - install=${pkgbase}.install + install=tbs2910.install provides=('uboot4extlinux-imx') install -d "${pkgdir}"/boot/extlinux @@ -105,43 +92,8 @@ package_uboot4extlinux-tbs2910() { install -Dm644 bin_tbs2910/u-boot.imx "${pkgdir}"/boot/u-boot/images/ install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux -} -package_uboot4extlinux-udoo() { - pkgdesc="U-Boot with Extlinux support for the Udoo Board" - install=${pkgbase}.install - provides=('uboot4extlinux-imx') - conflicts=('uboot-udoo') - - install -d "${pkgdir}"/boot/extlinux - install -d "${pkgdir}"/boot/u-boot/images/ - install -Dm644 udoo/u-boot.imx "${pkgdir}"/boot/u-boot/images/ - - install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux -} - -package_uboot4extlinux-usbarmory() { - pkgdesc="U-Boot with Extlinux support for the Inverse Path USB armory" - install=${pkgbase}.install - provides=('uboot4extlinux-imx') - conflicts=('uboot-usbarmory') - - install -d "${pkgdir}"/boot/extlinux - install -d "${pkgdir}"/boot/u-boot/images/ - install -Dm644 usbarmory/u-boot.imx "${pkgdir}"/boot/u-boot/images/ - - install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux -} - -package_uboot4extlinux-wandboard() { - pkgdesc="U-Boot with Extlinux support for the Wandboard" - install=${pkgbase}.install - provides=('uboot4extlinux-imx') - conflicts=('uboot-wandboard') - - install -d "${pkgdir}"/boot/extlinux - install -d "${pkgdir}"/boot/u-boot/images/ - install -Dm644 wandboard/u-boot.imx "${pkgdir}"/boot/u-boot/images/ - - install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux + # Package documentation as well + install -d "${pkgdir}"/usr/share/doc/u-boot + install -Dm644 u-boot-${pkgver}/doc/board/tbs/tbs2910.rst "${pkgdir}"/usr/share/doc/u-boot } diff --git a/libre/uboot4extlinux-imx/extlinux.conf b/libre/uboot4extlinux-imx/extlinux.conf index c41ce605a..ddc3b7ac2 100644 --- a/libre/uboot4extlinux-imx/extlinux.conf +++ b/libre/uboot4extlinux-imx/extlinux.conf @@ -4,48 +4,18 @@ timeout 50 label Parabola GNU/Linux-libre, linux-libre kernel kernel /boot/vmlinuz-linux-libre - initrd /boot/initramfs-linux-libre-fallback.img + initrd /boot/initramfs-linux-libre.img append 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-fallback.img + initrd /boot/initramfs-linux-libre-lts.img append root=/dev/mmcblk0p1 rw rootwait fdtdir /boot/dtbs/linux-libre-lts -label Parabola GNU/Linux-libre, linux-libre-lts-knock kernel - kernel /boot/vmlinuz-linux-libre-lts-knock - initrd /boot/initramfs-linux-libre-lts-knock-fallback.img - append root=/dev/mmcblk0p1 rw rootwait - fdtdir /boot/dtbs/linux-libre-lts-knock - -label Parabola GNU/Linux-libre, linux-libre-hardened kernel - kernel /boot/vmlinuz-linux-libre-hardened - initrd /boot/initramfs-linux-libre-hardened-fallback.img - append root=/dev/mmcblk0p1 rw rootwait - fdtdir /boot/dtbs/linux-libre-hardened - -label Parabola GNU/Linux-libre, linux-libre-lts-apparmor kernel - kernel /boot/vmlinuz-linux-libre-lts-apparmor - initrd /boot/initramfs-linux-libre-lts-apparmor-fallback.img - append root=/dev/mmcblk0p1 rw rootwait - fdtdir /boot/dtbs/linux-libre-lts-apparmor - label Parabola GNU/Linux-libre, linux-libre-pck kernel kernel /boot/vmlinuz-linux-libre-pck - initrd /boot/initramfs-linux-libre-pck-fallback.img + initrd /boot/initramfs-linux-libre-pck.img append root=/dev/mmcblk0p1 rw rootwait fdtdir /boot/dtbs/linux-libre-pck - -label Parabola GNU/Linux-libre, linux-libre-rt kernel - kernel /boot/vmlinuz-linux-libre-rt - initrd /boot/initramfs-linux-libre-rt-fallback.img - append root=/dev/mmcblk0p1 rw rootwait - fdtdir /boot/dtbs/linux-libre-rt - -label Parabola GNU/Linux-libre, linux-libre-xtreme kernel - kernel /boot/vmlinuz-linux-libre-xtreme - initrd /boot/initramfs-linux-libre-xtreme-fallback.img - append root=/dev/mmcblk0p1 rw rootwait - fdtdir /boot/dtbs/linux-libre-xtreme diff --git a/libre/uboot4extlinux-imx/tbs2910.h b/libre/uboot4extlinux-imx/tbs2910.h deleted file mode 100644 index 27166b719..000000000 --- a/libre/uboot4extlinux-imx/tbs2910.h +++ /dev/null @@ -1,136 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * Copyright (C) 2014 Soeren Moch <smoch@web.de> - * - * Configuration settings for the TBS2910 MatrixARM board. - */ - -#ifndef __TBS2910_CONFIG_H -#define __TBS2910_CONFIG_H - -#define CONFIG_BOOTCOMMAND \ - "mmc rescan; " \ - "if run bootcmd_up1; then " \ - "run bootcmd_up2; " \ - "else " \ - "run bootcmd_mmc || run distro_bootcmd; " \ - "fi" - -#ifndef CONFIG_SPL_BUILD -#define BOOT_TARGET_DEVICES(func) \ - func(MMC, mmc, 0) \ - func(MMC, mmc, 1) \ - func(MMC, mmc, 2) \ - func(SATA, sata, 0) \ - func(USB, usb, 0) \ - func(PXE, pxe, na) \ - func(DHCP, dhcp, na) -#include <config_distro_bootcmd.h> -#endif - -#include "mx6_common.h" - -/* General configuration */ - -#define CONFIG_MACH_TYPE 3980 - -#define CONFIG_SYS_HZ 1000 - -#define CONFIG_IMX_THERMAL - -/* Physical Memory Map */ -#define CONFIG_SYS_SDRAM_BASE MMDC0_ARB_BASE_ADDR - -#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR -#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE -#define CONFIG_SYS_INIT_SP_OFFSET \ - (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) -#define CONFIG_SYS_INIT_SP_ADDR \ - (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) - -#define CONFIG_SYS_MALLOC_LEN (128 * 1024 * 1024) - -#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE -#define CONFIG_SYS_MEMTEST_END \ - (CONFIG_SYS_MEMTEST_START + 500 * 1024 * 1024) - -#define CONFIG_SYS_BOOTMAPSZ 0x10000000 - -/* Serial console */ -#define CONFIG_MXC_UART -#define CONFIG_MXC_UART_BASE UART1_BASE /* select UART1/UART2 */ - -/* Framebuffer */ -#ifdef CONFIG_VIDEO -#define CONFIG_VIDEO_BMP_RLE8 -#define CONFIG_IMX_HDMI -#define CONFIG_IMX_VIDEO_SKIP -#endif - -/* PCI */ -#ifdef CONFIG_CMD_PCI -#define CONFIG_PCI_SCAN_SHOW -#define CONFIG_PCIE_IMX -#define CONFIG_PCIE_IMX_PERST_GPIO IMX_GPIO_NR(7, 12) -#endif - -/* SATA */ -#ifdef CONFIG_CMD_SATA -#define CONFIG_SYS_SATA_MAX_DEVICE 1 -#define CONFIG_DWC_AHSATA_PORT_ID 0 -#define CONFIG_DWC_AHSATA_BASE_ADDR SATA_ARB_BASE_ADDR -#define CONFIG_LBA48 -#define CONFIG_SYS_64BIT_LBA -#endif - -/* USB */ -#ifdef CONFIG_CMD_USB -#define CONFIG_EHCI_HCD_INIT_AFTER_RESET -#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) -#ifdef CONFIG_CMD_USB_MASS_STORAGE -#define CONFIG_USBD_HS -#endif /* CONFIG_CMD_USB_MASS_STORAGE */ -#endif /* CONFIG_CMD_USB */ - -/* Environment organization */ -#define CONFIG_SYS_MMC_ENV_DEV 2 /* overwritten on SD boot */ -#define CONFIG_SYS_MMC_ENV_PART 1 /* overwritten on SD boot */ -#define CONFIG_ENV_OVERWRITE - -#define CONFIG_BOARD_SIZE_LIMIT 392192 /* (CONFIG_ENV_OFFSET - 1024) */ - -#define CONFIG_EXTRA_ENV_SETTINGS \ - "fdt_addr=0x13000000\0" \ - "fdt_addr_r=0x13000000\0" \ - "initrd_high=0xffffffff\0" \ - "kernel_addr_r=0x10008000\0" \ - "pxefile_addr_r=0x10008000\0" \ - "ramdisk_addr_r=0x18000000\0" \ - "scriptaddr=0x14000000\0" \ - "bootargs_mmc1=console=ttymxc0,115200 di0_primary console=tty1\0" \ - "bootargs_mmc2=video=mxcfb0:dev=hdmi,1920x1080M@60 " \ - "video=mxcfb1:off video=mxcfb2:off fbmem=28M\0" \ - "bootargs_mmc3=root=/dev/mmcblk0p1 rootwait consoleblank=0 quiet\0" \ - "bootargs_mmc=setenv bootargs ${bootargs_mmc1} ${bootargs_mmc2} " \ - "${bootargs_mmc3}\0" \ - "bootargs_upd=setenv bootargs console=ttymxc0,115200 " \ - "rdinit=/sbin/init enable_wait_mode=off\0" \ - "bootcmd_mmc=run bootargs_mmc; mmc dev 2; " \ - "mmc read 0x10800000 0x800 0x4000; bootm 0x10800000\0" \ - "bootcmd_up1=load mmc 1 0x10800000 uImage\0" \ - "bootcmd_up2=load mmc 1 0x10d00000 uramdisk.img; " \ - "run bootargs_upd; " \ - "bootm 0x10800000 0x10d00000\0" \ - "console=ttymxc0\0" \ - "fan=gpio set 92\0" \ - "set_con_serial=setenv stdout serial; " \ - "setenv stderr serial\0" \ - "set_con_hdmi=setenv stdout serial,vga; " \ - "setenv stderr serial,vga\0" \ - "stderr=serial,vga\0" \ - "stdin=serial,usbkbd\0" \ - "stdout=serial,vga\0" \ - "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ - BOOTENV - -#endif /* __TBS2910_CONFIG_H * */ diff --git a/libre/uboot4extlinux-imx/tbs2910.install b/libre/uboot4extlinux-imx/tbs2910.install new file mode 100644 index 000000000..f729bf0b7 --- /dev/null +++ b/libre/uboot4extlinux-imx/tbs2910.install @@ -0,0 +1,32 @@ +flash_instructions() { + echo "# echo 0 > /sys/block/mmcblk2boot0/force_ro" + echo "# dd if=/boot/u-boot/images/u-boot.imx of=/dev/mmcblk2boot0 bs=1k seek=1" +} + +extlinux_warning() { + echo "==> WARNING: Remember to set up your kernels in /boot/extlinux/extlinux.conf" +} + +flash_uboot() { + # For now we assume that users are flashing u-boot on the eMMC + # u-boot.img can also be loaded through USB for the frist boot with imx_usb_loader + echo "A new U-Boot version needs to be flashed." + echo "Do you want to flash it on the eMMC now? [y|N]" + read -r shouldwe + if [[ $shouldwe =~ ^([yY][eE][sS]|[yY])$ ]]; then + echo 0 > /sys/block/mmcblk2boot0/force_ro + dd if=/boot/u-boot/images/u-boot.imx of=/dev/mmcblk2boot0 bs=1k seek=1 + else + echo "You can do this later by running:" + flash_instructions + fi + extlinux_warning +} + +post_install() { + flash_uboot +} + +post_upgrade() { + flash_uboot +} diff --git a/libre/uboot4extlinux-imx/tbs2910_defconfig b/libre/uboot4extlinux-imx/tbs2910_defconfig deleted file mode 100644 index 033fdd3cd..000000000 --- a/libre/uboot4extlinux-imx/tbs2910_defconfig +++ /dev/null @@ -1,84 +0,0 @@ -CONFIG_ARM=y -CONFIG_ARCH_MX6=y -CONFIG_SYS_TEXT_BASE=0x17800000 -CONFIG_TARGET_TBS2910=y -CONFIG_ENV_SIZE=0x2000 -CONFIG_ENV_OFFSET=0x60000 -CONFIG_DM_GPIO=y -CONFIG_NR_DRAM_BANKS=1 -CONFIG_PRE_CON_BUF_ADDR=0x7c000000 -CONFIG_CMD_HDMIDETECT=y -CONFIG_AHCI=y -CONFIG_DISTRO_DEFAULTS=y -CONFIG_SATA_BOOT=y -CONFIG_SD_BOOT=y -CONFIG_BOOTDELAY=3 -# CONFIG_USE_BOOTCOMMAND is not set -CONFIG_USE_PREBOOT=y -CONFIG_PREBOOT="echo PCI:; pci enum; pci 1; usb start; if hdmidet; then run set_con_hdmi; else run set_con_serial; fi" -CONFIG_PRE_CONSOLE_BUFFER=y -CONFIG_DEFAULT_FDT_FILE="imx6q-tbs2910.dtb" -CONFIG_BOUNCE_BUFFER=y -CONFIG_BOARD_EARLY_INIT_F=y -CONFIG_SYS_PROMPT="Matrix U-Boot> " -# CONFIG_CMD_BOOTM is not set -# CONFIG_CMD_ELF is not set -# CONFIG_CMD_FDT is not set -# CONFIG_CMD_GO is not set -CONFIG_CMD_ERASEENV=y -# CONFIG_CMD_CRC32 is not set -CONFIG_CMD_MEMTEST=y -# CONFIG_CMD_FUSE is not set -CONFIG_CMD_GPIO=y -CONFIG_CMD_I2C=y -# CONFIG_CMD_LOADB is not set -# CONFIG_CMD_LOADS is not set -CONFIG_CMD_MMC=y -# CONFIG_CMD_PINMUX is not set -CONFIG_CMD_SATA=y -CONFIG_CMD_USB=y -CONFIG_CMD_USB_MASS_STORAGE=y -CONFIG_CMD_TIME=y -CONFIG_CMD_EXT4_WRITE=y -# CONFIG_ISO_PARTITION is not set -CONFIG_OF_CONTROL=y -CONFIG_OF_EMBED=y -CONFIG_DEFAULT_DEVICE_TREE="imx6q-tbs2910" -CONFIG_ENV_IS_IN_MMC=y -CONFIG_SYS_RELOC_GD_ENV_ADDR=y -CONFIG_DM=y -# CONFIG_DM_WARN is not set -CONFIG_DWC_AHSATA=y -# CONFIG_BLOCK_CACHE is not set -CONFIG_DM_I2C=y -CONFIG_SYS_I2C_MXC=y -CONFIG_DM_KEYBOARD=y -# CONFIG_MXC_OCOTP is not set -CONFIG_DM_MMC=y -CONFIG_FSL_USDHC=y -CONFIG_PHYLIB=y -CONFIG_PHY_ATHEROS=y -CONFIG_DM_ETH=y -CONFIG_FEC_MXC=y -CONFIG_MII=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_IMX6=y -# CONFIG_RAM_ROCKCHIP_DEBUG is not set -CONFIG_DM_RTC=y -CONFIG_RTC_DS1307=y -CONFIG_USB=y -CONFIG_DM_USB=y -CONFIG_USB_KEYBOARD=y -CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_MANUFACTURER="TBS" -CONFIG_USB_GADGET_VENDOR_NUM=0x0525 -CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5 -CONFIG_CI_UDC=y -CONFIG_USB_GADGET_DOWNLOAD=y -CONFIG_I2C_EDID=y -CONFIG_VIDEO_IPUV3=y -CONFIG_VIDEO=y -# CONFIG_REGEX is not set -CONFIG_OF_LIBFDT_ASSUME_MASK=0xff -# CONFIG_EFI_LOADER is not set diff --git a/libre/uboot4extlinux-imx/uboot4extlinux-imx.install b/libre/uboot4extlinux-imx/uboot4extlinux-imx.install deleted file mode 100644 index b2860fca2..000000000 --- a/libre/uboot4extlinux-imx/uboot4extlinux-imx.install +++ /dev/null @@ -1,35 +0,0 @@ -flash_instructions() { - echo "# dd if=/boot/u-boot/images/u-boot.imx of=/dev/mmcblk0 bs=512 seek=2" -} - -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/u-boot.imx of=$root bs=512 seek=2 - 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 -}
\ No newline at end of file |