.. SPDX-License-Identifier: GPL-2.0+

HiFive Unleashed
================

FU540-C000 RISC-V SoC
---------------------
The FU540-C000 is the world’s first 4+1 64-bit RISC-V SoC from SiFive.

The HiFive Unleashed development platform is based on FU540-C000 and capable
of running Linux.

Mainline support
----------------

The support for following drivers are already enabled:

1. SiFive UART Driver.
2. SiFive PRCI Driver for clock.
3. Cadence MACB ethernet driver for networking support.
4. SiFive SPI Driver.
5. MMC SPI Driver for MMC/SD support.

Booting from MMC using FSBL
---------------------------

Building
~~~~~~~~

1. Add the RISC-V toolchain to your PATH.
2. Setup ARCH & cross compilation environment variable:

.. code-block:: none

   export CROSS_COMPILE=<riscv64 toolchain prefix>

3. make sifive_fu540_defconfig
4. make

Flashing
~~~~~~~~

The current U-Boot port is supported in S-mode only and loaded from DRAM.

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.

Currently, the u-boot.bin is used as a payload of the OpenSBI FW_PAYLOAD
firmware. We need to compile OpenSBI with below command:

.. code-block:: none

	make PLATFORM=generic FW_PAYLOAD_PATH=<path to u-boot-dtb.bin>

More detailed description of steps required to build FW_PAYLOAD firmware
is beyond the scope of this document. Please refer OpenSBI documenation.
(Note: OpenSBI git repo is at https://github.com/riscv/opensbi.git)

Once the prior stage firmware/bootloader binary is generated, it should be
copied to the first partition of the sdcard.

.. code-block:: none

    sudo dd if=<prior_stage_firmware_binary> 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 2019.07-00024-g350ff02f5b (Jul 22 2019 - 11:45:02 +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
   Net:   eth0: ethernet@10090000
   Hit any key to stop autoboot:  0
   => version
   U-Boot 2019.07-00024-g350ff02f5b (Jul 22 2019 - 11:45:02 +0530)

   riscv64-linux-gcc.br_real (Buildroot 2018.11-rc2-00003-ga0787e9) 8.2.0
   GNU ld (GNU Binutils) 2.31.1
   => mmc info
   Device: spi@10050000:mmc@0
   Manufacturer ID: 3
   OEM: 5344
   Name: SU08G
   Bus Speed: 20000000
   Mode: SD Legacy
   Rd Block Len: 512
   SD version 2.0
   High Capacity: Yes
   Capacity: 7.4 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      "bootloader"
           attrs:  0x0000000000000000
           type:   2e54b353-1271-4842-806f-e436d6af6985
           guid:   393bbd36-7111-491c-9869-ce24008f6403
     2     0x00040800      0x00ecdfde      ""
           attrs:  0x0000000000000000
           type:   0fc63daf-8483-4772-8e79-3d69d8477de4
           guid:   7fc9a949-5480-48c7-b623-04923080757f

Now you can configure your networking, tftp server and use tftp boot method to
load uImage.

.. code-block:: none

   => setenv ipaddr 10.206.7.133
   => setenv netmask 255.255.252.0
   => setenv serverip 10.206.4.143
   => setenv gateway 10.206.4.1

If you want to use a flat kernel image such as Image file

.. code-block:: none

   => tftpboot ${kernel_addr_r} /sifive/fu540/Image
   ethernet@10090000: PHY present at 0
   ethernet@10090000: Starting autonegotiation...
   ethernet@10090000: Autonegotiation complete
   ethernet@10090000: link up, 1000Mbps full-duplex (lpa: 0x3c00)
   Using ethernet@10090000 device
   TFTP from server 10.206.4.143; our IP address is 10.206.7.133
   Filename '/sifive/fu540/Image'.
   Load address: 0x84000000
   Loading: #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            ##########################################
            1.2 MiB/s
   done
   Bytes transferred = 8867100 (874d1c hex)

Or if you want to use a compressed kernel image file such as Image.gz

.. code-block:: none

   => tftpboot ${kernel_addr_r} /sifive/fu540/Image.gz
   ethernet@10090000: PHY present at 0
   ethernet@10090000: Starting autonegotiation...
   ethernet@10090000: Autonegotiation complete
   ethernet@10090000: link up, 1000Mbps full-duplex (lpa: 0x3c00)
   Using ethernet@10090000 device
   TFTP from server 10.206.4.143; our IP address is 10.206.7.133
   Filename '/sifive/fu540/Image.gz'.
   Load address: 0x84000000
   Loading: #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            ##########################################
            1.2 MiB/s
   done
   Bytes transferred = 4809458 (4962f2 hex)
   =>setenv kernel_comp_addr_r 0x90000000
   =>setenv kernel_comp_size 0x500000

By this time, correct kernel image is loaded and required environment variables
are set. You can proceed to load the ramdisk and device tree from the tftp server
as well.

.. code-block:: none

   => tftpboot ${ramdisk_addr_r} /sifive/fu540/uRamdisk
   ethernet@10090000: PHY present at 0
   ethernet@10090000: Starting autonegotiation...
   ethernet@10090000: Autonegotiation complete
   ethernet@10090000: link up, 1000Mbps full-duplex (lpa: 0x3c00)
   Using ethernet@10090000 device
   TFTP from server 10.206.4.143; our IP address is 10.206.7.133
   Filename '/sifive/fu540/uRamdisk'.
   Load address: 0x88300000
   Loading: #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            #################################################################
            ##############
            418.9 KiB/s
   done
   Bytes transferred = 2398272 (249840 hex)
   => tftpboot ${fdt_addr_r} /sifive/fu540/hifive-unleashed-a00.dtb
   ethernet@10090000: PHY present at 0
   ethernet@10090000: Starting autonegotiation...
   ethernet@10090000: Autonegotiation complete
   ethernet@10090000: link up, 1000Mbps full-duplex (lpa: 0x7c00)
   Using ethernet@10090000 device
   TFTP from server 10.206.4.143; our IP address is 10.206.7.133
   Filename '/sifive/fu540/hifive-unleashed-a00.dtb'.
   Load address: 0x88000000
   Loading: ##
            1000 Bytes/s
   done
   Bytes transferred = 5614 (15ee hex)
   => setenv bootargs "root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi"
   => booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
   ## Loading init Ramdisk from Legacy Image at 88300000 ...
      Image Name:   Linux RootFS
      Image Type:   RISC-V Linux RAMDisk Image (uncompressed)
      Data Size:    2398208 Bytes = 2.3 MiB
      Load Address: 00000000
      Entry Point:  00000000
      Verifying Checksum ... OK
   ## Flattened Device Tree blob at 88000000
      Booting using the fdt blob at 0x88000000
      Using Device Tree in place at 0000000088000000, end 00000000880045ed

   Starting kernel ...

   [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
   [    0.000000] Linux version 5.3.0-rc1-00003-g460ac558152f (anup@anup-lab-machine) (gcc version 8.2.0 (Buildroot 2018.11-rc2-00003-ga0787e9)) #6 SMP Mon Jul 22 10:01:01 IST 2019
   [    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
   [    0.000000] printk: bootconsole [sbi0] enabled
   [    0.000000] Initial ramdisk at: 0x(____ptrval____) (2398208 bytes)
   [    0.000000] Zone ranges:
   [    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000ffffffff]
   [    0.000000]   Normal   [mem 0x0000000100000000-0x000000027fffffff]
   [    0.000000] Movable zone start for each node
   [    0.000000] Early memory node ranges
   [    0.000000]   node   0: [mem 0x0000000080200000-0x000000027fffffff]
   [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000027fffffff]
   [    0.000000] software IO TLB: mapped [mem 0xfbfff000-0xfffff000] (64MB)
   [    0.000000] CPU with hartid=0 is not available
   [    0.000000] CPU with hartid=0 is not available
   [    0.000000] elf_hwcap is 0x112d
   [    0.000000] percpu: Embedded 18 pages/cpu s34584 r8192 d30952 u73728
   [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2067975
   [    0.000000] Kernel command line: root=/dev/ram rw console=ttySIF0 ip=dhcp earlycon=sbi
   [    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
   [    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
   [    0.000000] Sorting __ex_table...
   [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
   [    0.000000] Memory: 8182308K/8386560K available (5916K kernel code, 368K rwdata, 1840K rodata, 213K init, 304K bss, 204252K reserved, 0K cma-reserved)
   [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
   [    0.000000] rcu: Hierarchical RCU implementation.
   [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
   [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
   [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
   [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
   [    0.000000] plic: mapped 53 interrupts with 4 handlers for 9 contexts.
   [    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
   [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
   [    0.000006] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
   [    0.008559] Console: colour dummy device 80x25
   [    0.012989] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000)
   [    0.023104] pid_max: default: 32768 minimum: 301
   [    0.028273] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
   [    0.035765] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
   [    0.045307] rcu: Hierarchical SRCU implementation.
   [    0.049875] smp: Bringing up secondary CPUs ...
   [    0.055729] smp: Brought up 1 node, 4 CPUs
   [    0.060599] devtmpfs: initialized
   [    0.064819] random: get_random_u32 called from bucket_table_alloc.isra.10+0x4e/0x160 with crng_init=0
   [    0.073720] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
   [    0.083176] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
   [    0.090721] NET: Registered protocol family 16
   [    0.106319] vgaarb: loaded
   [    0.108670] SCSI subsystem initialized
   [    0.112515] usbcore: registered new interface driver usbfs
   [    0.117758] usbcore: registered new interface driver hub
   [    0.123167] usbcore: registered new device driver usb
   [    0.128905] clocksource: Switched to clocksource riscv_clocksource
   [    0.141239] NET: Registered protocol family 2
   [    0.145506] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
   [    0.153754] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
   [    0.163466] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
   [    0.173468] TCP: Hash tables configured (established 65536 bind 65536)
   [    0.179739] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
   [    0.186627] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
   [    0.194117] NET: Registered protocol family 1
   [    0.198417] RPC: Registered named UNIX socket transport module.
   [    0.203887] RPC: Registered udp transport module.
   [    0.208664] RPC: Registered tcp transport module.
   [    0.213429] RPC: Registered tcp NFSv4.1 backchannel transport module.
   [    0.219944] PCI: CLS 0 bytes, default 64
   [    0.224170] Unpacking initramfs...
   [    0.262347] Freeing initrd memory: 2336K
   [    0.266531] workingset: timestamp_bits=62 max_order=21 bucket_order=0
   [    0.280406] NFS: Registering the id_resolver key type
   [    0.284798] Key type id_resolver registered
   [    0.289048] Key type id_legacy registered
   [    0.293114] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
   [    0.300262] NET: Registered protocol family 38
   [    0.304432] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
   [    0.311862] io scheduler mq-deadline registered
   [    0.316461] io scheduler kyber registered
   [    0.356421] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
   [    0.363004] 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 4, base_baud = 0) is a SiFive UART v0
   [    0.371468] printk: console [ttySIF0] enabled
   [    0.371468] printk: console [ttySIF0] enabled
   [    0.380223] printk: bootconsole [sbi0] disabled
   [    0.380223] printk: bootconsole [sbi0] disabled
   [    0.389589] 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 1, base_baud = 0) is a SiFive UART v0
   [    0.398680] [drm] radeon kernel modesetting enabled.
   [    0.412395] loop: module loaded
   [    0.415214] sifive_spi 10040000.spi: mapped; irq=3, cs=1
   [    0.420628] sifive_spi 10050000.spi: mapped; irq=5, cs=1
   [    0.425897] libphy: Fixed MDIO Bus: probed
   [    0.429964] macb 10090000.ethernet: Registered clk switch 'sifive-gemgxl-mgmt'
   [    0.436743] macb: GEM doesn't support hardware ptp.
   [    0.441621] libphy: MACB_mii_bus: probed
   [    0.601316] Microsemi VSC8541 SyncE 10090000.ethernet-ffffffff:00: attached PHY driver [Microsemi VSC8541 SyncE] (mii_bus:phy_addr=10090000.ethernet-ffffffff:00, irq=POLL)
   [    0.615857] macb 10090000.ethernet eth0: Cadence GEM rev 0x10070109 at 0x10090000 irq 6 (70:b3:d5:92:f2:f3)
   [    0.625634] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
   [    0.631381] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
   [    0.637382] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
   [    0.643799] ehci-pci: EHCI PCI platform driver
   [    0.648261] ehci-platform: EHCI generic platform driver
   [    0.653497] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
   [    0.659599] ohci-pci: OHCI PCI platform driver
   [    0.664055] ohci-platform: OHCI generic platform driver
   [    0.669448] usbcore: registered new interface driver uas
   [    0.674575] usbcore: registered new interface driver usb-storage
   [    0.680642] mousedev: PS/2 mouse device common for all mice
   [    0.709493] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
   [    0.716615] usbcore: registered new interface driver usbhid
   [    0.722023] usbhid: USB HID core driver
   [    0.726738] NET: Registered protocol family 10
   [    0.731359] Segment Routing with IPv6
   [    0.734332] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
   [    0.740687] NET: Registered protocol family 17
   [    0.744660] Key type dns_resolver registered
   [    0.806775] mmc0: host does not support reading read-only switch, assuming write-enable
   [    0.814020] mmc0: new SDHC card on SPI
   [    0.820137] mmcblk0: mmc0:0000 SU08G 7.40 GiB
   [    0.850220]  mmcblk0: p1 p2
   [    3.821524] macb 10090000.ethernet eth0: link up (1000/Full)
   [    3.828938] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
   [    3.848919] Sending DHCP requests .., OK
   [    6.252076] IP-Config: Got DHCP answer from 10.206.4.1, my address is 10.206.7.133
   [    6.259624] IP-Config: Complete:
   [    6.262831]      device=eth0, hwaddr=70:b3:d5:92:f2:f3, ipaddr=10.206.7.133, mask=255.255.252.0, gw=10.206.4.1
   [    6.272809]      host=dhcp-10-206-7-133, domain=sdcorp.global.sandisk.com, nis-domain=(none)
   [    6.281228]      bootserver=10.206.126.11, rootserver=10.206.126.11, rootpath=
   [    6.281232]      nameserver0=10.86.1.1, nameserver1=10.86.2.1
   [    6.294179]      ntpserver0=10.86.1.1, ntpserver1=10.86.2.1
   [    6.301026] Freeing unused kernel memory: 212K
   [    6.304683] This architecture does not have kernel memory protection.
   [    6.311121] Run /init as init process
              _  _
             | ||_|
             | | _ ____  _   _  _  _
             | || |  _ \| | | |\ \/ /
             | || | | | | |_| |/    \
             |_||_|_| |_|\____|\_/\_/

                  Busybox Rootfs

   Please press Enter to activate this console.
   / #

Booting from MMC using U-Boot SPL
---------------------------------

Building
~~~~~~~~

Before building U-Boot SPL, OpenSBI must be built first. OpenSBI can be
cloned and built for FU540 as below:

.. code-block:: console

	git clone https://github.com/riscv/opensbi.git
	cd opensbi
	make PLATFORM=generic
	export OPENSBI=<path to opensbi/build/platform/generic/firmware/fw_dynamic.bin>

Now build the U-Boot SPL and U-Boot proper

.. code-block:: console

	cd <U-Boot-dir>
	make sifive_fu540_defconfig
	make

This will generate spl/u-boot-spl.bin and FIT image (u-boot.itb)


Flashing
~~~~~~~~

ZSBL loads the U-Boot SPL (u-boot-spl.bin) from a partition with GUID type
5B193300-FC78-40CD-8002-E86C45580B47

U-Boot SPL expects a U-Boot FIT image (u-boot.itb) from a partition with GUID
type 2E54B353-1271-4842-806F-E436D6AF6985

FIT image (u-boot.itb) is a combination of fw_dynamic.bin, u-boot-nodtb.bin and
device tree blob (hifive-unleashed-a00.dtb)

Format the SD card (make sure the disk has GPT, otherwise use gdisk to switch)

.. code-block:: bash

	sudo sgdisk --clear \
	  --set-alignment=2 \
	  --new=1:34:2081 --change-name=1:loader1 --typecode=1:5B193300-FC78-40CD-8002-E86C45580B47 \
	  --new=2:2082:10273 --change-name=2:loader2 --typecode=2:2E54B353-1271-4842-806F-E436D6AF6985 \
	  --new=3:10274: --change-name=3:rootfs --typecode=3:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
	  /dev/sdX

Program the SD card

.. code-block:: bash

	sudo dd if=spl/u-boot-spl.bin of=/dev/sdX seek=34
	sudo dd if=u-boot.itb of=/dev/sdX seek=2082

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.04-rc2-00109-g63efc7e07e-dirty (Apr 30 2020 - 13:52:36 +0530)
	Trying to boot from MMC1


	U-Boot 2020.04-rc2-00109-g63efc7e07e-dirty (Apr 30 2020 - 13:52:36 +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
	Net:   eth0: ethernet@10090000
	Hit any key to stop autoboot:  0
	=> version
	U-Boot 2020.04-rc2-00109-g63efc7e07e-dirty (Apr 30 2020 - 13:52:36 +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     0x00000022      0x00000821      "loader1"
	attrs:  0x0000000000000000
	type:   5b193300-fc78-40cd-8002-e86c45580b47
	guid:   66e2b5d2-74db-4df8-ad6f-694b3617f87f
	2     0x00000822      0x00002821      "loader2"
	attrs:  0x0000000000000000
	type:   2e54b353-1271-4842-806f-e436d6af6985
	guid:   8befaeaf-bca0-435d-b002-e201f37c0a2f
	3     0x00002822      0x01dacbde      "rootfs"
	attrs:  0x0000000000000000
	type:   0fc63daf-8483-4772-8e79-3d69d8477de4
	type:   linux
	guid:   9faa81b6-39b1-4418-af5e-89c48f29c20d

Booting from SPI
----------------

Use Building steps from "Booting from MMC using U-Boot SPL" section.

Partition the SPI in Linux via mtdblock. (Require to boot the board in
SD boot mode by enabling MTD block in Linux)

Use prebuilt image from here [1], which support to partition the SPI flash.

.. code-block:: none

  # sgdisk --clear \
  > --set-alignment=2 \
  > --new=1:40:2087 --change-name=1:loader1 --typecode=1:5B193300-FC78-40CD-8002-E86C45580B47 \
  > --new=2:2088:10279 --change-name=2:loader2 --typecode=2:2E54B353-1271-4842-806F-E436D6AF6985 \
  > --new=3:10536:65494 --change-name=3:rootfs --typecode=3:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
  > /dev/mtdblock0

Program the SPI (Require to boot the board in SD boot mode)

Execute below steps on U-Boot proper,

.. code-block:: none

  tftpboot $kernel_addr_r u-boot-spl.bin
  sf erase 0x5000 $filesize
  sf write $kernel_addr_r 0x5000 $filesize

  tftpboot $kernel_addr_r u-boot.itb
  sf erase 0x105000 $filesize
  sf write $kernel_addr_r 0x105000 $filesize

Power off the board

Change DIP switches MSEL[3:0] are set to 0110

Power up the board.

[1] https://github.com/amarula/bsp-sifive
