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