.. SPDX-License-Identifier: GPL-2.0+

Microchip PolarFire SoC Icicle Kit
==================================

RISC-V PolarFire SoC
--------------------

The PolarFire SoC is the 4+1 64-bit RISC-V SoC from Microchip.

The Icicle Kit development platform is based on PolarFire SoC and capable
of running Linux.

Mainline support
----------------

The support for following drivers are already enabled:

1. NS16550 UART Driver.
2. Microchip Clock Driver.
3. Cadence MACB ethernet driver for networking support.
4. Cadence MMC Driver for eMMC/SD support.

Booting from eMMC using HSS
---------------------------

Building U-Boot
~~~~~~~~~~~~~~~

1. Add the RISC-V toolchain to your PATH.
2. Setup ARCH & cross compilation environment variable:

.. code-block:: none

   export CROSS_COMPILE=<riscv64 toolchain prefix>

3. make microchip_mpfs_icicle_defconfig
4. make

Flashing
~~~~~~~~

The current U-Boot port is supported in S-mode only and loaded from DRAM.

A prior stage M-mode firmware/bootloader (e.g HSS with OpenSBI) is required to
boot the u-boot.bin in S-mode.

Currently, the u-boot.bin is used as a payload of the HSS firmware (Microchip
boot-flow) and OpenSBI generic platform fw_payload.bin (with u-boot.bin embedded)
as HSS payload (Custom boot-flow)

Microchip boot-flow
~~~~~~~~~~~~~~~~~~~

HSS with OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)

Build the HSS (Hart Software Services) - Microchip boot-flow
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)

1. Configure

.. code-block:: none

   make BOARD=icicle-kit-es config

Alternatively, copy the default config for Microchip boot-flow.

.. code-block:: none

   cp boards/icicle-kit-es/def_config .config

2. make BOARD=icicle-kit-es
3. In the Default subdirectory, the standard build will create hss.elf and
   various binary formats (hss.hex and hss.bin).

The FPGA design will use the hss.hex or hss.bin.

FPGA design with HSS programming file
'''''''''''''''''''''''''''''''''''''

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

The HSS firmware runs from the PolarFire SoC eNVM on reset.

Creating the HSS payload - Microchip boot-flow
''''''''''''''''''''''''''''''''''''''''''''''

1. You will be creating a payload from `u-boot-dtb.bin`.
   Copy this file to the HSS/tools/hss-payload-generator/test directory.
2. Go to hss-payload-generator source directory.

.. code-block:: none

   cd hart-software-services/tools/hss-payload-generator

3. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.

	hart-entry-points: {u54_1: '0x80200000', u54_2: '0x80200000', u54_3: '0x80200000', u54_4: '0x80200000'}

	payloads:
	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}

4. Generate payload

.. code-block:: none

   ./hss-payload-generator -c test/uboot.yaml payload.bin

Once the payload binary is generated, it should be copied to the eMMC.

Please refer to HSS documenation to build the HSS firmware for payload.
(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator/README.md)

Custom boot-flow
~~~~~~~~~~~~~~~~

HSS without OpenSBI (M-Mode) -> OpenSBI (M-Mode) -> U-Boot (S-Mode) -> Linux (S-Mode)

Build OpenSBI
'''''''''''''

1. Get the OpenSBI source

.. code-block:: none

   git clone https://github.com/riscv/opensbi.git
   cd opensbi

2. Build

.. code-block:: none

   make PLATFORM=generic FW_PAYLOAD_PATH=<u-boot-directory>/u-boot.bin
   FW_FDT_PATH=<u-boot-directory>/arch/riscv/dts/microchip-mpfs-icicle-kit-.dtb

3. Output "fw_payload.bin" file available at
   "<opensbi-directory>/build/platform/generic/firmware/fw_payload.bin"

Build the HSS (Hart Software Services)- Custom boot-flow
''''''''''''''''''''''''''''''''''''''''''''''''''''''''

(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services)

1. Configure

.. code-block:: none

   make BOARD=icicle-kit-es config

Alternatively, copy the default custom config for Custom boot-flow.

.. code-block:: none

   cp boards/icicle-kit-es/def_config_custom .config

2. make BOARD=icicle-kit-es
3. In the Default subdirectory, the standard build will create hss.elf and
   various binary formats (hss.hex and hss.bin).

The FPGA design will use the hss.hex or hss.bin.

Creating the HSS payload - Custom boot-flow
'''''''''''''''''''''''''''''''''''''''''''

1. You will be creating a payload from `fw_payload.bin`.
   Copy this file to the HSS/tools/hss-payload-generator/test directory.
2. Go to hss-payload-generator source directory.

.. code-block:: none

   cd hart-software-services/tools/hss-payload-generator

3. Edit test/uboot.yaml file for hart entry points and correct name of the binary file.

	hart-entry-points: {u54_1: '0x80000000', u54_2: '0x80000000', u54_3: '0x80000000', u54_4: '0x80000000'}

	payloads:
	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}

4. Generate payload

.. code-block:: none

   ./hss-payload-generator -c test/uboot.yaml payload.bin

Once the payload binary is generated, it should be copied to the eMMC.

Please refer to HSS documenation to build the HSS firmware for payload.
(Note: HSS git repo is at https://github.com/polarfire-soc/hart-software-services/blob/master/tools/hss-payload-generator/README.md
and also refer the HSS payload generator at https://github.com/polarfire-soc/polarfire-soc-documentation/blob/master/software-development/hss-payloads.md)

eMMC
~~~~

Program eMMC with payload binary is explained in the PolarFire SoC documentation.
(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)

Once the payload image is copied to the eMMC, press CTRL+C in the HSS command
line interface, then type 'boot' and enter to boot the newly copied image.

.. code-block:: none

    sudo dd if=<payload_binary> of=/dev/sdX bs=512

GUID type
~~~~~~~~~

The HSS always picks up HSS payload from a GPT partition with
GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
GPT partition.

Booting
~~~~~~~

You should see the U-Boot prompt on UART0.

Sample boot log from MPFS Icicle Kit
''''''''''''''''''''''''''''''''''''

.. code-block:: none

   U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)

   CPU:   rv64imafdc
   Model: Microchip MPFS Icicle Kit
   DRAM:  1 GiB
   MMC:   sdhc@20008000: 0
   In:    serial@20100000
   Out:   serial@20100000
   Err:   serial@20100000
   Net:   eth0: ethernet@20112000
   Hit any key to stop autoboot:  0

Now you can configure your networking, tftp server and use tftp boot method to
load uImage (with initramfs).

.. code-block:: none

   RISC-V # setenv kernel_addr_r 0x80200000
   RISC-V # setenv fdt_addr_r 0x82200000

   RISC-V # setenv ipaddr 192.168.1.5
   RISC-V # setenv netmask 255.255.255.0
   RISC-V # setenv serverip 192.168.1.3
   RISC-V # setenv gateway 192.168.1.1

   RISC-V # tftpboot ${kernel_addr_r} uImage
   ethernet@20112000: PHY present at 9
   ethernet@20112000: Starting autonegotiation...
   ethernet@20112000: Autonegotiation complete
   ethernet@20112000: link up, 1000Mbps full-duplex (lpa: 0x7800)
   Using ethernet@20112000 device
   TFTP from server 192.168.1.3; our IP address is 192.168.1.5
   Filename 'uImage'.
   Load address: 0x80200000
   Loading: #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    #################################################################
	    ############
	    6.4 MiB/s
   done
   Bytes transferred = 14482480 (dcfc30 hex)

   RISC-V # tftpboot ${fdt_addr_r} microchip-mpfs-icicle-kit.dtb
   ethernet@20112000: PHY present at 9
   ethernet@20112000: Starting autonegotiation...
   ethernet@20112000: Autonegotiation complete
   ethernet@20112000: link up, 1000Mbps full-duplex (lpa: 0x7800)
   Using ethernet@20112000 device
   TFTP from server 192.168.1.3; our IP address is 192.168.1.5
   Filename 'microchip-mpfs-icicle-kit.dtb'.
   Load address: 0x82200000
   Loading: #
			2.5 MiB/s
   done
   Bytes transferred = 10282 (282a hex)

   RISC-V # bootm ${kernel_addr_r} - ${fdt_addr_r}
   ## Booting kernel from Legacy Image at 80200000 ...
		Image Name:   Linux
		Image Type:   RISC-V Linux Kernel Image (uncompressed)
		Data Size:    14482416 Bytes = 13.8 MiB
		Load Address: 80200000
		Entry Point:  80200000
		Verifying Checksum ... OK
   ## Flattened Device Tree blob at 82200000
		Booting using the fdt blob at 0x82200000
		Loading Kernel Image
		Using Device Tree in place at 000000008fffa000, end 000000008ffff829 ... OK

   Starting kernel ...

   [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
   [    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
   [    0.000000] initrd not found or empty - disabling initrd
   [    0.000000] Zone ranges:
   [    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000]   Normal   empty
   [    0.000000] Movable zone start for each node
   [    0.000000] Early memory node ranges
   [    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000] software IO TLB: mapped [mem 0xbb1f5000-0xbf1f5000] (64MB)
   [    0.000000] elf_hwcap is 0x112d
   [    0.000000] percpu: Embedded 14 pages/cpu s24856 r0 d32488 u57344
   [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
   [    0.000000] Kernel command line: console=ttyS0,115200n8
   [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
   [    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
   [    0.000000] Sorting __ex_table...
   [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
   [    0.000000] Memory: 950308K/1046528K available (3289K kernel code, 212K rwdata, 900K rodata, 9476K init, 250K bss, 96220K reserved, 0K cma-reserved)
   [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
   [    0.000000] rcu: Hierarchical RCU implementation.
   [    0.000000] rcu: 	RCU event tracing is enabled.
   [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
   [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
   [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
   [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
   [    0.000000] plic: mapped 186 interrupts with 4 handlers for 9 contexts.
   [    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
   [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
   [    0.000015] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
   [    0.000311] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
   [    0.000349] pid_max: default: 32768 minimum: 301
   [    0.000846] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
   [    0.000964] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
   [    0.005630] rcu: Hierarchical SRCU implementation.
   [    0.006901] smp: Bringing up secondary CPUs ...
   [    0.012545] smp: Brought up 1 node, 4 CPUs
   [    0.014431] devtmpfs: initialized
   [    0.020526] random: get_random_bytes called from setup_net+0x36/0x192 with crng_init=0
   [    0.020928] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
   [    0.020999] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
   [    0.022768] NET: Registered protocol family 16
   [    0.035478] microchip-pfsoc-clkcfg 20002000.clkcfg: Registered PFSOC core clocks
   [    0.048429] SCSI subsystem initialized
   [    0.049694] pps_core: LinuxPPS API ver. 1 registered
   [    0.049719] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
   [    0.049780] PTP clock support registered
   [    0.051781] clocksource: Switched to clocksource riscv_clocksource
   [    0.055326] NET: Registered protocol family 2
   [    0.056922] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
   [    0.057053] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
   [    0.057648] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
   [    0.058579] TCP: Hash tables configured (established 8192 bind 8192)
   [    0.059648] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
   [    0.059837] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
   [    0.060707] NET: Registered protocol family 1
   [    0.266229] workingset: timestamp_bits=62 max_order=18 bucket_order=0
   [    0.287107] io scheduler mq-deadline registered
   [    0.287140] io scheduler kyber registered
   [    0.429601] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
   [    0.433979] printk: console [ttyS0] disabled
   [    0.434154] 20000000.serial: ttyS0 at MMIO 0x20000000 (irq = 18, base_baud = 9375000) is a 16550A
   [    0.928039] printk: console [ttyS0] enabled
   [    0.939804] libphy: Fixed MDIO Bus: probed
   [    0.948702] libphy: MACB_mii_bus: probed
   [    0.993698] macb 20112000.ethernet eth0: Cadence GEM rev 0x0107010c at 0x20112000 irq 21 (56:34:12:00:fc:00)
   [    1.006751] mousedev: PS/2 mouse device common for all mice
   [    1.013803] i2c /dev entries driver
   [    1.019451] sdhci: Secure Digital Host Controller Interface driver
   [    1.027242] sdhci: Copyright(c) Pierre Ossman
   [    1.032731] sdhci-pltfm: SDHCI platform and OF driver helper
   [    1.091826] mmc0: SDHCI controller on 20008000.sdhc [20008000.sdhc] using ADMA 64-bit
   [    1.102738] NET: Registered protocol family 17
   [    1.170326] Freeing unused kernel memory: 9476K
   [    1.176067] This architecture does not have kernel memory protection.
   [    1.184157] Run /init as init process
   Starting logging: OK
   Starting mdev...
   /etc/init.d/S10mdev: line 21: can't create /proc/sys/kernel/hotplug: nonexiste[    1.331981] mmc0: mmc_select_hs200 failed, error -74
   nt directory
   [    1.355011] mmc0: new MMC card at address 0001
   [    1.363981] mmcblk0: mmc0:0001 DG4008 7.28 GiB
   [    1.372248] mmcblk0boot0: mmc0:0001 DG4008 partition 1 4.00 MiB
   [    1.382292] mmcblk0boot1: mmc0:0001 DG4008 partition 2 4.00 MiB
   [    1.390265] mmcblk0rpmb: mmc0:0001 DG4008 partition 3 4.00 MiB, chardev (251:0)
   [    1.425234] GPT:Primary header thinks Alt. header is not at the end of the disk.
   [    1.434656] GPT:2255809 != 15273599
   [    1.439038] GPT:Alternate GPT header not at the end of the disk.
   [    1.446671] GPT:2255809 != 15273599
   [    1.451048] GPT: Use GNU Parted to correct GPT errors.
   [    1.457755]  mmcblk0: p1 p2 p3
   sort: /sys/devices/platform/Fixed: No such file or directory
   modprobe: can't change directory to '/lib/modules': No such file or directory
   Initializing random number generator... [    2.830198] random: dd: uninitialized urandom read (512 bytes read)
   done.
   Starting network...
   [    3.061867] macb 20112000.ethernet eth0: PHY [20112000.ethernet-ffffffff:09] driver [Vitesse VSC8662] (irq=POLL)
   [    3.074674] macb 20112000.ethernet eth0: configuring for phy/sgmii link mode
   [    3.084263] pps pps0: new PPS source ptp0
   [    3.089710] macb 20112000.ethernet: gem-ptp-timer ptp clock registered.
   udhcpc (v1.24.2) started
   Sending discover...
   Sending discover...
   [    6.380169] macb 20112000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
   Sending discover...
   Sending select for 192.168.1.2...
   Lease of 192.168.1.2 obtained, lease time 86400
   deleting routers
   adding dns 192.168.1.1
   Starting dropbear sshd: [   11.385619] random: dropbear: uninitialized urandom read (32 bytes read)
   OK

   Welcome to Buildroot
   buildroot login: root
   Password:
   #

Booting U-Boot and Linux from eMMC
----------------------------------

FPGA design with HSS programming file and Linux Image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

The HSS firmware runs from the PolarFire SoC eNVM on reset.

eMMC
~~~~

Program eMMC with payload binary and Linux image is explained in the
PolarFire SoC documentation.
The payload binary should be copied to partition 2 of the eMMC.

(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)

Once the Linux image and payload binary is copied to the eMMC, press CTRL+C
in the HSS command line interface, then type 'boot' and enter to boot the newly
copied payload and Linux image.

.. code-block:: none

    zcat <linux-image>.wic.gz | sudo dd of=/dev/sdX bs=4096 iflag=fullblock oflag=direct conv=fsync status=progress

    sudo dd if=<payload_binary> of=/dev/sdX2 bs=512

You should see the U-Boot prompt on UART0.

GUID type
~~~~~~~~~

The HSS always picks up the HSS payload from a GPT partition with
GIUD type "21686148-6449-6E6F-744E-656564454649" or sector '0' of the eMMC if no
GPT partition.

Sample boot log from MPFS Icicle Kit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: none

   U-Boot 2021.01-00314-g7303332537-dirty (Jan 14 2021 - 10:09:43 +0530)

   CPU:   rv64imafdc
   Model: Microchip MPFS Icicle Kit
   DRAM:  1 GiB
   MMC:   sdhc@20008000: 0
   In:    serial@20100000
   Out:   serial@20100000
   Err:   serial@20100000
   Net:   eth0: ethernet@20112000
   Hit any key to stop autoboot:  0

   RISC-V # mmc info
   Device: sdhc@20008000
   Manufacturer ID: 45
   OEM: 100
   Name: DG400
   Bus Speed: 52000000
   Mode: MMC High Speed (52MHz)
   Rd Block Len: 512
   MMC version 5.1
   High Capacity: Yes
   Capacity: 7.3 GiB
   Bus Width: 4-bit
   Erase Group Size: 512 KiB
   HC WP Group Size: 8 MiB
   User Capacity: 7.3 GiB WRREL
   Boot Capacity: 4 MiB ENH
   RPMB Capacity: 4 MiB ENH

   RISC-V # mmc part
   Partition Map for MMC device 0  --   Partition Type: EFI

   Part	Start LBA	End LBA		Name
		Attributes
		Type GUID
		Partition GUID
	1	0x00002000	0x0000b031	"boot"
		attrs:	0x0000000000000004
		type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
		guid:	99ff6a94-f2e7-44dd-a7df-f3a2da106ef9
	2	0x0000b032	0x0000f031	"primary"
		attrs:	0x0000000000000000
		type:	21686148-6449-6e6f-744e-656564454649
		guid:	12006052-e64b-4423-beb0-b956ea00f1ba
	3	0x00010000	0x00226b9f	"root"
		attrs:	0x0000000000000000
		type:	0fc63daf-8483-4772-8e79-3d69d8477de4
		guid:	dd2c5619-2272-4c3c-8dc2-e21942e17ce6

   RISC-V # load mmc 0 ${ramdisk_addr_r} fitimage
   RISC-V # bootm ${ramdisk_addr_r}
   ## Loading kernel from FIT Image at 88300000 ...
   Using 'conf@microchip_icicle-kit-es-a000-microchip.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x883000fc
     Data Size:    3574555 Bytes = 3.4 MiB
     Architecture: RISC-V
     OS:           Linux
     Load Address: 0x80200000
     Entry Point:  0x80200000
     Hash algo:    sha256
     Hash value:   21f18d72cf2f0a7192220abb577ad25c77c26960052d779aa02bf55dbf0a6403
   Verifying Hash Integrity ... sha256+ OK
   ## Loading fdt from FIT Image at 88300000 ...
   Using 'conf@microchip_icicle-kit-es-a000-microchip.dtb' configuration
   Trying 'fdt@microchip_icicle-kit-es-a000-microchip.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x88668d44
     Data Size:    9760 Bytes = 9.5 KiB
     Architecture: RISC-V
     Load Address: 0x82200000
     Hash algo:    sha256
     Hash value:   5c3a9f30d41b6b8e53b47916e1f339b3a4d454006554d1f7e1f552ed62409f4b
   Verifying Hash Integrity ... sha256+ OK
   Loading fdt from 0x88668d48 to 0x82200000
   Booting using the fdt blob at 0x82200000
   Uncompressing Kernel Image
   Loading Device Tree to 000000008fffa000, end 000000008ffff61f ... OK

   Starting kernel ...

   [    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
   [    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
   [    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
   [    0.000000] printk: bootconsole [sbi0] enabled
   [    0.000000] Zone ranges:
   [    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000]   Normal   empty
   [    0.000000] Movable zone start for each node
   [    0.000000] Early memory node ranges
   [    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000] Zeroed struct page in unavailable ranges: 512 pages
   [    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
   [    0.000000] software IO TLB: mapped [mem 0xb9e00000-0xbde00000] (64MB)
   [    0.000000] CPU with hartid=0 is not available
   [    0.000000] CPU with hartid=0 is not available
   [    0.000000] elf_hwcap is 0x112d
   [    0.000000] percpu: Embedded 17 pages/cpu s29784 r8192 d31656 u69632
   [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
   [    0.000000] Kernel command line: earlycon=sbi root=/dev/mmcblk0p3 rootwait console=ttyS0,115200n8 uio_pdrv_genirq.of_id=generic-uio
   [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
   [    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
   [    0.000000] Sorting __ex_table...
   [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
   [    0.000000] Memory: 941440K/1046528K available (4118K kernel code, 280K rwdata, 1687K rodata, 169K init, 273K bss, 105088K reserved, 0K cma-reserved)
   [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
   [    0.000000] rcu: Hierarchical RCU implementation.
   [    0.000000] rcu: 	RCU event tracing is enabled.
   [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=5 to nr_cpu_ids=4.
   [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
   [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
   [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
   [    0.000000] plic: mapped 53 interrupts with 4 handlers for 9 contexts.
   [    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [1]
   [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
   [    0.000015] sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns
   [    0.008679] Console: colour dummy device 80x25
   [    0.013112] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
   [    0.023368] pid_max: default: 32768 minimum: 301
   [    0.028314] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
   [    0.035766] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
   [    0.047099] rcu: Hierarchical SRCU implementation.
   [    0.052813] smp: Bringing up secondary CPUs ...
   [    0.061581] smp: Brought up 1 node, 4 CPUs
   [    0.067069] devtmpfs: initialized
   [    0.073621] random: get_random_u32 called from bucket_table_alloc.isra.0+0x4e/0x150 with crng_init=0
   [    0.074409] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
   [    0.093399] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
   [    0.101879] NET: Registered protocol family 16
   [    0.110336] microchip-pfsoc-clkcfg 20002000.clkcfg: Registered PFSOC core clocks
   [    0.132717] usbcore: registered new interface driver usbfs
   [    0.138225] usbcore: registered new interface driver hub
   [    0.143813] usbcore: registered new device driver usb
   [    0.148939] pps_core: LinuxPPS API ver. 1 registered
   [    0.153929] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
   [    0.163071] PTP clock support registered
   [    0.168521] clocksource: Switched to clocksource riscv_clocksource
   [    0.174927] VFS: Disk quotas dquot_6.6.0
   [    0.179016] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
   [    0.205536] NET: Registered protocol family 2
   [    0.210944] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
   [    0.219393] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
   [    0.227497] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
   [    0.235440] TCP: Hash tables configured (established 8192 bind 8192)
   [    0.242537] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
   [    0.249285] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
   [    0.256690] NET: Registered protocol family 1
   [    0.262585] workingset: timestamp_bits=62 max_order=18 bucket_order=0
   [    0.281036] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
   [    0.288481] io scheduler mq-deadline registered
   [    0.292983] io scheduler kyber registered
   [    0.298895] microsemi,mss-gpio 20122000.gpio: Microsemi MSS GPIO registered 32 GPIOs
   [    0.453723] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
   [    0.462911] printk: console [ttyS0] disabled
   [    0.467216] 20100000.serial: ttyS0 at MMIO 0x20100000 (irq = 12, base_baud = 9375000) is a 16550A
   [    0.476201] printk: console [ttyS0] enabled
   [    0.476201] printk: console [ttyS0] enabled
   [    0.484576] printk: bootconsole [sbi0] disabled
   [    0.484576] printk: bootconsole [sbi0] disabled
   [    0.494920] 20102000.serial: ttyS1 at MMIO 0x20102000 (irq = 13, base_baud = 9375000) is a 16550A
   [    0.505068] 20104000.serial: ttyS2 at MMIO 0x20104000 (irq = 14, base_baud = 9375000) is a 16550A
   [    0.533336] loop: module loaded
   [    0.572284] Rounding down aligned max_sectors from 4294967295 to 4294967288
   [    0.580000] db_root: cannot open: /etc/target
   [    0.585413] libphy: Fixed MDIO Bus: probed
   [    0.591526] libphy: MACB_mii_bus: probed
   [    0.598060] macb 20112000.ethernet eth0: Cadence GEM rev 0x0107010c at 0x20112000 irq 17 (56:34:12:00:fc:00)
   [    0.608352] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
   [    0.615001] ehci-platform: EHCI generic platform driver
   [    0.620446] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
   [    0.626632] ohci-platform: OHCI generic platform driver
   [    0.632326] usbcore: registered new interface driver cdc_acm
   [    0.637996] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
   [    0.646459] i2c /dev entries driver
   [    0.650852] microsemi-mss-i2c 2010b000.i2c: Microsemi I2C Probe Complete
   [    0.658010] sdhci: Secure Digital Host Controller Interface driver
   [    0.664326] sdhci: Copyright(c) Pierre Ossman
   [    0.668754] sdhci-pltfm: SDHCI platform and OF driver helper
   [    0.706845] mmc0: SDHCI controller on 20008000.sdhc [20008000.sdhc] using ADMA 64-bit
   [    0.715052] usbcore: registered new interface driver usbhid
   [    0.720722] usbhid: USB HID core driver
   [    0.725174] pac193x 0-0010: Chip revision: 0x03
   [    0.733339] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 0 active
   [    0.740127] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 1 active
   [    0.746881] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 2 active
   [    0.753686] pac193x 0-0010: :pac193x_prep_iio_channels: Channel 3 active
   [    0.760495] pac193x 0-0010: :pac193x_prep_iio_channels: Active chip channels: 25
   [    0.778006] NET: Registered protocol family 10
   [    0.784929] Segment Routing with IPv6
   [    0.788875] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
   [    0.795743] NET: Registered protocol family 17
   [    0.801191] hctosys: unable to open rtc device (rtc0)
   [    0.807774] Waiting for root device /dev/mmcblk0p3...
   [    0.858506] mmc0: mmc_select_hs200 failed, error -74
   [    0.865764] mmc0: new MMC card at address 0001
   [    0.872564] mmcblk0: mmc0:0001 DG4008 7.28 GiB
   [    0.878777] mmcblk0boot0: mmc0:0001 DG4008 partition 1 4.00 MiB
   [    0.886182] mmcblk0boot1: mmc0:0001 DG4008 partition 2 4.00 MiB
   [    0.892633] mmcblk0rpmb: mmc0:0001 DG4008 partition 3 4.00 MiB, chardev (247:0)
   [    0.919029] GPT:Primary header thinks Alt. header is not at the end of the disk.
   [    0.926448] GPT:2255841 != 15273599
   [    0.930019] GPT:Alternate GPT header not at the end of the disk.
   [    0.936029] GPT:2255841 != 15273599
   [    0.939583] GPT: Use GNU Parted to correct GPT errors.
   [    0.944800]  mmcblk0: p1 p2 p3
   [    0.966696] EXT4-fs (mmcblk0p3): INFO: recovery required on readonly filesystem
   [    0.974105] EXT4-fs (mmcblk0p3): write access will be enabled during recovery
   [    1.052362] random: fast init done
   [    1.057961] EXT4-fs (mmcblk0p3): recovery complete
   [    1.065734] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
   [    1.074002] VFS: Mounted root (ext4 filesystem) readonly on device 179:3.
   [    1.081654] Freeing unused kernel memory: 168K
   [    1.086108] This architecture does not have kernel memory protection.
   [    1.092629] Run /sbin/init as init process
   [    1.702217] systemd[1]: System time before build time, advancing clock.
   [    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)
   [    1.776361] systemd[1]: Detected architecture riscv64.

   Welcome to OpenEmbedded nodistro.0!

   [    1.829651] systemd[1]: Set hostname to <icicle-kit-es>.
   [    2.648597] random: systemd: uninitialized urandom read (16 bytes read)
   [    2.657485] systemd[1]: Created slice system-getty.slice.
   [  OK  ] Created slice system-getty.slice.
   [    2.698779] random: systemd: uninitialized urandom read (16 bytes read)
   [    2.706317] systemd[1]: Created slice system-serial\x2dgetty.slice.
   [  OK  ] Created slice system-serial\x2dgetty.slice.
   [    2.748716] random: systemd: uninitialized urandom read (16 bytes read)
   [    2.756098] systemd[1]: Created slice User and Session Slice.
   [  OK  ] Created slice User and Session Slice.
   [    2.789065] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
   [  OK  ] Started Dispatch Password …ts to Console Directory Watch.
   [    2.828974] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
   [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
   [    2.869009] systemd[1]: Reached target Paths.
   [  OK  ] Reached target Paths.
   [    2.898808] systemd[1]: Reached target Remote File Systems.
   [  OK  ] Reached target Remote File Systems.
   [    2.938771] systemd[1]: Reached target Slices.
   [  OK  ] Reached target Slices.
   [    2.968754] systemd[1]: Reached target Swap.
   [  OK  ] Reached target Swap.
   [    2.999283] systemd[1]: Listening on initctl Compatibility Named Pipe.
   [  OK  ] Listening on initctl Compatibility Named Pipe.
   [    3.060458] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
   [    3.069826] systemd[1]: Listening on Journal Socket (/dev/log).
   [  OK  ] Listening on Journal Socket (/dev/log).
   [    3.109601] systemd[1]: Listening on Journal Socket.
   [  OK  ] Listening on Journal Socket.
   [    3.149868] systemd[1]: Listening on Network Service Netlink Socket.
   [  OK  ] Listening on Network Service Netlink Socket.
   [    3.189419] systemd[1]: Listening on udev Control Socket.
   [  OK  ] Listening on udev Control Socket.
   [    3.229179] systemd[1]: Listening on udev Kernel Socket.
   [  OK  ] Listening on udev Kernel Socket.
   [    3.269520] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
   [    3.278477] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
   [    3.288200] systemd[1]: Condition check resulted in Kernel Debug File System being skipped.
   [    3.302570] systemd[1]: Mounting Temporary Directory (/tmp)...
            Mounting Temporary Directory (/tmp)...
   [    3.339226] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
   [    3.355883] systemd[1]: Starting File System Check on Root Device...
            Starting File System Check on Root Device...
   [    3.407220] systemd[1]: Starting Journal Service...
            Starting Journal Service...
   [    3.422441] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
   [    3.431770] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
   [    3.446415] systemd[1]: Mounting Kernel Configuration File System...
            Mounting Kernel Configuration File System...
   [    3.458983] systemd[1]: Starting Apply Kernel Variables...
            Starting Apply Kernel Variables...
   [    3.471368] systemd[1]: Starting udev Coldplug all Devices...
            Starting udev Coldplug all Devices...
   [    3.491071] systemd[1]: Mounted Temporary Directory (/tmp).
   [  OK      3.498114] systemd[1]: Mounted Kernel Configuration File System.
   0m] Mounted Temporary Directory (/tmp).
   [  OK  ] Mounted Kernel Configuration File System.
   [    3.550853] systemd[1]: Started Apply Kernel Variables.
   [  OK      3.557535] systemd[1]: Started Journal Service.
   0m] Started Apply Kernel Variables.
   [  OK  ] Started Journal Service.
   [  OK  ] Started udev Coldplug all Devices.
   [  OK  ] Started File System Check on Root Device.
            Starting Remount Root and Kernel File Systems...
   [    8.133469] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
   [  OK  ] Started Remount Root and Kernel File Systems.
            Starting Flush Journal to Persistent Storage...
   [    8.215327] systemd-journald[77]: Received client request to flush runtime journal.
            Starting Create Static Device Nodes in /dev...
   [  OK  ] Started Flush Journal to Persistent Storage.
   [  OK  ] Started Create Static Device Nodes in /dev.
   [  OK  ] Reached target Local File Systems (Pre).
            Mounting /var/volatile...
            Starting udev Kernel Device Manager...
   [  OK  ] Mounted /var/volatile.
            Starting Load/Save Random Seed...
   [  OK  ] Reached target Local File Systems.
            Starting Create Volatile Files and Directories...
   [  OK  ] Started udev Kernel Device Manager.
   [  OK  ] Started Create Volatile Files and Directories.
            Starting Network Time Synchronization...
            Starting Update UTMP about System Boot/Shutdown...
   [  OK  ] Started Update UTMP about System Boot/Shutdown.
   [  OK  ] Started Network Time Synchronization.
   [   11.618575] random: crng init done
   [   11.622007] random: 7 urandom warning(s) missed due to ratelimiting
   [  OK  ] Started Load/Save Random Seed.
   [  OK  ] Reached target System Initialization.
   [  OK  ] Started Daily Cleanup of Temporary Directories.
   [  OK  ] Reached target System Time Set.
   [  OK  ] Reached target System Time Synchronized.
   [  OK  ] Reached target Timers.
   [  OK  ] Listening on D-Bus System Message Bus Socket.
   [  OK  ] Listening on dropbear.socket.
   [  OK  ] Reached target Sockets.
   [  OK  ] Reached target Basic System.
   [  OK  ] Started D-Bus System Message Bus.
            Starting IPv6 Packet Filtering Framework...
            Starting IPv4 Packet Filtering Framework...
            Starting Login Service...
   [  OK  ] Started IPv6 Packet Filtering Framework.
   [  OK  ] Started IPv4 Packet Filtering Framework.
   [  OK  ] Reached target Network (Pre).
            Starting Network Service...
   [  OK  ] Started Login Service.
   [   12.602455] macb 20112000.ethernet eth0: PHY [20112000.ethernet-ffffffff:09] driver [Vitesse VSC8662] (irq=POLL)
   [   12.612795] macb 20112000.ethernet eth0: configuring for phy/sgmii link mode
   [   12.622153] pps pps0: new PPS source ptp0
   [  OK     12.626725] macb 20112000.ethernet: gem-ptp-timer ptp clock registered.
   0m] Started Network Service.
            Starting Network Name Resolution...
   [  OK  ] Started Network Name Resolution.
   [  OK  ] Reached target Network.
   [  OK  ] Reached target Host and Network Name Lookups.
   [  OK  ] Started Collectd.
   [  OK  ] Started Collectd.
            Starting Permit User Sessions...
   [  OK  ] Started Permit User Sessions.
   [  OK  ] Started Getty on tty1.
   [  OK  ] Started Serial Getty on ttyS0.
   [  OK  ] Reached target Login Prompts.
   [  OK  ] Reached target Multi-User System.
            Starting Update UTMP about System Runlevel Changes...
   [  OK  ] Started Update UTMP about System Runlevel Changes.

   OpenEmbedded nodistro.0 icicle-kit-es ttyS0

   icicle-kit-es login: [   15.795564] macb 20112000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx
   [   15.803306] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

   icicle-kit-es login: root
   root@icicle-kit-es:~#
