blob: c71c2f3cab45266afaec532b964f86b948d27fe8 [file] [log] [blame]
Padmarao Begari9e550e12021-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--------------------
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +01008
Padmarao Begari9e550e12021-01-15 08:20:41 +05309The PolarFire SoC is the 4+1 64-bit RISC-V SoC from Microchip.
10
11The Icicle Kit development platform is based on PolarFire SoC and capable
12of running Linux.
13
14Mainline support
15----------------
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010016
Padmarao Begari9e550e12021-01-15 08:20:41 +053017The support for following drivers are already enabled:
18
191. NS16550 UART Driver.
202. Microchip Clock Driver.
213. Cadence MACB ethernet driver for networking support.
224. Cadence MMC Driver for eMMC/SD support.
23
24Booting from eMMC using HSS
25---------------------------
26
27Building U-Boot
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010028~~~~~~~~~~~~~~~
Padmarao Begari9e550e12021-01-15 08:20:41 +053029
301. Add the RISC-V toolchain to your PATH.
312. Setup ARCH & cross compilation environment variable:
32
33.. code-block:: none
34
35 export CROSS_COMPILE=<riscv64 toolchain prefix>
36
373. make microchip_mpfs_icicle_defconfig
384. make
39
40Flashing
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010041~~~~~~~~
Padmarao Begari9e550e12021-01-15 08:20:41 +053042
43The current U-Boot port is supported in S-mode only and loaded from DRAM.
44
45A prior stage M-mode firmware/bootloader (e.g HSS with OpenSBI) is required to
46boot the u-boot.bin in S-mode.
47
48Currently, the u-boot.bin is used as a payload of the HSS firmware (Microchip
49boot-flow) and OpenSBI generic platform fw_payload.bin (with u-boot.bin embedded)
50as HSS payload (Custom boot-flow)
51
52Microchip boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010053~~~~~~~~~~~~~~~~~~~
54
Padmarao Begari9e550e12021-01-15 08:20:41 +053055HSS with OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)
56
57Build the HSS (Hart Software Services) - Microchip boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010058''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
59
Padmarao Begari9e550e12021-01-15 08:20:41 +053060(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)
61
621. Configure
63
64.. code-block:: none
65
66 make BOARD=icicle-kit-es config
67
68Alternatively, copy the default config for Microchip boot-flow.
69
70.. code-block:: none
71
72 cp boards/icicle-kit-es/def_config .config
73
742. make BOARD=icicle-kit-es
753. In the Default subdirectory, the standard build will create hss.elf and
76 various binary formats (hss.hex and hss.bin).
77
78The FPGA design will use the hss.hex or hss.bin.
79
80FPGA design with HSS programming file
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010081'''''''''''''''''''''''''''''''''''''
82
Padmarao Begari9e550e12021-01-15 08:20:41 +053083https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md
84
85The HSS firmware runs from the PolarFire SoC eNVM on reset.
86
87Creating the HSS payload - Microchip boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +010088''''''''''''''''''''''''''''''''''''''''''''''
89
Padmarao Begari9e550e12021-01-15 08:20:41 +0530901. You will be creating a payload from `u-boot-dtb.bin`.
91 Copy this file to the HSS/tools/hss-payload-generator/test directory.
922. Go to hss-payload-generator source directory.
93
94.. code-block:: none
95
96 cd hart-software-services/tools/hss-payload-generator
97
983. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.
99
100 hart-entry-points: {u54_1: '0x80200000', u54_2: '0x80200000', u54_3: '0x80200000', u54_4: '0x80200000'}
101
102 payloads:
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}
104
1054. Generate payload
106
107.. code-block:: none
108
109 ./hss-payload-generator -c test/uboot.yaml payload.bin
110
111Once the payload binary is generated, it should be copied to the eMMC.
112
113Please 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)
115
116Custom boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100117~~~~~~~~~~~~~~~~
118
Padmarao Begari9e550e12021-01-15 08:20:41 +0530119HSS without OpenSBI (M-Mode) -> OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)
120
121Build OpenSBI
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100122'''''''''''''
Padmarao Begari9e550e12021-01-15 08:20:41 +0530123
1241. Get the OpenSBI source
125
126.. code-block:: none
127
128 git clone https://github.com/riscv/opensbi.git
129 cd opensbi
130
1312. Build
132
133.. code-block:: none
134
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
137
1383. Output "fw_payload.bin" file available at
139 "<opensbi-directory>/build/platform/generic/firmware/fw_payload.bin"
140
141Build the HSS (Hart Software Services)- Custom boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100142''''''''''''''''''''''''''''''''''''''''''''''''''''''''
143
Padmarao Begari9e550e12021-01-15 08:20:41 +0530144(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)
145
1461. Configure
147
148.. code-block:: none
149
150 make BOARD=icicle-kit-es config
151
152Alternatively, copy the default custom config for Custom boot-flow.
153
154.. code-block:: none
155
156 cp boards/icicle-kit-es/def_config_custom .config
157
1582. make BOARD=icicle-kit-es
1593. In the Default subdirectory, the standard build will create hss.elf and
160 various binary formats (hss.hex and hss.bin).
161
162The FPGA design will use the hss.hex or hss.bin.
163
164Creating the HSS payload - Custom boot-flow
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100165'''''''''''''''''''''''''''''''''''''''''''
166
Padmarao Begari9e550e12021-01-15 08:20:41 +05301671. You will be creating a payload from `fw_payload.bin`.
168 Copy this file to the HSS/tools/hss-payload-generator/test directory.
1692. Go to hss-payload-generator source directory.
170
171.. code-block:: none
172
173 cd hart-software-services/tools/hss-payload-generator
174
1753. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.
176
177 hart-entry-points: {u54_1: '0x80000000', u54_2: '0x80000000', u54_3: '0x80000000', u54_4: '0x80000000'}
178
179 payloads:
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}
181
1824. Generate payload
183
184.. code-block:: none
185
186 ./hss-payload-generator -c test/uboot.yaml payload.bin
187
188Once the payload binary is generated, it should be copied to the eMMC.
189
190Please 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
192and also refer the HSS payload generator at https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/software-development/hss-payloads.md)
193
194eMMC
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100195~~~~
196
Padmarao Begari9e550e12021-01-15 08:20:41 +0530197Program 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)
199
200Once the payload image is copied to the eMMC, press CTRL+C in the HSS command
201line interface, then type 'boot' and enter to boot the newly copied image.
202
203.. code-block:: none
204
205 sudo dd if=<payload_binary> of=/dev/sdX bs=512
206
207GUID type
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100208~~~~~~~~~
209
Padmarao Begari9e550e12021-01-15 08:20:41 +0530210The HSS always picks up HSS payload from a GPT partition with
211GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
212GPT partition.
213
214Booting
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100215~~~~~~~
216
Padmarao Begari9e550e12021-01-15 08:20:41 +0530217You should see the U-Boot prompt on UART0.
218
219Sample boot log from MPFS Icicle Kit
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100220''''''''''''''''''''''''''''''''''''
Padmarao Begari9e550e12021-01-15 08:20:41 +0530221
222.. code-block:: none
223
224 U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)
225
226 CPU: rv64imafdc
227 Model: Microchip MPFS Icicle Kit
228 DRAM: 1 GiB
229 MMC: sdhc@20008000: 0
230 In: serial@20100000
231 Out: serial@20100000
232 Err: serial@20100000
233 Net: eth0: ethernet@20112000
234 Hit any key to stop autoboot: 0
235
236Now you can configure your networking, tftp server and use tftp boot method to
237load uImage (with initramfs).
238
239.. code-block:: none
240
241 RISC-V # setenv kernel_addr_r 0x80200000
242 RISC-V # setenv fdt_addr_r 0x82200000
243
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
248
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
256 Filename 'uImage'.
257 Load address: 0x80200000
258 Loading: #################################################################
259 #################################################################
260 #################################################################
261 #################################################################
262 #################################################################
263 #################################################################
264 #################################################################
265 #################################################################
266 #################################################################
267 #################################################################
268 #################################################################
269 #################################################################
270 #################################################################
271 #################################################################
272 #################################################################
273 ############
274 6.4 MiB/s
275 done
276 Bytes transferred = 14482480 (dcfc30 hex)
277
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
287 Loading: #
288 2.5 MiB/s
289 done
290 Bytes transferred = 10282 (282a hex)
291
292 RISC-V # bootm ${kernel_addr_r} - ${fdt_addr_r}
293 ## Booting kernel from Legacy Image at 80200000 ...
294 Image Name: Linux
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
302 Loading Kernel Image
303 Using Device Tree in place at 000000008fffa000, end 000000008ffff829 ... OK
304
305 Starting kernel ...
306
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
384 Starting logging: OK
385 Starting mdev...
386 /etc/init.d/S10mdev: line 21: can't create /proc/sys/kernel/hotplug: nonexiste[ 1.331981] mmc0: mmc_select_hs200 failed, error -74
387 nt directory
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)
402 done.
403 Starting network...
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
409 Sending discover...
410 Sending discover...
411 [ 6.380169] macb 20112000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
412 Sending discover...
413 Sending select for 192.168.1.2...
414 Lease of 192.168.1.2 obtained, lease time 86400
415 deleting routers
416 adding dns 192.168.1.1
417 Starting dropbear sshd: [ 11.385619] random: dropbear: uninitialized urandom read (32 bytes read)
418 OK
419
420 Welcome to Buildroot
421 buildroot login: root
422 Password:
423 #
424
425Booting U-Boot and Linux from eMMC
426----------------------------------
427
428FPGA design with HSS programming file and Linux Image
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100429~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
430
Padmarao Begari9e550e12021-01-15 08:20:41 +0530431https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/boards/mpfs-icicle-kit-es/updating-icicle-kit/updating-icicle-kit-design-and-linux.md
432
433The HSS firmware runs from the PolarFire SoC eNVM on reset.
434
435eMMC
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100436~~~~
437
Padmarao Begari9e550e12021-01-15 08:20:41 +0530438Program eMMC with payload binary and Linux image is explained in the
439PolarFire SoC documentation.
440The payload binary should be copied to partition 2 of the eMMC.
441
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)
443
444Once the Linux image and payload binary is copied to the eMMC, press CTRL+C
445in the HSS command line interface, then type 'boot' and enter to boot the newly
446copied payload and Linux image.
447
448.. code-block:: none
449
450 zcat <linux-image>.wic.gz | sudo dd of=/dev/sdX bs=4096 iflag=fullblock oflag=direct conv=fsync status=progress
451
452 sudo dd if=<payload_binary> of=/dev/sdX2 bs=512
453
454You should see the U-Boot prompt on UART0.
455
456GUID type
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100457~~~~~~~~~
458
Padmarao Begari9e550e12021-01-15 08:20:41 +0530459The HSS always picks up the HSS payload from a GPT partition with
460GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
461GPT partition.
462
463Sample boot log from MPFS Icicle Kit
Heinrich Schuchardtc7d2b2c2021-01-25 20:11:54 +0100464~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Padmarao Begari9e550e12021-01-15 08:20:41 +0530465
466.. code-block:: none
467
468 U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)
469
470 CPU: rv64imafdc
471 Model: Microchip MPFS Icicle Kit
472 DRAM: 1 GiB
473 MMC: sdhc@20008000: 0
474 In: serial@20100000
475 Out: serial@20100000
476 Err: serial@20100000
477 Net: eth0: ethernet@20112000
478 Hit any key to stop autoboot: 0
479
480 RISC-V # mmc info
481 Device: sdhc@20008000
482 Manufacturer ID: 45
483 OEM: 100
484 Name: DG400
485 Bus Speed: 52000000
486 Mode: MMC High Speed (52MHz)
487 Rd Block Len: 512
488 MMC version 5.1
489 High Capacity: Yes
490 Capacity: 7.3 GiB
491 Bus Width: 4-bit
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
497
498 RISC-V # mmc part
499 Partition Map for MMC device 0 -- Partition Type: EFI
500
501 Part Start LBA End LBA Name
502 Attributes
503 Type GUID
504 Partition GUID
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
517
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
524 Type: Kernel Image
525 Compression: gzip compressed
526 Data Start: 0x883000fc
527 Data Size: 3574555 Bytes = 3.4 MiB
528 Architecture: RISC-V
529 OS: Linux
530 Load Address: 0x80200000
531 Entry Point: 0x80200000
532 Hash algo: sha256
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
543 Architecture: RISC-V
544 Load Address: 0x82200000
545 Hash algo: sha256
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
552
553 Starting kernel ...
554
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.
691
692 Welcome to OpenEmbedded nodistro.0!
693
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.
818
819 OpenEmbedded nodistro.0 icicle-kit-es ttyS0
820
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
823
824 icicle-kit-es login: root
825 root@icicle-kit-es:~#