1 .. SPDX-License-Identifier: GPL-2.0+
3 Microchip PolarFire SoC Icicle Kit
4 ==================================
9 The PolarFire SoC is the 4+1 64-bit RISC-V SoC from Microchip.
11 The Icicle Kit development platform is based on PolarFire SoC and capable
17 The support for following drivers are already enabled:
19 1. NS16550 UART Driver.
20 2. Microchip Clock Driver.
21 3. Cadence MACB ethernet driver for networking support.
22 4. Cadence MMC Driver for eMMC/SD support.
24 Booting from eMMC using HSS
25 ---------------------------
30 1. Add the RISC-V toolchain to your PATH.
31 2. Setup ARCH & cross compilation environment variable:
35 export CROSS_COMPILE=<riscv64 toolchain prefix>
37 3. make microchip_mpfs_icicle_defconfig
43 The current U-Boot port is supported in S-mode only and loaded from DRAM.
45 A prior stage M-mode firmware/bootloader (e.g HSS with OpenSBI) is required to
46 boot the u-boot.bin in S-mode.
48 Currently, the u-boot.bin is used as a payload of the HSS firmware (Microchip
49 boot-flow) and OpenSBI generic platform fw_payload.bin (with u-boot.bin embedded)
50 as HSS payload (Custom boot-flow)
55 HSS with OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)
57 Build the HSS (Hart Software Services) - Microchip boot-flow
58 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
60 (Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)
66 make BOARD=icicle-kit-es config
68 Alternatively, copy the default config for Microchip boot-flow.
72 cp boards/icicle-kit-es/def_config .config
74 2. make BOARD=icicle-kit-es
75 3. In the Default subdirectory, the standard build will create hss.elf and
76 various binary formats (hss.hex and hss.bin).
78 The FPGA design will use the hss.hex or hss.bin.
80 FPGA design with HSS programming file
81 '''''''''''''''''''''''''''''''''''''
83 https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md
85 The HSS firmware runs from the PolarFire SoC eNVM on reset.
87 Creating the HSS payload - Microchip boot-flow
88 ''''''''''''''''''''''''''''''''''''''''''''''
90 1. You will be creating a payload from `u-boot-dtb.bin`.
91 Copy this file to the HSS/tools/hss-payload-generator/test directory.
92 2. Go to hss-payload-generator source directory.
96 cd hart-software-services/tools/hss-payload-generator
98 3. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.
100 hart-entry-points: {u54_1: '0x80200000', u54_2: '0x80200000', u54_3: '0x80200000', u54_4: '0x80200000'}
103 test/u-boot-dtb.bin: {exec-addr: '0x80200000', owner-hart: u54_1, secondary-hart: u54_2, secondary-hart: u54_3, secondary-hart: u54_4, priv-mode: prv_s}
109 ./hss-payload-generator -c test/uboot.yaml payload.bin
111 Once the payload binary is generated, it should be copied to the eMMC.
113 Please refer to HSS documenation to build the HSS firmware for payload.
114 (Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator/README.md)
119 HSS without OpenSBI (M-Mode) -> OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)
124 1. Get the OpenSBI source
128 git clone https://github.com/riscv/opensbi.git
135 make PLATFORM=generic FW_PAYLOAD_PATH=<u-boot-directory>/u-boot.bin
136 FW_FDT_PATH=<u-boot-directory>/arch/riscv/dts/microchip-mpfs-icicle-kit-.dtb
138 3. Output "fw_payload.bin" file available at
139 "<opensbi-directory>/build/platform/generic/firmware/fw_payload.bin"
141 Build the HSS (Hart Software Services)- Custom boot-flow
142 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
144 (Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)
150 make BOARD=icicle-kit-es config
152 Alternatively, copy the default custom config for Custom boot-flow.
156 cp boards/icicle-kit-es/def_config_custom .config
158 2. make BOARD=icicle-kit-es
159 3. In the Default subdirectory, the standard build will create hss.elf and
160 various binary formats (hss.hex and hss.bin).
162 The FPGA design will use the hss.hex or hss.bin.
164 Creating the HSS payload - Custom boot-flow
165 '''''''''''''''''''''''''''''''''''''''''''
167 1. You will be creating a payload from `fw_payload.bin`.
168 Copy this file to the HSS/tools/hss-payload-generator/test directory.
169 2. Go to hss-payload-generator source directory.
173 cd hart-software-services/tools/hss-payload-generator
175 3. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.
177 hart-entry-points: {u54_1: '0x80000000', u54_2: '0x80000000', u54_3: '0x80000000', u54_4: '0x80000000'}
180 test/fw_payload.bin: {exec-addr: '0x80000000', owner-hart: u54_1, secondary-hart: u54_2, secondary-hart: u54_3, secondary-hart: u54_4, priv-mode: prv_m}
186 ./hss-payload-generator -c test/uboot.yaml payload.bin
188 Once the payload binary is generated, it should be copied to the eMMC.
190 Please refer to HSS documenation to build the HSS firmware for payload.
191 (Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator/README.md
192 and also refer the HSS payload generator at https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/software-development/hss-payloads.md)
197 Program eMMC with payload binary is explained in the PolarFire SoC documentation.
198 (Note: PolarFire SoC Documentation git repo is at https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md#eMMC)
200 Once the payload image is copied to the eMMC, press CTRL+C in the HSS command
201 line interface, then type 'boot' and enter to boot the newly copied image.
205 sudo dd if=<payload_binary> of=/dev/sdX bs=512
210 The HSS always picks up HSS payload from a GPT partition with
211 GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
217 You should see the U-Boot prompt on UART0.
219 Sample boot log from MPFS Icicle Kit
220 ''''''''''''''''''''''''''''''''''''
224 U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)
227 Model: Microchip MPFS Icicle Kit
229 MMC: sdhc@20008000: 0
233 Net: eth0: ethernet@20112000
234 Hit any key to stop autoboot: 0
236 Now you can configure your networking, tftp server and use tftp boot method to
237 load uImage (with initramfs).
241 RISC-V # setenv kernel_addr_r 0x80200000
242 RISC-V # setenv fdt_addr_r 0x82200000
244 RISC-V # setenv ipaddr 192.168.1.5
245 RISC-V # setenv netmask 255.255.255.0
246 RISC-V # setenv serverip 192.168.1.3
247 RISC-V # setenv gateway 192.168.1.1
249 RISC-V # tftpboot ${kernel_addr_r} uImage
250 ethernet@20112000: PHY present at 9
251 ethernet@20112000: Starting autonegotiation...
252 ethernet@20112000: Autonegotiation complete
253 ethernet@20112000: link up, 1000Mbps full-duplex (lpa: 0x7800)
254 Using ethernet@20112000 device
255 TFTP from server 192.168.1.3; our IP address is 192.168.1.5
257 Load address: 0x80200000
258 Loading: #################################################################
259 #################################################################
260 #################################################################
261 #################################################################
262 #################################################################
263 #################################################################
264 #################################################################
265 #################################################################
266 #################################################################
267 #################################################################
268 #################################################################
269 #################################################################
270 #################################################################
271 #################################################################
272 #################################################################
276 Bytes transferred = 14482480 (dcfc30 hex)
278 RISC-V # tftpboot ${fdt_addr_r} microchip-mpfs-icicle-kit.dtb
279 ethernet@20112000: PHY present at 9
280 ethernet@20112000: Starting autonegotiation...
281 ethernet@20112000: Autonegotiation complete
282 ethernet@20112000: link up, 1000Mbps full-duplex (lpa: 0x7800)
283 Using ethernet@20112000 device
284 TFTP from server 192.168.1.3; our IP address is 192.168.1.5
285 Filename 'microchip-mpfs-icicle-kit.dtb'.
286 Load address: 0x82200000
290 Bytes transferred = 10282 (282a hex)
292 RISC-V # bootm ${kernel_addr_r} - ${fdt_addr_r}
293 ## Booting kernel from Legacy Image at 80200000 ...
295 Image Type: RISC-V Linux Kernel Image (uncompressed)
296 Data Size: 14482416 Bytes = 13.8 MiB
297 Load Address: 80200000
298 Entry Point: 80200000
299 Verifying Checksum ... OK
300 ## Flattened Device Tree blob at 82200000
301 Booting using the fdt blob at 0x82200000
303 Using Device Tree in place at 000000008fffa000, end 000000008ffff829 ... OK
307 [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
308 [ 0.000000] Linux version 5.6.17 (padmarao@padmarao-VirtualBox) (gcc version 7.2.0 (GCC)) #2 SMP Tue Jun 16 21:27:50 IST 2020
309 [ 0.000000] initrd not found or empty - disabling initrd
310 [ 0.000000] Zone ranges:
311 [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000bfffffff]
312 [ 0.000000] Normal empty
313 [ 0.000000] Movable zone start for each node
314 [ 0.000000] Early memory node ranges
315 [ 0.000000] node 0: [mem 0x0000000080200000-0x00000000bfffffff]
316 [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
317 [ 0.000000] software IO TLB: mapped [mem 0xbb1f5000-0xbf1f5000] (64MB)
318 [ 0.000000] elf_hwcap is 0x112d
319 [ 0.000000] percpu: Embedded 14 pages/cpu s24856 r0 d32488 u57344
320 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258055
321 [ 0.000000] Kernel command line: console=ttyS0,115200n8
322 [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
323 [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
324 [ 0.000000] Sorting __ex_table...
325 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
326 [ 0.000000] Memory: 950308K/1046528K available (3289K kernel code, 212K rwdata, 900K rodata, 9476K init, 250K bss, 96220K reserved, 0K cma-reserved)
327 [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
328 [ 0.000000] rcu: Hierarchical RCU implementation.
329 [ 0.000000] rcu: RCU event tracing is enabled.
330 [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
331 [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
332 [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
333 [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
334 [ 0.000000] plic: mapped 186 interrupts with 4 handlers for 9 contexts.
335 [ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
336 [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
337 [ 0.000015] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
338 [ 0.000311] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
339 [ 0.000349] pid_max: default: 32768 minimum: 301
340 [ 0.000846] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
341 [ 0.000964] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
342 [ 0.005630] rcu: Hierarchical SRCU implementation.
343 [ 0.006901] smp: Bringing up secondary CPUs ...
344 [ 0.012545] smp: Brought up 1 node, 4 CPUs
345 [ 0.014431] devtmpfs: initialized
346 [ 0.020526] random: get_random_bytes called from setup_net+0x36/0x192 with crng_init=0
347 [ 0.020928] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
348 [ 0.020999] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
349 [ 0.022768] NET: Registered protocol family 16
350 [ 0.035478] microchip-pfsoc-clkcfg 20002000.clkcfg: Registered PFSOC core clocks
351 [ 0.048429] SCSI subsystem initialized
352 [ 0.049694] pps_core: LinuxPPS API ver. 1 registered
353 [ 0.049719] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
354 [ 0.049780] PTP clock support registered
355 [ 0.051781] clocksource: Switched to clocksource riscv_clocksource
356 [ 0.055326] NET: Registered protocol family 2
357 [ 0.056922] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
358 [ 0.057053] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
359 [ 0.057648] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
360 [ 0.058579] TCP: Hash tables configured (established 8192 bind 8192)
361 [ 0.059648] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
362 [ 0.059837] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
363 [ 0.060707] NET: Registered protocol family 1
364 [ 0.266229] workingset: timestamp_bits=62 max_order=18 bucket_order=0
365 [ 0.287107] io scheduler mq-deadline registered
366 [ 0.287140] io scheduler kyber registered
367 [ 0.429601] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
368 [ 0.433979] printk: console [ttyS0] disabled
369 [ 0.434154] 20000000.serial: ttyS0 at MMIO 0x20000000 (irq = 18, base_baud = 9375000) is a 16550A
370 [ 0.928039] printk: console [ttyS0] enabled
371 [ 0.939804] libphy: Fixed MDIO Bus: probed
372 [ 0.948702] libphy: MACB_mii_bus: probed
373 [ 0.993698] macb 20112000.ethernet eth0: Cadence GEM rev 0x0107010c at 0x20112000 irq 21 (56:34:12:00:fc:00)
374 [ 1.006751] mousedev: PS/2 mouse device common for all mice
375 [ 1.013803] i2c /dev entries driver
376 [ 1.019451] sdhci: Secure Digital Host Controller Interface driver
377 [ 1.027242] sdhci: Copyright(c) Pierre Ossman
378 [ 1.032731] sdhci-pltfm: SDHCI platform and OF driver helper
379 [ 1.091826] mmc0: SDHCI controller on 20008000.sdhc [20008000.sdhc] using ADMA 64-bit
380 [ 1.102738] NET: Registered protocol family 17
381 [ 1.170326] Freeing unused kernel memory: 9476K
382 [ 1.176067] This architecture does not have kernel memory protection.
383 [ 1.184157] Run /init as init process
386 /etc/init.d/S10mdev: line 21: can't create /proc/sys/kernel/hotplug: nonexiste[ 1.331981] mmc0: mmc_select_hs200 failed, error -74
388 [ 1.355011] mmc0: new MMC card at address 0001
389 [ 1.363981] mmcblk0: mmc0:0001 DG4008 7.28 GiB
390 [ 1.372248] mmcblk0boot0: mmc0:0001 DG4008 partition 1 4.00 MiB
391 [ 1.382292] mmcblk0boot1: mmc0:0001 DG4008 partition 2 4.00 MiB
392 [ 1.390265] mmcblk0rpmb: mmc0:0001 DG4008 partition 3 4.00 MiB, chardev (251:0)
393 [ 1.425234] GPT:Primary header thinks Alt. header is not at the end of the disk.
394 [ 1.434656] GPT:2255809 != 15273599
395 [ 1.439038] GPT:Alternate GPT header not at the end of the disk.
396 [ 1.446671] GPT:2255809 != 15273599
397 [ 1.451048] GPT: Use GNU Parted to correct GPT errors.
398 [ 1.457755] mmcblk0: p1 p2 p3
399 sort: /sys/devices/platform/Fixed: No such file or directory
400 modprobe: can't change directory to '/lib/modules': No such file or directory
401 Initializing random number generator... [ 2.830198] random: dd: uninitialized urandom read (512 bytes read)
404 [ 3.061867] macb 20112000.ethernet eth0: PHY [20112000.ethernet-ffffffff:09] driver [Vitesse VSC8662] (irq=POLL)
405 [ 3.074674] macb 20112000.ethernet eth0: configuring for phy/sgmii link mode
406 [ 3.084263] pps pps0: new PPS source ptp0
407 [ 3.089710] macb 20112000.ethernet: gem-ptp-timer ptp clock registered.
408 udhcpc (v1.24.2) started
411 [ 6.380169] macb 20112000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
413 Sending select for 192.168.1.2...
414 Lease of 192.168.1.2 obtained, lease time 86400
416 adding dns 192.168.1.1
417 Starting dropbear sshd: [ 11.385619] random: dropbear: uninitialized urandom read (32 bytes read)
421 buildroot login: root
425 Booting U-Boot and Linux from eMMC
426 ----------------------------------
428 FPGA design with HSS programming file and Linux Image
429 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
431 https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md
433 The HSS firmware runs from the PolarFire SoC eNVM on reset.
438 Program eMMC with payload binary and Linux image is explained in the
439 PolarFire SoC documentation.
440 The payload binary should be copied to partition 2 of the eMMC.
442 (Note: PolarFire SoC Documentation git repo is at https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md#eMMC)
444 Once the Linux image and payload binary is copied to the eMMC, press CTRL+C
445 in the HSS command line interface, then type 'boot' and enter to boot the newly
446 copied payload and Linux image.
450 zcat <linux-image>.wic.gz | sudo dd of=/dev/sdX bs=4096 iflag=fullblock oflag=direct conv=fsync status=progress
452 sudo dd if=<payload_binary> of=/dev/sdX2 bs=512
454 You should see the U-Boot prompt on UART0.
459 The HSS always picks up the HSS payload from a GPT partition with
460 GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
463 Sample boot log from MPFS Icicle Kit
464 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
468 U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)
471 Model: Microchip MPFS Icicle Kit
473 MMC: sdhc@20008000: 0
477 Net: eth0: ethernet@20112000
478 Hit any key to stop autoboot: 0
481 Device: sdhc@20008000
486 Mode: MMC High Speed (52MHz)
492 Erase Group Size: 512 KiB
493 HC WP Group Size: 8 MiB
494 User Capacity: 7.3 GiB WRREL
495 Boot Capacity: 4 MiB ENH
496 RPMB Capacity: 4 MiB ENH
499 Partition Map for MMC device 0 -- Partition Type: EFI
501 Part Start LBA End LBA Name
505 1 0x00002000 0x0000b031 "boot"
506 attrs: 0x0000000000000004
507 type: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
508 guid: 99ff6a94-f2e7-44dd-a7df-f3a2da106ef9
509 2 0x0000b032 0x0000f031 "primary"
510 attrs: 0x0000000000000000
511 type: 21686148-6449-6e6f-744e-656564454649
512 guid: 12006052-e64b-4423-beb0-b956ea00f1ba
513 3 0x00010000 0x00226b9f "root"
514 attrs: 0x0000000000000000
515 type: 0fc63daf-8483-4772-8e79-3d69d8477de4
516 guid: dd2c5619-2272-4c3c-8dc2-e21942e17ce6
518 RISC-V # load mmc 0 ${ramdisk_addr_r} fitimage
519 RISC-V # bootm ${ramdisk_addr_r}
520 ## Loading kernel from FIT Image at 88300000 ...
521 Using 'conf@microchip_icicle-kit-es-a000-microchip.dtb' configuration
522 Trying 'kernel@1' kernel subimage
523 Description: Linux kernel
525 Compression: gzip compressed
526 Data Start: 0x883000fc
527 Data Size: 3574555 Bytes = 3.4 MiB
530 Load Address: 0x80200000
531 Entry Point: 0x80200000
533 Hash value: 21f18d72cf2f0a7192220abb577ad25c77c26960052d779aa02bf55dbf0a6403
534 Verifying Hash Integrity ... sha256+ OK
535 ## Loading fdt from FIT Image at 88300000 ...
536 Using 'conf@microchip_icicle-kit-es-a000-microchip.dtb' configuration
537 Trying 'fdt@microchip_icicle-kit-es-a000-microchip.dtb' fdt subimage
538 Description: Flattened Device Tree blob
539 Type: Flat Device Tree
540 Compression: uncompressed
541 Data Start: 0x88668d44
542 Data Size: 9760 Bytes = 9.5 KiB
544 Load Address: 0x82200000
546 Hash value: 5c3a9f30d41b6b8e53b47916e1f339b3a4d454006554d1f7e1f552ed62409f4b
547 Verifying Hash Integrity ... sha256+ OK
548 Loading fdt from 0x88668d48 to 0x82200000
549 Booting using the fdt blob at 0x82200000
550 Uncompressing Kernel Image
551 Loading Device Tree to 000000008fffa000, end 000000008ffff61f ... OK
555 [ 0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
556 [ 0.000000] Linux version 5.6.16 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP Fri Oct 9 11:49:47 UTC 2020
557 [ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
558 [ 0.000000] printk: bootconsole [sbi0] enabled
559 [ 0.000000] Zone ranges:
560 [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000bfffffff]
561 [ 0.000000] Normal empty
562 [ 0.000000] Movable zone start for each node
563 [ 0.000000] Early memory node ranges
564 [ 0.000000] node 0: [mem 0x0000000080200000-0x00000000bfffffff]
565 [ 0.000000] Zeroed struct page in unavailable ranges: 512 pages
566 [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
567 [ 0.000000] software IO TLB: mapped [mem 0xb9e00000-0xbde00000] (64MB)
568 [ 0.000000] CPU with hartid=0 is not available
569 [ 0.000000] CPU with hartid=0 is not available
570 [ 0.000000] elf_hwcap is 0x112d
571 [ 0.000000] percpu: Embedded 17 pages/cpu s29784 r8192 d31656 u69632
572 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258055
573 [ 0.000000] Kernel command line: earlycon=sbi root=/dev/mmcblk0p3 rootwait console=ttyS0,115200n8 uio_pdrv_genirq.of_id=generic-uio
574 [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
575 [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
576 [ 0.000000] Sorting __ex_table...
577 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
578 [ 0.000000] Memory: 941440K/1046528K available (4118K kernel code, 280K rwdata, 1687K rodata, 169K init, 273K bss, 105088K reserved, 0K cma-reserved)
579 [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
580 [ 0.000000] rcu: Hierarchical RCU implementation.
581 [ 0.000000] rcu: RCU event tracing is enabled.
582 [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=5 to nr_cpu_ids=4.
583 [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
584 [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
585 [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
586 [ 0.000000] plic: mapped 53 interrupts with 4 handlers for 9 contexts.
587 [ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
588 [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
589 [ 0.000015] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
590 [ 0.008679] Console: colour dummy device 80x25
591 [ 0.013112] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
592 [ 0.023368] pid_max: default: 32768 minimum: 301
593 [ 0.028314] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
594 [ 0.035766] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
595 [ 0.047099] rcu: Hierarchical SRCU implementation.
596 [ 0.052813] smp: Bringing up secondary CPUs ...
597 [ 0.061581] smp: Brought up 1 node, 4 CPUs
598 [ 0.067069] devtmpfs: initialized
599 [ 0.073621] random: get_random_u32 called from bucket_table_alloc.isra.0+0x4e/0x150 with crng_init=0
600 [ 0.074409] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
601 [ 0.093399] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
602 [ 0.101879] NET: Registered protocol family 16
603 [ 0.110336] microchip-pfsoc-clkcfg 20002000.clkcfg: Registered PFSOC core clocks
604 [ 0.132717] usbcore: registered new interface driver usbfs
605 [ 0.138225] usbcore: registered new interface driver hub
606 [ 0.143813] usbcore: registered new device driver usb
607 [ 0.148939] pps_core: LinuxPPS API ver. 1 registered
608 [ 0.153929] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
609 [ 0.163071] PTP clock support registered
610 [ 0.168521] clocksource: Switched to clocksource riscv_clocksource
611 [ 0.174927] VFS: Disk quotas dquot_6.6.0
612 [ 0.179016] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
613 [ 0.205536] NET: Registered protocol family 2
614 [ 0.210944] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
615 [ 0.219393] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
616 [ 0.227497] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
617 [ 0.235440] TCP: Hash tables configured (established 8192 bind 8192)
618 [ 0.242537] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
619 [ 0.249285] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
620 [ 0.256690] NET: Registered protocol family 1
621 [ 0.262585] workingset: timestamp_bits=62 max_order=18 bucket_order=0
622 [ 0.281036] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
623 [ 0.288481] io scheduler mq-deadline registered
624 [ 0.292983] io scheduler kyber registered
625 [ 0.298895] microsemi,mss-gpio 20122000.gpio: Microsemi MSS GPIO registered 32 GPIOs
626 [ 0.453723] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
627 [ 0.462911] printk: console [ttyS0] disabled
628 [ 0.467216] 20100000.serial: ttyS0 at MMIO 0x20100000 (irq = 12, base_baud = 9375000) is a 16550A
629 [ 0.476201] printk: console [ttyS0] enabled
630 [ 0.476201] printk: console [ttyS0] enabled
631 [ 0.484576] printk: bootconsole [sbi0] disabled
632 [ 0.484576] printk: bootconsole [sbi0] disabled
633 [ 0.494920] 20102000.serial: ttyS1 at MMIO 0x20102000 (irq = 13, base_baud = 9375000) is a 16550A
634 [ 0.505068] 20104000.serial: ttyS2 at MMIO 0x20104000 (irq = 14, base_baud = 9375000) is a 16550A
635 [ 0.533336] loop: module loaded
636 [ 0.572284] Rounding down aligned max_sectors from 4294967295 to 4294967288
637 [ 0.580000] db_root: cannot open: /etc/target
638 [ 0.585413] libphy: Fixed MDIO Bus: probed
639 [ 0.591526] libphy: MACB_mii_bus: probed
640 [ 0.598060] macb 20112000.ethernet eth0: Cadence GEM rev 0x0107010c at 0x20112000 irq 17 (56:34:12:00:fc:00)
641 [ 0.608352] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
642 [ 0.615001] ehci-platform: EHCI generic platform driver
643 [ 0.620446] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
644 [ 0.626632] ohci-platform: OHCI generic platform driver
645 [ 0.632326] usbcore: registered new interface driver cdc_acm
646 [ 0.637996] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
647 [ 0.646459] i2c /dev entries driver
648 [ 0.650852] microsemi-mss-i2c 2010b000.i2c: Microsemi I2C Probe Complete
649 [ 0.658010] sdhci: Secure Digital Host Controller Interface driver
650 [ 0.664326] sdhci: Copyright(c) Pierre Ossman
651 [ 0.668754] sdhci-pltfm: SDHCI platform and OF driver helper
652 [ 0.706845] mmc0: SDHCI controller on 20008000.sdhc [20008000.sdhc] using ADMA 64-bit
653 [ 0.715052] usbcore: registered new interface driver usbhid
654 [ 0.720722] usbhid: USB HID core driver
655 [ 0.725174] pac193x 0-0010: Chip revision: 0x03
656 [ 0.733339] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 0 active
657 [ 0.740127] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 1 active
658 [ 0.746881] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 2 active
659 [ 0.753686] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 3 active
660 [ 0.760495] pac193x 0-0010: :pac193x_prep_iio_channels: Active chip channels: 25
661 [ 0.778006] NET: Registered protocol family 10
662 [ 0.784929] Segment Routing with IPv6
663 [ 0.788875] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
664 [ 0.795743] NET: Registered protocol family 17
665 [ 0.801191] hctosys: unable to open rtc device (rtc0)
666 [ 0.807774] Waiting for root device /dev/mmcblk0p3...
667 [ 0.858506] mmc0: mmc_select_hs200 failed, error -74
668 [ 0.865764] mmc0: new MMC card at address 0001
669 [ 0.872564] mmcblk0: mmc0:0001 DG4008 7.28 GiB
670 [ 0.878777] mmcblk0boot0: mmc0:0001 DG4008 partition 1 4.00 MiB
671 [ 0.886182] mmcblk0boot1: mmc0:0001 DG4008 partition 2 4.00 MiB
672 [ 0.892633] mmcblk0rpmb: mmc0:0001 DG4008 partition 3 4.00 MiB, chardev (247:0)
673 [ 0.919029] GPT:Primary header thinks Alt. header is not at the end of the disk.
674 [ 0.926448] GPT:2255841 != 15273599
675 [ 0.930019] GPT:Alternate GPT header not at the end of the disk.
676 [ 0.936029] GPT:2255841 != 15273599
677 [ 0.939583] GPT: Use GNU Parted to correct GPT errors.
678 [ 0.944800] mmcblk0: p1 p2 p3
679 [ 0.966696] EXT4-fs (mmcblk0p3): INFO: recovery required on readonly filesystem
680 [ 0.974105] EXT4-fs (mmcblk0p3): write access will be enabled during recovery
681 [ 1.052362] random: fast init done
682 [ 1.057961] EXT4-fs (mmcblk0p3): recovery complete
683 [ 1.065734] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
684 [ 1.074002] VFS: Mounted root (ext4 filesystem) readonly on device 179:3.
685 [ 1.081654] Freeing unused kernel memory: 168K
686 [ 1.086108] This architecture does not have kernel memory protection.
687 [ 1.092629] Run /sbin/init as init process
688 [ 1.702217] systemd[1]: System time before build time, advancing clock.
689 [ 1.754192] systemd[1]: systemd 244.3+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
690 [ 1.776361] systemd[1]: Detected architecture riscv64.
692 Welcome to OpenEmbedded nodistro.0!
694 [ 1.829651] systemd[1]: Set hostname to <icicle-kit-es>.
695 [ 2.648597] random: systemd: uninitialized urandom read (16 bytes read)
696 [ 2.657485] systemd[1]: Created slice system-getty.slice.
697 [ OK ] Created slice system-getty.slice.
698 [ 2.698779] random: systemd: uninitialized urandom read (16 bytes read)
699 [ 2.706317] systemd[1]: Created slice system-serial\x2dgetty.slice.
700 [ OK ] Created slice system-serial\x2dgetty.slice.
701 [ 2.748716] random: systemd: uninitialized urandom read (16 bytes read)
702 [ 2.756098] systemd[1]: Created slice User and Session Slice.
703 [ OK ] Created slice User and Session Slice.
704 [ 2.789065] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
705 [ OK ] Started Dispatch Password …ts to Console Directory Watch.
706 [ 2.828974] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
707 [ OK ] Started Forward Password R…uests to Wall Directory Watch.
708 [ 2.869009] systemd[1]: Reached target Paths.
709 [ OK ] Reached target Paths.
710 [ 2.898808] systemd[1]: Reached target Remote File Systems.
711 [ OK ] Reached target Remote File Systems.
712 [ 2.938771] systemd[1]: Reached target Slices.
713 [ OK ] Reached target Slices.
714 [ 2.968754] systemd[1]: Reached target Swap.
715 [ OK ] Reached target Swap.
716 [ 2.999283] systemd[1]: Listening on initctl Compatibility Named Pipe.
717 [ OK ] Listening on initctl Compatibility Named Pipe.
718 [ 3.060458] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
719 [ 3.069826] systemd[1]: Listening on Journal Socket (/dev/log).
720 [ OK ] Listening on Journal Socket (/dev/log).
721 [ 3.109601] systemd[1]: Listening on Journal Socket.
722 [ OK ] Listening on Journal Socket.
723 [ 3.149868] systemd[1]: Listening on Network Service Netlink Socket.
724 [ OK ] Listening on Network Service Netlink Socket.
725 [ 3.189419] systemd[1]: Listening on udev Control Socket.
726 [ OK ] Listening on udev Control Socket.
727 [ 3.229179] systemd[1]: Listening on udev Kernel Socket.
728 [ OK ] Listening on udev Kernel Socket.
729 [ 3.269520] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
730 [ 3.278477] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
731 [ 3.288200] systemd[1]: Condition check resulted in Kernel Debug File System being skipped.
732 [ 3.302570] systemd[1]: Mounting Temporary Directory (/tmp)...
733 Mounting Temporary Directory (/tmp)...
734 [ 3.339226] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
735 [ 3.355883] systemd[1]: Starting File System Check on Root Device...
736 Starting File System Check on Root Device...
737 [ 3.407220] systemd[1]: Starting Journal Service...
738 Starting Journal Service...
739 [ 3.422441] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
740 [ 3.431770] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
741 [ 3.446415] systemd[1]: Mounting Kernel Configuration File System...
742 Mounting Kernel Configuration File System...
743 [ 3.458983] systemd[1]: Starting Apply Kernel Variables...
744 Starting Apply Kernel Variables...
745 [ 3.471368] systemd[1]: Starting udev Coldplug all Devices...
746 Starting udev Coldplug all Devices...
747 [ 3.491071] systemd[1]: Mounted Temporary Directory (/tmp).
748 [ OK 3.498114] systemd[1]: Mounted Kernel Configuration File System.
749 0m] Mounted Temporary Directory (/tmp).
750 [ OK ] Mounted Kernel Configuration File System.
751 [ 3.550853] systemd[1]: Started Apply Kernel Variables.
752 [ OK 3.557535] systemd[1]: Started Journal Service.
753 0m] Started Apply Kernel Variables.
754 [ OK ] Started Journal Service.
755 [ OK ] Started udev Coldplug all Devices.
756 [ OK ] Started File System Check on Root Device.
757 Starting Remount Root and Kernel File Systems...
758 [ 8.133469] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
759 [ OK ] Started Remount Root and Kernel File Systems.
760 Starting Flush Journal to Persistent Storage...
761 [ 8.215327] systemd-journald[77]: Received client request to flush runtime journal.
762 Starting Create Static Device Nodes in /dev...
763 [ OK ] Started Flush Journal to Persistent Storage.
764 [ OK ] Started Create Static Device Nodes in /dev.
765 [ OK ] Reached target Local File Systems (Pre).
766 Mounting /var/volatile...
767 Starting udev Kernel Device Manager...
768 [ OK ] Mounted /var/volatile.
769 Starting Load/Save Random Seed...
770 [ OK ] Reached target Local File Systems.
771 Starting Create Volatile Files and Directories...
772 [ OK ] Started udev Kernel Device Manager.
773 [ OK ] Started Create Volatile Files and Directories.
774 Starting Network Time Synchronization...
775 Starting Update UTMP about System Boot/Shutdown...
776 [ OK ] Started Update UTMP about System Boot/Shutdown.
777 [ OK ] Started Network Time Synchronization.
778 [ 11.618575] random: crng init done
779 [ 11.622007] random: 7 urandom warning(s) missed due to ratelimiting
780 [ OK ] Started Load/Save Random Seed.
781 [ OK ] Reached target System Initialization.
782 [ OK ] Started Daily Cleanup of Temporary Directories.
783 [ OK ] Reached target System Time Set.
784 [ OK ] Reached target System Time Synchronized.
785 [ OK ] Reached target Timers.
786 [ OK ] Listening on D-Bus System Message Bus Socket.
787 [ OK ] Listening on dropbear.socket.
788 [ OK ] Reached target Sockets.
789 [ OK ] Reached target Basic System.
790 [ OK ] Started D-Bus System Message Bus.
791 Starting IPv6 Packet Filtering Framework...
792 Starting IPv4 Packet Filtering Framework...
793 Starting Login Service...
794 [ OK ] Started IPv6 Packet Filtering Framework.
795 [ OK ] Started IPv4 Packet Filtering Framework.
796 [ OK ] Reached target Network (Pre).
797 Starting Network Service...
798 [ OK ] Started Login Service.
799 [ 12.602455] macb 20112000.ethernet eth0: PHY [20112000.ethernet-ffffffff:09] driver [Vitesse VSC8662] (irq=POLL)
800 [ 12.612795] macb 20112000.ethernet eth0: configuring for phy/sgmii link mode
801 [ 12.622153] pps pps0: new PPS source ptp0
802 [ OK 12.626725] macb 20112000.ethernet: gem-ptp-timer ptp clock registered.
803 0m] Started Network Service.
804 Starting Network Name Resolution...
805 [ OK ] Started Network Name Resolution.
806 [ OK ] Reached target Network.
807 [ OK ] Reached target Host and Network Name Lookups.
808 [ OK ] Started Collectd.
809 [ OK ] Started Collectd.
810 Starting Permit User Sessions...
811 [ OK ] Started Permit User Sessions.
812 [ OK ] Started Getty on tty1.
813 [ OK ] Started Serial Getty on ttyS0.
814 [ OK ] Reached target Login Prompts.
815 [ OK ] Reached target Multi-User System.
816 Starting Update UTMP about System Runlevel Changes...
817 [ OK ] Started Update UTMP about System Runlevel Changes.
819 OpenEmbedded nodistro.0 icicle-kit-es ttyS0
821 icicle-kit-es login: [ 15.795564] macb 20112000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
822 [ 15.803306] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
824 icicle-kit-es login: root
825 root@icicle-kit-es:~#