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

From DAVE Developer's Wiki
Jump to: navigation, search
(4 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
!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:#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"|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:#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-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"|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
 
  
=== Program the Quad-SPI NOR flash ===
+
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:
 +
* 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 ===
 +
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 ====
 +
* 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 (running on a DAVE Embedded Systems' DVDK VM):
  
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.
+
<pre>
 +
#!/bin/sh
  
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.
+
node=$1
  
Then, boot the board with the microSD card and stop the automatic boot process of U-Boot in order to access the console.
+
# partition size in MB
<pre class="workstation-terminal">
+
RESERVED=8
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
+
BOOT_ROM_SIZE=128
 +
RFS_SIZE=2048
  
CPU:  Zynq 7z030
+
# create the SDCARD partition
Silicon: v3.1
+
part=""
Model: Bora
+
echo ${node} | grep mmcblk > /dev/null
DRAM:  ECC disabled 1 GiB
+
if [ "$?" -eq "0" ]; then
Flash: 0 Bytes
+
        part="p"
NAND:  0 MiB
+
fi
MMC:  mmc@e0100000: 0
 
Loading Environment from FAT... *** Warning - bad CRC, using default environment
 
  
In:    serial@e0001000
+
# print the SD total capacity
Out:  serial@e0001000
+
total_size=`sfdisk -s ${node}`
Err:  serial@e0001000
+
total_size=`expr ${total_size} / 1024`
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+
echo SD total size: ${total_size}KB
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
+
# calculate partition sizes
eth0: ethernet@e000b000
+
boot_start=`expr ${RESERVED} \\* 1024 \\* 1024 / 512`
Hit ENTER within 2 seconds to stop autoboot
+
boot_size=`expr ${BOOT_ROM_SIZE} \\* 1024 \\* 1024 / 512`
Zynq>
+
rfs_start=`expr ${boot_size} + ${boot_start}`
</pre>
+
rfs_size=`expr ${RFS_SIZE} \\* 1024 \\* 1024 / 512`
  
====Programming Quad-SPI NOR flash from microSD====
+
umount ${node}${part}1 > /dev/null 2>&1
 +
umount ${node}${part}2 > /dev/null 2>&1
  
* Initialize and format Quad-SPI NOR flash memory
+
# call sfdisk to create partition table
 +
{ echo ${boot_start},${boot_size},0c,-; echo ${rfs_start},${rfs_size},83,-; } | sfdisk --force ${node}
  
<pre class="workstation-terminal">
+
# format the SDCARD partition
Zynq> sf probe
+
echo "formatting boot"
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+
mkfs.vfat -F 32 -n BOOT  ${node}${part}1
Zynq> sf erase 0 0x1000000
+
echo "formatting rfs"
SF: 16777216 bytes @ 0x0 Erased: OK
+
mkfs.ext4 -F ${node}${part}2 -Lrfs
 
</pre>
 
</pre>
  
* Install <code>BOOT.BIN</code> on Quad-SPI NOR flash memory
+
E.g.
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
Zynq> fatload mmc 0:1 $kernel_addr_r BOOT.BIN
+
vdk@vagrant:~/desk-xz-l$ sudo ./sdcard-partition.sh /dev/sdc
7033004 bytes read in 406 ms (16.5 MiB/s)
+
SD total size: 7580KB
Zynq> sf write $kernel_addr_r 0x0 $filesize
+
Checking that no-one is using this disk right now ... OK
device 0 offset 0x0, size 0x6b50ac
+
 
SF: 7033004 bytes @ 0x0 Written: OK
+
Disk /dev/sdc: 7.41 GiB, 7948206080 bytes, 15523840 sectors
 +
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:
 +
 
 +
Device    Boot Start      End  Sectors  Size Id Type
 +
/dev/sdc1        8192 15523839 15515648  7.4G  b W95 FAT32
 +
 
 +
>>> Created a new DOS disklabel with disk identifier 0x3f242b9b.
 +
/dev/sdc1: Created a new partition 1 of type 'W95 FAT32 (LBA)' and of size 128 MiB.
 +
/dev/sdc2: Created a new partition 2 of type 'Linux' and of size 2 GiB.
 +
Partition #2 contains a ext4 signature.
 +
/dev/sdc3: Done.
 +
 
 +
New situation:
 +
Disklabel type: dos
 +
Disk identifier: 0x3f242b9b
 +
 
 +
Device    Boot  Start    End Sectors  Size Id Type
 +
/dev/sdc1        16384  278527  262144  128M  c W95 FAT32 (LBA)
 +
/dev/sdc2      278528 4472831 4194304    2G 83 Linux
 +
 
 +
The partition table has been altered.
 +
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                           
 +
Writing inode tables: done                           
 +
Creating journal (16384 blocks): done
 +
Writing superblocks and filesystem accounting information: done
 +
 
 +
dvdk@vagrant:~/desk-xz-l$
 
</pre>
 
</pre>
  
* Install <code>image.ub</code> on Quad-SPI NOR flash memory
+
Then, insert the SD card in the target and boot the system via NFS as described in the e [[DESK-XZ7-L/General/Booting_from_NFS|Booting from nfs]] guide
  
<pre class="workstation-terminal">
+
* create a mount point and mount the first partition
Zynq> mw $kernel_addr_r 0x0 $filesize
+
<pre>
Zynq> fatload mmc 0:1 $kernel_addr_r image.ub
+
root@bora:~# mkdir -p /mnt/sd
4868556 bytes read in 287 ms (16.2 MiB/s)
+
root@bora:~# mount /dev/mmcblk0p1 /mnt/sd
Zynq> sf write $kernel_addr_r 0x700000 $filesize
 
device 0 offset 0x700000, size 0x4a49cc
 
SF: 4868556 bytes @ 0x700000 Written: OK
 
 
</pre>
 
</pre>
  
* Install <code>boot.scr</code> on Quad-SPI NOR flash memory
+
* copy boot image files
  
<pre class="workstation-terminal">
+
<pre>
Zynq> mw $kernel_addr_r 0x0 $filesize
+
root@bora:~# cp BOOT.BIN /mnt/sd
Zynq> fatload mmc 0:1 $kernel_addr_r boot.scr
+
root@bora:~# cp image.ub /mnt/sd
2709 bytes read in 14 ms (188.5 KiB/s)
+
root@bora:~# cp boot.scr /mnt/sd
Zynq> sf write $kernel_addr_r 0xFC0000 $filesize
 
device 0 offset 0xfc0000, size 0xa95
 
SF: 2709 bytes @ 0xfc0000 Written: OK
 
 
</pre>
 
</pre>
  
====Programming Quad-SPI NOR flash from ethernet====
+
==== Program root file system into SD card ====
* Initialize and format Quad-SPI NOR flash memory
+
* mount the <code>ext3/ext4</code> volume in the temporary directory
  
<pre class="workstation-terminal">
+
<pre>
Zynq> sf probe
+
root@bora:~# mount /dev/mmcblk0p2 /mnt/ext
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>
 
</pre>
  
* Properly define the ethernet configuration parameter:
+
* now, you can extract the root file system in the target directory
<pre class="workstation-terminal">
 
Zynq> setenv ipaddr 192.168.0.89
 
Zynq> setenv serverip 192.168.0.99
 
</pre>
 
  
* download via TFTP the <code>BOOT.BIN</code> binary image and write <code>BOOT.BIN</code> on Quad-SPI NOR flash memory
+
<pre>
<pre class="workstation-terminal">
+
root@bora:~# tar zxpf images/linux/rootfs.tar.gz -C /mnt/ext
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>
 
</pre>
  
* download via TFTP the <code>image.ub</code> binary image and write <code>image.ub</code> on Quad-SPI NOR flash memory
+
* finally, you need to cleanly umount and safely reboot or turn off the system.
<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>
<pre class="workstation-terminal">
+
root@bora:~# umount /mnt/sd
Zynq> mw $kernel_addr_r 0x0 $filesize
+
root@bora:~# umount /mnt/ext
Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr
+
root@bora:~# reboot
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>
 
</pre>
  
Once change boot mode and restarted, the complete boot log can be like this one:  
+
Once restarted, the complete boot log can be like this one:
 
 
 
<pre class="mw-collapsible mw-collapsed">
 
<pre class="mw-collapsible mw-collapsed">
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
+
U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)
  
CPU:  Zynq 7z030
+
CPU:  Zynq 7z020
 
Silicon: v3.1
 
Silicon: v3.1
Model: Bora
 
 
DRAM:  ECC disabled 1 GiB
 
DRAM:  ECC disabled 1 GiB
 
Flash: 0 Bytes
 
Flash: 0 Bytes
 
NAND:  0 MiB
 
NAND:  0 MiB
 
MMC:  mmc@e0100000: 0
 
MMC:  mmc@e0100000: 0
Loading Environment from SPIFlash... SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+
Loading Environment from FAT... *** Warning - bad CRC, using default environment
*** Warning - bad CRC, using default environment
 
  
 
In:    serial@e0001000
 
In:    serial@e0001000
 
Out:  serial@e0001000
 
Out:  serial@e0001000
 
Err:  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:
 
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
+
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr -1, interface rgmii-id
 
 
Warning: ethernet@e000b000 (eth0) using random MAC address - 7a:68:29:db:0b:f6
 
 
eth0: ethernet@e000b000
 
eth0: ethernet@e000b000
Hit ENTER within 2 seconds to stop autoboot
+
Hit any key to stop autoboot:  0
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+
switch to partitions #0, OK
device 0 offset 0xfc0000, size 0x40000
+
mmc0 is current device
SF: 262144 bytes @ 0xfc0000 Read: OK
+
Scanning mmc 0:1...
QSPI: Trying to boot script at 3000000
+
Found U-Boot script /boot.scr
 +
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
 +
2710 bytes read in 22 ms (120.1 KiB/s)
 
## Executing script at 03000000
 
## Executing script at 03000000
Trying to load boot images from qspi
+
Trying to load boot images from mmc0
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
+
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
device 0 offset 0x700000, size 0x600000
+
4847892 bytes read in 398 ms (11.6 MiB/s)
SF: 6291456 bytes @ 0x700000 Read: OK
 
 
## Loading kernel from FIT Image at 10000000 ...
 
## Loading kernel from FIT Image at 10000000 ...
 
   Using 'conf-system-top.dtb' configuration
 
   Using 'conf-system-top.dtb' configuration
Line 234: Line 208:
 
     Compression:  uncompressed
 
     Compression:  uncompressed
 
     Data Start:  0x100000f8
 
     Data Start:  0x100000f8
     Data Size:    4845944 Bytes = 4.6 MiB
+
     Data Size:    4826176 Bytes = 4.6 MiB
 
     Architecture: ARM
 
     Architecture: ARM
 
     OS:          Linux
 
     OS:          Linux
Line 240: Line 214:
 
     Entry Point:  0x00200000
 
     Entry Point:  0x00200000
 
     Hash algo:    sha256
 
     Hash algo:    sha256
     Hash value:  f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca
+
     Hash value:  e92c329ce6440944a9b8d2c581f9e2f668870af9b90648b321f5b2c996bfb47f
 
   Verifying Hash Integrity ... sha256+ OK
 
   Verifying Hash Integrity ... sha256+ OK
 
## Loading fdt from FIT Image at 10000000 ...
 
## Loading fdt from FIT Image at 10000000 ...
Line 249: Line 223:
 
     Type:        Flat Device Tree
 
     Type:        Flat Device Tree
 
     Compression:  uncompressed
 
     Compression:  uncompressed
     Data Start:  0x1049f37c
+
     Data Start:  0x1049a644
     Data Size:    20716 Bytes = 20.2 KiB
+
     Data Size:    19819 Bytes = 19.4 KiB
 
     Architecture: ARM
 
     Architecture: ARM
 
     Hash algo:    sha256
 
     Hash algo:    sha256
     Hash value:  f93874aa1f1a0c6d52c423e12b25b4a2ae14a09b40a8068a49b4c8914be75e4c
+
     Hash value:  021ac7fe236180abcd9d663112aeadec8c6a8c1be2e31e729504ea585d99ca42
 
   Verifying Hash Integrity ... sha256+ OK
 
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x1049f37c
+
   Booting using the fdt blob at 0x1049a644
 
   Loading Kernel Image
 
   Loading Kernel Image
   Loading Device Tree to 2fff7000, end 2ffff0eb ... OK
+
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
 +
   Loading Device Tree to 2fff8000, end 2ffffd6a ... OK
  
 
Starting kernel ...
 
Starting kernel ...
  
[    0.000000] Booting Linux on physical CPU 0x0
+
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
+
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
+
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
+
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Bora
+
OF: fdt: Machine model: xlnx,zynq-7000
[    0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
+
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
[    0.000000] printk: bootconsole [cdns0] enabled
+
printk: bootconsole [cdns0] enabled
[    0.000000] Memory policy: Data cache writealloc
+
Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x3f000000
+
OF: reserved mem: OVERLAP DETECTED!
[    0.000000] Zone ranges:
+
rproc@3e000000 (0x3e000000--0x3f000000) overlaps with vdev0vring0@3e800000 (0x3e800000--0x3e804000)
[    0.000000]  Normal  [mem 0x0000000000000000-0x000000002fffffff]
+
Reserved memory: created DMA memory pool at 0x3e000000, size 16 MiB
[    0.000000]  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
+
OF: reserved mem: initialized node rproc@3e000000, compatible id shared-dma-pool
[    0.000000] Movable zone start for each node
+
Reserved memory: created DMA memory pool at 0x3e800000, size 0 MiB
[    0.000000] Early memory node ranges
+
OF: reserved mem: initialized node vdev0vring0@3e800000, compatible id shared-dma-pool
[    0.000000]  node  0: [mem 0x0000000000000000-0x000000003fffffff]
+
Reserved memory: created DMA memory pool at 0x3e804000, size 0 MiB
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
+
OF: reserved mem: initialized node vdev0vring1@3e804000, compatible id shared-dma-pool
[    0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536
+
Reserved memory: created DMA memory pool at 0x3e808000, size 1 MiB
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260416
+
OF: reserved mem: initialized node vdev0buffer@3e808000, compatible id shared-dma-pool
[    0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
+
cma: Reserved 16 MiB at 0x3f000000
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
+
Zone ranges:
[   0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
+
  Normal  [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
+
  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
[    0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)
+
Movable zone start for each node
[   0.000000] rcu: Preemptible hierarchical RCU implementation.
+
Early memory node ranges
[    0.000000] rcu:     RCU event tracing is enabled.
+
  node  0: [mem 0x0000000000000000-0x000000003dffffff]
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
+
  node  0: [mem 0x000000003f000000-0x000000003fffffff]
[    0.000000]  Trampoline variant of Tasks RCU enabled.
+
Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
+
percpu: Embedded 15 pages/cpu s32396 r8192 d20852 u61440
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
+
Built 1 zonelists, mobility grouping on. Total pages: 256320
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
+
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
[    0.000000] efuse mapped to (ptrval)
+
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] slcr mapped to (ptrval)
+
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] GIC physical location is 0xf8f01000
+
mem auto-init: stack:off, heap alloc:off, heap free:off
[   0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
+
Memory: 993544K/1032192K available (7168K kernel code, 275K rwdata, 1940K rodata, 1024K init, 162K bss, 22264K reserved, 16384K cma-reserved, 229376K highmem)
[    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
+
rcu: Preemptible hierarchical RCU implementation.
[    0.000000] L2C-310 erratum 769419 enabled
+
rcu:   RCU event tracing is enabled.
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
+
rcu:   RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
+
        Trampoline variant of Tasks RCU enabled.
[    0.000000] L2C-310 ID prefetch enabled, offset 1 lines
+
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
+
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
+
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
+
efuse mapped to (ptrval)
[    0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
+
slcr mapped to (ptrval)
[    0.000000] zynq_clock_init: clkc starts at (ptrval)
+
GIC physical location is 0xf8f01000
[    0.000000] Zynq clock init
+
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
+
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
[    0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
+
L2C-310 erratum 769419 enabled
[    0.016655] Switching to timer-based delay loop, resolution 3ns
+
L2C-310 enabling early BRESP for Cortex-A9
[    0.023169] Console: colour dummy device 80x30
+
L2C-310 full line of zeros enabled for Cortex-A9
[    0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
+
L2C-310 ID prefetch enabled, offset 1 lines
[    0.037305] pid_max: default: 32768 minimum: 301
+
L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
+
L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
+
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
[    0.057754] CPU: Testing write buffer coherency: ok
+
random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
[    0.061529] CPU0: Spectre v2: using BPIALL workaround
+
zynq_clock_init: clkc starts at (ptrval)
[    0.066749] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
+
Zynq clock init
[    0.072812] Setting up static identity map for 0x100000 - 0x100060
+
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
[    0.078378] rcu: Hierarchical SRCU implementation.
+
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
[    0.083352] smp: Bringing up secondary CPUs ...
+
Switching to timer-based delay loop, resolution 3ns
[    0.088388] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
+
Console: colour dummy device 80x30
[    0.088399] CPU1: Spectre v2: using BPIALL workaround
+
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
[    0.098134] smp: Brought up 1 node, 2 CPUs
+
pid_max: default: 32768 minimum: 301
[    0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).
+
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.108358] CPU: All CPU(s) started in SVC mode.
+
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.113587] devtmpfs: initialized
+
CPU: Testing write buffer coherency: ok
[    0.121144] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
+
CPU0: Spectre v2: using BPIALL workaround
[    0.124128] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
+
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.133462] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
+
Setting up static identity map for 0x100000 - 0x100060
[    0.141395] pinctrl core: initialized pinctrl subsystem
+
rcu: Hierarchical SRCU implementation.
[    0.146259] NET: Registered protocol family 16
+
smp: Bringing up secondary CPUs ...
[    0.151964] DMA: preallocated 256 KiB pool for atomic coherent allocations
+
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.157733] thermal_sys: Registered thermal governor 'step_wise'
+
CPU1: Spectre v2: using BPIALL workaround
[    0.158046] cpuidle: using governor ladder
+
smp: Brought up 1 node, 2 CPUs
[    0.166503] cpuidle: using governor menu
+
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
[    0.182919] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
+
CPU: All CPU(s) started in SVC mode.
[    0.185265] hw-breakpoint: maximum watchpoint size is 4 bytes.
+
devtmpfs: initialized
[    0.191178] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
+
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.198318] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
+
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.207234] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
+
futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.221091] printk: console [ttyPS0] enabled
+
pinctrl core: initialized pinctrl subsystem
[    0.221091] printk: console [ttyPS0] enabled
+
NET: Registered protocol family 16
[    0.225396] printk: bootconsole [cdns0] disabled
+
DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.225396] printk: bootconsole [cdns0] disabled
+
thermal_sys: Registered thermal governor 'step_wise'
[    0.249776] vgaarb: loaded
+
cpuidle: using governor menu
[    0.252888] SCSI subsystem initialized
+
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.256896] usbcore: registered new interface driver usbfs
+
hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.262468] usbcore: registered new interface driver hub
+
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
[    0.267875] usbcore: registered new device driver usb
+
e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
[    0.273183] mc: Linux media interface: v0.10
+
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
[    0.277485] videodev: Linux video capture interface: v2.00
+
printk: console [ttyPS0] enabled
[    0.283046] pps_core: LinuxPPS API ver. 1 registered
+
printk: console [ttyPS0] enabled
[    0.288002] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
+
printk: bootconsole [cdns0] disabled
[    0.297158] PTP clock support registered
+
printk: bootconsole [cdns0] disabled
[    0.301145] EDAC MC: Ver: 3.0.0
+
vgaarb: loaded
[    0.304805] FPGA manager framework
+
SCSI subsystem initialized
[    0.308536] Advanced Linux Sound Architecture Driver Initialized.
+
usbcore: registered new interface driver usbfs
[    0.315660] clocksource: Switched to clocksource arm_global_timer
+
usbcore: registered new interface driver hub
[    0.332917] NET: Registered protocol family 2
+
usbcore: registered new device driver usb
[    0.337977] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
+
mc: Linux media interface: v0.10
[    0.346425] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
+
videodev: Linux video capture interface: v2.00
[    0.354267] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
+
pps_core: LinuxPPS API ver. 1 registered
[    0.361542] TCP: Hash tables configured (established 8192 bind 8192)
+
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.368054] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
+
PTP clock support registered
[    0.374750] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
+
EDAC MC: Ver: 3.0.0
[    0.382042] NET: Registered protocol family 1
+
FPGA manager framework
[    0.387083] RPC: Registered named UNIX socket transport module.
+
Advanced Linux Sound Architecture Driver Initialized.
[    0.393034] RPC: Registered udp transport module.
+
clocksource: Switched to clocksource arm_global_timer
[    0.397734] RPC: Registered tcp transport module.
+
NET: Registered protocol family 2
[    0.402441] RPC: Registered tcp NFSv4.1 backchannel transport module.
+
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.408896] PCI: CLS 0 bytes, default 64
+
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
+
TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.421576] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
+
TCP: Hash tables configured (established 8192 bind 8192)
[    0.431150] workingset: timestamp_bits=14 max_order=18 bucket_order=4
+
UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.438734] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
+
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.446129] bounce: pool size: 64 pages
+
NET: Registered protocol family 1
[    0.449974] io scheduler mq-deadline registered
+
RPC: Registered named UNIX socket transport module.
[    0.454520] io scheduler kyber registered
+
RPC: Registered udp transport module.
[    0.458913] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
+
RPC: Registered tcp transport module.
[    0.467704] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
+
RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.474442] dma-pl330 f8003000.dmac:         DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
+
PCI: CLS 0 bytes, default 64
[    0.494238] brd: module loaded
+
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
[    0.504037] loop: module loaded
+
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.511083] random: fast init done
+
workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.614245] random: crng init done
+
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.623641] spi-nor spi0.0: trying to lock already unlocked area
+
bounce: pool size: 64 pages
[    0.629650] spi-nor spi0.0: s25fl128s1 (16384 Kbytes)
+
io scheduler mq-deadline registered
[    0.639922] libphy: Fixed MDIO Bus: probed
+
io scheduler kyber registered
[    0.645716] CAN device driver interface
+
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.652273] libphy: MACB_mii_bus: probed
+
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
[    0.688524] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (7a:68:29:db:0b:f6)
+
dma-pl330 f8003000.dmac:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.698709] e1000e: Intel(R) PRO/1000 Network Driver
+
brd: module loaded
[    0.703668] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
+
loop: module loaded
[    0.710509] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
+
spi_master spi0: cannot find modalias for /axi/spi@e000d000/flash@0
[    0.717037] ehci-pci: EHCI PCI platform driver
+
spi_master spi0: Failed to create SPI device for /axi/spi@e000d000/flash@0
[    0.721607] usbcore: registered new interface driver usb-storage
+
libphy: Fixed MDIO Bus: probed
[    0.728609] ULPI transceiver vendor/product ID 0x0424/0x0006
+
CAN device driver interface
[    0.734267] Found SMSC USB331x ULPI transceiver.
+
libphy: MACB_mii_bus: probed
[    0.738913] ULPI integrity check: passed.
+
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (00:0a:35:00:1e:53)
[    0.745040] i2c /dev entries driver
+
e1000e: Intel(R) PRO/1000 Network Driver
[    0.752088] rtc-ds3232 0-0068: registered as rtc0
+
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.757162] rtc-ds3232 0-0068: setting system clock to 2018-03-09T17:29:17 UTC (1520616557)
+
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.765791] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
+
ehci-pci: EHCI PCI platform driver
[    0.774272] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
+
usbcore: registered new interface driver usb-storage
[    0.781826] EDAC MC: ECC not enabled
+
i2c /dev entries driver
[    0.785972] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz
+
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
[   0.796932] Xilinx Zynq CpuIdle Driver started
+
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
[    0.800410] sdhci: Secure Digital Host Controller Interface driver
+
EDAC MC: ECC not enabled
[    0.803503] sdhci: Copyright(c) Pierre Ossman
+
Xilinx Zynq CpuIdle Driver started
[    0.805718] sdhci-pltfm: SDHCI platform and OF driver helper
+
sdhci: Secure Digital Host Controller Interface driver
[    0.809266] ledtrig-cpu: registered to indicate activity on CPUs
+
sdhci: Copyright(c) Pierre Ossman
[    0.812545] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 1075096770 ns
+
sdhci-pltfm: SDHCI platform and OF driver helper
[    0.817251] timer #0 at dfb516c6, irq=50
+
ledtrig-cpu: registered to indicate activity on CPUs
[    0.819556] usbcore: registered new interface driver usbhid
+
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
[    0.822381] usbhid: USB HID core driver
+
timer #0 at (ptrval), irq=50
[    0.827302] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
+
usbcore: registered new interface driver usbhid
[    0.831575] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
+
usbhid: USB HID core driver
[    0.831977] NET: Registered protocol family 10
+
mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
[    0.838558] Segment Routing with IPv6
+
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
[    0.840631] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
+
NET: Registered protocol family 10
[    0.847540] NET: Registered protocol family 17
+
Segment Routing with IPv6
[    0.852063] can: controller area network core
+
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.856576] NET: Registered protocol family 29
+
NET: Registered protocol family 17
[    0.861071] can: raw protocol
+
can: controller area network core
[    0.864050] can: broadcast manager protocol
+
NET: Registered protocol family 29
[    0.868298] can: netlink gateway - max_hops=1
+
can: raw protocol
[    0.873045] Registering SWP/SWPB emulation handler
+
can: broadcast manager protocol
[    0.880140] of-fpga-region fpga-full: FPGA Region probed
+
can: netlink gateway - max_hops=1
[    0.886112] of_cfs_init
+
Registering SWP/SWPB emulation handler
[    0.888667] of_cfs_init: OK
+
of-fpga-region fpga-full: FPGA Region probed
[    0.891875] ALSA device list:
+
of_cfs_init
[    0.894839]  No soundcards found.
+
of_cfs_init: OK
[    0.898729] Waiting for root device /dev/mmcblk0p2...
+
ALSA device list:
[    1.052324] mmc0: new high speed SDHC card at address aaaa
+
  No soundcards found.
[    1.055781] mmcblk0: mmc0:aaaa SA16G 14.8 GiB
+
Waiting for root device /dev/mmcblk0p2...
[    1.060584] mmcblk0: p1 p2
+
mmc0: new high speed SDHC card at address e624
[    1.086701] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
+
mmcblk0: mmc0:e624 SU08G 7.40 GiB
[    1.090810] VFS: Mounted root (ext4 filesystem) on device 179:2.
+
  mmcblk0: p1 p2
[    1.094724] devtmpfs: mounted
+
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.099892] Freeing unused kernel memory: 1024K
+
VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.136017] Run /sbin/init as init process
+
devtmpfs: mounted
 +
Freeing unused kernel memory: 1024K
 +
Run /sbin/init as init process
 
INIT: version 2.97 booting
 
INIT: version 2.97 booting
[    1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
+
random: fast init done
 
Starting udev
 
Starting udev
[    1.712872] udevd[82]: starting version 3.2.9
+
udevd[79]: starting version 3.2.9
[    1.763498] udevd[83]: starting eudev-3.2.9
+
random: udevd: uninitialized urandom read (16 bytes read)
[    2.244862] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
+
random: udevd: uninitialized urandom read (16 bytes read)
 +
random: udevd: uninitialized urandom read (16 bytes read)
 +
udevd[80]: starting eudev-3.2.9
 +
remoteproc remoteproc0: remoteproc@0 is available
 +
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
 +
bootlogd: /dev/ttyPS0hwclock: Cannot access the Hardware Clock via any known method.
 +
hwclock: Use the --verbose option to see the details of our search for an access method.
 +
Fri Mar  9 12:34:56 UTC 2018
 +
hwclock: Cannot access the Hardware Clock via any known method.
 +
hwclock: Use the --verbose option to see the details of our search for an access method.
 +
Configuring packages on first boot....
 +
(This may take several minutes. Please do not power off the machine.)
 +
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
 +
Running postinst /etc/rpm-postinsts/101-postfix-cfg...
 +
newaliases: fatal: could not find any active network interfaces
 +
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
 
INIT: Entering runlevel: 5
Configuring network interfaces... done.
+
Configuring network interfaces... udhcpc: started, v1.32.0
 +
udhcpc: sending discover
 +
udhcpc: sending discover
 +
udhcpc: sending discover
 +
udhcpc: no lease, forking to background
 +
done.
 
Starting system message bus: dbus.
 
Starting system message bus: dbus.
 
Starting haveged: haveged: command socket is listening at fd 3
 
Starting haveged: haveged: command socket is listening at fd 3
Line 454: Line 453:
  
  
Starting Dropbear SSH server: dropbear.
+
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 8.00147
 +
 
 +
haveged: haveged: fills: 0, generated: 0
 +
 
 +
Generating 2048 bit rsa key, this may take a while...
 +
Public key portion is:
 +
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUVSSH5GBRYKSqp/IabWPY1YjhUafEjPgQ3z5jeMumYluG9SVENoI2GzLZrfCFJyA0WRDCk+oTjBnrEHEKGChX/srqIvlM9P36/qOlP9/kY6gvpPWeawFQ1srgLX12rtqnE0oxy/eDo8a+IjUIyBz4zrTdtpZ88mT32e0Egiy1XuSUCWdfVy+cEjFLEVWojAUPW/AcxiyNZrjmPR2YGNSH9/Y8LgH6WZj5/2g68tOH6hrW+qpdO8T8jTCoG/5OBuYWUzGlOPk058CABHmcFmDoiH0wKInoVMyNiPZCotNF9+QpArSosTHAUlUwHZ4fzxbV57K3gBt8co6FKLAfO/mP root@bora
 +
Fingerprint: sha1!! 62:38:60:ea:fb:84:ea:71:b1:3f:a5:e4:14:96:eb:26:e3:35:ef:fd
 +
dropbear.
 
Starting rpcbind daemon...done.
 
Starting rpcbind daemon...done.
 
starting statd: done
 
starting statd: done
 
Starting atd: OK
 
Starting atd: OK
 +
starting DNS forwarder and DHCP server: dnsmasq... done.
 +
hwclock: Cannot access the Hardware Clock via any known method.
 +
hwclock: Use the --verbose option to see the details of our search for an access method.
 
Starting internet superserver: inetd.
 
Starting internet superserver: inetd.
 
NFS daemon support not enabled in kernel
 
NFS daemon support not enabled in kernel
 +
Starting ntpd: done
 
Starting system log daemon...0
 
Starting system log daemon...0
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
+
Mar  9 12:35:16 bora kernel: OF: reserved mem: OVERLAP DETECTED!
Mar  9 17:29:22 borax kernel: [    0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
+
Mar  9 12:35:16 bora kernel: rproc@3e000000 (0x3e000000--0x3f000000) overlaps with vdev0vring0@3e800000 (0x3e800000--0x3e804000)
Mar  9 17:29:22 borax kernel: [    0.413390] hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
+
Mar  9 12:35:16 bora kernel: L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 17:29:22 borax kernel: [    0.623641] spi-nor spi0.0: trying to lock already unlocked area
+
Mar  9 12:35:16 bora kernel: L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
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.
+
Mar  9 12:35:16 bora kernel: hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
 +
Mar  9 12:35:16 bora kernel: spi_master spi0: cannot find modalias for /axi/spi@e000d000/flash@0
 +
Mar  9 12:35:16 bora kernel: spi_master spi0: Failed to create SPI device for /axi/spi@e000d000/flash@0
 +
Mar  9 12:35:16 bora kernel: urandom_read: 2 callbacks suppressed
 
Starting internet superserver: xinetd.
 
Starting internet superserver: xinetd.
 +
Starting Postfix...Creating aliases database ...
 +
postfix/postfix-script: starting the Postfix mail system
 +
Successful
 +
Starting Lighttpd Web Server: lighttpd.
 +
* starting FTP Server: vsftpd... done.
 
Starting crond: OK
 
Starting crond: OK
 
Starting tcf-agent: OK
 
Starting tcf-agent: OK
  
PetaLinux 2021.2 borax ttyPS0
+
PetaLinux 2021.2 bora ttyPS0
  
  
root@borax:~# uname -a
+
root@bora:~#
Linux borax 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linux
+
</pre>
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):
+
=== Program boot images into internal storage ===
 +
==== Program the NOR flash ====
 +
=====BOOT.BIN=====
 +
Update to the latest <code>BOOT.BIN</code> version: in the following example, the binary file is loaded from the ''tftp server'':
  
The system is going down for system halt NOW!
+
<pre class="workstation-terminal">
INIT: Sending processes configured via /etc/inittab the TERM signal
+
Zynq> setenv boot_addr_r 0x1000000
Stopping haveged:
+
Zynq> tftpboot ${boot_addr_r} desk-xz7/BOOT.BIN
 
+
Using ethernet@e000b000 device
Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 217)
+
TFTP from server 192.168.0.23; our IP address is 192.168.0.90
dropbear.
+
Filename 'desk-xz7/BOOT.BIN'.
Stopping atd: OK
+
Load address: 0x1000000
Stopping system message bus: dbus.
+
Loading: #################################################################
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
+
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #####################################
 +
        1.9 MiB/s
 +
done
 +
Bytes transferred = 22149396 (151f914 hex)
 
</pre>
 
</pre>
  
=== Program the NAND flash ===
+
then erase and program the <code>BOOT.BIN</code> binary image:
  
This chapter is compatible with [[BORA Lite SOM | BORA Lite]] SOM.
+
<pre class="workstation-terminal">
 +
Zynq> sf probe; sf erase 0 2000000
 +
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
 +
SF: 33554432 bytes @ 0x0 Erased: OK
 +
Zynq> sf write ${boot_addr_r} 0 ${filesize}
 +
device 0 offset 0x0, size 0x151f914
 +
SF: 22149396 bytes @ 0x0 Written: OK
 +
Zynq>
 +
</pre>
  
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.
+
=====fit image =====
 +
* program the FIT image on NOR flash with the following U-Boot commands:
  
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.  
+
<pre class="workstation-terminal">
 
+
Zynq> tftpboot ${kernel_addr_r} ${serverip}:desk-xz7/image.ub
Then, install the following files into the microSD first partition:
+
Using ethernet@e000b000 device
 
+
TFTP from server 192.168.0.23; our IP address is 192.168.0.90
* <code>BOOT.BIN</code>. This binary come from to <code>config_boralite_nand_usd</code> configuration file, and need to install on microSD
+
Filename 'desk-xz7/image.ub'.
* <code>boot.scr</code>
+
Load address: 0x2000000
* <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
+
Loading: #################################################################
* <code>desk-xz7-l-1.0.1_boralite_nand_dave-image-devel-zynq-generic.tar.gz</code>
+
        #################################################################
* <code>image.ub</code>
+
        #################################################################
 
+
        #################################################################
==== Programming NAND flash from microSD ====
+
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #################################################################
 +
        #####################################
 +
        670.9 KiB/s
 +
done
 +
Bytes transferred = 4847892 (49f914 hex)
 +
Zynq>
 +
</pre>
  
* delete all partition on NAND flash memory
+
* then erase and program the <code>image-ub</code> FIT image in NOR:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@boralite:~# for i in $(seq 0 2); do flash_erase /dev/mtd$i 0 0; done
+
Zynq> sf probe; sf erase 1800000 800000; sf write ${kernel_addr_r} 1800000  ${filesize}
Erasing 128 Kibyte @ 15e0000 -- 100 % complete
+
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
Erasing 128 Kibyte @ 20000 -- 100 % complete
+
device 0 offset 0x1000000, size 0x49f914
Erasing 128 Kibyte @ 1bde0000 -- 100 % complete
+
SF: 4847892 bytes @ 0x1000000 Written: OK
 +
Zynq>
 
</pre>
 
</pre>
  
* install <code>BOOT.BIN</code> on NAND flash memory
+
* configure U-Boot to apply the new configuration:
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@boralite:~# nandwrite -p /dev/mtd0 /boot/desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED
+
Zynq> setenv spi_nand 'sf probe; sf read ${kernel_addr_r} 1800000 800000; bootm ${kernel_addr_r}'
Writing data to block 0 at offset 0x0
+
Zynq> setenv bootcmd 'run spi_nand'
Writing data to block 1 at offset 0x20000
+
Zynq> saveenv
...
 
Writing data to block 168 at offset 0x1500000
 
Writing data to block 169 at offset 0x1520000
 
 
</pre>
 
</pre>
  
* install <code>dave-image-devel-zynq-generic.tar.gz</code> rootfs on NAND flash memory
+
==== Program root file system into NAND flash ====
 +
* boot the system via NFS as described in the e [[DESK-XZ7-L/General/Booting_from_NFS|Booting from nfs]] guide
 +
* the NAND is partitioned following the <code>/proc/mtd</code> scheme (the partition's name should be self-explanatory). See the [[Memory Tecnology Device (MTD)|MTD]] for more information on MTD layer.
  
 
<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>
  
Once change boot mode and restarted, the complete boot log can be like this one:
+
{{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}}
  
<pre class="mw-collapsible mw-collapsed">
+
* format and initialize ''nand-ubi'' partition, which in our case is <code>mtd0</code>, using [[Memory Tecnology Device (MTD)#UBI|UBI]] with:
U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
+
<pre>
 +
ubiformat /dev/mtd0
 +
ubiattach -m 0
 +
ubimkvol /dev/ubi0 -N rootfs -m
 +
</pre>
  
CPU:  Zynq 7z020
+
E.g.
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
+
<pre class="workstation-terminal">
Out:  serial@e0001000
+
root@bora:~# ubiformat /dev/mtd0
Err:  serial@e0001000
+
</pre>
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
+
* mount the UBI volume using [[Memory Tecnology Device (MTD)#UBIFS|UBIFS]] in a temporary directory
eth0: ethernet@e000b000
 
Hit ENTER within 2 seconds to stop autoboot
 
  
Device 0: nand0, sector size 128 KiB
+
<pre>
  Page size      2048 b
+
mkdir -p /mnt/nand
  OOB size          64 b
+
mount -t ubifs ubi0_0 /mnt/nand
  Erase size    131072 b
+
</pre>
  subpagesize      512 b
 
  options    0x40004000
 
  bbt options 0x00020000
 
  
NAND read: device 0 offset 0xfc0000, size 0x40000
+
* you can now extract the root file system into that directory
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
+
<pre>
  Page size      2048 b
+
tar zxpf images/linux/rootfs.tar.gz -C /mnt/nand
  OOB size          64 b
+
</pre>
  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 ...
+
* finally, you need to cleanly umount and detach the MTD partition
  
[    0.000000] Booting Linux on physical CPU 0x0
+
<pre>
[    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
+
umount /mnt/nand/
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
+
ubidetach -m
[    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 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
+
You can now safely reboot or turn off the system.
  
haveged: haveged: fills: 0, generated: 0
+
In U-Boot environment check the following variable, which must contain the same MTD partition number used above
  
Generating 2048 bit rsa key, this may take a while...
+
<pre>
Public key portion is:
+
nand_args=setenv bootargs root=ubi0:rootfs rootfstype=ubifs rw ubi.mtd=0
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
 
 
</pre>
 
</pre>
  
<section end=Body/>
+
----
  
[[Category:BORA]] [[Category:BORA Xpress]][[Category:BORA Lite]]
+
[[Category:BORA]]

Revision as of 08:28, 20 September 2023

History
Issue Date Notes
2022/11/22 DESK-XZ7-L-1.0.0-rc1 release


Standalone boot[edit | edit source]

Introduction[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 or an NFS server, with three options:

  • 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[edit | edit source]

The SD card should have at least 2 partition:

  • the first must be an FAT32 partition (type b) with size of at least 64MB
  • the second is a normal linux partition (type 83) of at least 512M with ext3/ext4 filesystem

Create the SD card partitions[edit | edit source]

  • SD device has to be partitioned and properly formatted choosing the file system for each partition
  • an example of SD partitioning script is the following one (running on a DAVE Embedded Systems' DVDK VM):
#!/bin/sh

node=$1

# partition size in MB
RESERVED=8
BOOT_ROM_SIZE=128
RFS_SIZE=2048

# create the SDCARD partition
part=""
echo ${node} | grep mmcblk > /dev/null
if [ "$?" -eq "0" ]; then
        part="p"
fi

# print the SD total capacity
total_size=`sfdisk -s ${node}`
total_size=`expr ${total_size} / 1024`
echo SD total size: ${total_size}KB

# calculate partition sizes
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
umount ${node}${part}2 > /dev/null 2>&1

# call sfdisk to create partition table
{ echo ${boot_start},${boot_size},0c,-; echo ${rfs_start},${rfs_size},83,-; } | sfdisk --force ${node}

# format the SDCARD partition
echo "formatting boot"
mkfs.vfat -F 32 -n BOOT  ${node}${part}1
echo "formatting rfs"
mkfs.ext4 -F ${node}${part}2 -Lrfs

E.g.

vdk@vagrant:~/desk-xz-l$ sudo ./sdcard-partition.sh /dev/sdc
SD total size: 7580KB
Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 7.41 GiB, 7948206080 bytes, 15523840 sectors
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:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdc1        8192 15523839 15515648  7.4G  b W95 FAT32

>>> Created a new DOS disklabel with disk identifier 0x3f242b9b.
/dev/sdc1: Created a new partition 1 of type 'W95 FAT32 (LBA)' and of size 128 MiB.
/dev/sdc2: Created a new partition 2 of type 'Linux' and of size 2 GiB.
Partition #2 contains a ext4 signature.
/dev/sdc3: Done.

New situation:
Disklabel type: dos
Disk identifier: 0x3f242b9b

Device     Boot  Start     End Sectors  Size Id Type
/dev/sdc1        16384  278527  262144  128M  c W95 FAT32 (LBA)
/dev/sdc2       278528 4472831 4194304    2G 83 Linux

The partition table has been altered.
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                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

dvdk@vagrant:~/desk-xz-l$ 

Then, insert the SD card in the target and boot the system via NFS as described in the e Booting from nfs guide

  • create a mount point and mount the first partition
root@bora:~# mkdir -p /mnt/sd
root@bora:~# mount /dev/mmcblk0p1 /mnt/sd
  • copy boot image files
root@bora:~# cp BOOT.BIN /mnt/sd
root@bora:~# cp image.ub /mnt/sd
root@bora:~# cp boot.scr /mnt/sd

Program root file system into SD card[edit | edit source]

  • mount the ext3/ext4 volume in the temporary directory
root@bora:~# mount /dev/mmcblk0p2 /mnt/ext
  • now, you can extract the root file system in the target directory
root@bora:~# tar zxpf images/linux/rootfs.tar.gz -C /mnt/ext
  • finally, you need to cleanly umount and safely reboot or turn off the system.
root@bora:~# umount /mnt/sd
root@bora:~# umount /mnt/ext
root@bora:~# reboot

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

U-Boot 2021.01 (Oct 12 2021 - 09:28:42 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
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
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr -1, interface rgmii-id
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
2710 bytes read in 22 ms (120.1 KiB/s)
## Executing script at 03000000
Trying to load boot images from mmc0
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
4847892 bytes read in 398 ms (11.6 MiB/s)
## 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:    4826176 Bytes = 4.6 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   e92c329ce6440944a9b8d2c581f9e2f668870af9b90648b321f5b2c996bfb47f
   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:   0x1049a644
     Data Size:    19819 Bytes = 19.4 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   021ac7fe236180abcd9d663112aeadec8c6a8c1be2e31e729504ea585d99ca42
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x1049a644
   Loading Kernel Image
ERROR: reserving fdt memory region failed (addr=3e000000 size=1000000)
   Loading Device Tree to 2fff8000, end 2ffffd6a ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
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
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: xlnx,zynq-7000
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
printk: bootconsole [cdns0] enabled
Memory policy: Data cache writealloc
OF: reserved mem: OVERLAP DETECTED!
rproc@3e000000 (0x3e000000--0x3f000000) overlaps with vdev0vring0@3e800000 (0x3e800000--0x3e804000)
Reserved memory: created DMA memory pool at 0x3e000000, size 16 MiB
OF: reserved mem: initialized node rproc@3e000000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x3e800000, size 0 MiB
OF: reserved mem: initialized node vdev0vring0@3e800000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x3e804000, size 0 MiB
OF: reserved mem: initialized node vdev0vring1@3e804000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x3e808000, size 1 MiB
OF: reserved mem: initialized node vdev0buffer@3e808000, compatible id shared-dma-pool
cma: Reserved 16 MiB at 0x3f000000
Zone ranges:
  Normal   [mem 0x0000000000000000-0x000000002fffffff]
  HighMem  [mem 0x0000000030000000-0x000000003fffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000000000-0x000000003dffffff]
  node   0: [mem 0x000000003f000000-0x000000003fffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
percpu: Embedded 15 pages/cpu s32396 r8192 d20852 u61440
Built 1 zonelists, mobility grouping on.  Total pages: 256320
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 993544K/1032192K available (7168K kernel code, 275K rwdata, 1940K rodata, 1024K init, 162K bss, 22264K reserved, 16384K cma-reserved, 229376K highmem)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU event tracing is enabled.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Trampoline variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to (ptrval)
slcr mapped to (ptrval)
GIC physical location is 0xf8f01000
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0
zynq_clock_init: clkc starts at (ptrval)
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
rcu: Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
CPU1: Spectre v2: using BPIALL workaround
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes, linear)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
thermal_sys: Registered thermal governor 'step_wise'
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps
printk: console [ttyPS0] enabled
printk: console [ttyPS0] enabled
printk: bootconsole [cdns0] disabled
printk: bootconsole [cdns0] disabled
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
mc: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
FPGA manager framework
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 64
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
workingset: timestamp_bits=14 max_order=18 bucket_order=4
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
bounce: pool size: 64 pages
io scheduler mq-deadline registered
io scheduler kyber registered
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
brd: module loaded
loop: module loaded
spi_master spi0: cannot find modalias for /axi/spi@e000d000/flash@0
spi_master spi0: Failed to create SPI device for /axi/spi@e000d000/flash@0
libphy: Fixed MDIO Bus: probed
CAN device driver interface
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (00:0a:35:00:1e:53)
e1000e: Intel(R) PRO/1000 Network Driver
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
ledtrig-cpu: registered to indicate activity on CPUs
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at (ptrval), irq=50
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core
NET: Registered protocol family 29
can: raw protocol
can: broadcast manager protocol
can: netlink gateway - max_hops=1
Registering SWP/SWPB emulation handler
of-fpga-region fpga-full: FPGA Region probed
of_cfs_init
of_cfs_init: OK
ALSA device list:
  No soundcards found.
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed SDHC card at address e624
mmcblk0: mmc0:e624 SU08G 7.40 GiB
 mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
Run /sbin/init as init process
INIT: version 2.97 booting
random: fast init done
Starting udev
udevd[79]: starting version 3.2.9
random: udevd: uninitialized urandom read (16 bytes read)
random: udevd: uninitialized urandom read (16 bytes read)
random: udevd: uninitialized urandom read (16 bytes read)
udevd[80]: starting eudev-3.2.9
remoteproc remoteproc0: remoteproc@0 is available
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
bootlogd: /dev/ttyPS0hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
Fri Mar  9 12:34:56 UTC 2018
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
Configuring packages on first boot....
 (This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
Running postinst /etc/rpm-postinsts/101-postfix-cfg...
newaliases: fatal: could not find any active network interfaces
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... udhcpc: started, v1.32.0
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, forking to background
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 8.00147

haveged: haveged: fills: 0, generated: 0

Generating 2048 bit rsa key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUVSSH5GBRYKSqp/IabWPY1YjhUafEjPgQ3z5jeMumYluG9SVENoI2GzLZrfCFJyA0WRDCk+oTjBnrEHEKGChX/srqIvlM9P36/qOlP9/kY6gvpPWeawFQ1srgLX12rtqnE0oxy/eDo8a+IjUIyBz4zrTdtpZ88mT32e0Egiy1XuSUCWdfVy+cEjFLEVWojAUPW/AcxiyNZrjmPR2YGNSH9/Y8LgH6WZj5/2g68tOH6hrW+qpdO8T8jTCoG/5OBuYWUzGlOPk058CABHmcFmDoiH0wKInoVMyNiPZCotNF9+QpArSosTHAUlUwHZ4fzxbV57K3gBt8co6FKLAfO/mP root@bora
Fingerprint: sha1!! 62:38:60:ea:fb:84:ea:71:b1:3f:a5:e4:14:96:eb:26:e3:35:ef:fd
dropbear.
Starting rpcbind daemon...done.
starting statd: done
Starting atd: OK
starting DNS forwarder and DHCP server: dnsmasq... done.
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
Starting internet superserver: inetd.
NFS daemon support not enabled in kernel
Starting ntpd: done
Starting system log daemon...0
Mar  9 12:35:16 bora kernel: OF: reserved mem: OVERLAP DETECTED!
Mar  9 12:35:16 bora kernel: rproc@3e000000 (0x3e000000--0x3f000000) overlaps with vdev0vring0@3e800000 (0x3e800000--0x3e804000)
Mar  9 12:35:16 bora kernel: L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 12:35:16 bora kernel: L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
Mar  9 12:35:16 bora kernel: hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
Mar  9 12:35:16 bora kernel: spi_master spi0: cannot find modalias for /axi/spi@e000d000/flash@0
Mar  9 12:35:16 bora kernel: spi_master spi0: Failed to create SPI device for /axi/spi@e000d000/flash@0
Mar  9 12:35:16 bora kernel: urandom_read: 2 callbacks suppressed
Starting internet superserver: xinetd.
Starting Postfix...Creating aliases database ...
postfix/postfix-script: starting the Postfix mail system
 Successful
Starting Lighttpd Web Server: lighttpd.
* starting FTP Server: vsftpd... done.
Starting crond: OK
Starting tcf-agent: OK

PetaLinux 2021.2 bora ttyPS0


root@bora:~#

Program boot images into internal storage[edit | edit source]

Program the NOR flash[edit | edit source]

BOOT.BIN[edit | edit source]

Update to the latest BOOT.BIN version: in the following example, the binary file is loaded from the tftp server:

Zynq> setenv boot_addr_r 0x1000000
Zynq> tftpboot ${boot_addr_r} desk-xz7/BOOT.BIN
Using ethernet@e000b000 device
TFTP from server 192.168.0.23; our IP address is 192.168.0.90
Filename 'desk-xz7/BOOT.BIN'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #####################################
         1.9 MiB/s
done
Bytes transferred = 22149396 (151f914 hex)

then erase and program the BOOT.BIN binary image:

Zynq> sf probe; sf erase 0 2000000
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
SF: 33554432 bytes @ 0x0 Erased: OK
Zynq> sf write ${boot_addr_r} 0 ${filesize}
device 0 offset 0x0, size 0x151f914
SF: 22149396 bytes @ 0x0 Written: OK
Zynq>
fit image[edit | edit source]
  • program the FIT image on NOR flash with the following U-Boot commands:
Zynq> tftpboot ${kernel_addr_r} ${serverip}:desk-xz7/image.ub
Using ethernet@e000b000 device
TFTP from server 192.168.0.23; our IP address is 192.168.0.90
Filename 'desk-xz7/image.ub'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #####################################
         670.9 KiB/s
done
Bytes transferred = 4847892 (49f914 hex)
Zynq>
  • then erase and program the image-ub FIT image in NOR:
Zynq> sf probe; sf erase 1800000 800000; sf write ${kernel_addr_r} 1800000  ${filesize}
SF: Detected s25fl256s1 with page size 256 Bytes, erase size 64 KiB, total 32 MiB
device 0 offset 0x1000000, size 0x49f914
SF: 4847892 bytes @ 0x1000000 Written: OK
Zynq>
  • configure U-Boot to apply the new configuration:
Zynq> setenv spi_nand 'sf probe; sf read ${kernel_addr_r} 1800000 800000; bootm ${kernel_addr_r}'
Zynq> setenv bootcmd 'run spi_nand'
Zynq> saveenv

Program root file system into NAND flash[edit | edit source]

  • boot the system via NFS as described in the e Booting from nfs guide
  • the NAND is partitioned following the /proc/mtd scheme (the partition's name should be self-explanatory). See the MTD for more information on MTD layer.


200px-Emblem-important.svg.png

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 /proc/mtd to match your specific layout

  • format and initialize nand-ubi partition, which in our case is mtd0, using UBI with:
ubiformat /dev/mtd0
ubiattach -m 0
ubimkvol /dev/ubi0 -N rootfs -m

E.g.

root@bora:~# ubiformat /dev/mtd0
  • mount the UBI volume using UBIFS in a temporary directory
mkdir -p /mnt/nand
mount -t ubifs ubi0_0 /mnt/nand
  • you can now extract the root file system into that directory
tar zxpf images/linux/rootfs.tar.gz -C /mnt/nand
  • finally, you need to cleanly umount and detach the MTD partition
umount /mnt/nand/
ubidetach -m 

You can now safely reboot or turn off the system.

In U-Boot environment check the following variable, which must contain the same MTD partition number used above

nand_args=setenv bootargs root=ubi0:rootfs rootfstype=ubifs rw ubi.mtd=0