Open main menu

DAVE Developer's Wiki β

Changes

DESK-XZ7-L/Deployment/Standalone boot

43,758 bytes added, 26 January
no edit summary
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|ID#
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
|-
!|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededededf8fb; padding:5px; color:#000000"|{{oldid|17xxx17164|17xxx2022/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"|Q1 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.0 1 release
|-
|}
<section end=History/>
__FORCETOC__
<section begin=Body/>
==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.
{{ImportantMessage|text=The following programming examples are intended for <b>laboratory usage</b> or for ''preliminary deployment strategy''.<br><br>A complete deployment strategy has to be carefully identifiyed taking into account the overall arguments like: boot speed, safe boot, recovery mechanisms, watchdog supervisor, etc.}}
We'll explain how to program and configure a <code>SOM</code> to boot in standalone mode, without the need for a system microSD card, with the following option:
* booting with Quad-SPI NOR
** in this configuration the primary boot images will be fetched from Quad-SPI NOR flash storage, while the root file system will be fetched from microSD
* booting with NAND
** in this configuration the primary boot images and rootfs will be fetched from NAND flash storage
We'll explain how to program and configure a <SOM> to boot in standalone mode, without === Program 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 Quad-SPI 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>) This chapter is compatible with size of at least 64MB* the second [[BORA SOM | BORA]], [[BORA Xpress SOM | BORA Xpress]] and [[BORA Lite SOM | BORA Lite]] platforms, but below there is a normal linux partition (type <code>83</code>) of at least 512M with ext3/ext4 filesystemlog for BORA Xpress SOM.
==== Create the SD First of all, create a bootable microSD card partitions ====* SD device has to be partitioned 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 properly formatted choosing the install it on microSD or into <code>file systemtftpboot</code> for each partition* an example of SD partitioning script is the following one:directory in your host device.
Then, boot the board with the microSD card and stop the automatic boot process of U-Boot in order to access the console.<preclass="workstation-terminal">#!/bin/shU-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000)
node=$CPU: Zynq 7z030Silicon: v3.1Model: BoraDRAM: ECC disabled 1 GiBFlash: 0 BytesNAND: 0 MiBMMC: mmc@e0100000: 0Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial@e0001000Out: serial@e0001000Err: serial@e0001000SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBSOM ConfigID# partition : 00000004SOM UniqueID#: 2a0e92c4:03193a4bCB ConfigID#: ffffffffCB UniqueID#: ffffffff:ffffffffSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBWarning: MAC addr not found in MBRESERVED=SPI NOR at block 8BOOT_ROM_SIZE=128Net:RFS_SIZE=2048ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
# create the SDCARD partitionWarning: ethernet@e000b000 (eth0) using random MAC address - 72:2c:e1:44:08:28part=""eth0: ethernet@e000b000echo ${node} | grep mmcblk Hit ENTER within 2 seconds to stop autobootZynq> </dev/nullif [ "$?" -eq "0" ]; then part="p"fipre>
# print the SD total capacitytotal_size=`sfdisk ===Programming Quad-s ${node}`total_sizeSPI NOR flash from microSD====`expr ${total_size} / 1024`echo SD total size: ${total_size}KB
# calculate partition sizesboot_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`Initialize and format Quad-SPI NOR flash memory
umount ${node}${part}1 <pre class="workstation-terminal"> /dev/null 2Zynq>&1sf probeumount ${node}${part}2 SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBZynq> sf erase 0 0x1000000SF: 16777216 bytes @ 0x0 Erased: OK</dev/null 2pre>&1
# call sfdisk to create partition table{ echo ${boot_start},${boot_size},0c,* Install <code>BOOT.BIN</code> on Quad-; echo ${rfs_start},${rfs_size},83,-; } | sfdisk --force ${node}SPI NOR flash memory
# format the SDCARD partitionecho <pre class="formatting bootworkstation-terminal">Zynq> fatload mmc 0:1 $kernel_addr_r BOOT.BINmkfs7033004 bytes read in 406 ms (16.vfat -F 32 -n BOOT 5 MiB/s)Zynq> sf write ${node}kernel_addr_r 0x0 ${part}1filesizeecho "formatting rfs"device 0 offset 0x0, size 0x6b50acmkfs.ext4 -F ${node}${part}2 -LrfsSF: 7033004 bytes @ 0x0 Written: OK
</pre>
E.g* Install <code>image.ub</code> on Quad-SPI NOR flash memory
<pre class="workstation-terminal">
vdk@vagrantZynq> mw $kernel_addr_r 0x0 $filesizeZynq> fatload mmc 0:~/desk-xz-l1 $ sudo kernel_addr_r image./sdcard-partitionub4868556 bytes read in 287 ms (16.sh 2 MiB/dev/sdcs)Zynq> sf write $kernel_addr_r 0x700000 $filesizeSD total device 0 offset 0x700000, size0x4a49ccSF: 7580KB4868556 bytes @ 0x700000 Written: OKChecking that no-one is using this disk right now ... OK</pre>
Disk /dev/sdc: 7* Install <code>boot.41 GiB, 7948206080 bytes, 15523840 sectorsDisk model: STORAGE DEVICE Units: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes scr</ 512 bytesDisklabel type: dosDisk identifier: 0xd775a452code> on Quad-SPI NOR flash memory
Old situation<pre class="workstation-terminal">Zynq> mw $kernel_addr_r 0x0 $filesizeZynq> fatload mmc 0:1 $kernel_addr_r boot.scr2709 bytes read in 14 ms (188.5 KiB/s)Zynq> sf write $kernel_addr_r 0xFC0000 $filesizedevice 0 offset 0xfc0000, size 0xa95SF: 2709 bytes @ 0xfc0000 Written: OK</pre>
Device Boot Start End Sectors Size Id Type====Programming Quad-SPI NOR flash from ethernet====/dev/sdc1 8192 15523839 15515648 7.4G b W95 FAT32* Initialize and format Quad-SPI NOR flash memory
<pre class="workstation-terminal">Zynq>> Created a new DOS disklabel with disk identifier 0x3f242b9b.sf probe/dev/sdc1SF: Created a new partition 1 of type 'W95 FAT32 (LBA)' and of Detected s25fl128s with page size 256 Bytes, erase size 128 64 KiB, total 16 MiB./dev/sdc2Zynq> sf erase 0 0x1000000SF: 16777216 bytes @ 0x0 Erased: Created a new partition 2 of type 'Linux' and of size 2 GiB.Partition #2 contains a ext4 signature.OK</dev/sdc3: Done.pre>
New situation* Properly define the ethernet configuration parameter:Disklabel type: dos<pre class="workstation-terminal">Zynq> setenv ipaddr 192.168.0.89Zynq> setenv serverip 192.168.0.99Disk identifier: 0x3f242b9b</pre>
Device Boot Start End Sectors Size Id Type* download via TFTP the <code>BOOT.BIN</code> binary image and write <code>BOOT.BIN</code> on Quad-SPI NOR flash memory<pre class="workstation-terminal">Zynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BINUsing ethernet@e000b000 deviceTFTP from server 192.168.0.99; our IP address is 192.168.0.89Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_BOOT.BIN'.Load address: 0x2000000Loading: #T ################################################################ ################################################################# ... ################################################################# ######### 444.3 KiB/sdoneBytes transferred = 7033004 (6b50ac hex)Zynq> sf write $kernel_addr_r 0x0 $filesizedevice 0 offset 0x0, size 0x6b50acSF: 7033004 bytes @ 0x0 Written: OK</pre> * download via TFTP the <code>image.ub</code> binary image and write <code>image.ub</code> on Quad-SPI NOR flash memory<pre class="workstation-terminal">Zynq> mw $kernel_addr_r 0x0 $filesizeZynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_image.ubUsing ethernet@e000b000 deviceTFTP from server 192.168.0.99; our IP address is 192.168.0.89Filename 'desk-xz7-l/devdesk-xz7-l-1.0.1_borax_image.ub'.Load address: 0x2000000Loading: #T ################################################################ ################################################################# ... ################################################################# ######################################### 394.5 KiB/sdc1 16384 278527 262144 128M c W95 FAT32 sdoneBytes transferred = 4868556 (LBA4a49cc hex)Zynq> sf write $kernel_addr_r 0x700000 $filesizedevice 0 offset 0x700000, size 0x4a49ccSF: 4868556 bytes @ 0x700000 Written: OK</pre> * download via TFTP the <code>boot.scr</code> binary image and write <code>boot.scr</code> on Quad-SPI NOR flash memory<pre class="workstation-terminal">Zynq> mw $kernel_addr_r 0x0 $filesizeZynq> tftpboot $kernel_addr_r desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scrUsing ethernet@e000b000 deviceTFTP from server 192.168.0.99; our IP address is 192.168.0.89Filename 'desk-xz7-l/desk-xz7-l-1.0.1_borax_boot.scr'.Load address: 0x2000000Loading: #T 0 Bytes/devsdoneBytes transferred = 2709 (a95 hex)Zynq> sf write $kernel_addr_r 0xFC0000 $filesizedevice 0 offset 0xfc0000, size 0xa95SF: 2709 bytes @ 0xfc0000 Written: OK</sdc2 278528 4472831 4194304 2G 83 Linuxpre>
The partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.formatting Once change bootmkfs.fat 4.1 (2017-01-24)formatting rfsmke2fs 1.45.5 (07-Jan-2020)/dev/sdc2 contains a ext4 file system labelled 'rfs' created on Mon Nov 21 13:14:20 2022Creating filesystem with 524288 4k blocks mode and 131072 inodesFilesystem UUIDrestarted, the complete boot log can be like this one: cc691ca0-1eb4-4ff9-87cc-da74f9e91685Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912
Allocating group tables: done Writing inode tables: done <pre class="mw-collapsible mw-collapsed">Creating journal U-Boot 2021.01-desk-xz7-l-1.0.1 (16384 blocks)Jan 12 2024 - 10: doneWriting superblocks and filesystem accounting information44: done 15 +0000)
dvdkCPU: Zynq 7z030Silicon: v3.1Model: BoraDRAM: ECC disabled 1 GiBFlash: 0 BytesNAND: 0 MiBMMC: mmc@vagrante0100000:~/desk-xz0Loading Environment from SPIFlash... SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB*** Warning -l$ </pre>bad CRC, using default environment
ThenIn: serial@e0001000Out: serial@e0001000Err: serial@e0001000SF: Detected s25fl128s with page size 256 Bytes, insert the SD card erase size 64 KiB, total 16 MiBSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBSOM ConfigID#: 00000004SOM UniqueID#: 2a0e92c4:03193a4bCB ConfigID#: ffffffffCB UniqueID#: ffffffff:ffffffffSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBWarning: MAC addr not found in the target and boot the system via SD or NFS as described in the e [[(<KIT>)#Quick_start_guide|Quick start guide]]SPI NOR at block 8Net:ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id
* create a mount point and mount the first partition Warning: ethernet@e000b000 (eth0) using random MAC address - 7a:68:29:db:0b:f6eth0: ethernet@e000b000Hit ENTER within 2 seconds to stop autobootSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiBdevice 0 offset 0xfc0000, size 0x40000SF: 262144 bytes @ 0xfc0000 Read: OKQSPI: Trying to boot script at 3000000## Executing script at 03000000Trying to load boot images from qspiSF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB<pre>device 0 offset 0x700000, size 0x600000rootSF: 6291456 bytes @bora0x700000 Read:~OK# mkdir # Loading kernel from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'kernel-p /mnt/sd1' kernel subimage Description: Linux kernelroot@bora 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# mount /dev/mmcblk0p1 /mnt/sd# Loading fdt from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'fdt-system-top.dtb' fdt subimage Description: Flattened Device Tree blob Type: Flat Device Tree Compression: uncompressed Data Start: 0x1049f37c Data Size: 20716 Bytes = 20.2 KiB Architecture: ARM Hash algo: sha256 Hash value: f93874aa1f1a0c6d52c423e12b25b4a2ae14a09b40a8068a49b4c8914be75e4c Verifying Hash Integrity ... sha256+ OK Booting using the fdt blob at 0x1049f37c Loading Kernel Image</pre> Loading Device Tree to 2fff7000, end 2ffff0eb ... OK
* copy boot image filesStarting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0[ 0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache[ 0.000000] OF: fdt: Machine model: Bora[ 0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')[ 0.000000] printk: bootconsole [cdns0] enabled[ 0.000000] Memory policy: Data cache writealloc[ 0.000000] cma: Reserved 16 MiB at 0x3f000000[ 0.000000] Zone ranges:[ 0.000000] Normal [mem 0x0000000000000000-0x000000002fffffff][ 0.000000] HighMem [mem 0x0000000030000000-0x000000003fffffff][ 0.000000] Movable zone start for each node[ 0.000000] Early memory node ranges[ 0.000000] node 0: [mem 0x0000000000000000-0x000000003fffffff][ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff][ 0.000000] percpu: Embedded 16 pages/cpu s32780 r8192 d24564 u65536[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260416[ 0.000000] Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off[ 0.000000] Memory: 1009768K/1048576K available (7168K kernel code, 279K rwdata, 1952K rodata, 1024K init, 162K bss, 22424K reserved, 16384K cma-reserved, 245760K highmem)[ 0.000000] rcu: Preemptible hierarchical RCU implementation.[ 0.000000] rcu: RCU event tracing is enabled.[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.[ 0.000000] Trampoline variant of Tasks RCU enabled.[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16[ 0.000000] efuse mapped to (ptrval)[ 0.000000] slcr mapped to (ptrval)[ 0.000000] GIC physical location is 0xf8f01000[ 0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000[ 0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000[ 0.000000] L2C-310 erratum 769419 enabled[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9[ 0.000000] L2C-310 ID prefetch enabled, offset 1 lines[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled[ 0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB[ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001[ 0.000000] random: get_random_bytes called from start_kernel+0x2c0/0x4a0 with crng_init=0[ 0.000000] zynq_clock_init: clkc starts at (ptrval)[ 0.000000] Zynq clock init[ 0.000011] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns[ 0.005723] clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns[ 0.016655] Switching to timer-based delay loop, resolution 3ns[ 0.023169] Console: colour dummy device 80x30[ 0.026895] Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)[ 0.037305] pid_max: default: 32768 minimum: 301[ 0.042082] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)[ 0.049081] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)[ 0.057754] CPU: Testing write buffer coherency: ok[ 0.061529] CPU0: Spectre v2: using BPIALL workaround[ 0.066749] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000[ 0.072812] Setting up static identity map for 0x100000 - 0x100060[ 0.078378] rcu: Hierarchical SRCU implementation.[ 0.083352] smp: Bringing up secondary CPUs ...[ 0.088388] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001[ 0.088399] CPU1: Spectre v2: using BPIALL workaround[ 0.098134] smp: Brought up 1 node, 2 CPUs[ 0.102036] SMP: Total of 2 processors activated (1333.33 BogoMIPS).[ 0.108358] CPU: All CPU(s) started in SVC mode.[ 0.113587] devtmpfs: initialized[ 0.121144] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4[ 0.124128] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns[ 0.133462] futex hash table entries: 512 (order: 3, 32768 bytes, linear)[ 0.141395] pinctrl core: initialized pinctrl subsystem[ 0.146259] NET: Registered protocol family 16[ 0.151964] DMA: preallocated 256 KiB pool for atomic coherent allocations[ 0.157733] thermal_sys: Registered thermal governor 'step_wise'[ 0.158046] cpuidle: using governor ladder[ 0.166503] cpuidle: using governor menu[ 0.182919] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.[ 0.185265] hw-breakpoint: maximum watchpoint size is 4 bytes.[ 0.191178] zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)[ 0.198318] e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 34, base_baud = 3125000) is a xuartps[ 0.207234] e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 35, base_baud = 3125000) is a xuartps[ 0.221091] printk: console [ttyPS0] enabled[ 0.221091] printk: console [ttyPS0] enabled[ 0.225396] printk: bootconsole [cdns0] disabled[ 0.225396] printk: bootconsole [cdns0] disabled[ 0.249776] vgaarb: loaded[ 0.252888] SCSI subsystem initialized[ 0.256896] usbcore: registered new interface driver usbfs[ 0.262468] usbcore: registered new interface driver hub[ 0.267875] usbcore: registered new device driver usb[ 0.273183] mc: Linux media interface: v0.10[ 0.277485] videodev: Linux video capture interface: v2.00[ 0.283046] pps_core: LinuxPPS API ver. 1 registered[ 0.288002] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <pregiometti@linux.it>root[ 0.297158] PTP clock support registered[ 0.301145] EDAC MC: Ver: 3.0.0[ 0.304805] FPGA manager framework[ 0.308536] Advanced Linux Sound Architecture Driver Initialized.[ 0.315660] clocksource: Switched to clocksource arm_global_timer[ 0.332917] NET: Registered protocol family 2[ 0.337977] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)[ 0.346425] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)[ 0.354267] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)[ 0.361542] TCP: Hash tables configured (established 8192 bind 8192)[ 0.368054] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)[ 0.374750] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)[ 0.382042] NET: Registered protocol family 1[ 0.387083] RPC: Registered named UNIX socket transport module.[ 0.393034] RPC: Registered udp transport module.[ 0.397734] RPC: Registered tcp transport module.[ 0.402441] RPC: Registered tcp NFSv4.1 backchannel transport module.[ 0.408896] PCI: CLS 0 bytes, default 64[ 0.413390] hw perfevents: no interrupt-affinity property for /pmu@boraf8891000, guessing.[ 0.421576] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available[ 0.431150] workingset: timestamp_bits=14 max_order=18 bucket_order=4[ 0.438734] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.[ 0.446129] bounce: pool size: 64 pages[ 0.449974] io scheduler mq-deadline registered[ 0.454520] io scheduler kyber registered[ 0.458913] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized[ 0.467704] dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330[ 0.474442] dma-pl330 f8003000.dmac: DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16[ 0.494238] brd: module loaded[ 0.504037] loop: module loaded[ 0.511083] random: fast init done[ 0.614245] random: crng init done[ 0.623641] spi-nor spi0.0: trying to lock already unlocked area[ 0.629650] spi-nor spi0.0: s25fl128s1 (16384 Kbytes)[ 0.639922] libphy: Fixed MDIO Bus: probed[ 0.645716] CAN device driver interface[ 0.652273] libphy: MACB_mii_bus: probed[ 0.688524] macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 37 (7a:68:29:db:0b:f6)[ 0.698709] e1000e: Intel(R) PRO/1000 Network Driver[ 0.703668] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.[ 0.710509] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver[ 0.717037] ehci-pci:~# cp BOOTEHCI PCI platform driver[ 0.721607] usbcore: registered new interface driver usb-storage[ 0.BIN 728609] ULPI transceiver vendor/mntproduct ID 0x0424/sd0x0006root@bora[ 0.734267] Found SMSC USB331x ULPI transceiver.[ 0.738913] ULPI integrity check: passed.[ 0.745040] i2c /dev entries driver[ 0.752088] rtc-ds3232 0-0068: registered as rtc0[ 0.757162] rtc-ds3232 0-0068: setting system clock to 2018-03-09T17:29:17 UTC (1520616557)[ 0.765791] cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 31[ 0.774272] cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s[ 0.781826] EDAC MC: ECC not enabled[ 0.785972] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 666666 KHz, changing to: 666667 KHz[ 0.796932] Xilinx Zynq CpuIdle Driver started[ 0.800410] sdhci: Secure Digital Host Controller Interface driver[ 0.803503] sdhci: Copyright(c) Pierre Ossman[ 0.805718] sdhci-pltfm: SDHCI platform and OF driver helper[ 0.809266] ledtrig-cpu: registered to indicate activity on CPUs[ 0.812545] clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns:~1075096770 ns[ 0.817251] timer # cp image0 at dfb516c6, irq=50[ 0.819556] usbcore: registered new interface driver usbhid[ 0.822381] usbhid: USB HID core driver[ 0.827302] fpga_manager fpga0: Xilinx Zynq FPGA Manager registered[ 0.831575] mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA[ 0.831977] NET: Registered protocol family 10[ 0.838558] Segment Routing with IPv6[ 0.ub 840631] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver[ 0.847540] NET: Registered protocol family 17[ 0.852063] can: controller area network core[ 0.856576] NET: Registered protocol family 29[ 0.861071] can: raw protocol[ 0.864050] can: broadcast manager protocol[ 0.868298] can: netlink gateway - max_hops=1[ 0.873045] Registering SWP/mntSWPB emulation handler[ 0.880140] of-fpga-region fpga-full: FPGA Region probed[ 0.886112] of_cfs_init[ 0.888667] of_cfs_init: OK[ 0.891875] ALSA device list:[ 0.894839] No soundcards found.[ 0.898729] Waiting for root device /dev/sdmmcblk0p2...[ 1.052324] mmc0: new high speed SDHC card at address aaaa[ 1.055781] mmcblk0: mmc0:aaaa SA16G 14.8 GiB[ 1.060584] mmcblk0: p1 p2[ 1.086701] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)[ 1.090810] VFS: Mounted root@bora(ext4 filesystem) on device 179:2.[ 1.094724] devtmpfs: mounted[ 1.099892] Freeing unused kernel memory:~# cp boot1024K[ 1.scr 136017] Run /mntsbin/sdinit as init process</pre>INIT: version 2.97 booting[ 1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.Starting udev[ 1.712872] udevd[82]: starting version 3.2.9[ 1.763498] udevd[83]: starting eudev-3.2.9[ 2.244862] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)INIT: Entering runlevel: 5Configuring network interfaces... done.Starting system message bus: dbus.Starting haveged: haveged: command socket is listening at fd 3haveged: haveged starting up
==== Program root file system into SD card ====
Now, you can extract the root file system into that directory
* mount the <codeStarting Dropbear SSH server: dropbear.Starting rpcbind daemon...done.starting statd: doneStarting atd: OKStarting internet superserver: inetd.NFS daemon support not enabled in kernelStarting system log daemon...0Mar 9 17:29:22 borax kernel: [ 0.000000] L2C: platform modifies aux control register: 0x72360000 ->ext30x72760000Mar 9 17:29:22 borax kernel: [ 0.000000] L2C: DT/ext4<platform modifies aux control register: 0x72360000 -> 0x72760000Mar 9 17:29:22 borax kernel: [ 0.413390] hw perfevents: no interrupt-affinity property for /code> volume in the temporary directorypmu@f8891000, guessing.Mar 9 17:29:22 borax kernel: [ 0.623641] spi-nor spi0.0: trying to lock already unlocked areaMar 9 17:29:22 borax kernel: [ 1.516983] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.Starting internet superserver: xinetd.Starting crond: OKStarting tcf-agent: OK
<pre class="workstation-terminal">root@bora:~# mount /dev/mmcblk0p2 /mnt/sd[ 1810PetaLinux 2021.899327] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null)root@bora:~#</pre>2 borax ttyPS0
<pre class="workstation-terminal">
root@bora:~# tar xf images/linux/rootfs.tar.gz -C /mnt/sd
</pre>
* finally, you need to cleanly umount and safely reboot or turn off the systemroot@borax:~# uname -aLinux borax 5.10.0-xilinx-v2021.2 #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021 armv7l armv7l armv7l GNU/Linuxroot@borax:~# cat /etc/build-----------------------Build Configuration: |-----------------------DISTRO = petalinuxDISTRO_VERSION = 2021.2MACHINE = zynq-genericIMAGE_BASENAME = dave-image-devel-----------------------Layer Revisions: |-----------------------meta = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-poky = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-perl = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-python = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-filesystems = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-gnome = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-multimedia = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-networking = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-webserver = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xfce = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-initramfs = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-oe = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-clang = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-chromium = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-qt5 = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-microblaze = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-bsp = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-pynq = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-petalinux = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-openamp = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-jupyter = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-vitis-ai = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-python2 = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-som = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-security = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-tpm = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-user = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-dave = HEAD:e944801f104f86191cd086d0cea8f3df88dda061workspace = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedroot@borax:~# cat /etc/os-releaseID=petalinuxNAME="PetaLinux"VERSION="2021.2 (gatesgarth)"VERSION_ID=2021.2PRETTY_NAME="PetaLinux 2021.2 (gatesgarth)"BUILD_VERSION="desk-xz7-l-1.0.1"root@borax:~# shutdown -h now
<pre class="workstation-terminal">Broadcast message from root@boraborax (ttyPS0) (Fri Mar 9 17:~# umount /mnt/sdroot@bora29:35 2018):~# reboot</pre>
Reboot the The system is going down for system and configure U-Boot to apply halt NOW!INIT: Sending processes configured via /etc/inittab the new configurationTERM signalStopping haveged:
<pre class="workstationStopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 217)dropbear.Stopping atd: OKStopping system message bus: dbus.Stopping internet superserver: inetd.stopping mountd: donestopping nfsd: doneStopping system log daemon...0Stopping tcf-terminal">agent: OKStopping internet superserver: xinetd.stopping statd: doneStopping crond: OKStopping rpcbind daemon...done.Deconfiguring network interfaces... done.Sending all processes the TERM signal...logoutSending all processes the KILL signal...Unmounting remote filesystems...Deactivating swap...=> setenv bootcmd run mmcbootUnmounting local filesystems...=> saveenv[ 24.097545] reboot: System halted
</pre>
=== Program boot images into internal storage ======= Program the NOR NAND flash =========u-Boot=====
Update to the latest u-boot version allows usage of u-boot environment variables availableThis chapter is compatible with [[BORA Lite SOM | BORA Lite]] SOM.
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<pre class="workstation/code> configuration file, as described [[DESK-XZ7-terminal"L/Development/Creating_and_building_the_Petalinux_project| here]], and save the <code>=BOOT.BIN</code> and <code> run loaddave-image-devel-zynq-generic.tar.gz</precode>artifact into the first partition of microSD.
=====fit image =====We assume In this case <code>BOOT.BIN</code> binary that the following environment variables came from to <code>config_boralite_nand_usd</code> and <code>config_boralite_nand</code> are present in udifferent, so save it with different name. Alternatively you can download binaries from [https://mirror.dave.eu/desk-boot:xz-l/ mirror] and install on microSD.
<pre>loadk=tftpboot ${loadaddr} ${serverip}Then, install the following files into the microSD first partition:${bootfile}loadfdt=tftpboot ${fdtaddr} ${serverip}:${fdtfile}spi_updatek=sf erase 200000 800000; sf write ${loadaddr} 200000 ${filesize}spi_updatefdt=sf erase 180000 80000; sf write ${fdtaddr} 180000 ${filesize}spi_loadk=sf read ${loadaddr} 200000 800000spi_loadfdt=sf read ${fdtaddr} 180000 80000spi_nand=sf probe; run spi_loadk spi_loadfdt nandargs addcons addmisc; if run configid_fixupfdt; then bootm ${loadaddr} - ${fdtaddr}; fi</pre>
* Update the <code>bootfileBOOT.BIN</code> and . This binary come from to <code>fdtfileconfig_boralite_nand_usd</code> environment variables configuration file, and need to fit the filename as found inside the TFTP serverinstall on microSD* <code>boot.scr</code>* Program kernel <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 device tree has to be installed on NOR NAND flash with the following U* <code>desk-xz7-l-1.0.1_boralite_nand_dave-image-devel-zynq-Boot commandgeneric.tar.gz</code>* <code>image.ub</code>
<pre class="board-terminal">sf probe; run loadk spi_updatek loadfdt spi_updatefdt</pre>=== Programming NAND flash from microSD ====
E.g.:* delete all partition on NAND flash memory
<pre class="workstation-terminal">
=> sf proberoot@boralite:~# for i in $(seq 0 2); run loadk spi_updatek loadfdt spi_updatefdtdo flash_erase /dev/mtd$i 0 0; doneErasing 128 Kibyte @ 15e0000 -- 100 % completeErasing 128 Kibyte @ 20000 -- 100 % completeErasing 128 Kibyte @ 1bde0000 -- 100 % complete
</pre>
Reboot the system and configure U-Boot to apply the new configuration* install <code>BOOT.BIN</code> on NAND flash memory
<pre class="workstation-terminal">
=> setenv bootcmd run spi_nandroot@boralite:~# nandwrite -p /dev/mtd0 /boot/desk-xz7-l-1.0.1_boralite_nand_BOOT.BIN.EXTENDED=> saveenvWriting data to block 0 at offset 0x0Writing data to block 1 at offset 0x20000...Writing data to block 168 at offset 0x1500000Writing data to block 169 at offset 0x1520000
</pre>
==== Program root file system into NAND flash ====* Boot the system via SD or NFS as described in the e [[(install <KITcode>)#Quick_start_guide|Quick start guide]]* By default, the NAND is already partitioned to allow booting from NANDdave-image-devel-only (see next section) and, thus, some partitions are reserved for uzynq-boot and kernel imagesgeneric. Here we won't modify this default configurationtar. The [[Memory Tecnology Device (MTD)|MTD]] partitions can be dumped with <code>/proc/mtdgz</code> (the partition's name should be self-explanatory)rootfs on NAND flash memory 
<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>
{{ImportantMessage|textOnce change boot mode and restarted, the complete boot log can be like this one: <pre class=Please note that MTD partition index may change depending of flash "mw-collapsible mw-collapsed">U-Boot 2021.01-desk-xz7-l-1.0.1 (Jan 12 2024 - 10:44:15 +0000) CPU: Zynq 7z020Silicon: v3.1Model: BoraDRAM: ECC disabled 1 GiBFlash: 0 BytesNAND: 1024 MiBMMC: mmc@e0100000: 0Loading Environment from NAND... *** Warning - bad CRC, using default environment In: serial@e0001000Out: serial@e0001000Err: serial@e0001000SOM ConfigID#: 77777777SOM UniqueID#: 55555555:66666666CB ConfigID#: ffffffffCB UniqueID#: ffffffff:ffffffffNet:ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id Warning: ethernet@e000b000 (eth0) using random MAC address - f6:c3:de:d6:d6:e6eth0: ethernet@e000b000Hit ENTER within 2 seconds to stop autoboot Device 0: nand0, sector size 128 KiB Page size 2048 b OOB size 64 b Erase size 131072 b subpagesize 512 b options 0x40004000 bbt options 0x00020000 NAND read: device availability0 offset 0xfc0000, size 0x40000 262144 bytes read: OKNAND: Trying to boot script at 3000000## Executing script at 03000000Trying to load boot images from nand Device 0: nand0, flash sector size 128 KiB Page size 2048 b OOB size 64 b Erase size 131072 b subpagesize 512 b options 0x40004000 bbt options 0x00020000 NAND read: device 0 offset 0x1080000, size0x6400000 104857600 bytes read: OK## Loading kernel from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'kernel-1' kernel subimage Description: Linux kernel Type: Kernel Image Compression: uncompressed Data Start: 0x100000f8 Data Size: 4845944 Bytes = 4.6 MiB Architecture: ARM OS: Linux Load Address: 0x00200000 Entry Point: 0x00200000 Hash algo: sha256 Hash value: f5d0c9b9a689e4b0657468fb280f0c8fb60064196b7938a77a43b36a2743acca Verifying Hash Integrity ... sha256+ OK## Loading fdt from FIT Image at 10000000 ... Using 'conf-system-top.dtb' configuration Verifying Hash Integrity ... OK Trying 'fdt-system-top.dtb' fdt subimage Description: Flattened Device Tree blob Type: Flat Device Tree Compression: uncompressed Data Start: 0x1049f37c Data Size: 20656 Bytes = 20.2 KiB Architecture: ARM Hash algo: sha256 Hash value: 42e997d9430c0dc091dfb37df69c2148e40ad7fdd75ec4f49501bc5d4bc48f53 Verifying Hash Integrity ... sha256+ OK Booting using the fdt blob at 0x1049f37c Loading Kernel Image Loading Device Tree to 2fff7000, end 2ffff0af ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0[ 0.000000] Linux version 5.10.0-xilinx-v2021.2 (oe-user@oe-host) (arm-xilinx-linux-gnueabi-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.1) #1 SMP PREEMPT Tue Oct 12 09:30:57 UTC 2021[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), ucr=18c5387d[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache[ 0.000000] OF: fdt: Machine model: Bora[ 0.000000] earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')[ 0.000000] printk: bootconsole [cdns0] enabled[ 0.000000] Memory policy: Data cache writealloc[ 0.000000] cma: Reserved 16 MiB at 0x3f000000[ 0.000000] Zone ranges:[ 0.000000] Normal [mem 0x0000000000000000-boot environment variables or 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 driver load 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. Always take care 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 looking inside 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 <codegiometti@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 /procpmu@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/mtd<product ID 0x0424/0x0006[ 0.608397] Found SMSC USB331x ULPI transceiver.[ 0.613077] ULPI integrity check: passed.[ 0.619138] i2c /code> 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 match your specific layout}}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 processINIT: version 2.97 bootingStarting 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.9bootlogd: /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-postinstsINIT: Entering runlevel: 5Configuring network interfaces... done.Starting system message bus: dbus.Starting haveged: haveged: command socket is listening at fd 3haveged: haveged starting up
* Format and initialize ''nand-ubi'' partition, which in our case is <code>mtd7</code>, using [[Memory Tecnology Device (MTD)#UBI|UBI]] with:
<pre>
ubiformat /dev/mtd0
ubiattach -m 0
ubimkvol /dev/ubi0 -N rootfs -m
</pre>
EStarting Dropbear SSH server: Waiting for kernel randomness to be initialised.g..haveged: haveged: ver: 1.9.13; arch: generic; vend: ; build: (gcc 10.2.0 CTV); collect: 128K
<pre class="workstation-terminal">root@borahaveged:~# ubiformat /dev/mtd0</pre>* Now mount the UBI volume using [[Memory Tecnology Device haveged: cpu: (VC); data: 16K (D); inst: 16K (MTDD)#UBIFS|UBIFS]] in a temporary directory<pre>mkdir -p ; idx: 12/mnt/nandmount -t ubifs ubi0_0 /mnt/nand<40; sz: 15006/pre>57790
E.ghaveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B): last entropy estimate 7.:99862
<pre class="workstation-terminal">root@borahaveged:~# mkdir -p /mnt/nandroot@borahaveged:~# mount -t ubifs ubi0_0 /mnt/nand</pre>* you can now extract the root file system into that directory<pre>tar xvjf -C /mnt/nand</pre>fills: 0, generated: 0
* finallyGenerating 2048 bit rsa key, you need to cleanly umount and detach this may take a while...Public key portion is:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTB8TmZSylf7njT2d8i1CdsvL2RVkN9NBTJjMX36nmx3GgyTY1O+R8fRv3eXdFD+XWUk02YMWSpPwvC6geSyGEovUe60y7cg/SRyZRTth/sokI+HboE/i0BUzeDCtFS5/L2nDNs/TIg6/0yVn4fcnWH7IDxLNTsqdf0f7wcapCXQrP2+xocU63B4NkXpUVL+Y/Za06M0lqaiqasfOXFfP5MSyTTeJa91LfH5qOca0fxJGqmMDStJjaLTAsEiI3H2waFysRG/prIO17fVbnbsCF2UaNm8Un7wluae0HjUBd/ItTdIa6erKUJilVGsSkPo0+Shx5O1Zk4cetuPFs+e2P root@boraliteFingerprint: sha1!! 0e:82:1e:52:c9:20:b1:64:1d:17:b0:a8:a8:e5:93:44:3f:ec:6c:38dropbear.Starting rpcbind daemon...done.starting statd: doneStarting atd: OKStarting internet superserver: inetd.NFS daemon support not enabled in kernelStarting system log daemon...0Mar 9 22:44:12 boralite kernel: [ 0.000000] L2C: platform modifies aux control register: 0x72360000 -> 0x72760000Mar 9 22:44:12 boralite kernel: [ 0.000000] L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000Mar 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 MTD partitionNAND chipMar 9 22:44:12 boralite kernel: [ 5.281753] urandom_read: 4 callbacks suppressedStarting internet superserver: xinetd.Starting crond: OKStarting tcf-agent: OK
<pre>umount /mnt/nand/ubidetach -m 0</pre>PetaLinux 2021.2 boralite ttyPS0
E.g.
<pre class="workstation-terminal">root@boraboralite:~# umount cat /mnt/nandetc/build-----------------------Build Configuration: |-----------------------DISTRO = petalinux[ 2446DISTRO_VERSION = 2021.743091] UBIFS2MACHINE = zynq-genericIMAGE_BASENAME = dave-image-devel-----------------------Layer Revisions: un |-mount UBI device ----------------------meta = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-poky = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-perl = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-python = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-filesystems = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-gnome = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-multimedia = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-networking = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-webserver = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xfce = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-initramfs = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-oe = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-clang = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-chromium = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-qt5 = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-microblaze = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-bsp = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-pynq = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-contrib = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-standalone = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-xilinx-tools = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-petalinux = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-virtualization = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-openamp = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-jupyter = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-vitis-ai = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-python2 = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-som = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-security = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-tpm = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-user = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedmeta-dave = HEAD:e944801f104f86191cd086d0cea8f3df88dda061workspace = HEAD:829c44d28c8c46b51744c14a92107ec3c5790934 -- modifiedroot@boralite:~# uname -aLinux boralite 5.10.0, volume 0[ 2446-xilinx-v2021.749670] UBIFS2 #1 SMP PREEMPT Tue Oct 12 09:30: background thread "ubifs_bgt0_0" stops57 UTC 2021 armv7l armv7l armv7l GNU/Linuxroot@boraboralite:~# ubidetach cat /etc/os-m releaseID=petalinuxNAME="PetaLinux"VERSION="2021.2 (gatesgarth)"VERSION_ID=2021.2[ 2450PRETTY_NAME="PetaLinux 2021.738153] UBI: detaching mtd7 from ubi02 (gatesgarth)"[ 2450BUILD_VERSION="desk-xz7-l-1.759527] UBI0.1"root@boralite: mtd7 is detached from ubi0</pre>~# shutdown -h now
You can now safely reboot or turn off the system.Broadcast message from root@boralite (ttyPS0) (Fri Mar 9 22:46:32 2018):
In U-Boot environment check The system is going down for system halt NOW!INIT: Sending processes configured via /etc/inittab the following variable, which must contain the same MTD partition number used aboveTERM signalroot@boralite:~# Stopping haveged:
<pre>Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 275)dropbear.Stopping atd: OKStopping system message bus: dbus.nand_args=setenv bootargs root=ubi0Stopping internet superserver:rootfs rootfstype=ubifs rw ubiinetd.stopping mountd: donestopping nfsd: doneStopping system log daemon...mtd=0Stopping tcf-agent: OKStopping internet superserver: xinetd.stopping statd: doneStopping crond: OKStopping rpcbind daemon...done.Deconfiguring network interfaces... done.Sending all processes the TERM signal...logoutSending all processes the KILL signal...Unmounting remote filesystems...Deactivating swap...Unmounting local filesystems...[ 173.736463] reboot: System halted
</pre>
----<section end=Body/>
[[Category:BORA]] [[Category:BORA Xpress]][[Category:BORA Lite]]
8,256
edits