unmatched.rst 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. .. SPDX-License-Identifier: GPL-2.0+
  2. HiFive Unmatched
  3. ================
  4. FU740-C000 RISC-V SoC
  5. ---------------------
  6. The FU740-C000 is a 4+1 64-bit RISC-V core SoC from SiFive.
  7. The HiFive Unmatched development platform is based on FU740-C000 and capable
  8. of running Linux.
  9. Mainline support
  10. ----------------
  11. The support for following drivers are already enabled:
  12. 1. SiFive UART Driver.
  13. 2. SiFive PRCI Driver for clock.
  14. 3. Cadence MACB ethernet driver for networking support.
  15. 4. SiFive SPI Driver.
  16. 5. MMC SPI Driver for MMC/SD support.
  17. Booting from micro SD card using U-Boot SPL
  18. -------------------------------------------
  19. Booting from an SD card requires that the boot mode selection DIP switches
  20. MSEL[3:0] are set to 1011.
  21. Building
  22. --------
  23. Before building U-Boot SPL, OpenSBI must be built first. OpenSBI can be
  24. cloned and built for FU740 as below:
  25. .. code-block:: console
  26. git clone https://github.com/riscv/opensbi.git
  27. cd opensbi
  28. make PLATFORM=generic
  29. export OPENSBI=<path to opensbi/build/platform/generic/firmware/fw_dynamic.bin>
  30. Now build the U-Boot SPL and U-Boot proper
  31. .. code-block:: console
  32. cd <U-Boot-dir>
  33. make sifive_unmatched_defconfig
  34. make
  35. This will generate spl/u-boot-spl.bin and u-boot.itb
  36. Flashing
  37. --------
  38. ZSBL loads the U-Boot SPL (u-boot-spl.bin) from a partition with GUID type
  39. 5B193300-FC78-40CD-8002-E86C45580B47
  40. With the default configuration U-Boot SPL expects u-boot.itb starting at sector
  41. 2082 (CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x822). It is recommended to use a
  42. partition with type GUID 2E54B353-1271-4842-806F-E436D6AF6985 for storing
  43. main U-Boot.
  44. u-boot.itb is a combination of fw_dynamic.bin, u-boot-nodtb.bin and
  45. device tree blob (hifive-unmatched-a00.dtb)
  46. Format the SD card (make sure the disk has GPT, otherwise use gdisk to switch)
  47. .. code-block:: bash
  48. sudo sgdisk -g --clear -a 1 \
  49. --new=1:34:2081 --change-name=1:spl --typecode=1:5B193300-FC78-40CD-8002-E86C45580B47 \
  50. --new=2:2082:10273 --change-name=2:uboot --typecode=2:2E54B353-1271-4842-806F-E436D6AF6985 \
  51. --new=3:16384:282623 --change-name=3:boot --typecode=3:0x0700 \
  52. --new=4:286720:13918207 --change-name=4:root --typecode=4:0x8300 \
  53. /dev/sdX
  54. Copy linux Image.gz and hifive-unmatched-a00.dtb to boot partition
  55. .. code-block:: bash
  56. sudo mkfs.vfat /dev/sdX3
  57. sudo mkfs.ext4 /dev/sdX4
  58. sudo mount /dev/sdX3 /media/sdX3
  59. sudo cp Image.gz hifive-unmatched-a00.dtb /media/sdX3/
  60. Program the SD card
  61. .. code-block:: bash
  62. sudo dd if=spl/u-boot-spl.bin of=/dev/sdX seek=34
  63. sudo dd if=u-boot.itb of=/dev/sdX seek=2082
  64. Booting
  65. -------
  66. Once you plugin the sdcard and power up, you should see the U-Boot prompt.
  67. Loading the kernel and dtb
  68. .. code-block:: none
  69. fatload mmc 0:3 ${kernel_addr_r} Image.gz
  70. fatload mmc 0:3 ${fdt_addr_r} hifive-unmatched-a00.dtb
  71. booti ${kernel_addr_r} - ${fdt_addr_r}
  72. Sample boot log from HiFive Unmatched board
  73. -------------------------------------------
  74. .. code-block:: none
  75. U-Boot SPL 2021.04-rc4-00009-g7d70643cc3-dirty (Mar 16 2021 - 18:03:14 +0800)
  76. Trying to boot from MMC1
  77. U-Boot 2021.04-rc4-00009-g7d70643cc3-dirty (Mar 16 2021 - 18:03:14 +0800)
  78. CPU: rv64imafdc
  79. Model: SiFive HiFive Unmatched A00
  80. DRAM: 16 GiB
  81. MMC: spi@10050000:mmc@0: 0
  82. In: serial@10010000
  83. Out: serial@10010000
  84. Err: serial@10010000
  85. Model: SiFive HiFive Unmatched A00
  86. Net:
  87. Error: ethernet@10090000 address not set.
  88. No ethernet found.
  89. Hit any key to stop autoboot: 0
  90. PCIe Link up, Gen1
  91. Device 0: Vendor: 0x126f Rev: S1111A0L Prod: AA000000000000001995
  92. Type: Hard Disk
  93. Capacity: 488386.3 MB = 476.9 GB (1000215216 x 512)
  94. ... is now current device
  95. Scanning nvme 0:1...
  96. libfdt fdt_check_header(): FDT_ERR_BADMAGIC
  97. Scanning disk mmc@0.blk...
  98. ** Unrecognized filesystem type **
  99. ** Unrecognized filesystem type **
  100. Scanning disk nvme#0.blk#0...
  101. Found 8 disks
  102. No EFI system partition
  103. Error: ethernet@10090000 address not set.
  104. BootOrder not defined
  105. EFI boot manager: Cannot load any image
  106. starting USB...
  107. Bus xhci_pci: Register 4000840 NbrPorts 4
  108. Starting the controller
  109. USB XHCI 1.00
  110. scanning bus xhci_pci for devices... 3 USB Device(s) found
  111. scanning usb for storage devices... 0 Storage Device(s) found
  112. Device 0: unknown device
  113. switch to partitions #0, OK
  114. mmc0 is current device
  115. Scanning mmc 0:3...
  116. Found /extlinux/extlinux.conf
  117. Retrieving file: /extlinux/extlinux.conf
  118. 205 bytes read in 9 ms (21.5 KiB/s)
  119. 1: OpenEmbedded-SiFive-HiFive-Unmatched
  120. Retrieving file: /Image.gz
  121. 7225919 bytes read in 4734 ms (1.5 MiB/s)
  122. append: root=/dev/mmcblk0p4 rootfstype=ext4 rootwait console=ttySIF0,115200 earlycon=sbi
  123. Retrieving file: /hifive-unmatched-a00.dtb
  124. 10445 bytes read in 13 ms (784.2 KiB/s)
  125. Uncompressing Kernel Image
  126. Moving Image from 0x84000000 to 0x80200000, end=81629000
  127. ## Flattened Device Tree blob at 88000000
  128. Booting using the fdt blob at 0x88000000
  129. Using Device Tree in place at 0000000088000000, end 00000000880058cc
  130. Starting kernel ...
  131. [ 0.000000] Linux version 5.10.15 (oe-user@oe-host) (riscv64-oe-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.0.201
  132. [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
  133. [ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
  134. [ 0.000000] printk: bootconsole [sbi0] enabled
  135. [ 0.000000] efi: UEFI not found.
  136. [ 0.000000] Zone ranges:
  137. [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000ffffffff]
  138. [ 0.000000] Normal [mem 0x0000000100000000-0x000000027fffffff]
  139. [ 0.000000] Movable zone start for each node
  140. [ 0.000000] Early memory node ranges
  141. [ 0.000000] node 0: [mem 0x0000000080200000-0x000000027fffffff]
  142. [ 0.000000] Zeroed struct page in unavailable ranges: 512 pages
  143. [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x000000027fffffff]
  144. [ 0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
  145. [ 0.000000] SBI specification v0.3 detected
  146. [ 0.000000] SBI implementation ID=0x1 Version=0x9
  147. [ 0.000000] SBI v0.2 TIME extension detected
  148. [ 0.000000] SBI v0.2 IPI extension detected
  149. [ 0.000000] SBI v0.2 RFENCE extension detected
  150. [ 0.000000] SBI v0.2 HSM extension detected
  151. [ 0.000000] CPU with hartid=0 is not available
  152. [ 0.000000] CPU with hartid=0 is not available
  153. [ 0.000000] riscv: ISA extensions acdfim
  154. [ 0.000000] riscv: ELF capabilities acdfim
  155. [ 0.000000] percpu: Embedded 26 pages/cpu s66904 r8192 d31400 u106496
  156. [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 2067975
  157. [ 0.000000] Kernel command line: root=/dev/mmcblk0p4 rootfstype=ext4 rootwait console=ttySIF0,115200 earlycon=sbi
  158. [ 0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
  159. [ 0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
  160. [ 0.000000] Sorting __ex_table...
  161. [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
  162. [ 0.000000] Memory: 8155880K/8386560K available (8490K kernel code, 5515K rwdata, 4096K rodata, 285K init, 383K bss, 23)
  163. [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
  164. [ 0.000000] rcu: Hierarchical RCU implementation.
  165. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
  166. [ 0.000000] Tracing variant of Tasks RCU enabled.
  167. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
  168. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
  169. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
  170. [ 0.000000] CPU with hartid=0 is not available
  171. [ 0.000000] riscv-intc: unable to find hart id for /cpus/cpu@0/interrupt-controller
  172. [ 0.000000] riscv-intc: 64 local interrupts mapped
  173. [ 0.000000] plic: interrupt-controller@c000000: mapped 69 interrupts with 4 handlers for 9 contexts.
  174. [ 0.000000] random: get_random_bytes called from 0xffffffe000002a6a with crng_init=0
  175. [ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
  176. [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 352636161696s
  177. [ 0.000007] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
  178. [ 0.008626] Console: colour dummy device 80x25
  179. [ 0.013049] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=4000)
  180. [ 0.023115] pid_max: default: 32768 minimum: 301
  181. [ 0.028423] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
  182. [ 0.035919] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
  183. [ 0.045957] rcu: Hierarchical SRCU implementation.
  184. [ 0.050393] EFI services will not be available.
  185. [ 0.055132] smp: Bringing up secondary CPUs ...
  186. [ 0.061824] smp: Brought up 1 node, 4 CPUs
  187. [ 0.067458] devtmpfs: initialized
  188. [ 0.072700] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
  189. [ 0.081789] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
  190. [ 0.089738] NET: Registered protocol family 16
  191. [ 0.093999] thermal_sys: Registered thermal governor 'step_wise'
  192. [ 0.109208] iommu: Default domain type: Translated
  193. [ 0.119694] vgaarb: loaded
  194. [ 0.122571] SCSI subsystem initialized
  195. [ 0.126499] usbcore: registered new interface driver usbfs
  196. [ 0.131686] usbcore: registered new interface driver hub
  197. [ 0.137071] usbcore: registered new device driver usb
  198. [ 0.142286] EDAC MC: Ver: 3.0.0
  199. [ 0.145760] Advanced Linux Sound Architecture Driver Initialized.
  200. [ 0.152205] clocksource: Switched to clocksource riscv_clocksource
  201. [ 1.046286] VFS: Disk quotas dquot_6.6.0
  202. [ 1.049651] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
  203. [ 1.062844] NET: Registered protocol family 2
  204. [ 1.067172] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
  205. [ 1.075455] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
  206. [ 1.085428] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
  207. [ 1.096548] TCP: Hash tables configured (established 65536 bind 65536)
  208. [ 1.103043] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
  209. [ 1.109879] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
  210. [ 1.117413] NET: Registered protocol family 1
  211. [ 1.121881] RPC: Registered named UNIX socket transport module.
  212. [ 1.127139] RPC: Registered udp transport module.
  213. [ 1.131901] RPC: Registered tcp transport module.
  214. [ 1.136677] RPC: Registered tcp NFSv4.1 backchannel transport module.
  215. [ 1.143194] PCI: CLS 0 bytes, default 64
  216. [ 1.148359] Initialise system trusted keyrings
  217. [ 1.152364] workingset: timestamp_bits=62 max_order=21 bucket_order=0
  218. [ 1.165382] NFS: Registering the id_resolver key type
  219. [ 1.169781] Key type id_resolver registered
  220. [ 1.174011] Key type id_legacy registered
  221. [ 1.178179] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
  222. [ 1.184874] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
  223. [ 1.192453] 9p: Installing v9fs 9p2000 file system support
  224. [ 1.198116] NET: Registered protocol family 38
  225. [ 1.201886] Key type asymmetric registered
  226. [ 1.206046] Asymmetric key parser 'x509' registered
  227. [ 1.211029] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
  228. [ 1.218468] io scheduler mq-deadline registered
  229. [ 1.223072] io scheduler kyber registered
  230. [ 1.228803] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
  231. [ 1.235017] fu740-pcie e00000000.pcie: FPGA PCIE PROBE
  232. [ 1.281706] fu740-pcie e00000000.pcie: PCIE-PERSTN is GPIO 504
  233. [ 1.286922] fu740-pcie e00000000.pcie: PWREN is GPIO 501
  234. [ 1.292377] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000 ranges:
  235. [ 1.299603] fu740-pcie e00000000.pcie: IO 0x0060080000..0x006008ffff -> 0x0060080000
  236. [ 1.307922] fu740-pcie e00000000.pcie: MEM 0x0060090000..0x0070ffffff -> 0x0060090000
  237. [ 1.316244] fu740-pcie e00000000.pcie: MEM 0x2000000000..0x3fffffffff -> 0x2000000000
  238. [ 1.432223] fu740-pcie e00000000.pcie: PWREN enabling
  239. [ 1.436607] fu740-pcie e00000000.pcie: PWREN valid
  240. [ 1.560226] fu740-pcie e00000000.pcie: invalid resource
  241. [ 1.664802] fu740-pcie e00000000.pcie: Link up
  242. [ 1.768582] fu740-pcie e00000000.pcie: Link up
  243. [ 1.872369] fu740-pcie e00000000.pcie: Link up
  244. [ 1.876116] fu740-pcie e00000000.pcie: Link up, Gen3
  245. [ 1.881352] fu740-pcie e00000000.pcie: PCI host bridge to bus 0000:00
  246. [ 1.887700] pci_bus 0000:00: root bus resource [bus 00-ff]
  247. [ 1.893247] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] (bus address [0x60080000-0x6008ffff])
  248. [ 1.902807] pci_bus 0000:00: root bus resource [mem 0x60090000-0x70ffffff]
  249. [ 1.909748] pci_bus 0000:00: root bus resource [mem 0x2000000000-0x3fffffffff pref]
  250. [ 1.917517] pci 0000:00:00.0: [f15e:0000] type 01 class 0x060400
  251. [ 1.923569] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
  252. [ 1.929902] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
  253. [ 1.936723] pci 0000:00:00.0: supports D1
  254. [ 1.940755] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
  255. [ 1.947619] pci 0000:01:00.0: [1b21:2824] type 01 class 0x060400
  256. [ 1.953052] pci 0000:01:00.0: enabling Extended Tags
  257. [ 1.958165] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
  258. [ 1.976890] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  259. [ 1.984425] pci 0000:02:00.0: [1b21:2824] type 01 class 0x060400
  260. [ 1.990396] pci 0000:02:00.0: enabling Extended Tags
  261. [ 1.995509] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
  262. [ 2.001938] pci 0000:02:02.0: [1b21:2824] type 01 class 0x060400
  263. [ 2.007682] pci 0000:02:02.0: enabling Extended Tags
  264. [ 2.012793] pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
  265. [ 2.019167] pci 0000:02:03.0: [1b21:2824] type 01 class 0x060400
  266. [ 2.024966] pci 0000:02:03.0: enabling Extended Tags
  267. [ 2.030075] pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
  268. [ 2.036468] pci 0000:02:04.0: [1b21:2824] type 01 class 0x060400
  269. [ 2.042250] pci 0000:02:04.0: enabling Extended Tags
  270. [ 2.047359] pci 0000:02:04.0: PME# supported from D0 D3hot D3cold
  271. [ 2.053811] pci 0000:02:08.0: [1b21:2824] type 01 class 0x060400
  272. [ 2.059534] pci 0000:02:08.0: enabling Extended Tags
  273. [ 2.064647] pci 0000:02:08.0: PME# supported from D0 D3hot D3cold
  274. [ 2.071499] pci 0000:02:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  275. [ 2.078837] pci 0000:02:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  276. [ 2.086911] pci 0000:02:03.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  277. [ 2.094987] pci 0000:02:04.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  278. [ 2.103075] pci 0000:02:08.0: bridge configuration invalid ([bus 00-00]), reconfiguring
  279. [ 2.111901] pci_bus 0000:03: busn_res: [bus 03-ff] end is updated to 03
  280. [ 2.118031] pci 0000:04:00.0: [1b21:1142] type 00 class 0x0c0330
  281. [ 2.123968] pci 0000:04:00.0: reg 0x10: [mem 0x00000000-0x00007fff 64bit]
  282. [ 2.131038] pci 0000:04:00.0: PME# supported from D3cold
  283. [ 2.148888] pci_bus 0000:04: busn_res: [bus 04-ff] end is updated to 04
  284. [ 2.155588] pci_bus 0000:05: busn_res: [bus 05-ff] end is updated to 05
  285. [ 2.162286] pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 06
  286. [ 2.168408] pci 0000:07:00.0: [126f:2263] type 00 class 0x010802
  287. [ 2.174351] pci 0000:07:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
  288. [ 2.192890] pci_bus 0000:07: busn_res: [bus 07-ff] end is updated to 07
  289. [ 2.198837] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 07
  290. [ 2.205522] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 07
  291. [ 2.212241] pci 0000:00:00.0: BAR 0: assigned [mem 0x60100000-0x601fffff]
  292. [ 2.219067] pci 0000:00:00.0: BAR 14: assigned [mem 0x60200000-0x603fffff]
  293. [ 2.226010] pci 0000:00:00.0: BAR 6: assigned [mem 0x60090000-0x6009ffff pref]
  294. [ 2.233308] pci 0000:01:00.0: BAR 14: assigned [mem 0x60200000-0x603fffff]
  295. [ 2.240259] pci 0000:02:02.0: BAR 14: assigned [mem 0x60200000-0x602fffff]
  296. [ 2.247203] pci 0000:02:08.0: BAR 14: assigned [mem 0x60300000-0x603fffff]
  297. [ 2.254150] pci 0000:02:00.0: PCI bridge to [bus 03]
  298. [ 2.259217] pci 0000:04:00.0: BAR 0: assigned [mem 0x60200000-0x60207fff 64bit]
  299. [ 2.266594] pci 0000:02:02.0: PCI bridge to [bus 04]
  300. [ 2.271615] pci 0000:02:02.0: bridge window [mem 0x60200000-0x602fffff]
  301. [ 2.278485] pci 0000:02:03.0: PCI bridge to [bus 05]
  302. [ 2.283529] pci 0000:02:04.0: PCI bridge to [bus 06]
  303. [ 2.288572] pci 0000:07:00.0: BAR 0: assigned [mem 0x60300000-0x60303fff 64bit]
  304. [ 2.295952] pci 0000:02:08.0: PCI bridge to [bus 07]
  305. [ 2.300973] pci 0000:02:08.0: bridge window [mem 0x60300000-0x603fffff]
  306. [ 2.307842] pci 0000:01:00.0: PCI bridge to [bus 02-07]
  307. [ 2.313133] pci 0000:01:00.0: bridge window [mem 0x60200000-0x603fffff]
  308. [ 2.320009] pci 0000:00:00.0: PCI bridge to [bus 01-07]
  309. [ 2.325288] pci 0000:00:00.0: bridge window [mem 0x60200000-0x603fffff]
  310. [ 2.332808] pcieport 0000:00:00.0: AER: enabled with IRQ 51
  311. [ 2.337946] pcieport 0000:01:00.0: enabling device (0000 -> 0002)
  312. [ 2.344786] pcieport 0000:02:02.0: enabling device (0000 -> 0002)
  313. [ 2.351328] pcieport 0000:02:08.0: enabling device (0000 -> 0002)
  314. [ 2.357091] pci 0000:04:00.0: enabling device (0000 -> 0002)
  315. [ 2.362751] switchtec: loaded.
  316. [ 2.365933] L2CACHE: DataError @ 0x00000003.00964470
  317. [ 2.365992] L2CACHE: No. of Banks in the cache: 4
  318. [ 2.375414] L2CACHE: No. of ways per bank: 16
  319. [ 2.379846] L2CACHE: Sets per bank: 512
  320. [ 2.383751] L2CACHE: Bytes per cache block: 64
  321. [ 2.388267] L2CACHE: Index of the largest way enabled: 15
  322. [ 2.434865] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
  323. [ 2.441695] 10010000.serial: ttySIF0 at MMIO 0x10010000 (irq = 1, base_baud = 115200) is a SiFive UART v0
  324. [ 2.450625] printk: console [ttySIF0] enabled
  325. [ 2.450625] printk: console [ttySIF0] enabled
  326. [ 2.459360] printk: bootconsole [sbi0] disabled
  327. [ 2.459360] printk: bootconsole [sbi0] disabled
  328. [ 2.468824] 10011000.serial: ttySIF1 at MMIO 0x10011000 (irq = 2, base_baud = 115200) is a SiFive UART v0
  329. [ 2.493853] loop: module loaded
  330. [ 2.526475] nvme nvme0: pci function 0000:07:00.0
  331. [ 2.530852] nvme 0000:07:00.0: enabling device (0000 -> 0002)
  332. [ 2.537716] Rounding down aligned max_sectors from 4294967295 to 4294967288
  333. [ 2.544470] db_root: cannot open: /etc/target
  334. [ 2.545926] nvme nvme0: allocated 64 MiB host memory buffer.
  335. [ 2.549020] sifive_spi 10040000.spi: mapped; irq=4, cs=1
  336. [ 2.559941] spi-nor spi0.0: is25wp256 (32768 Kbytes)
  337. [ 2.566431] sifive_spi 10050000.spi: mapped; irq=6, cs=1
  338. [ 2.566707] nvme nvme0: 4/0/0 default/read/poll queues
  339. [ 2.571935] libphy: Fixed MDIO Bus: probed
  340. [ 2.580950] macb 10090000.ethernet: Registered clk switch 'sifive-gemgxl-mgmt'
  341. [ 2.587536] macb 10090000.ethernet: invalid hw address, using random
  342. [ 2.588100] nvme0n1: p1 p2
  343. [ 2.593875] BEU: Load or Store TILINK BUS ERR occurred
  344. [ 2.594342] libphy: MACB_mii_bus: probed
  345. [ 2.599312] macb 10090000.ethernet eth0: Cadence GEM rev 0x10070109 at 0x10090000 irq 7 (5e:57:b8:ab:24:4a)
  346. [ 2.615501] e1000e: Intel(R) PRO/1000 Network Driver
  347. [ 2.620251] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
  348. [ 2.626463] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
  349. [ 2.632684] ehci-pci: EHCI PCI platform driver
  350. [ 2.637144] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
  351. [ 2.643273] ohci-pci: OHCI PCI platform driver
  352. [ 2.647731] uhci_hcd: USB Universal Host Controller Interface driver
  353. [ 2.654315] xhci_hcd 0000:04:00.0: xHCI Host Controller
  354. [ 2.659450] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 1
  355. [ 2.807373] xhci_hcd 0000:04:00.0: hcc params 0x0200e081 hci version 0x100 quirks 0x0000000010000410
  356. [ 2.816609] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
  357. [ 2.824115] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
  358. [ 2.831312] usb usb1: Product: xHCI Host Controller
  359. [ 2.836174] usb usb1: Manufacturer: Linux 5.10.15 xhci-hcd
  360. [ 2.841652] usb usb1: SerialNumber: 0000:04:00.0
  361. [ 2.846639] hub 1-0:1.0: USB hub found
  362. [ 2.850037] hub 1-0:1.0: 2 ports detected
  363. [ 2.854306] xhci_hcd 0000:04:00.0: xHCI Host Controller
  364. [ 2.859335] xhci_hcd 0000:04:00.0: new USB bus registered, assigned bus number 2
  365. [ 2.866599] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
  366. [ 2.873638] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
  367. [ 2.881074] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
  368. [ 2.889212] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
  369. [ 2.896422] usb usb2: Product: xHCI Host Controller
  370. [ 2.901282] usb usb2: Manufacturer: Linux 5.10.15 xhci-hcd
  371. [ 2.906752] usb usb2: SerialNumber: 0000:04:00.0
  372. [ 2.911671] hub 2-0:1.0: USB hub found
  373. [ 2.915130] hub 2-0:1.0: 2 ports detected
  374. [ 2.919486] usbcore: registered new interface driver usb-storage
  375. [ 2.925212] usbcore: registered new interface driver usbserial_generic
  376. [ 2.931620] usbserial: USB Serial support registered for generic
  377. [ 2.937771] mousedev: PS/2 mouse device common for all mice
  378. [ 2.943220] usbcore: registered new interface driver usbtouchscreen
  379. [ 2.949466] i2c /dev entries driver
  380. [ 2.954218] lm90 0-004c: supply vcc not found, using dummy regulator
  381. [ 2.961629] EDAC DEVICE0: Giving out device to module Sifive ECC Manager controller sifive_edac.0: DEV sifive_edac.0 (I)
  382. [ 2.997874] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
  383. [ 3.005138] ledtrig-cpu: registered to indicate activity on CPUs
  384. [ 3.010980] usbcore: registered new interface driver usbhid
  385. [ 3.016407] usbhid: USB HID core driver
  386. [ 3.020540] usbcore: registered new interface driver snd-usb-audio
  387. [ 3.027209] NET: Registered protocol family 10
  388. [ 3.031878] Segment Routing with IPv6
  389. [ 3.034864] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
  390. [ 3.041232] NET: Registered protocol family 17
  391. [ 3.045324] 9pnet: Installing 9P2000 support
  392. [ 3.049397] Key type dns_resolver registered
  393. [ 3.053786] Loading compiled-in X.509 certificates
  394. [ 3.059729] ALSA device list:
  395. [ 3.061943] No soundcards found.
  396. [ 3.066057] Waiting for root device /dev/mmcblk0p4...
  397. [ 3.077319] mmc0: host does not support reading read-only switch, assuming write-enable
  398. [ 3.084564] mmc0: new SDHC card on SPI
  399. [ 3.089699] mmcblk0: mmc0:0000 SD32G 29.7 GiB
  400. [ 3.126488] GPT:Primary header thinks Alt. header is not at the end of the disk.
  401. [ 3.133144] GPT:13918241 != 62333951
  402. [ 3.136679] GPT:Alternate GPT header not at the end of the disk.
  403. [ 3.142673] GPT:13918241 != 62333951
  404. [ 3.146231] GPT: Use GNU Parted to correct GPT errors.
  405. [ 3.151398] mmcblk0: p1 p2 p3 p4
  406. [ 3.212226] usb 1-2: new high-speed USB device number 2 using xhci_hcd
  407. [ 3.258310] EXT4-fs (mmcblk0p4): INFO: recovery required on readonly filesystem
  408. [ 3.264855] EXT4-fs (mmcblk0p4): write access will be enabled during recovery
  409. [ 3.458247] usb 1-2: New USB device found, idVendor=174c, idProduct=2074, bcdDevice= 0.01
  410. [ 3.465662] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
  411. [ 3.472775] usb 1-2: Product: AS2107
  412. [ 3.476336] usb 1-2: Manufacturer: ASMedia
  413. [ 3.480419] usb 1-2: SerialNumber: USB2.0 Hub
  414. [ 3.533583] EXT4-fs (mmcblk0p4): recovery complete
  415. [ 3.543756] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null)
  416. [ 3.551132] VFS: Mounted root (ext4 filesystem) readonly on device 179:4.
  417. [ 3.554682] hub 1-2:1.0: USB hub found
  418. [ 3.561105] devtmpfs: mounted
  419. [ 3.561778] hub 1-2:1.0: 4 ports detected
  420. [ 3.565546] Freeing unused kernel memory: 284K
  421. [ 3.572964] Kernel memory protection not selected by kernel config.
  422. [ 3.579225] Run /sbin/init as init process
  423. [ 3.613136] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
  424. [ 3.643539] usb 2-2: New USB device found, idVendor=174c, idProduct=3074, bcdDevice= 0.01
  425. [ 3.650948] usb 2-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
  426. [ 3.658072] usb 2-2: Product: AS2107
  427. [ 3.661630] usb 2-2: Manufacturer: ASMedia
  428. [ 3.665709] usb 2-2: SerialNumber: USB2.0 Hub
  429. [ 3.762380] hub 2-2:1.0: USB hub found
  430. [ 3.766074] hub 2-2:1.0: 4 ports detected
  431. [ 7.487226] systemd[1]: System time before build time, advancing clock.
  432. [ 7.788093] systemd[1]: systemd 247.2+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +U)
  433. [ 7.809694] systemd[1]: Detected architecture riscv64.
  434. Welcome to OpenEmbedded nodistro.0!
  435. [ 7.832648] systemd[1]: Set hostname to <unmatched>.
  436. [ 9.397499] systemd[1]: Queued start job for default target Multi-User System.
  437. [ 9.408518] random: systemd: uninitialized urandom read (16 bytes read)
  438. [ 9.429329] systemd[1]: Created slice system-getty.slice.
  439. [ OK ] Created slice system-getty.slice.
  440. [ 9.440400] random: systemd: uninitialized urandom read (16 bytes read)
  441. [ 9.447086] systemd[1]: Created slice system-modprobe.slice.
  442. [ OK ] Created slice system-modprobe.slice.
  443. [ 9.458480] random: systemd: uninitialized urandom read (16 bytes read)
  444. [ 9.465436] systemd[1]: Created slice system-serial\x2dgetty.slice.
  445. [ OK ] Created slice system-serial\x2dgetty.slice.
  446. [ 9.478594] systemd[1]: Created slice User and Session Slice.
  447. [ OK ] Created slice User and Session Slice.
  448. [ 9.490225] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
  449. [ OK ] Started Dispatch Password ��…ts to Console Directory Watch.
  450. [ 9.506407] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
  451. [ OK ] Started Forward Password R��…uests to Wall Directory Watch.
  452. [ 9.522312] systemd[1]: Reached target Paths.
  453. [ OK ] Reached target Paths.
  454. [ 9.531078] systemd[1]: Reached target Remote File Systems.
  455. [ OK ] Reached target Remote File Systems.
  456. [ 9.542855] systemd[1]: Reached target Slices.
  457. [ OK ] Reached target Slices.
  458. [ 9.552712] systemd[1]: Reached target Swap.
  459. [ OK ] Reached target Swap.
  460. [ 9.561566] systemd[1]: Listening on initctl Compatibility Named Pipe.
  461. [ OK ] Listening on initctl Compatibility Named Pipe.
  462. [ 9.578686] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
  463. [ 9.586545] systemd[1]: Listening on Journal Socket (/dev/log).
  464. [ OK ] Listening on Journal Socket (/dev/log).
  465. [snip]
  466. [ OK ] Reached target System Time Synchronized.
  467. [ OK ] Reached target Timers.
  468. [ OK ] Listening on D-Bus System Message Bus Socket.
  469. [ OK ] Reached target Sockets.
  470. [ OK ] Reached target Basic System.
  471. [ OK ] Started D-Bus System Message Bus.
  472. Starting User Login Management...
  473. Starting Permit User Sessions...
  474. [ OK ] Started Xinetd A Powerful Replacement For Inetd.
  475. [ OK ] Finished Permit User Sessions.
  476. [ OK ] Started Getty on tty1.
  477. [ OK ] Started Serial Getty on hvc0.
  478. [ OK ] Started Serial Getty on ttySIF0.
  479. [ OK ] Reached target Login Prompts.
  480. [ OK ] Started User Login Management.
  481. [ OK ] Reached target Multi-User System.
  482. Starting Update UTMP about System Runlevel Changes...
  483. [ OK ] Finished Update UTMP about System Runlevel Changes.
  484. OpenEmbedded nodistro.0 unmatched hvc0
  485. unmatched login:
  486. OpenEmbedded nodistro.0 unmatched ttySIF0
  487. unmatched login:
  488. Booting from SPI
  489. ----------------
  490. Use Building steps from "Booting from uSD using U-Boot SPL" section.
  491. Partition the SPI in Linux via mtdblock. The partition types here are
  492. "HiFive Unleashed FSBL", "HiFive Unleashed BBL", and "U-Boot environment"
  493. for partitions one through three respectively.
  494. .. code-block:: none
  495. sgdisk --clear -a 1 \
  496. --new=1:40:2087 --change-name=1:spl --typecode=1:5B193300-FC78-40CD-8002-E86C45580B47 \
  497. --new=2:2088:10279 --change-name=2:uboot --typecode=2:2E54B353-1271-4842-806F-E436D6AF6985 \
  498. --new=3:10280:10535 --change-name=3:env --typecode=3:3DE21764-95BD-54BD-A5C3-4ABE786F38A8 \
  499. /dev/mtdblock0
  500. Write U-Boot SPL and U-Boot to their partitions.
  501. .. code-block:: none
  502. dd if=spl/u-boot-spl.bin of=/dev/mtdblock0 bs=4096 seek=5 conv=sync
  503. dd if=u-boot.itb of=/dev/mtdblock0 bs=4096 seek=261 conv=sync
  504. Power off the board.
  505. Change DIP switches MSEL[3:0] to 0110.
  506. Power up the board.