From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Petazzoni Date: Sun, 2 May 2021 23:21:41 +0200 Subject: [Buildroot] [PATCH v2 6/6] configs/beaglev: enable building of low-level firmware In-Reply-To: <20210502212141.934384-1-thomas.petazzoni@bootlin.com> References: <20210502212141.934384-1-thomas.petazzoni@bootlin.com> Message-ID: <20210502212141.934384-14-thomas.petazzoni@bootlin.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net This commit extends the beaglev_defconfig and its documentation to build the low-level firmware, and explain how to reflash it. Signed-off-by: Thomas Petazzoni --- board/beaglev/readme.txt | 38 ++++++++++++++++++++++++++++++++++++-- configs/beaglev_defconfig | 2 ++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/board/beaglev/readme.txt b/board/beaglev/readme.txt index d8511d3fd1..a3adaba3ae 100644 --- a/board/beaglev/readme.txt +++ b/board/beaglev/readme.txt @@ -17,6 +17,8 @@ Build results After building, output/images contains: ++ bootloader-BEAGLEV-buildroot.bin.out ++ ddrinit-2133-buildroot.bin.out + Image + fw_payload.bin + fw_payload.bin.out @@ -26,7 +28,11 @@ After building, output/images contains: + sdcard.img + u-boot.bin -The two important files are: +The four important files are: + + - bootloader-BEAGLEV-buildroot.bin.out, the first stage bootloader + + - ddrinit-2133-buildroot.bin.out, the DDR initialization firmware - fw_payload.bin.out, which is the bootloader image, containing both OpenSBI and U-Boot. @@ -51,7 +57,7 @@ Insert your SD card. Power-up the board using an USB-C cable. -Flashing the bootloader +Flashing OpenSBI/U-Boot ======================= The bootloader pre-flashed on the Beagle-V has a non-working @@ -86,3 +92,31 @@ fw_payload.bin.out using the Xmodem protocol. After reflashing is complete, restart the board, it will automatically start the system from the SD card, and reach the login prompt. + +Flashing low-level bootloaders +============================== + +The BeagleV comes pre-flashed with functional low-level bootloaders +(called "secondboot" and "ddrinit"). Re-flashing them is not necessary +to use this Buildroot defconfig. However, for the sake of +completeness, Buildroot builds and provides those low-level bootloader +images. + +You can flash them as follows: + + - In the same "pre-loader" menu as the one used above, instead of + entering 0 or 1, enter the magic "root at s5t" string. This enters the + "expert" features. + + - Then, press 0 and send over X-modem the + bootloader-BEAGLEV-buildroot.bin.out file. + + - Then, press 1 and send over X-modem the + ddrinit-2133-buildroot.bin.out. + +Note that the reflashing mechanism itself relies on those low-level +bootloaders, so if you flash non-working versions, you'll have to go +through a recovery process. This requires wiring up to a separate +debug UART, whose pins are located near the HDMI connector. See +https://wiki.seeedstudio.com/BeagleV-Update-bootloader-ddr-init-boot-uboot-Recover-bootloader/ +section "Recover the bootloader" for more details. diff --git a/configs/beaglev_defconfig b/configs/beaglev_defconfig index 2320e2ca83..3efcab8d61 100644 --- a/configs/beaglev_defconfig +++ b/configs/beaglev_defconfig @@ -18,6 +18,8 @@ BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y # BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_BEAGLEV_DDRINIT=y +BR2_TARGET_BEAGLEV_SECONDBOOT=y BR2_TARGET_OPENSBI=y BR2_TARGET_OPENSBI_CUSTOM_TARBALL=y # HEAD of the Fedora branch -- 2.30.2