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