Difference between revisions of "DESK-XZ7-L/Deployment/Standalone boot"

From DAVE Developer's Wiki
Jump to: navigation, search
(Create the SD card partitions)
 
(15 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
 
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
 
|-  
 
|-  
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|ID#
 
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|{{oldid|17xxx|17xxx}}
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|{{oldid|17164|2022/11/22}}
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|Q1 2023
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|DESK-XZ7-L-1.0.0-rc1 release
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L 1.0.0 release  
+
|-
 +
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|2023/01/23
 +
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|DESK-XZ7-L-1.0.1 release
 
|-
 
|-
 
|}
 
|}
 
<section end=History/>
 
<section end=History/>
 +
__FORCETOC__
 
<section begin=Body/>
 
<section begin=Body/>
  
 
==Standalone boot==
 
==Standalone boot==
  
 
=== Introduction ===
 
 
This document was written and tested with the software/hardware combination described in the history table above. However, it contains general concepts that can be adapted to any DAVE Embedded Systems' Linux platform.
 
This document was written and tested with the software/hardware combination described in the history table above. However, it contains general concepts that can be adapted to any DAVE Embedded Systems' Linux platform.
  
 
{{ImportantMessage|text=The following programming examples are intended for <b>laboratory usage</b> or for ''preliminary deployment strategy''.<br><br>A complete deployment strategy has to be carefully identifiyed taking into account the overall arguments like: boot speed, safe boot, recovery mechanisms, watchdog supervisor, etc.}}
 
{{ImportantMessage|text=The following programming examples are intended for <b>laboratory usage</b> or for ''preliminary deployment strategy''.<br><br>A complete deployment strategy has to be carefully identifiyed taking into account the overall arguments like: boot speed, safe boot, recovery mechanisms, watchdog supervisor, etc.}}
  
 +
We'll explain how to program and configure a <code>SOM</code> to boot in standalone mode, without the need for a system microSD card, with the following option:
 +
* booting with Quad-SPI NOR
 +
** in this configuration the primary boot images will be fetched from Quad-SPI NOR flash storage, while the root file system will be fetched from microSD
 +
* booting with NAND
 +
** in this configuration the primary boot images and rootfs will be fetched from NAND flash storage
  
We'll explain how to program and configure a <SOM> to boot in standalone mode, without the need for a system microSD card or an NFS server, with three options:
+
=== Program the Quad-SPI NOR flash ===
* booting with SD only
 
** in this configuration the whole system will boot without the need for a NOR/NAND flashes storage, all images and the root file system will be fetched from the SD card
 
* booting with NOR and NAND internal storage
 
** in this configuration the primary boot images will be fetched from NOR flash storage, while the root file system will be fetched from NAND flash
 
  
=== Program boot images into SD card ===
+
This chapter is compatible with [[BORA SOM | BORA]], [[BORA Xpress SOM | BORA Xpress]] and [[BORA Lite SOM | BORA Lite]] platforms, but below there is log for BORA Xpress SOM.
The SD card should have at least 2 partition:
 
* the first must be an FAT32 partition (type <code>b</code>) with size of at least 64MB
 
* the second is a normal linux partition (type <code>83</code>) of at least 512M with ext3/ext4 filesystem
 
  
==== Create the SD card partitions ====
+
First of all, create a bootable microSD card as described [[DESK-XZ7-L/Development/Creating_and_building_the_Petalinux_project#Petalinux_build | here]]. Alternatively you can download binaries from [https://mirror.dave.eu/desk-xz-l/ mirror] and install it on microSD or into <code>tftpboot</code> directory in your host device.
* SD device has to be partitioned and properly formatted choosing the <code>file system</code> for each partition
 
* an example of SD partitioning script is the following one:
 
  
<pre>
+
Then, boot the board with the microSD card and stop the automatic boot process of U-Boot in order to access the console.
#!/bin/sh
+
<pre class="workstation-terminal">
 +
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
  
node=$1
+
CPU:  Zynq 7z030
 +
Silicon: v3.1
 +
Model: Bora
 +
DRAM:  ECC disabled 1 GiB
 +
Flash: 0 Bytes
 +
NAND:  0 MiB
 +
MMC:  mmc@e0100000: 0
 +
Loading Environment from FAT... *** Warning - bad CRC, using default environment
  
# partition size in MB
+
In:    serial@e0001000
RESERVED=8
+
Out:  serial@e0001000
BOOT_ROM_SIZE=128
+
Err:  serial@e0001000
RFS_SIZE=2048
+
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
SOM ConfigID#: 00000004
 +
SOM UniqueID#: 2a0e92c4:03193a4b
 +
CB ConfigID#: ffffffff
 +
CB UniqueID#: ffffffff:ffffffff
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
Warning: MAC addr not found in SPI NOR at block 8
 +
Net:
 +
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
  
# create the SDCARD partition
+
Warning: ethernet@e000b000 (eth0) using random MAC address - 72:2c:e1:44:08:28
part=""
+
eth0: ethernet@e000b000
echo ${node} | grep mmcblk > /dev/null
+
Hit ENTER within 2 seconds to stop autoboot
if [ "$?" -eq "0" ]; then
+
Zynq>
        part="p"
+
</pre>
fi
 
  
# print the SD total capacity
+
====Programming Quad-SPI NOR flash from microSD====
total_size=`sfdisk -s ${node}`
 
total_size=`expr ${total_size} / 1024`
 
echo SD total size: ${total_size}KB
 
  
# calculate partition sizes
+
* Initialize and format Quad-SPI NOR flash memory
boot_start=`expr ${RESERVED} \\* 1024 \\* 1024 / 512`
 
boot_size=`expr ${BOOT_ROM_SIZE} \\* 1024 \\* 1024 / 512`
 
rfs_start=`expr ${boot_size} + ${boot_start}`
 
rfs_size=`expr ${RFS_SIZE} \\* 1024 \\* 1024 / 512`
 
  
umount ${node}${part}1 > /dev/null 2>&1
+
<pre class="workstation-terminal">
umount ${node}${part}2 > /dev/null 2>&1
+
Zynq> sf probe
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
Zynq> sf erase 0 0x1000000
 +
SF: 16777216 bytes @ 0x0 Erased: OK
 +
</pre>
  
# call sfdisk to create partition table
+
* Install <code>BOOT.BIN</code> on Quad-SPI NOR flash memory
{ echo ${boot_start},${boot_size},0c,-; echo ${rfs_start},${rfs_size},83,-; } | sfdisk --force ${node}
 
  
# format the SDCARD partition
+
<pre class="workstation-terminal">
echo "formatting boot"
+
Zynq> fatload mmc 0:1 $kernel_addr_r BOOT.BIN
mkfs.vfat -F 32 -n BOOT  ${node}${part}1
+
7033004 bytes read in 406 ms (16.5 MiB/s)
echo "formatting rfs"
+
Zynq> sf write $kernel_addr_r 0x0 $filesize
mkfs.ext4 -F ${node}${part}2 -Lrfs
+
device 0 offset 0x0, size 0x6b50ac
 +
SF: 7033004 bytes @ 0x0 Written: OK
 
</pre>
 
</pre>
  
E.g.
+
* Install <code>image.ub</code> on Quad-SPI NOR flash memory
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
vdk@vagrant:~/desk-xz-l$ sudo ./sdcard-partition.sh /dev/sdc
+
Zynq> mw $kernel_addr_r 0x0 $filesize
SD total size: 7580KB
+
Zynq> fatload mmc 0:1 $kernel_addr_r image.ub
Checking that no-one is using this disk right now ... OK
+
4868556 bytes read in 287 ms (16.2 MiB/s)
 +
Zynq> sf write $kernel_addr_r 0x700000 $filesize
 +
device 0 offset 0x700000, size 0x4a49cc
 +
SF: 4868556 bytes @ 0x700000 Written: OK
 +
</pre>
  
Disk /dev/sdc: 7.41 GiB, 7948206080 bytes, 15523840 sectors
+
* Install <code>boot.scr</code> on Quad-SPI NOR flash memory
Disk model: STORAGE DEVICE 
 
Units: sectors of 1 * 512 = 512 bytes
 
Sector size (logical/physical): 512 bytes / 512 bytes
 
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
Disklabel type: dos
 
Disk identifier: 0xd775a452
 
  
Old situation:
+
<pre class="workstation-terminal">
 +
Zynq> mw $kernel_addr_r 0x0 $filesize
 +
Zynq> fatload mmc 0:1 $kernel_addr_r boot.scr
 +
2709 bytes read in 14 ms (188.5 KiB/s)
 +
Zynq> sf write $kernel_addr_r 0xFC0000 $filesize
 +
device 0 offset 0xfc0000, size 0xa95
 +
SF: 2709 bytes @ 0xfc0000 Written: OK
 +
</pre>
  
Device    Boot Start      End  Sectors  Size Id Type
+
====Programming Quad-SPI NOR flash from ethernet====
/dev/sdc1        8192 15523839 15515648  7.4G  b W95 FAT32
+
* Initialize and format Quad-SPI NOR flash memory
  
>>> Created a new DOS disklabel with disk identifier 0x3f242b9b.
+
<pre class="workstation-terminal">
/dev/sdc1: Created a new partition 1 of type 'W95 FAT32 (LBA)' and of size 128 MiB.
+
Zynq> sf probe
/dev/sdc2: Created a new partition 2 of type 'Linux' and of size 2 GiB.
+
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Partition #2 contains a ext4 signature.
+
Zynq> sf erase 0 0x1000000
/dev/sdc3: Done.
+
SF: 16777216 bytes @ 0x0 Erased: OK
 +
</pre>
  
New situation:
+
* Properly define the ethernet configuration parameter:
Disklabel type: dos
+
<pre class="workstation-terminal">
Disk identifier: 0x3f242b9b
+
Zynq> setenv ipaddr 192.168.0.89
 +
Zynq> setenv serverip 192.168.0.99
 +
</pre>
  
Device    Boot  Start    End Sectors  Size Id Type
+
* download via TFTP the <code>BOOT.BIN</code> binary image and write <code>BOOT.BIN</code> on Quad-SPI NOR flash memory
/dev/sdc1        16384  278527  262144  128M  c W95 FAT32 (LBA)
+
<pre class="workstation-terminal">
/dev/sdc2      278528 4472831 4194304    2G 83 Linux
+
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BIN
 +
Using ethernet@e000b000 device
 +
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
 +
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BIN'.
 +
Load address: 0x2000000
 +
Loading: #T ################################################################
 +
        #################################################################
 +
        ...
 +
        #################################################################
 +
        #########
 +
        444.3 KiB/s
 +
done
 +
Bytes transferred = 7033004 (6b50ac hex)
 +
Zynq> sf write $kernel_addr_r 0x0 $filesize
 +
device 0 offset 0x0, size 0x6b50ac
 +
SF: 7033004 bytes @ 0x0 Written: OK
 +
</pre>
 +
 
 +
* download via TFTP the <code>image.ub</code> binary image and write <code>image.ub</code> on Quad-SPI NOR flash memory
 +
<pre class="workstation-terminal">
 +
Zynq> mw $kernel_addr_r 0x0 $filesize
 +
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_image.ub
 +
Using ethernet@e000b000 device
 +
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
 +
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_image.ub'.
 +
Load address: 0x2000000
 +
Loading: #T ################################################################
 +
        #################################################################
 +
        ...
 +
        #################################################################
 +
        #########################################
 +
        394.5 KiB/s
 +
done
 +
Bytes transferred = 4868556 (4a49cc hex)
 +
Zynq> sf write $kernel_addr_r 0x700000 $filesize
 +
device 0 offset 0x700000, size 0x4a49cc
 +
SF: 4868556 bytes @ 0x700000 Written: OK
 +
</pre>
 +
 
 +
* download via TFTP the <code>boot.scr</code> binary image and write <code>boot.scr</code> on Quad-SPI NOR flash memory
 +
<pre class="workstation-terminal">
 +
Zynq> mw $kernel_addr_r 0x0 $filesize
 +
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr
 +
Using ethernet@e000b000 device
 +
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
 +
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr'.
 +
Load address: 0x2000000
 +
Loading: #T
 +
        0 Bytes/s
 +
done
 +
Bytes transferred = 2709 (a95 hex)
 +
Zynq> sf write $kernel_addr_r 0xFC0000 $filesize
 +
device 0 offset 0xfc0000, size 0xa95
 +
SF: 2709 bytes @ 0xfc0000 Written: OK
 +
</pre>
  
The partition table has been altered.
+
Once change boot mode and restarted, the complete boot log can be like this one:  
Calling ioctl() to re-read partition table.
 
Syncing disks.
 
formatting boot
 
mkfs.fat 4.1 (2017-01-24)
 
formatting rfs
 
mke2fs 1.45.5 (07-Jan-2020)
 
/dev/sdc2 contains a ext4 file system labelled 'rfs'
 
        created on Mon Nov 21 13:14:20 2022
 
Creating filesystem with 524288 4k blocks and 131072 inodes
 
Filesystem UUID: cc691ca0-1eb4-4ff9-87cc-da74f9e91685
 
Superblock backups stored on blocks:
 
        32768, 98304, 163840, 229376, 294912
 
  
Allocating group tables: done                           
+
<pre class="mw-collapsible mw-collapsed">
Writing inode tables: done                           
+
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
Creating journal (16384 blocks): done
 
Writing superblocks and filesystem accounting information: done
 
  
dvdk@vagrant:~/desk-xz-l$
+
CPU:  Zynq 7z030
</pre>
+
Silicon: v3.1
 +
Model: Bora
 +
DRAM:  ECC disabled 1 GiB
 +
Flash: 0 Bytes
 +
NAND:  0 MiB
 +
MMC:  mmc@e0100000: 0
 +
Loading Environment from SPIFlash... SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
*** Warning - bad CRC, using default environment
  
Then, insert the SD card in the target and boot the system via SD or NFS as described in the e [[(<KIT>)#Quick_start_guide|Quick start guide]]
+
In:    serial@e0001000
 +
Out:  serial@e0001000
 +
Err:  serial@e0001000
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
SOM ConfigID#: 00000004
 +
SOM UniqueID#: 2a0e92c4:03193a4b
 +
CB ConfigID#: ffffffff
 +
CB UniqueID#: ffffffff:ffffffff
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
Warning: MAC addr not found in SPI NOR at block 8
 +
Net:
 +
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
  
* create a mount point and mount the first partition
+
Warning: ethernet@e000b000 (eth0) using random MAC address - 7a:68:29:db:0b:f6
<pre>
+
eth0: ethernet@e000b000
root@bora:~# mkdir -p /mnt/sd
+
Hit ENTER within 2 seconds to stop autoboot
root@bora:~# mount /dev/mmcblk0p1 /mnt/sd
+
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
</pre>
+
device 0 offset 0xfc0000, size 0x40000
 +
SF: 262144 bytes @ 0xfc0000 Read: OK
 +
QSPI: Trying to boot script at 3000000
 +
## Executing script at 03000000
 +
Trying to load boot images from qspi
 +
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
 +
device 0 offset 0x700000, size 0x600000
 +
SF: 6291456 bytes @ 0x700000 Read: OK
 +
## Loading kernel from FIT Image at 10000000 ...
 +
  Using 'conf-system-top.dtb' configuration
 +
  Verifying Hash Integrity ... OK
 +
  Trying 'kernel-1' kernel subimage
 +
    Description:  Linux kernel
 +
    Type:        Kernel Image
 +
    Compression:  uncompressed
 +
    Data Start:  0x100000f8
 +
    Data Size:    4845944 Bytes = 4.6 MiB
 +
    Architecture: ARM
 +
    OS:          Linux
 +
    Load Address: 0x00200000
 +
    Entry Point:  0x00200000
 +
    Hash algo:    sha256
 +
    Hash value:   f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca
 +
  Verifying Hash Integrity ... sha256+ OK
 +
## Loading fdt from FIT Image at 10000000 ...
 +
  Using 'conf-system-top.dtb' configuration
 +
  Verifying Hash Integrity ... OK
 +
  Trying 'fdt-system-top.dtb' fdt subimage
 +
    Description:  Flattened Device Tree blob
 +
    Type:        Flat Device Tree
 +
    Compression:  uncompressed
 +
    Data Start:  0x1049f37c
 +
    Data Size:    20716 Bytes = 20.2 KiB
 +
    Architecture: ARM
 +
    Hash algo:    sha256
 +
    Hash value:  f93874aa1f1a0c6d52c423e12b25b4a2ae14a09b40a8068a49b4c8914be75e4c
 +
  Verifying Hash Integrity ... sha256+ OK
 +
  Booting using the fdt blob at 0x1049f37c
 +
  Loading Kernel Image
 +
  Loading Device Tree to 2fff7000, end 2ffff0eb ... OK
  
* copy boot image files
+
Starting kernel ...
  
<pre>
+
[    0.000000] Booting Linux on physical CPU 0x0
root@bora:~# cp BOOT.BIN /mnt/sd
+
[    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021
root@bora:~# cp image.ub /mnt/sd
+
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
root@bora:~# cp boot.scr /mnt/sd
+
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
</pre>
+
[    0.000000] OF: fdt: Machine model: Bora
 +
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
 +
[    0.000000] printk: bootconsole [cdns0] enabled
 +
[    0.000000] Memory policy: Data cache writealloc
 +
[    0.000000] cma: Reserved 16 MiB at 0x3f000000
 +
[    0.000000] Zone ranges:
 +
[    0.000000]  Normal  [mem 0x0000000000000000-0x000000002fffffff]
 +
[    0.000000]  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
 +
[    0.000000] Movable zone start for each node
 +
[    0.000000] Early memory node ranges
 +
[    0.000000]  node  0: [mem 0x0000000000000000-0x000000003fffffff]
 +
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
 +
[    0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536
 +
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260416
 +
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
 +
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
 +
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
 +
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
 +
[    0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)
 +
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
 +
[    0.000000] rcu:    RCU event tracing is enabled.
 +
[    0.000000] rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
 +
[    0.000000]  Trampoline variant of Tasks RCU enabled.
 +
[    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=2
 +
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
 +
[    0.000000] efuse mapped to (ptrval)
 +
[    0.000000] slcr mapped to (ptrval)
 +
[    0.000000] GIC physical location is 0xf8f01000
 +
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
 +
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
 +
[    0.000000] L2C-310 erratum 769419 enabled
 +
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
 +
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
 +
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
 +
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
 +
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
 +
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
 +
[    0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
 +
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
 +
[    0.000000] Zynq clock init
 +
[    0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
 +
[    0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
 +
[    0.016655] Switching to timer-based delay loop, resolution 3ns
 +
[    0.023169] Console: colour dummy device 80x30
 +
[    0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
 +
[    0.037305] pid_max: default: 32768 minimum: 301
 +
[    0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
 +
[    0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
 +
[    0.057754] CPU: Testing write buffer coherency: ok
 +
[    0.061529] CPU0: Spectre v2: using BPIALL workaround
 +
[    0.066749] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
 +
[    0.072812] Setting up static identity map for 0x100000 - 0x100060
 +
[    0.078378] rcu: Hierarchical SRCU implementation.
 +
[    0.083352] smp: Bringing up secondary CPUs ...
 +
[    0.088388] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
 +
[    0.088399] CPU1: Spectre v2: using BPIALL workaround
 +
[    0.098134] smp: Brought up 1 node, 2 CPUs
 +
[    0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).
 +
[    0.108358] CPU: All CPU(s) started in SVC mode.
 +
[    0.113587] devtmpfs: initialized
 +
[    0.121144] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
 +
[    0.124128] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
 +
[    0.133462] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
 +
[    0.141395] pinctrl core: initialized pinctrl subsystem
 +
[    0.146259] NET: Registered protocol family 16
 +
[    0.151964] DMA: preallocated 256 KiB pool for atomic coherent allocations
 +
[    0.157733] thermal_sys: Registered thermal governor 'step_wise'
 +
[    0.158046] cpuidle: using governor ladder
 +
[    0.166503] cpuidle: using governor menu
 +
[    0.182919] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
 +
[    0.185265] hw-breakpoint: maximum watchpoint size is 4 bytes.
 +
[    0.191178] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
 +
[    0.198318] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
 +
[    0.207234] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
 +
[    0.221091] printk: console [ttyPS0] enabled
 +
[    0.221091] printk: console [ttyPS0] enabled
 +
[    0.225396] printk: bootconsole [cdns0] disabled
 +
[    0.225396] printk: bootconsole [cdns0] disabled
 +
[    0.249776] vgaarb: loaded
 +
[    0.252888] SCSI subsystem initialized
 +
[    0.256896] usbcore: registered new interface driver usbfs
 +
[    0.262468] usbcore: registered new interface driver hub
 +
[    0.267875] usbcore: registered new device driver usb
 +
[    0.273183] mc: Linux media interface: v0.10
 +
[    0.277485] videodev: Linux video capture interface: v2.00
 +
[    0.283046] pps_core: LinuxPPS API ver. 1 registered
 +
[    0.288002] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
 +
[    0.297158] PTP clock support registered
 +
[    0.301145] EDAC MC: Ver: 3.0.0
 +
[    0.304805] FPGA manager framework
 +
[    0.308536] Advanced Linux Sound Architecture Driver Initialized.
 +
[    0.315660] clocksource: Switched to clocksource arm_global_timer
 +
[    0.332917] NET: Registered protocol family 2
 +
[    0.337977] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
 +
[    0.346425] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
 +
[    0.354267] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
 +
[    0.361542] TCP: Hash tables configured (established 8192 bind 8192)
 +
[    0.368054] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
 +
[    0.374750] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
 +
[    0.382042] NET: Registered protocol family 1
 +
[    0.387083] RPC: Registered named UNIX socket transport module.
 +
[    0.393034] RPC: Registered udp transport module.
 +
[    0.397734] RPC: Registered tcp transport module.
 +
[    0.402441] RPC: Registered tcp NFSv4.1 backchannel transport module.
 +
[    0.408896] PCI: CLS 0 bytes, default 64
 +
[    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
 +
[    0.421576] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
 +
[    0.431150] workingset: timestamp_bits=14 max_order=18 bucket_order=4
 +
[    0.438734] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
 +
[    0.446129] bounce: pool size: 64 pages
 +
[    0.449974] io scheduler mq-deadline registered
 +
[    0.454520] io scheduler kyber registered
 +
[    0.458913] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
 +
[    0.467704] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
 +
[    0.474442] dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
 +
[    0.494238] brd: module loaded
 +
[    0.504037] loop: module loaded
 +
[    0.511083] random: fast init done
 +
[    0.614245] random: crng init done
 +
[    0.623641] spi-nor spi0.0: trying to lock already unlocked area
 +
[    0.629650] spi-nor spi0.0: s25fl128s1 (16384 Kbytes)
 +
[    0.639922] libphy: Fixed MDIO Bus: probed
 +
[    0.645716] CAN device driver interface
 +
[    0.652273] libphy: MACB_mii_bus: probed
 +
[    0.688524] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (7a:68:29:db:0b:f6)
 +
[    0.698709] e1000e: Intel(R) PRO/1000 Network Driver
 +
[    0.703668] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
 +
[    0.710509] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
 +
[    0.717037] ehci-pci: EHCI PCI platform driver
 +
[    0.721607] usbcore: registered new interface driver usb-storage
 +
[    0.728609] ULPI transceiver vendor/product ID 0x0424/0x0006
 +
[    0.734267] Found SMSC USB331x ULPI transceiver.
 +
[    0.738913] ULPI integrity check: passed.
 +
[    0.745040] i2c /dev entries driver
 +
[    0.752088] rtc-ds3232 0-0068: registered as rtc0
 +
[    0.757162] rtc-ds3232 0-0068: setting system clock to 2018-03-09T17:29:17 UTC (1520616557)
 +
[    0.765791] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
 +
[    0.774272] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
 +
[    0.781826] EDAC MC: ECC not enabled
 +
[    0.785972] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
 +
[    0.796932] Xilinx Zynq CpuIdle Driver started
 +
[    0.800410] sdhci: Secure Digital Host Controller Interface driver
 +
[    0.803503] sdhci: Copyright(c) Pierre Ossman
 +
[    0.805718] sdhci-pltfm: SDHCI platform and OF driver helper
 +
[    0.809266] ledtrig-cpu: registered to indicate activity on CPUs
 +
[    0.812545] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
 +
[    0.817251] timer #0 at dfb516c6, irq=50
 +
[    0.819556] usbcore: registered new interface driver usbhid
 +
[    0.822381] usbhid: USB HID core driver
 +
[    0.827302] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
 +
[    0.831575] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
 +
[    0.831977] NET: Registered protocol family 10
 +
[    0.838558] Segment Routing with IPv6
 +
[    0.840631] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
 +
[    0.847540] NET: Registered protocol family 17
 +
[    0.852063] can: controller area network core
 +
[    0.856576] NET: Registered protocol family 29
 +
[    0.861071] can: raw protocol
 +
[    0.864050] can: broadcast manager protocol
 +
[    0.868298] can: netlink gateway - max_hops=1
 +
[    0.873045] Registering SWP/SWPB emulation handler
 +
[    0.880140] of-fpga-region fpga-full: FPGA Region probed
 +
[    0.886112] of_cfs_init
 +
[    0.888667] of_cfs_init: OK
 +
[    0.891875] ALSA device list:
 +
[    0.894839]  No soundcards found.
 +
[    0.898729] Waiting for root device /dev/mmcblk0p2...
 +
[    1.052324] mmc0: new high speed SDHC card at address aaaa
 +
[    1.055781] mmcblk0: mmc0:aaaa SA16G 14.8 GiB
 +
[    1.060584]  mmcblk0: p1 p2
 +
[    1.086701] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
 +
[    1.090810] VFS: Mounted root (ext4 filesystem) on device 179:2.
 +
[    1.094724] devtmpfs: mounted
 +
[    1.099892] Freeing unused kernel memory: 1024K
 +
[    1.136017] Run /sbin/init as init process
 +
INIT: version 2.97 booting
 +
[    1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
 +
Starting udev
 +
[    1.712872] udevd[82]: starting version 3.2.9
 +
[    1.763498] udevd[83]: starting eudev-3.2.9
 +
[    2.244862] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
 +
INIT: Entering runlevel: 5
 +
Configuring network interfaces... done.
 +
Starting system message bus: dbus.
 +
Starting haveged: haveged: command socket is listening at fd 3
 +
haveged: haveged starting up
  
==== Program root file system into SD card ====
 
Now, you can extract the root file system into that directory
 
  
* mount the <code>ext3/ext4</code> volume in the temporary directory
+
Starting Dropbear SSH server: dropbear.
 +
Starting rpcbind daemon...done.
 +
starting statd: done
 +
Starting atd: OK
 +
Starting internet superserver: inetd.
 +
NFS daemon support not enabled in kernel
 +
Starting system log daemon...0
 +
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
 +
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
 +
Mar  9 17:29:22 borax kernel: [    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
 +
Mar  9 17:29:22 borax kernel: [    0.623641] spi-nor spi0.0: trying to lock already unlocked area
 +
Mar  9 17:29:22 borax kernel: [    1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
 +
Starting internet superserver: xinetd.
 +
Starting crond: OK
 +
Starting tcf-agent: OK
  
<pre class="workstation-terminal">
+
PetaLinux 2021.2 borax ttyPS0
root@bora:~# mount /dev/mmcblk0p2 /mnt/sd
 
[ 1810.899327] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null)
 
root@bora:~#
 
</pre>
 
  
<pre class="workstation-terminal">
 
root@bora:~# tar xf images/linux/rootfs.tar.gz -C /mnt/sd
 
</pre>
 
  
* finally, you need to cleanly umount and safely reboot or turn off the system.
+
root@borax:~# uname -a
 +
Linux borax 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linux
 +
root@borax:~# cat /etc/build
 +
-----------------------
 +
Build Configuration:  |
 +
-----------------------
 +
DISTRO = petalinux
 +
DISTRO_VERSION = 2021.2
 +
MACHINE = zynq-generic
 +
IMAGE_BASENAME = dave-image-devel
 +
-----------------------
 +
Layer Revisions:      |
 +
-----------------------
 +
meta              = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-poky        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-perl        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-python      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-filesystems  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-gnome        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-multimedia  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-networking  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-webserver    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xfce        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-initramfs    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-oe          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-clang        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-chromium    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-qt5          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-microblaze  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-bsp  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-pynq  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-petalinux    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-openamp      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-jupyter      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-vitis-ai    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-python2      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-som          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-security    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-tpm          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-user        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-dave        = HEAD:e944801f104f86191cd086d0cea8f3df88dda061
 +
workspace        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
root@borax:~# cat /etc/os-release
 +
ID=petalinux
 +
NAME="PetaLinux"
 +
VERSION="2021.2 (gatesgarth)"
 +
VERSION_ID=2021.2
 +
PRETTY_NAME="PetaLinux 2021.2 (gatesgarth)"
 +
BUILD_VERSION="desk-xz7-l-1.0.1"
 +
root@borax:~# shutdown -h now
  
<pre class="workstation-terminal">
+
Broadcast message from root@borax (ttyPS0) (Fri Mar  9 17:29:35 2018):
root@bora:~# umount /mnt/sd
 
root@bora:~# reboot
 
</pre>
 
  
Reboot the system and configure U-Boot to apply the new configuration
+
The system is going down for system halt NOW!
 +
INIT: Sending processes configured via /etc/inittab the TERM signal
 +
Stopping haveged:
  
<pre class="workstation-terminal">
+
Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 217)
=> setenv bootcmd run mmcboot
+
dropbear.
=> saveenv
+
Stopping atd: OK
 +
Stopping system message bus: dbus.
 +
Stopping internet superserver: inetd.
 +
stopping mountd: done
 +
stopping nfsd: done
 +
Stopping system log daemon...0
 +
Stopping tcf-agent: OK
 +
Stopping internet superserver: xinetd.
 +
stopping statd: done
 +
Stopping crond: OK
 +
Stopping rpcbind daemon...
 +
done.
 +
Deconfiguring network interfaces... done.
 +
Sending all processes the TERM signal...
 +
logout
 +
Sending all processes the KILL signal...
 +
Unmounting remote filesystems...
 +
Deactivating swap...
 +
Unmounting local filesystems...
 +
[  24.097545] reboot: System halted
 
</pre>
 
</pre>
  
=== Program boot images into internal storage ===
+
=== Program the NAND flash ===
==== Program the NOR flash ====
 
=====u-Boot=====
 
  
Update to the latest u-boot version allows usage of u-boot environment variables available.
+
This chapter is compatible with [[BORA Lite SOM | BORA Lite]] SOM.
  
<pre class="workstation-terminal">
+
First of all, create a bootable microSD card as described [[DESK-XZ7-L/Development/Creating_and_building_the_Petalinux_project| here]] with <code>config_boralite_nand_usd</code> configuration file, and install <code>wic</code> binary on microSD. Then create artifact to install on NAND flash with <code>config_boralite_nand</code> configuration file, as described [[DESK-XZ7-L/Development/Creating_and_building_the_Petalinux_project| here]], and save the <code>BOOT.BIN</code> and <code>dave-image-devel-zynq-generic.tar.gz</code> artifact into the first partition of microSD.
=> run load
 
</pre>
 
  
=====fit image =====
+
In this case <code>BOOT.BIN</code> binary that came from to <code>config_boralite_nand_usd</code> and <code>config_boralite_nand</code> are different, so save it with different name. Alternatively you can download binaries from [https://mirror.dave.eu/desk-xz-l/ mirror] and install on microSD.
We assume that the following environment variables are present in u-boot:
 
  
<pre>
+
Then, install the following files into the microSD first partition:
loadk=tftpboot ${loadaddr} ${serverip}:${bootfile}
 
loadfdt=tftpboot ${fdtaddr} ${serverip}:${fdtfile}
 
spi_updatek=sf erase 200000 800000; sf write ${loadaddr} 200000 ${filesize}
 
spi_updatefdt=sf erase 180000 80000; sf write ${fdtaddr} 180000 ${filesize}
 
spi_loadk=sf read ${loadaddr} 200000 800000
 
spi_loadfdt=sf read ${fdtaddr} 180000 80000
 
spi_nand=sf probe; run spi_loadk spi_loadfdt nandargs addcons addmisc; if run configid_fixupfdt; then bootm ${loadaddr} - ${fdtaddr}; fi
 
</pre>
 
  
* Update the <code>bootfile</code> and <code>fdtfile</code> environment variables to fit the filename as found inside the TFTP server.
+
* <code>BOOT.BIN</code>. This binary come from to <code>config_boralite_nand_usd</code> configuration file, and need to install on microSD
* Program kernel and device tree on NOR flash with the following U-Boot command
+
* <code>boot.scr</code>
 +
* <code>desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED</code>. This binary come from to <code>config_boralite_nand</code> configuration file, and has to be installed on NAND flash
 +
* <code>desk-xz7-l-1.0.1_boralite_nand_dave-image-devel-zynq-generic.tar.gz</code>
 +
* <code>image.ub</code>
  
<pre class="board-terminal">
+
==== Programming NAND flash from microSD ====
sf probe; run loadk spi_updatek loadfdt spi_updatefdt
 
</pre>
 
  
E.g.:
+
* delete all partition on NAND flash memory
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
=> sf probe; run loadk spi_updatek loadfdt spi_updatefdt
+
root@boralite:~# for i in $(seq 0 2); do flash_erase /dev/mtd$i 0 0; done
 +
Erasing 128 Kibyte @ 15e0000 -- 100 % complete
 +
Erasing 128 Kibyte @ 20000 -- 100 % complete
 +
Erasing 128 Kibyte @ 1bde0000 -- 100 % complete
 
</pre>
 
</pre>
  
Reboot the system and configure U-Boot to apply the new configuration
+
* install <code>BOOT.BIN</code> on NAND flash memory
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
=> setenv bootcmd run spi_nand
+
root@boralite:~# nandwrite -p /dev/mtd0 /boot/desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED
=> saveenv
+
Writing data to block 0 at offset 0x0
 +
Writing data to block 1 at offset 0x20000
 +
...
 +
Writing data to block 168 at offset 0x1500000
 +
Writing data to block 169 at offset 0x1520000
 
</pre>
 
</pre>
  
==== Program root file system into NAND flash ====
+
* install <code>dave-image-devel-zynq-generic.tar.gz</code> rootfs on NAND flash memory
* Boot the system via SD or NFS as described in the e [[(<KIT>)#Quick_start_guide|Quick start guide]]
+
 
* By default, the NAND is already partitioned to allow booting from NAND-only (see next section) and, thus, some partitions are reserved for u-boot and kernel images. Here we won't modify this default configuration. The [[Memory Tecnology Device (MTD)|MTD]] partitions can be dumped with <code>/proc/mtd</code> (the partition's name should be self-explanatory)
 
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
 +
root@boralite:~# ubiformat /dev/mtd2
 +
ubiformat: mtd2 (nand), size 467664896 bytes (446.0 MiB), 3568 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
 +
libscan: scanning eraseblock 3567 -- 100 % complete
 +
ubiformat: 3568 eraseblocks are supposedly empty
 +
ubiformat: formatting eraseblock 3567 -- 100 % complete
 +
root@boralite:~# ubiattach -m 2
 +
UBI device number 0, total 3568 LEBs (460357632 bytes, 439.0 MiB), available 3404 LEBs (439197696 bytes, 418.8 MiB), LEB size 129024 bytes (126.0 KiB)
 +
root@boralite:~# ubimkvol /dev/ubi0 -N rootfs -m
 +
Set volume size to 439197696
 +
Volume ID 0, size 3404 LEBs (439197696 bytes, 418.8 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name "rootfs", alignment 1
 +
root@boralite:~# mkdir -p /mnt/nand
 +
root@boralite:~# mount -t ubifs ubi0_0 /mnt/nand
 +
root@boralite:~# tar -xzvf /boot/dave-image-devel-zynq-generic.tar.gz -C /mnt/nand/.
 +
...
 +
root@boralite:~# umount /mnt/nand/
 +
root@boralite:~# ubidetach -m 2
 
</pre>
 
</pre>
  
{{ImportantMessage|text=Please note that MTD partition index may change depending of flash device availability, flash device size, u-boot environment variables or kernel device driver load order. Always take care of looking inside <code>/proc/mtd</code> to match your specific layout}}
+
Once change boot mode and restarted, the complete boot log can be like this one:
 +
 
 +
<pre class="mw-collapsible mw-collapsed">
 +
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
 +
 
 +
CPU:  Zynq 7z020
 +
Silicon: v3.1
 +
Model: Bora
 +
DRAM:  ECC disabled 1 GiB
 +
Flash: 0 Bytes
 +
NAND:  1024 MiB
 +
MMC:  mmc@e0100000: 0
 +
Loading Environment from NAND... *** Warning - bad CRC, using default environment
 +
 
 +
In:    serial@e0001000
 +
Out:  serial@e0001000
 +
Err:  serial@e0001000
 +
SOM ConfigID#: 77777777
 +
SOM UniqueID#: 55555555:66666666
 +
CB ConfigID#: ffffffff
 +
CB UniqueID#: ffffffff:ffffffff
 +
Net:
 +
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
 +
 
 +
Warning: ethernet@e000b000 (eth0) using random MAC address - f6:c3:de:d6:d6:e6
 +
eth0: ethernet@e000b000
 +
Hit ENTER within 2 seconds to stop autoboot
 +
 
 +
Device 0: nand0, sector size 128 KiB
 +
  Page size      2048 b
 +
  OOB size          64 b
 +
  Erase size    131072 b
 +
  subpagesize      512 b
 +
  options    0x40004000
 +
  bbt options 0x00020000
 +
 
 +
NAND read: device 0 offset 0xfc0000, size 0x40000
 +
262144 bytes read: OK
 +
NAND: Trying to boot script at 3000000
 +
## Executing script at 03000000
 +
Trying to load boot images from nand
 +
 
 +
Device 0: nand0, sector size 128 KiB
 +
  Page size      2048 b
 +
  OOB size          64 b
 +
  Erase size    131072 b
 +
  subpagesize      512 b
 +
  options    0x40004000
 +
  bbt options 0x00020000
 +
 
 +
NAND read: device 0 offset 0x1080000, size 0x6400000
 +
104857600 bytes read: OK
 +
## Loading kernel from FIT Image at 10000000 ...
 +
  Using 'conf-system-top.dtb' configuration
 +
  Verifying Hash Integrity ... OK
 +
  Trying 'kernel-1' kernel subimage
 +
    Description:  Linux kernel
 +
    Type:        Kernel Image
 +
    Compression:  uncompressed
 +
    Data Start:  0x100000f8
 +
    Data Size:    4845944 Bytes = 4.6 MiB
 +
    Architecture: ARM
 +
    OS:          Linux
 +
    Load Address: 0x00200000
 +
    Entry Point:  0x00200000
 +
    Hash algo:    sha256
 +
    Hash value:  f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca
 +
  Verifying Hash Integrity ... sha256+ OK
 +
## Loading fdt from FIT Image at 10000000 ...
 +
  Using 'conf-system-top.dtb' configuration
 +
  Verifying Hash Integrity ... OK
 +
  Trying 'fdt-system-top.dtb' fdt subimage
 +
    Description:  Flattened Device Tree blob
 +
    Type:        Flat Device Tree
 +
    Compression:  uncompressed
 +
    Data Start:  0x1049f37c
 +
    Data Size:    20656 Bytes = 20.2 KiB
 +
    Architecture: ARM
 +
    Hash algo:    sha256
 +
    Hash value:  42e997d9430c0dc091dfb37df69c2148e40ad7fdd75ec4f49501bc5d4bc48f53
 +
  Verifying Hash Integrity ... sha256+ OK
 +
  Booting using the fdt blob at 0x1049f37c
 +
  Loading Kernel Image
 +
  Loading Device Tree to 2fff7000, end 2ffff0af ... OK
 +
 
 +
Starting kernel ...
 +
 
 +
[    0.000000] Booting Linux on physical CPU 0x0
 +
[    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021
 +
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
 +
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
 +
[    0.000000] OF: fdt: Machine model: Bora
 +
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
 +
[    0.000000] printk: bootconsole [cdns0] enabled
 +
[    0.000000] Memory policy: Data cache writealloc
 +
[    0.000000] cma: Reserved 16 MiB at 0x3f000000
 +
[    0.000000] Zone ranges:
 +
[    0.000000]  Normal  [mem 0x0000000000000000-0x000000002fffffff]
 +
[    0.000000]  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
 +
[    0.000000] Movable zone start for each node
 +
[    0.000000] Early memory node ranges
 +
[    0.000000]  node  0: [mem 0x0000000000000000-0x000000003fffffff]
 +
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
 +
[    0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536
 +
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260416
 +
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon noinitrd root=ubi0_0 rw rootfstype=ubifs ubi.mtd=2
 +
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
 +
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
 +
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
 +
[    0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)
 +
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
 +
[    0.000000] rcu:    RCU event tracing is enabled.
 +
[    0.000000] rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
 +
[    0.000000]  Trampoline variant of Tasks RCU enabled.
 +
[    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=2
 +
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
 +
[    0.000000] efuse mapped to (ptrval)
 +
[    0.000000] slcr mapped to (ptrval)
 +
[    0.000000] GIC physical location is 0xf8f01000
 +
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
 +
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
 +
[    0.000000] L2C-310 erratum 769419 enabled
 +
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
 +
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
 +
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
 +
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
 +
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
 +
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
 +
[    0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
 +
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
 +
[    0.000000] Zynq clock init
 +
[    0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
 +
[    0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
 +
[    0.016654] Switching to timer-based delay loop, resolution 3ns
 +
[    0.023168] Console: colour dummy device 80x30
 +
[    0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
 +
[    0.037305] pid_max: default: 32768 minimum: 301
 +
[    0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
 +
[    0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
 +
[    0.057757] CPU: Testing write buffer coherency: ok
 +
[    0.061529] CPU0: Spectre v2: using BPIALL workaround
 +
[    0.066750] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
 +
[    0.072813] Setting up static identity map for 0x100000 - 0x100060
 +
[    0.078377] rcu: Hierarchical SRCU implementation.
 +
[    0.083352] smp: Bringing up secondary CPUs ...
 +
[    0.088389] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
 +
[    0.088401] CPU1: Spectre v2: using BPIALL workaround
 +
[    0.098133] smp: Brought up 1 node, 2 CPUs
 +
[    0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).
 +
[    0.108357] CPU: All CPU(s) started in SVC mode.
 +
[    0.113588] devtmpfs: initialized
 +
[    0.121210] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
 +
[    0.124130] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
 +
[    0.133461] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
 +
[    0.141400] pinctrl core: initialized pinctrl subsystem
 +
[    0.146260] NET: Registered protocol family 16
 +
[    0.151995] DMA: preallocated 256 KiB pool for atomic coherent allocations
 +
[    0.157737] thermal_sys: Registered thermal governor 'step_wise'
 +
[    0.158045] cpuidle: using governor ladder
 +
[    0.166503] cpuidle: using governor menu
 +
[    0.183028] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
 +
[    0.185376] hw-breakpoint: maximum watchpoint size is 4 bytes.
 +
[    0.191287] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
 +
[    0.198430] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
 +
[    0.207344] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
 +
[    0.221202] printk: console [ttyPS0] enabled
 +
[    0.221202] printk: console [ttyPS0] enabled
 +
[    0.225508] printk: bootconsole [cdns0] disabled
 +
[    0.225508] printk: bootconsole [cdns0] disabled
 +
[    0.249919] vgaarb: loaded
 +
[    0.253028] SCSI subsystem initialized
 +
[    0.257026] usbcore: registered new interface driver usbfs
 +
[    0.262608] usbcore: registered new interface driver hub
 +
[    0.268015] usbcore: registered new device driver usb
 +
[    0.273332] mc: Linux media interface: v0.10
 +
[    0.277632] videodev: Linux video capture interface: v2.00
 +
[    0.283192] pps_core: LinuxPPS API ver. 1 registered
 +
[    0.288149] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
 +
[    0.297305] PTP clock support registered
 +
[    0.301292] EDAC MC: Ver: 3.0.0
 +
[    0.304949] FPGA manager framework
 +
[    0.308681] Advanced Linux Sound Architecture Driver Initialized.
 +
[    0.315837] clocksource: Switched to clocksource arm_global_timer
 +
[    0.333163] NET: Registered protocol family 2
 +
[    0.338219] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
 +
[    0.346667] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
 +
[    0.354511] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
 +
[    0.361784] TCP: Hash tables configured (established 8192 bind 8192)
 +
[    0.368300] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
 +
[    0.375014] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
 +
[    0.382308] NET: Registered protocol family 1
 +
[    0.387345] RPC: Registered named UNIX socket transport module.
 +
[    0.393300] RPC: Registered udp transport module.
 +
[    0.398001] RPC: Registered tcp transport module.
 +
[    0.402740] RPC: Registered tcp NFSv4.1 backchannel transport module.
 +
[    0.409180] PCI: CLS 0 bytes, default 64
 +
[    0.413721] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
 +
[    0.421860] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
 +
[    0.431454] workingset: timestamp_bits=14 max_order=18 bucket_order=4
 +
[    0.439077] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
 +
[    0.446536] bounce: pool size: 64 pages
 +
[    0.450383] io scheduler mq-deadline registered
 +
[    0.454934] io scheduler kyber registered
 +
[    0.459327] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
 +
[    0.468109] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
 +
[    0.474850] dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
 +
[    0.494688] brd: module loaded
 +
[    0.504477] loop: module loaded
 +
[    0.509473] libphy: Fixed MDIO Bus: probed
 +
[    0.515346] CAN device driver interface
 +
[    0.521835] libphy: MACB_mii_bus: probed
 +
[    0.562752] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (f6:c3:de:d6:d6:e6)
 +
[    0.572919] e1000e: Intel(R) PRO/1000 Network Driver
 +
[    0.577877] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
 +
[    0.584681] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
 +
[    0.591202] ehci-pci: EHCI PCI platform driver
 +
[    0.595787] usbcore: registered new interface driver usb-storage
 +
[    0.602740] ULPI transceiver vendor/product ID 0x0424/0x0006
 +
[    0.608397] Found SMSC USB331x ULPI transceiver.
 +
[    0.613077] ULPI integrity check: passed.
 +
[    0.619138] i2c /dev entries driver
 +
[    0.626225] rtc-ds3232 0-0068: registered as rtc0
 +
[    0.631266] rtc-ds3232 0-0068: setting system clock to 2018-03-09T22:43:45 UTC (1520635425)
 +
[    0.639890] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
 +
[    0.647246] tmp421 0-004f: Could not read configuration register (-6)
 +
[    0.654494] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
 +
[    0.662040] EDAC MC: ECC not enabled
 +
[    0.666183] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
 +
[    0.677171] Xilinx Zynq CpuIdle Driver started
 +
[    0.680527] sdhci: Secure Digital Host Controller Interface driver
 +
[    0.683621] sdhci: Copyright(c) Pierre Ossman
 +
[    0.685836] sdhci-pltfm: SDHCI platform and OF driver helper
 +
[    0.689399] ledtrig-cpu: registered to indicate activity on CPUs
 +
[    0.692668] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
 +
[    0.697371] timer #0 at (ptrval), irq=50
 +
[    0.699683] usbcore: registered new interface driver usbhid
 +
[    0.702500] usbhid: USB HID core driver
 +
[    0.705419] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xd3
 +
[    0.708625] nand: Winbond W29N08GV
 +
[    0.710334] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
 +
[    0.712244] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
 +
[    0.714200] nand: SDR timing mode 4 not acknowledged by the NAND chip
 +
[    0.721567] Bad block table found at page 524224, version 0x01
 +
[    0.728120] Bad block table found at page 524160, version 0x01
 +
[    0.734601] 3 fixed-partitions partitions found on MTD device W29N08GV
 +
[    0.741231] Creating 3 MTD partitions on "W29N08GV":
 +
[    0.746267] 0x000000000000-0x000001600000 : "bootbin"
 +
[    0.753640] 0x000001600000-0x000001640000 : "ubootenv"
 +
[    0.760285] 0x000001640000-0x00001d440000 : "rootfs"
 +
[    0.775328] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
 +
[    0.783257] NET: Registered protocol family 10
 +
[    0.789108] Segment Routing with IPv6
 +
[    0.792886] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
 +
[    0.799816] NET: Registered protocol family 17
 +
[    0.804356] can: controller area network core
 +
[    0.808869] NET: Registered protocol family 29
 +
[    0.813401] can: raw protocol
 +
[    0.816497] can: broadcast manager protocol
 +
[    0.820768] can: netlink gateway - max_hops=1
 +
[    0.825605] Registering SWP/SWPB emulation handler
 +
[    0.832970] of-fpga-region fpga-full: FPGA Region probed
 +
[    0.838736] ubi0: attaching mtd2
 +
[    2.056102] ubi0: scanning is finished
 +
[    2.074242] ubi0: attached mtd2 (name "rootfs", size 446 MiB)
 +
[    2.080123] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
 +
[    2.087020] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
 +
[    2.093715] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
 +
[    2.100621] ubi0: good PEBs: 3568, bad PEBs: 0, corrupted PEBs: 0
 +
[    2.106734] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
 +
[    2.113950] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 635011865
 +
[    2.123040] ubi0: available PEBs: 0, total reserved PEBs: 3568, PEBs reserved for bad PEB handling: 160
 +
[    2.132475] ubi0: background thread "ubi_bgt0d" started, PID 53
 +
[    2.132642] of_cfs_init
 +
[    2.140972] of_cfs_init: OK
 +
[    2.144117] ALSA device list:
 +
[    2.147151]  No soundcards found.
 +
[    2.151854] UBIFS (ubi0:0): Mounting in unauthenticated mode
 +
[    2.157764] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 54
 +
[    2.252675] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
 +
[    2.260145] UBIFS (ubi0:0): LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
 +
[    2.270077] UBIFS (ubi0:0): FS size: 437262336 bytes (417 MiB, 3389 LEBs), journal size 21934080 bytes (20 MiB, 170 LEBs)
 +
[    2.281079] UBIFS (ubi0:0): reserved for root: 4952683 bytes (4836 KiB)
 +
[    2.287714] UBIFS (ubi0:0): media format: w5/r0 (latest is w5/r0), UUID 1D39DE69-4DB4-43C3-B1DC-4790B3D8D8CA, small LPT model
 +
[    2.300876] VFS: Mounted root (ubifs filesystem) on device 0:13.
 +
[    2.308081] devtmpfs: mounted
 +
[    2.314189] Freeing unused kernel memory: 1024K
 +
[    2.319122] Run /sbin/init as init process
 +
INIT: version 2.97 booting
 +
Starting udev
 +
[    3.363102] udevd[78]: starting version 3.2.9
 +
[    3.402426] random: udevd: uninitialized urandom read (16 bytes read)
 +
[    3.410464] random: udevd: uninitialized urandom read (16 bytes read)
 +
[    3.426120] random: udevd: uninitialized urandom read (16 bytes read)
 +
[    3.496826] udevd[79]: starting eudev-3.2.9
 +
bootlogd: /dev/ttyPS0Configuring packages on first boot....
 +
(This may take several minutes. Please do not power off the machine.)
 +
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
 +
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
 +
Removing any system startup links for run-postinsts ...
 +
  /etc/rcS.d/S99run-postinsts
 +
INIT: Entering runlevel: 5
 +
Configuring network interfaces... done.
 +
Starting system message bus: dbus.
 +
Starting haveged: haveged: command socket is listening at fd 3
 +
haveged: haveged starting up
  
* Format and initialize ''nand-ubi'' partition, which in our case is <code>mtd7</code>, using [[Memory Tecnology Device (MTD)#UBI|UBI]] with:
 
<pre>
 
ubiformat /dev/mtd0
 
ubiattach -m 0
 
ubimkvol /dev/ubi0 -N rootfs -m
 
</pre>
 
  
E.g.
+
Starting Dropbear SSH server: Waiting for kernel randomness to be initialised...
 +
haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K
  
<pre class="workstation-terminal">
+
haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 12/40; sz: 15006/57790
root@bora:~# ubiformat /dev/mtd0
 
</pre>
 
* Now mount the UBI volume using [[Memory Tecnology Device (MTD)#UBIFS|UBIFS]] in a temporary directory
 
<pre>
 
mkdir -p /mnt/nand
 
mount -t ubifs ubi0_0 /mnt/nand
 
</pre>
 
  
E.g.:
+
haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99862
  
<pre class="workstation-terminal">
+
haveged: haveged: fills: 0, generated: 0
root@bora:~# mkdir -p /mnt/nand
 
root@bora:~# mount -t ubifs ubi0_0 /mnt/nand
 
</pre>
 
* you can now extract the root file system into that directory
 
<pre>
 
tar xvjf -C /mnt/nand
 
</pre>
 
  
* finally, you need to cleanly umount and detach the MTD partition
+
Generating 2048 bit rsa key, this may take a while...
 +
Public key portion is:
 +
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTB8TmZSylf7njT2d8i1CdsvL2RVkN9NBTJjMX36nmx3GgyTY1O+R8fRv3eXdFD+XWUk02YMWSpPwvC6geSyGEovUe60y7cg/SRyZRTth/sokI+HboE/i0BUzeDCtFS5/L2nDNs/TIg6/0yVn4fcnWH7IDxLNTsqdf0f7wcapCXQrP2+xocU63B4NkXpUVL+Y/Za06M0lqaiqasfOXFfP5MSyTTeJa91LfH5qOca0fxJGqmMDStJjaLTAsEiI3H2waFysRG/prIO17fVbnbsCF2UaNm8Un7wluae0HjUBd/ItTdIa6erKUJilVGsSkPo0+Shx5O1Zk4cetuPFs+e2P root@boralite
 +
Fingerprint: sha1!! 0e:82:1e:52:c9:20:b1:64:1d:17:b0:a8:a8:e5:93:44:3f:ec:6c:38
 +
dropbear.
 +
Starting rpcbind daemon...done.
 +
starting statd: done
 +
Starting atd: OK
 +
Starting internet superserver: inetd.
 +
NFS daemon support not enabled in kernel
 +
Starting system log daemon...0
 +
Mar  9 22:44:12 boralite kernel: [    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
 +
Mar  9 22:44:12 boralite kernel: [    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
 +
Mar  9 22:44:12 boralite kernel: [    0.413721] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
 +
Mar  9 22:44:12 boralite kernel: [    0.647246] tmp421 0-004f: Could not read configuration register (-6)
 +
Mar  9 22:44:12 boralite kernel: [    0.714200] nand: SDR timing mode 4 not acknowledged by the NAND chip
 +
Mar  9 22:44:12 boralite kernel: [    5.281753] urandom_read: 4 callbacks suppressed
 +
Starting internet superserver: xinetd.
 +
Starting crond: OK
 +
Starting tcf-agent: OK
  
<pre>
+
PetaLinux 2021.2 boralite ttyPS0
umount /mnt/nand/
 
ubidetach -m 0
 
</pre>
 
  
E.g.
 
  
<pre class="workstation-terminal">
+
root@boralite:~# cat /etc/build
root@bora:~# umount /mnt/nand/
+
-----------------------
[ 2446.743091] UBIFS: un-mount UBI device 0, volume 0
+
Build Configuration:  |
[ 2446.749670] UBIFS: background thread "ubifs_bgt0_0" stops
+
-----------------------
root@bora:~# ubidetach -m
+
DISTRO = petalinux
[ 2450.738153] UBI: detaching mtd7 from ubi0
+
DISTRO_VERSION = 2021.2
[ 2450.759527] UBI: mtd7 is detached from ubi0
+
MACHINE = zynq-generic
</pre>
+
IMAGE_BASENAME = dave-image-devel
 +
-----------------------
 +
Layer Revisions:     |
 +
-----------------------
 +
meta              = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-poky        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-perl        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-python      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-filesystems  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-gnome        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-multimedia  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-networking  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-webserver    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xfce        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-initramfs    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-oe          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-clang        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-chromium    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-qt5          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-microblaze  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-bsp  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-pynq  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-petalinux    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-openamp      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-jupyter      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-vitis-ai    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-python2      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-som          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-security    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-tpm          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-user        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
meta-dave        = HEAD:e944801f104f86191cd086d0cea8f3df88dda061
 +
workspace        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
 +
root@boralite:~# uname -a
 +
Linux boralite 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linux
 +
root@boralite:~# cat /etc/os-release
 +
ID=petalinux
 +
NAME="PetaLinux"
 +
VERSION="2021.2 (gatesgarth)"
 +
VERSION_ID=2021.2
 +
PRETTY_NAME="PetaLinux 2021.2 (gatesgarth)"
 +
BUILD_VERSION="desk-xz7-l-1.0.1"
 +
root@boralite:~# shutdown -h now
  
You can now safely reboot or turn off the system.
+
Broadcast message from root@boralite (ttyPS0) (Fri Mar  9 22:46:32 2018):
  
In U-Boot environment check the following variable, which must contain the same MTD partition number used above
+
The system is going down for system halt NOW!
 +
INIT: Sending processes configured via /etc/inittab the TERM signal
 +
root@boralite:~# Stopping haveged:
  
<pre>
+
Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 275)
nand_args=setenv bootargs root=ubi0:rootfs rootfstype=ubifs rw ubi.mtd=0
+
dropbear.
 +
Stopping atd: OK
 +
Stopping system message bus: dbus.
 +
Stopping internet superserver: inetd.
 +
stopping mountd: done
 +
stopping nfsd: done
 +
Stopping system log daemon...0
 +
Stopping tcf-agent: OK
 +
Stopping internet superserver: xinetd.
 +
stopping statd: done
 +
Stopping crond: OK
 +
Stopping rpcbind daemon...
 +
done.
 +
Deconfiguring network interfaces... done.
 +
Sending all processes the TERM signal...
 +
logout
 +
Sending all processes the KILL signal...
 +
Unmounting remote filesystems...
 +
Deactivating swap...
 +
Unmounting local filesystems...
 +
[  173.736463] reboot: System halted
 
</pre>
 
</pre>
  
----
+
<section end=Body/>
  
[[Category:BORA]]
+
[[Category:BORA]] [[Category:BORA Xpress]][[Category:BORA Lite]]

Latest revision as of 09:22, 26 January 2024

History
Issue Date Notes

2022/11/22

DESK-XZ7-L-1.0.0-rc1 release
2023/01/23 DESK-XZ7-L-1.0.1 release



Standalone boot[edit | edit source]

This document was written and tested with the software/hardware combination described in the history table above. However, it contains general concepts that can be adapted to any DAVE Embedded Systems' Linux platform.


200px-Emblem-important.svg.png

The following programming examples are intended for laboratory usage or for preliminary deployment strategy.

A complete deployment strategy has to be carefully identifiyed taking into account the overall arguments like: boot speed, safe boot, recovery mechanisms, watchdog supervisor, etc.

We'll explain how to program and configure a SOM to boot in standalone mode, without the need for a system microSD card, with the following option:

  • booting with Quad-SPI NOR
    • in this configuration the primary boot images will be fetched from Quad-SPI NOR flash storage, while the root file system will be fetched from microSD
  • booting with NAND
    • in this configuration the primary boot images and rootfs will be fetched from NAND flash storage

Program the Quad-SPI NOR flash[edit | edit source]

This chapter is compatible with BORA, BORA Xpress and BORA Lite platforms, but below there is log for BORA Xpress SOM.

First of all, create a bootable microSD card as described here. Alternatively you can download binaries from mirror and install it on microSD or into tftpboot directory in your host device.

Then, boot the board with the microSD card and stop the automatic boot process of U-Boot in order to access the console.

U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)

CPU:   Zynq 7z030
Silicon: v3.1
Model: Bora
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SOM ConfigID#: 00000004
SOM UniqueID#: 2a0e92c4:03193a4b
CB ConfigID#: ffffffff
CB UniqueID#: ffffffff:ffffffff
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Warning: MAC addr not found in SPI NOR at block 8
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - 72:2c:e1:44:08:28
eth0: ethernet@e000b000
Hit ENTER within 2 seconds to stop autoboot
Zynq>

Programming Quad-SPI NOR flash from microSD[edit | edit source]

  • Initialize and format Quad-SPI NOR flash memory
Zynq> sf probe
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Zynq> sf erase 0 0x1000000
SF: 16777216 bytes @ 0x0 Erased: OK
  • Install BOOT.BIN on Quad-SPI NOR flash memory
Zynq> fatload mmc 0:1 $kernel_addr_r BOOT.BIN
7033004 bytes read in 406 ms (16.5 MiB/s)
Zynq> sf write $kernel_addr_r 0x0 $filesize
device 0 offset 0x0, size 0x6b50ac
SF: 7033004 bytes @ 0x0 Written: OK
  • Install image.ub on Quad-SPI NOR flash memory
Zynq> mw $kernel_addr_r 0x0 $filesize
Zynq> fatload mmc 0:1 $kernel_addr_r image.ub
4868556 bytes read in 287 ms (16.2 MiB/s)
Zynq> sf write $kernel_addr_r 0x700000 $filesize
device 0 offset 0x700000, size 0x4a49cc
SF: 4868556 bytes @ 0x700000 Written: OK
  • Install boot.scr on Quad-SPI NOR flash memory
Zynq> mw $kernel_addr_r 0x0 $filesize
Zynq> fatload mmc 0:1 $kernel_addr_r boot.scr
2709 bytes read in 14 ms (188.5 KiB/s)
Zynq> sf write $kernel_addr_r 0xFC0000 $filesize
device 0 offset 0xfc0000, size 0xa95
SF: 2709 bytes @ 0xfc0000 Written: OK

Programming Quad-SPI NOR flash from ethernet[edit | edit source]

  • Initialize and format Quad-SPI NOR flash memory
Zynq> sf probe
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Zynq> sf erase 0 0x1000000
SF: 16777216 bytes @ 0x0 Erased: OK
  • Properly define the ethernet configuration parameter:
Zynq> setenv ipaddr 192.168.0.89
Zynq> setenv serverip 192.168.0.99
  • download via TFTP the BOOT.BIN binary image and write BOOT.BIN on Quad-SPI NOR flash memory
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BIN
Using ethernet@e000b000 device
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BIN'.
Load address: 0x2000000
Loading: #T ################################################################
         #################################################################
         ...
         #################################################################
         #########
         444.3 KiB/s
done
Bytes transferred = 7033004 (6b50ac hex)
Zynq> sf write $kernel_addr_r 0x0 $filesize
device 0 offset 0x0, size 0x6b50ac
SF: 7033004 bytes @ 0x0 Written: OK
  • download via TFTP the image.ub binary image and write image.ub on Quad-SPI NOR flash memory
Zynq> mw $kernel_addr_r 0x0 $filesize
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_image.ub
Using ethernet@e000b000 device
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_image.ub'.
Load address: 0x2000000
Loading: #T ################################################################
         #################################################################
         ...
         #################################################################
         #########################################
         394.5 KiB/s
done
Bytes transferred = 4868556 (4a49cc hex)
Zynq> sf write $kernel_addr_r 0x700000 $filesize
device 0 offset 0x700000, size 0x4a49cc
SF: 4868556 bytes @ 0x700000 Written: OK
  • download via TFTP the boot.scr binary image and write boot.scr on Quad-SPI NOR flash memory
Zynq> mw $kernel_addr_r 0x0 $filesize
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr
Using ethernet@e000b000 device
TFTP from server 192.168.0.99; our IP address is 192.168.0.89
Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr'.
Load address: 0x2000000
Loading: #T
         0 Bytes/s
done
Bytes transferred = 2709 (a95 hex)
Zynq> sf write $kernel_addr_r 0xFC0000 $filesize
device 0 offset 0xfc0000, size 0xa95
SF: 2709 bytes @ 0xfc0000 Written: OK

Once change boot mode and restarted, the complete boot log can be like this one:

U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)

CPU:   Zynq 7z030
Silicon: v3.1
Model: Bora
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from SPIFlash... SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
SOM ConfigID#: 00000004
SOM UniqueID#: 2a0e92c4:03193a4b
CB ConfigID#: ffffffff
CB UniqueID#: ffffffff:ffffffff
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Warning: MAC addr not found in SPI NOR at block 8
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - 7a:68:29:db:0b:f6
eth0: ethernet@e000b000
Hit ENTER within 2 seconds to stop autoboot
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0xfc0000, size 0x40000
SF: 262144 bytes @ 0xfc0000 Read: OK
QSPI: Trying to boot script at 3000000
## Executing script at 03000000
Trying to load boot images from qspi
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x700000, size 0x600000
SF: 6291456 bytes @ 0x700000 Read: OK
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000f8
     Data Size:    4845944 Bytes = 4.6 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1049f37c
     Data Size:    20716 Bytes = 20.2 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   f93874aa1f1a0c6d52c423e12b25b4a2ae14a09b40a8068a49b4c8914be75e4c
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x1049f37c
   Loading Kernel Image
   Loading Device Tree to 2fff7000, end 2ffff0eb ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bora
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x3f000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000003fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260416
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    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=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] efuse mapped to (ptrval)
[    0.000000] slcr mapped to (ptrval)
[    0.000000] GIC physical location is 0xf8f01000
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[    0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
[    0.000000] Zynq clock init
[    0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
[    0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
[    0.016655] Switching to timer-based delay loop, resolution 3ns
[    0.023169] Console: colour dummy device 80x30
[    0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
[    0.037305] pid_max: default: 32768 minimum: 301
[    0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.057754] CPU: Testing write buffer coherency: ok
[    0.061529] CPU0: Spectre v2: using BPIALL workaround
[    0.066749] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072812] Setting up static identity map for 0x100000 - 0x100060
[    0.078378] rcu: Hierarchical SRCU implementation.
[    0.083352] smp: Bringing up secondary CPUs ...
[    0.088388] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.088399] CPU1: Spectre v2: using BPIALL workaround
[    0.098134] smp: Brought up 1 node, 2 CPUs
[    0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).
[    0.108358] CPU: All CPU(s) started in SVC mode.
[    0.113587] devtmpfs: initialized
[    0.121144] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.124128] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.133462] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.141395] pinctrl core: initialized pinctrl subsystem
[    0.146259] NET: Registered protocol family 16
[    0.151964] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.157733] thermal_sys: Registered thermal governor 'step_wise'
[    0.158046] cpuidle: using governor ladder
[    0.166503] cpuidle: using governor menu
[    0.182919] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.185265] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.191178] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
[    0.198318] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
[    0.207234] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
[    0.221091] printk: console [ttyPS0] enabled
[    0.221091] printk: console [ttyPS0] enabled
[    0.225396] printk: bootconsole [cdns0] disabled
[    0.225396] printk: bootconsole [cdns0] disabled
[    0.249776] vgaarb: loaded
[    0.252888] SCSI subsystem initialized
[    0.256896] usbcore: registered new interface driver usbfs
[    0.262468] usbcore: registered new interface driver hub
[    0.267875] usbcore: registered new device driver usb
[    0.273183] mc: Linux media interface: v0.10
[    0.277485] videodev: Linux video capture interface: v2.00
[    0.283046] pps_core: LinuxPPS API ver. 1 registered
[    0.288002] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.297158] PTP clock support registered
[    0.301145] EDAC MC: Ver: 3.0.0
[    0.304805] FPGA manager framework
[    0.308536] Advanced Linux Sound Architecture Driver Initialized.
[    0.315660] clocksource: Switched to clocksource arm_global_timer
[    0.332917] NET: Registered protocol family 2
[    0.337977] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.346425] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.354267] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.361542] TCP: Hash tables configured (established 8192 bind 8192)
[    0.368054] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.374750] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.382042] NET: Registered protocol family 1
[    0.387083] RPC: Registered named UNIX socket transport module.
[    0.393034] RPC: Registered udp transport module.
[    0.397734] RPC: Registered tcp transport module.
[    0.402441] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.408896] PCI: CLS 0 bytes, default 64
[    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
[    0.421576] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.431150] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.438734] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.446129] bounce: pool size: 64 pages
[    0.449974] io scheduler mq-deadline registered
[    0.454520] io scheduler kyber registered
[    0.458913] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.467704] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
[    0.474442] dma-pl330 f8003000.dmac:         DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.494238] brd: module loaded
[    0.504037] loop: module loaded
[    0.511083] random: fast init done
[    0.614245] random: crng init done
[    0.623641] spi-nor spi0.0: trying to lock already unlocked area
[    0.629650] spi-nor spi0.0: s25fl128s1 (16384 Kbytes)
[    0.639922] libphy: Fixed MDIO Bus: probed
[    0.645716] CAN device driver interface
[    0.652273] libphy: MACB_mii_bus: probed
[    0.688524] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (7a:68:29:db:0b:f6)
[    0.698709] e1000e: Intel(R) PRO/1000 Network Driver
[    0.703668] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.710509] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.717037] ehci-pci: EHCI PCI platform driver
[    0.721607] usbcore: registered new interface driver usb-storage
[    0.728609] ULPI transceiver vendor/product ID 0x0424/0x0006
[    0.734267] Found SMSC USB331x ULPI transceiver.
[    0.738913] ULPI integrity check: passed.
[    0.745040] i2c /dev entries driver
[    0.752088] rtc-ds3232 0-0068: registered as rtc0
[    0.757162] rtc-ds3232 0-0068: setting system clock to 2018-03-09T17:29:17 UTC (1520616557)
[    0.765791] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
[    0.774272] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    0.781826] EDAC MC: ECC not enabled
[    0.785972] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
[    0.796932] Xilinx Zynq CpuIdle Driver started
[    0.800410] sdhci: Secure Digital Host Controller Interface driver
[    0.803503] sdhci: Copyright(c) Pierre Ossman
[    0.805718] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.809266] ledtrig-cpu: registered to indicate activity on CPUs
[    0.812545] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
[    0.817251] timer #0 at dfb516c6, irq=50
[    0.819556] usbcore: registered new interface driver usbhid
[    0.822381] usbhid: USB HID core driver
[    0.827302] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[    0.831575] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[    0.831977] NET: Registered protocol family 10
[    0.838558] Segment Routing with IPv6
[    0.840631] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.847540] NET: Registered protocol family 17
[    0.852063] can: controller area network core
[    0.856576] NET: Registered protocol family 29
[    0.861071] can: raw protocol
[    0.864050] can: broadcast manager protocol
[    0.868298] can: netlink gateway - max_hops=1
[    0.873045] Registering SWP/SWPB emulation handler
[    0.880140] of-fpga-region fpga-full: FPGA Region probed
[    0.886112] of_cfs_init
[    0.888667] of_cfs_init: OK
[    0.891875] ALSA device list:
[    0.894839]   No soundcards found.
[    0.898729] Waiting for root device /dev/mmcblk0p2...
[    1.052324] mmc0: new high speed SDHC card at address aaaa
[    1.055781] mmcblk0: mmc0:aaaa SA16G 14.8 GiB
[    1.060584]  mmcblk0: p1 p2
[    1.086701] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.090810] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.094724] devtmpfs: mounted
[    1.099892] Freeing unused kernel memory: 1024K
[    1.136017] Run /sbin/init as init process
INIT: version 2.97 booting
[    1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting udev
[    1.712872] udevd[82]: starting version 3.2.9
[    1.763498] udevd[83]: starting eudev-3.2.9
[    2.244862] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
INIT: Entering runlevel: 5
Configuring network interfaces... done.
Starting system message bus: dbus.
Starting haveged: haveged: command socket is listening at fd 3
haveged: haveged starting up


Starting Dropbear SSH server: dropbear.
Starting rpcbind daemon...done.
starting statd: done
Starting atd: OK
Starting internet superserver: inetd.
NFS daemon support not enabled in kernel
Starting system log daemon...0
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 17:29:22 borax kernel: [    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
Mar  9 17:29:22 borax kernel: [    0.623641] spi-nor spi0.0: trying to lock already unlocked area
Mar  9 17:29:22 borax kernel: [    1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
Starting internet superserver: xinetd.
Starting crond: OK
Starting tcf-agent: OK

PetaLinux 2021.2 borax ttyPS0


root@borax:~# uname -a
Linux borax 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linux
root@borax:~# cat /etc/build
-----------------------
Build Configuration:  |
-----------------------
DISTRO = petalinux
DISTRO_VERSION = 2021.2
MACHINE = zynq-generic
IMAGE_BASENAME = dave-image-devel
-----------------------
Layer Revisions:      |
-----------------------
meta              = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-poky         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-perl         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-python       = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-filesystems  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-gnome        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-multimedia   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-networking   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-webserver    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xfce         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-initramfs    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-oe           = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-clang        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-chromium     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-qt5          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-microblaze   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-bsp   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-pynq  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-petalinux    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-openamp      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-jupyter      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-vitis-ai     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-python2      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-som          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-security     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-tpm          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-user         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-dave         = HEAD:e944801f104f86191cd086d0cea8f3df88dda061
workspace         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
root@borax:~# cat /etc/os-release
ID=petalinux
NAME="PetaLinux"
VERSION="2021.2 (gatesgarth)"
VERSION_ID=2021.2
PRETTY_NAME="PetaLinux 2021.2 (gatesgarth)"
BUILD_VERSION="desk-xz7-l-1.0.1"
root@borax:~# shutdown -h now

Broadcast message from root@borax (ttyPS0) (Fri Mar  9 17:29:35 2018):

The system is going down for system halt NOW!
INIT: Sending processes configured via /etc/inittab the TERM signal
Stopping haveged:

Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 217)
dropbear.
Stopping atd: OK
Stopping system message bus: dbus.
Stopping internet superserver: inetd.
stopping mountd: done
stopping nfsd: done
Stopping system log daemon...0
Stopping tcf-agent: OK
Stopping internet superserver: xinetd.
stopping statd: done
Stopping crond: OK
Stopping rpcbind daemon...
done.
Deconfiguring network interfaces... done.
Sending all processes the TERM signal...
logout
Sending all processes the KILL signal...
Unmounting remote filesystems...
Deactivating swap...
Unmounting local filesystems...
[   24.097545] reboot: System halted

Program the NAND flash[edit | edit source]

This chapter is compatible with BORA Lite SOM.

First of all, create a bootable microSD card as described here with config_boralite_nand_usd configuration file, and install wic binary on microSD. Then create artifact to install on NAND flash with config_boralite_nand configuration file, as described here, and save the BOOT.BIN and dave-image-devel-zynq-generic.tar.gz artifact into the first partition of microSD.

In this case BOOT.BIN binary that came from to config_boralite_nand_usd and config_boralite_nand are different, so save it with different name. Alternatively you can download binaries from mirror and install on microSD.

Then, install the following files into the microSD first partition:

  • BOOT.BIN. This binary come from to config_boralite_nand_usd configuration file, and need to install on microSD
  • boot.scr
  • desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED. This binary come from to config_boralite_nand configuration file, and has to be installed on NAND flash
  • desk-xz7-l-1.0.1_boralite_nand_dave-image-devel-zynq-generic.tar.gz
  • image.ub

Programming NAND flash from microSD[edit | edit source]

  • delete all partition on NAND flash memory
root@boralite:~# for i in $(seq 0 2); do flash_erase /dev/mtd$i 0 0; done
Erasing 128 Kibyte @ 15e0000 -- 100 % complete
Erasing 128 Kibyte @ 20000 -- 100 % complete
Erasing 128 Kibyte @ 1bde0000 -- 100 % complete
  • install BOOT.BIN on NAND flash memory
root@boralite:~# nandwrite -p /dev/mtd0 /boot/desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED
Writing data to block 0 at offset 0x0
Writing data to block 1 at offset 0x20000
...
Writing data to block 168 at offset 0x1500000
Writing data to block 169 at offset 0x1520000
  • install dave-image-devel-zynq-generic.tar.gz rootfs on NAND flash memory
root@boralite:~# ubiformat /dev/mtd2
ubiformat: mtd2 (nand), size 467664896 bytes (446.0 MiB), 3568 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 3567 -- 100 % complete
ubiformat: 3568 eraseblocks are supposedly empty
ubiformat: formatting eraseblock 3567 -- 100 % complete
root@boralite:~# ubiattach -m 2
UBI device number 0, total 3568 LEBs (460357632 bytes, 439.0 MiB), available 3404 LEBs (439197696 bytes, 418.8 MiB), LEB size 129024 bytes (126.0 KiB)
root@boralite:~# ubimkvol /dev/ubi0 -N rootfs -m
Set volume size to 439197696
Volume ID 0, size 3404 LEBs (439197696 bytes, 418.8 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name "rootfs", alignment 1
root@boralite:~# mkdir -p /mnt/nand
root@boralite:~# mount -t ubifs ubi0_0 /mnt/nand
root@boralite:~# tar -xzvf /boot/dave-image-devel-zynq-generic.tar.gz -C /mnt/nand/.
...
root@boralite:~# umount /mnt/nand/
root@boralite:~# ubidetach -m 2

Once change boot mode and restarted, the complete boot log can be like this one:

U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
Model: Bora
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  1024 MiB
MMC:   mmc@e0100000: 0
Loading Environment from NAND... *** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
SOM ConfigID#: 77777777
SOM UniqueID#: 55555555:66666666
CB ConfigID#: ffffffff
CB UniqueID#: ffffffff:ffffffff
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id

Warning: ethernet@e000b000 (eth0) using random MAC address - f6:c3:de:d6:d6:e6
eth0: ethernet@e000b000
Hit ENTER within 2 seconds to stop autoboot

Device 0: nand0, sector size 128 KiB
  Page size       2048 b
  OOB size          64 b
  Erase size    131072 b
  subpagesize      512 b
  options     0x40004000
  bbt options 0x00020000

NAND read: device 0 offset 0xfc0000, size 0x40000
 262144 bytes read: OK
NAND: Trying to boot script at 3000000
## Executing script at 03000000
Trying to load boot images from nand

Device 0: nand0, sector size 128 KiB
  Page size       2048 b
  OOB size          64 b
  Erase size    131072 b
  subpagesize      512 b
  options     0x40004000
  bbt options 0x00020000

NAND read: device 0 offset 0x1080000, size 0x6400000
 104857600 bytes read: OK
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000f8
     Data Size:    4845944 Bytes = 4.6 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf-system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1049f37c
     Data Size:    20656 Bytes = 20.2 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   42e997d9430c0dc091dfb37df69c2148e40ad7fdd75ec4f49501bc5d4bc48f53
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x1049f37c
   Loading Kernel Image
   Loading Device Tree to 2fff7000, end 2ffff0af ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bora
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x3f000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x000000003fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260416
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon noinitrd root=ubi0_0 rw rootfstype=ubifs ubi.mtd=2
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    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=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] efuse mapped to (ptrval)
[    0.000000] slcr mapped to (ptrval)
[    0.000000] GIC physical location is 0xf8f01000
[    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[    0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
[    0.000000] Zynq clock init
[    0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
[    0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
[    0.016654] Switching to timer-based delay loop, resolution 3ns
[    0.023168] Console: colour dummy device 80x30
[    0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
[    0.037305] pid_max: default: 32768 minimum: 301
[    0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.057757] CPU: Testing write buffer coherency: ok
[    0.061529] CPU0: Spectre v2: using BPIALL workaround
[    0.066750] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.072813] Setting up static identity map for 0x100000 - 0x100060
[    0.078377] rcu: Hierarchical SRCU implementation.
[    0.083352] smp: Bringing up secondary CPUs ...
[    0.088389] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.088401] CPU1: Spectre v2: using BPIALL workaround
[    0.098133] smp: Brought up 1 node, 2 CPUs
[    0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).
[    0.108357] CPU: All CPU(s) started in SVC mode.
[    0.113588] devtmpfs: initialized
[    0.121210] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.124130] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.133461] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.141400] pinctrl core: initialized pinctrl subsystem
[    0.146260] NET: Registered protocol family 16
[    0.151995] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.157737] thermal_sys: Registered thermal governor 'step_wise'
[    0.158045] cpuidle: using governor ladder
[    0.166503] cpuidle: using governor menu
[    0.183028] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.185376] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.191287] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
[    0.198430] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
[    0.207344] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
[    0.221202] printk: console [ttyPS0] enabled
[    0.221202] printk: console [ttyPS0] enabled
[    0.225508] printk: bootconsole [cdns0] disabled
[    0.225508] printk: bootconsole [cdns0] disabled
[    0.249919] vgaarb: loaded
[    0.253028] SCSI subsystem initialized
[    0.257026] usbcore: registered new interface driver usbfs
[    0.262608] usbcore: registered new interface driver hub
[    0.268015] usbcore: registered new device driver usb
[    0.273332] mc: Linux media interface: v0.10
[    0.277632] videodev: Linux video capture interface: v2.00
[    0.283192] pps_core: LinuxPPS API ver. 1 registered
[    0.288149] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.297305] PTP clock support registered
[    0.301292] EDAC MC: Ver: 3.0.0
[    0.304949] FPGA manager framework
[    0.308681] Advanced Linux Sound Architecture Driver Initialized.
[    0.315837] clocksource: Switched to clocksource arm_global_timer
[    0.333163] NET: Registered protocol family 2
[    0.338219] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.346667] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.354511] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.361784] TCP: Hash tables configured (established 8192 bind 8192)
[    0.368300] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.375014] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.382308] NET: Registered protocol family 1
[    0.387345] RPC: Registered named UNIX socket transport module.
[    0.393300] RPC: Registered udp transport module.
[    0.398001] RPC: Registered tcp transport module.
[    0.402740] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.409180] PCI: CLS 0 bytes, default 64
[    0.413721] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
[    0.421860] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.431454] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.439077] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.446536] bounce: pool size: 64 pages
[    0.450383] io scheduler mq-deadline registered
[    0.454934] io scheduler kyber registered
[    0.459327] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.468109] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
[    0.474850] dma-pl330 f8003000.dmac:         DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.494688] brd: module loaded
[    0.504477] loop: module loaded
[    0.509473] libphy: Fixed MDIO Bus: probed
[    0.515346] CAN device driver interface
[    0.521835] libphy: MACB_mii_bus: probed
[    0.562752] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (f6:c3:de:d6:d6:e6)
[    0.572919] e1000e: Intel(R) PRO/1000 Network Driver
[    0.577877] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.584681] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.591202] ehci-pci: EHCI PCI platform driver
[    0.595787] usbcore: registered new interface driver usb-storage
[    0.602740] ULPI transceiver vendor/product ID 0x0424/0x0006
[    0.608397] Found SMSC USB331x ULPI transceiver.
[    0.613077] ULPI integrity check: passed.
[    0.619138] i2c /dev entries driver
[    0.626225] rtc-ds3232 0-0068: registered as rtc0
[    0.631266] rtc-ds3232 0-0068: setting system clock to 2018-03-09T22:43:45 UTC (1520635425)
[    0.639890] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
[    0.647246] tmp421 0-004f: Could not read configuration register (-6)
[    0.654494] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    0.662040] EDAC MC: ECC not enabled
[    0.666183] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
[    0.677171] Xilinx Zynq CpuIdle Driver started
[    0.680527] sdhci: Secure Digital Host Controller Interface driver
[    0.683621] sdhci: Copyright(c) Pierre Ossman
[    0.685836] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.689399] ledtrig-cpu: registered to indicate activity on CPUs
[    0.692668] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
[    0.697371] timer #0 at (ptrval), irq=50
[    0.699683] usbcore: registered new interface driver usbhid
[    0.702500] usbhid: USB HID core driver
[    0.705419] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xd3
[    0.708625] nand: Winbond W29N08GV
[    0.710334] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    0.712244] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[    0.714200] nand: SDR timing mode 4 not acknowledged by the NAND chip
[    0.721567] Bad block table found at page 524224, version 0x01
[    0.728120] Bad block table found at page 524160, version 0x01
[    0.734601] 3 fixed-partitions partitions found on MTD device W29N08GV
[    0.741231] Creating 3 MTD partitions on "W29N08GV":
[    0.746267] 0x000000000000-0x000001600000 : "bootbin"
[    0.753640] 0x000001600000-0x000001640000 : "ubootenv"
[    0.760285] 0x000001640000-0x00001d440000 : "rootfs"
[    0.775328] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[    0.783257] NET: Registered protocol family 10
[    0.789108] Segment Routing with IPv6
[    0.792886] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.799816] NET: Registered protocol family 17
[    0.804356] can: controller area network core
[    0.808869] NET: Registered protocol family 29
[    0.813401] can: raw protocol
[    0.816497] can: broadcast manager protocol
[    0.820768] can: netlink gateway - max_hops=1
[    0.825605] Registering SWP/SWPB emulation handler
[    0.832970] of-fpga-region fpga-full: FPGA Region probed
[    0.838736] ubi0: attaching mtd2
[    2.056102] ubi0: scanning is finished
[    2.074242] ubi0: attached mtd2 (name "rootfs", size 446 MiB)
[    2.080123] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
[    2.087020] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[    2.093715] ubi0: VID header offset: 512 (aligned 512), data offset: 2048
[    2.100621] ubi0: good PEBs: 3568, bad PEBs: 0, corrupted PEBs: 0
[    2.106734] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
[    2.113950] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 635011865
[    2.123040] ubi0: available PEBs: 0, total reserved PEBs: 3568, PEBs reserved for bad PEB handling: 160
[    2.132475] ubi0: background thread "ubi_bgt0d" started, PID 53
[    2.132642] of_cfs_init
[    2.140972] of_cfs_init: OK
[    2.144117] ALSA device list:
[    2.147151]   No soundcards found.
[    2.151854] UBIFS (ubi0:0): Mounting in unauthenticated mode
[    2.157764] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 54
[    2.252675] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[    2.260145] UBIFS (ubi0:0): LEB size: 129024 bytes (126 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    2.270077] UBIFS (ubi0:0): FS size: 437262336 bytes (417 MiB, 3389 LEBs), journal size 21934080 bytes (20 MiB, 170 LEBs)
[    2.281079] UBIFS (ubi0:0): reserved for root: 4952683 bytes (4836 KiB)
[    2.287714] UBIFS (ubi0:0): media format: w5/r0 (latest is w5/r0), UUID 1D39DE69-4DB4-43C3-B1DC-4790B3D8D8CA, small LPT model
[    2.300876] VFS: Mounted root (ubifs filesystem) on device 0:13.
[    2.308081] devtmpfs: mounted
[    2.314189] Freeing unused kernel memory: 1024K
[    2.319122] Run /sbin/init as init process
INIT: version 2.97 booting
Starting udev
[    3.363102] udevd[78]: starting version 3.2.9
[    3.402426] random: udevd: uninitialized urandom read (16 bytes read)
[    3.410464] random: udevd: uninitialized urandom read (16 bytes read)
[    3.426120] random: udevd: uninitialized urandom read (16 bytes read)
[    3.496826] udevd[79]: starting eudev-3.2.9
bootlogd: /dev/ttyPS0Configuring packages on first boot....
 (This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
 Removing any system startup links for run-postinsts ...
  /etc/rcS.d/S99run-postinsts
INIT: Entering runlevel: 5
Configuring network interfaces... done.
Starting system message bus: dbus.
Starting haveged: haveged: command socket is listening at fd 3
haveged: haveged starting up


Starting Dropbear SSH server: Waiting for kernel randomness to be initialised...
haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K

haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 12/40; sz: 15006/57790

haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99862

haveged: haveged: fills: 0, generated: 0

Generating 2048 bit rsa key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTB8TmZSylf7njT2d8i1CdsvL2RVkN9NBTJjMX36nmx3GgyTY1O+R8fRv3eXdFD+XWUk02YMWSpPwvC6geSyGEovUe60y7cg/SRyZRTth/sokI+HboE/i0BUzeDCtFS5/L2nDNs/TIg6/0yVn4fcnWH7IDxLNTsqdf0f7wcapCXQrP2+xocU63B4NkXpUVL+Y/Za06M0lqaiqasfOXFfP5MSyTTeJa91LfH5qOca0fxJGqmMDStJjaLTAsEiI3H2waFysRG/prIO17fVbnbsCF2UaNm8Un7wluae0HjUBd/ItTdIa6erKUJilVGsSkPo0+Shx5O1Zk4cetuPFs+e2P root@boralite
Fingerprint: sha1!! 0e:82:1e:52:c9:20:b1:64:1d:17:b0:a8:a8:e5:93:44:3f:ec:6c:38
dropbear.
Starting rpcbind daemon...done.
starting statd: done
Starting atd: OK
Starting internet superserver: inetd.
NFS daemon support not enabled in kernel
Starting system log daemon...0
Mar  9 22:44:12 boralite kernel: [    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 22:44:12 boralite kernel: [    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 22:44:12 boralite kernel: [    0.413721] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
Mar  9 22:44:12 boralite kernel: [    0.647246] tmp421 0-004f: Could not read configuration register (-6)
Mar  9 22:44:12 boralite kernel: [    0.714200] nand: SDR timing mode 4 not acknowledged by the NAND chip
Mar  9 22:44:12 boralite kernel: [    5.281753] urandom_read: 4 callbacks suppressed
Starting internet superserver: xinetd.
Starting crond: OK
Starting tcf-agent: OK

PetaLinux 2021.2 boralite ttyPS0


root@boralite:~# cat /etc/build
-----------------------
Build Configuration:  |
-----------------------
DISTRO = petalinux
DISTRO_VERSION = 2021.2
MACHINE = zynq-generic
IMAGE_BASENAME = dave-image-devel
-----------------------
Layer Revisions:      |
-----------------------
meta              = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-poky         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-perl         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-python       = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-filesystems  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-gnome        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-multimedia   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-networking   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-webserver    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xfce         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-initramfs    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-oe           = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-clang        = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-chromium     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-qt5          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-microblaze   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-bsp   = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-pynq  = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-petalinux    = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-openamp      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-jupyter      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-vitis-ai     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-python2      = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-som          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-security     = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-tpm          = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-user         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
meta-dave         = HEAD:e944801f104f86191cd086d0cea8f3df88dda061
workspace         = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modified
root@boralite:~# uname -a
Linux boralite 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linux
root@boralite:~# cat /etc/os-release
ID=petalinux
NAME="PetaLinux"
VERSION="2021.2 (gatesgarth)"
VERSION_ID=2021.2
PRETTY_NAME="PetaLinux 2021.2 (gatesgarth)"
BUILD_VERSION="desk-xz7-l-1.0.1"
root@boralite:~# shutdown -h now

Broadcast message from root@boralite (ttyPS0) (Fri Mar  9 22:46:32 2018):

The system is going down for system halt NOW!
INIT: Sending processes configured via /etc/inittab the TERM signal
root@boralite:~# Stopping haveged:

Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 275)
dropbear.
Stopping atd: OK
Stopping system message bus: dbus.
Stopping internet superserver: inetd.
stopping mountd: done
stopping nfsd: done
Stopping system log daemon...0
Stopping tcf-agent: OK
Stopping internet superserver: xinetd.
stopping statd: done
Stopping crond: OK
Stopping rpcbind daemon...
done.
Deconfiguring network interfaces... done.
Sending all processes the TERM signal...
logout
Sending all processes the KILL signal...
Unmounting remote filesystems...
Deactivating swap...
Unmounting local filesystems...
[  173.736463] reboot: System halted