671423d33e
This commit extends the beaglev_defconfig and its documentation to build the low-level firmware, and to explain how to reflash it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> [yann.morin.1998@free.fr: use typoed-name for beaglev-ddrlnit] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> |
||
---|---|---|
.. | ||
patches/uboot | ||
extlinux.conf | ||
genimage.cfg | ||
post-build.sh | ||
readme.txt |
BeagleV ======= BeagleV is a low-cost RISC-V 64-bit based platform, powered by a Starfive JH7100 processor. The current defconfig in Buildroot has been tested with the JH7100 chip used on the beta version of the BeagleV board. How to build ============ $ make beaglev_defconfig $ make 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 + fw_payload.elf + rootfs.ext2 + rootfs.ext4 + sdcard.img + u-boot.bin 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. - sdcard.img, the SD card image, which contains the root filesystem, kernel image and Device Tree. Flashing the SD card image ========================== $ sudo dd if=output/images/sdcard.img of=/dev/sdX Preparing the board =================== Connect the Beagle-V fan to the 5V supply (pin 2 or 4 of the GPIO connector) and GND (pin 6 of the GPIO connector). Connect a TTL UART cable to pin 8 (TX), 10 (RX) and 14 (GND). Insert your SD card. Power-up the board using an USB-C cable. Flashing OpenSBI/U-Boot ======================= The bootloader pre-flashed on the Beagle-V has a non-working fdt_addr_r environment variable value, so it won't work as-is. Reflashing the bootloader with the bootloader image produced by Buildroot is necessary. When the board starts up, a pre-loader shows a count down of 2 seconds, interrupt by pressing any key. You should reach a menu like this: --------8<---------- bootloader version:210209-4547a8d ddr 0x00000000, 1M test ddr 0x00100000, 2M test DDR clk 2133M,Version: 210302-5aea32f 0 *************************************************** *************** FLASH PROGRAMMING ***************** *************************************************** 0:update uboot 1:quit select the function: --------8<---------- Press 0 and Enter. You will now see "C" characters being displayed. Ask your serial port communication program to send 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@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, which 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.