
Hi Rick,
-----Original Message----- From: Rick Chen rickchen36@gmail.com Sent: 20 January 2020 11:41 To: Pragnesh Patel pragnesh.patel@sifive.com Cc: U-Boot Mailing List u-boot@lists.denx.de; Atish Patra atish.patra@wdc.com; palmerdabbelt@google.com; Bin Meng bmeng.cn@gmail.com; Paul Walmsley ( Sifive) paul.walmsley@sifive.com; Jagan Teki jagan@amarulasolutions.com; Troy Benjegerdes ( Sifive) troy.benjegerdes@sifive.com; Anup Patel anup.patel@wdc.com; Sagar Kadam sagar.kadam@sifive.com; rick rick@andestech.com; Alan Kao alankao@andestech.com Subject: Re: [PATCH v2 9/9] doc: update FU540 RISC-V documentation
Hi Pragnesh
From: Pragnesh Patel [mailto:pragnesh.patel@sifive.com] Sent: Friday, January 17, 2020 8:46 PM To: u-boot@lists.denx.de Cc: atish.patra@wdc.com; palmerdabbelt@google.com;
bmeng.cn@gmail.com;
paul.walmsley@sifive.com; jagan@amarulasolutions.com; troy.benjegerdes@sifive.com; anup.patel@wdc.com; sagar.kadam@sifive.com; Pragnesh Patel; Anup Patel; Rick Jian-Zhi Chen(陳建志) Subject: [PATCH v2 9/9] doc: update FU540 RISC-V documentation
Add descriptions about U-Boot SPL feature and how to build and run.
Signed-off-by: Pragnesh Patel pragnesh.patel@sifive.com
doc/board/sifive/fu540.rst | 370 +++++++++++++++++++++++++++++++++++++ 1 file changed, 370 insertions(+)
diff --git a/doc/board/sifive/fu540.rst b/doc/board/sifive/fu540.rst index 3937222c6c..e15427414d 100644 --- a/doc/board/sifive/fu540.rst +++ b/doc/board/sifive/fu540.rst @@ -363,3 +363,373 @@ load uImage.
Please press Enter to activate this console. / #
+Running U-Boot SPL +------------------ +The U-Boot SPL will boot in M mode and load the FIT image which +include OpenSBI and U-Boot proper images. After loading progress, it +will jump to OpenSBI first and then U-Boot proper which will run in S mode.
+How to build U-Boot SPL +----------------------- +Before building U-Boot SPL, OpenSBI must be build first. OpenSBI can +be cloned and build for FU540 as below:
Please add .. code-block:: console
Will update in v3, thanks for catching this.
+git clone https://github.com/riscv/opensbi.git +cd opensbi +make PLATFORM=sifive/fu540
+Copy OpenSBI FW_DYNAMIC image +(build/platform/sifive/fu540/firmware/fw_dynamic.bin) +into U-Boot root directory
+How to build U-Boot SPL booting from MMC +---------------------------------------- +With sifive_fu540_spl_defconfig:
+1. Add the RISC-V toolchain to your PATH. +2. Setup ARCH & cross compilation enviornment variable:
+.. code-block:: none
- export ARCH=riscv
- export CROSS_COMPILE=<riscv64 toolchain prefix>
+3. make sifive_fu540_spl_defconfig +4. make
+Flashing +--------
+The current U-Boot port is supported in S-mode only.
+A prior stage M-mode firmware/bootloader (e.g OpenSBI) is required to +boot the u-boot.bin in S-mode and provide M-mode runtime services.
+First partition of the sdcard should contain "u-boot.itb" and +Partition type should be of "8300 Linux filesystem".
+.. code-block:: none
- sudo dd if=spl/u-boot-spl.bin of=/dev/disk2s4 bs=1024
- sudo dd if=u-boot.itb of=/dev/disk2s1 bs=1024
+Booting +------- +Once you plugin the sdcard and power up, you should see the U-Boot
prompt.
+Sample boot log from HiFive Unleashed board +-------------------------------------------
+.. code-block:: none
- U-Boot SPL 2020.01-00176-gfb5af3c225 (Jan 16 2020 - 19:23:14 +0530)
- Trying to boot from MMC1
- U-Boot 2020.01-00176-gfb5af3c225 (Jan 16 2020 - 19:23:14 +0530)
- CPU: rv64imafdc
- Model: SiFive HiFive Unleashed A00
- DRAM: 8 GiB
- MMC: spi@10050000:mmc@0: 0
- In: serial@10010000
- Out: serial@10010000
- Err: serial@10010000
- Board serial number should not be 0 !!
- Net:
Please fix ERROR: trailing whitespace #98: FILE: doc/board/sifive/fu540.rst:443:
This is from bootlogs, I will fix this in v3.
- Warning: ethernet@10090000 (eth0) using random MAC address -
9e:33:74:04:6a:eb
- eth0: ethernet@10090000
- Hit any key to stop autoboot: 0
- => version
- U-Boot 2020.01-00176-gfb5af3c225 (Jan 16 2020 - 19:23:14 +0530)
- riscv64-unknown-linux-gnu-gcc (crosstool-NG 1.24.0.37-3f461da) 9.2.0
- GNU ld (crosstool-NG 1.24.0.37-3f461da) 2.32
- => mmc info
- Device: spi@10050000:mmc@0
- Manufacturer ID: 3
- OEM: 5344
- Name: SC16G
- Bus Speed: 20000000
- Mode: SD Legacy
- Rd Block Len: 512
- SD version 2.0
- High Capacity: Yes
- Capacity: 14.8 GiB
- Bus Width: 1-bit
- Erase Group Size: 512 Bytes
- => mmc part
- Partition Map for MMC device 0 -- Partition Type: EFI
- Part Start LBA End LBA Name
- Attributes
- Type GUID
- Partition GUID
- 1 0x00000800 0x000107ff "Linux filesystem"
- attrs: 0x0000000000000000
- type: 0fc63daf-8483-4772-8e79-3d69d8477de4
- guid: 36aab838-b418-4342-929e-678d85fb4438
- 2 0x00040800 0x00ecdfde "Linux filesystem"
- attrs: 0x0000000000000000
- type: 0fc63daf-8483-4772-8e79-3d69d8477de4
- guid: 118ac296-e3ff-4ef2-b435-ec6a7bebdd6e
+Now you can configure your networking, tftp server and use tftp boot +method to load uImage.
+.. code-block:: none
- => setenv serverip 172.16.35.74
- => setenv ipaddr 172.16.35.40
- => tftpboot 0x83000000 fit.itb
- ethernet@10090000: PHY present at 0
- ethernet@10090000: Starting autonegotiation...
- ethernet@10090000: Autonegotiation complete
- ethernet@10090000: link up, 100Mbps full-duplex (lpa: 0x41e1)
- Using ethernet@10090000 device
- TFTP from server 172.16.35.74; our IP address is 172.16.35.40
- Filename 'fit.itb'.
- Load address: 0x83000000
- Loading:
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
- ###################################
- 880.9 KiB/s
- done
- Bytes transferred = 13823823 (d2ef4f hex)
- => bootm 0x83000000
- ## Loading kernel from FIT Image at 83000000 ...
- Using 'config-1' configuration
- Trying 'kernel@1' kernel subimage
- Description: Linux kernel
- Type: Kernel Image
- Compression: uncompressed
- Data Start: 0x830000d8
- Data Size: 9247260 Bytes = 8.8 MiB
- Architecture: RISC-V
- OS: Linux
- Load Address: 0x80200000
- Entry Point: 0x80200000
- Verifying Hash Integrity ... OK
- ## Loading ramdisk from FIT Image at 83000000 ...
- Using 'config-1' configuration
- Trying 'ramdisk@1' ramdisk subimage
- Description: ramdisk
- Type: RAMDisk Image
- Compression: gzip compressed
- Data Start: 0x838d3378
- Data Size: 4568674 Bytes = 4.4 MiB
- Architecture: RISC-V
- OS: Linux
- Load Address: 0x82000000
- Entry Point: unavailable
- Verifying Hash Integrity ... OK
- Loading ramdisk from 0x838d3378 to 0x82000000
- WARNING: 'compression' nodes for ramdisks are deprecated, please fix
your .its file!
- ## Loading fdt from FIT Image at 83000000 ...
- Using 'config-1' configuration
- Trying 'fdt@1' fdt subimage
- Description: unavailable
- Type: Flat Device Tree
- Compression: uncompressed
- Data Start: 0x838d1b80
- Data Size: 6023 Bytes = 5.9 KiB
- Architecture: RISC-V
- Verifying Hash Integrity ... OK
- Booting using the fdt blob at 0x838d1b80
- Loading Kernel Image
- Using Device Tree in place at 00000000838d1b80, end
- 00000000838d6306
- Starting kernel ...
- [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
- [ 0.000000] Linux version 5.3.0-13236-g97f9a3c4eee5
(pragneshp@sachinj2-OptiPlex-7010) (gcc version 8.2.0 (Buildroot 2018.11- rc2-00003-ga0787e9
[....]
- [ 1.081750] NET: Registered protocol family 17
- [ 1.085874] 9pnet: Installing 9P2000 support
- [ 1.089962] Key type dns_resolver registered
- [ 1.096391] Freeing unused kernel memory: 208K
- [ 1.100047] This architecture does not have kernel memory protection.
- [ 1.106486] Run /init as init process
- Starting syslogd: OK
- Starting klogd: OK
- Starting mdev...
- /etc/init.d/S10mdev: line 9: can't create /proc/sys/kernel/hotplug:
nonexistent directory
- [ 1.167865] mmc0: host does not support reading read-only switch,
assuming write-enable
- [ 1.175122] mmc0: new SDHC card on SPI
- [ 1.180128] mmcblk0: mmc0:0000 SC16G 14.8 GiB
- [ 1.214481] mmcblk0: p1 p2 p4
- modprobe: can't change directory to '/lib/modules': No such file or
directory
- Initializing random number generator... [ 1.655480] random: dd:
uninitialized urandom read (512 bytes read)
- done.
- Starting network: udhcpc: started, v1.29.3
- udhcpc: sending discover
- [ 3.724710] macb 10090000.ethernet eth0: link up (100/Full)
- [ 3.729529] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes
ready
- udhcpc: sending discover
- udhcpc: sending discover
- udhcpc: sending select for 172.16.35.78
- udhcpc: lease of 172.16.35.78 obtained, lease time 28800
- deleting routers
- adding dns 172.16.34.150
- adding dns 172.16.24.25
- OK
- Starting dropbear sshd: [ 7.932851] random: dropbear: uninitialized
urandom read (32 bytes read)
- OK
- Welcome to Buildroot
- buildroot login: root
- Password:
Please fix ERROR: trailing whitespace #389: FILE: doc/board/sifive/fu540.rst:734:
Will fix in v3, thanks.
- Password: $
- #
-- 2.17.1