2021-05-04 22:51:34 +02:00
|
|
|
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:
|
|
|
|
|
2021-05-04 22:51:38 +02:00
|
|
|
+ bootloader-BEAGLEV-buildroot.bin.out
|
|
|
|
+ ddrinit-2133-buildroot.bin.out
|
2021-05-04 22:51:34 +02:00
|
|
|
+ Image
|
|
|
|
+ fw_payload.bin
|
|
|
|
+ fw_payload.bin.out
|
|
|
|
+ fw_payload.elf
|
|
|
|
+ rootfs.ext2
|
|
|
|
+ rootfs.ext4
|
|
|
|
+ sdcard.img
|
|
|
|
+ u-boot.bin
|
|
|
|
|
2021-05-04 22:51:38 +02:00
|
|
|
The four important files are:
|
|
|
|
|
|
|
|
- bootloader-BEAGLEV-buildroot.bin.out, the first stage bootloader
|
|
|
|
|
|
|
|
- ddrinit-2133-buildroot.bin.out, the DDR initialization firmware
|
2021-05-04 22:51:34 +02:00
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2021-05-04 22:51:38 +02:00
|
|
|
Flashing OpenSBI/U-Boot
|
2021-05-04 22:51:34 +02:00
|
|
|
=======================
|
|
|
|
|
|
|
|
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.
|
2021-05-04 22:51:38 +02:00
|
|
|
|
|
|
|
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/
|
2021-05-15 00:03:16 +02:00
|
|
|
section "Recover the bootloader" for more details. The instructions
|
|
|
|
make use of a jh7100-recover tool, which Buildroot has built as part
|
|
|
|
of this defconfig: it is available as output/host/bin/jh7100-recover.
|