Hi everyone,
regarding post#184 of ARM SBC Support Discussion I finally made IPFire 2.27 - Core Update 169 (aarch64) boot on a SIMATIC IOT2050. Or at least trying to boot.:
- Integration of DTBs …done
- Defining bootargs specific for device …done
- Building boot.cmd and recompiling boot.scr …done
- Recompiling uInit Ramdisk …done
Boot process started so far but when it comes to /init something happens - no further output, console without reaction! (excerpt from listing at end of post):
Run /init as init process
dracut Warning: Signal caught!
random: lvm: uninitialized urandom read (4 bytes read)
random: lvm: uninitialized urandom read (4 bytes read)
random: lvm: uninitialized urandom read (4 bytes read)
For me the console output does not give any hint. Does anybody have a clue what might be the reason?
Please find attached also the Boot Log from a running distribution (original Siemens image v1.2.2) for comparison. That image btw is based on 5.10.64 whereas IPFire 2.27 - Core Update 169 is based on 5.15.49, so drivers shall be integrated in the kernel:
What are the chances of getting that device running?
Grateful for any support!
##################################################
Listing of console output booting IPFire:
SIMATIC IOT2050 SE-Boot Version: V01.02.01-0-g4524e967-0x0000
BuildDate: 20211221
SYSFW ABI: 3.1 [version: 21] [21.5.0--v2021.05 (Terrific Llam]
AVS@[1100 1170 1170]
=======================
Board: IOT2050-ADVANCED-PG2
Serial: P3BG4337
MLFB: 6ES7647-0BA00-1YA2
UUID: 925A26EFD3EE4991A4FD2BC2F3FFB100
A5E: A5E508877150AB07
MAC[0]: 8c-f3-19-6c-48-3e
MAC[1]: 8c-f3-19-6c-48-3d
SKU: SE
Loading PK... ok
PK count: 00
PK version: 00
SV: 00-00
Security ID 0xc8beb00d-0x7f55c02e
Security policy: soft
Loading image atf...
Loading image tee...
Loading image spl...
Loading image k3-am65-iot2050-spl.dtb...
NOTICE: BL31: v2.5(release):
NOTICE: BL31: Built : 14:41:24, May 17 2021
I/TC:
I/TC: OP-TEE version: 3.12.0 (gcc version 10.2.1 20210110 (Debian 10.2.1-6)) #1 Wed Jan 20 17:48:48 UTC 2021 aarch64
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
U-Boot SPL 2021.04-V01.02.01-0-g40d3fc0 (Jan 05 2022 - 14:11:27 +0000)
SYSFW ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
Trying to boot from SPI
U-Boot 2021.04-V01.02.01-0-g40d3fc0 (Jan 05 2022 - 14:11:27 +0000)
Model: SIMATIC IOT2050 Advanced PG2
DRAM: 2 GiB
WDT: Not starting
MMC: sdhci@4f80000: 1, sdhci@4fa0000: 0
Loading Environment from SPIFlash... SF: Detected w25q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
starting USB...
Bus usb@10000: Register 2001040 NbrPorts 2
Starting the controller
USB XHCI 1.10
Bus usb@10000: Register 2001040 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@10000 for devices... 1 USB Device(s) found
scanning bus usb@10000 for devices... 3 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Device 0: unknown device
Device 1: unknown device
Device 2: unknown device
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
2059 bytes read in 9 ms (222.7 KiB/s)
## Executing script at 80000000
------------------------------------- u-boot environment variables -------
..devtype.......... = mmc
..devnum........... = 0
..distro_bootpart.. = 1
..kernel_addr_r.... = 0x82000000
..ramdisk_addr_r... = 0x88080000
..fdt_addr_r....... = 0x88000000
..fdtfile.......... = ti/k3-am6548-iot2050-advanced-pg2.dtb
--------------------------------------------------------------------------
Loading DTB /dtb-5.15.49-ipfire/ti/k3-am6548-iot2050-advanced-pg2.dtb...
48707 bytes read in 12 ms (3.9 MiB/s)
Loading Kernel /vmlinuz-5.15.49-ipfire...
27822592 bytes read in 1160 ms (22.9 MiB/s)
Loading Ramdisk /uInit-5.15.49-ipfire...
15725220 bytes read in 660 ms (22.7 MiB/s)
Ramdisk loaded...
Booting Ramdisk...
## Loading init Ramdisk from Legacy Image at 88080000 ...
Image Name: IPFire Ramdisk
Image Type: AArch64 Linux RAMDisk Image (lzma compressed)
Data Size: 15725156 Bytes = 15 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Loading Ramdisk to 8f100000, end 8ffff264 ... OK
Loading Device Tree to 000000008f0f1000, end 000000008f0ffe42 ... OK
Starting kernel ...
Booting Linux on physical CPU 0x0000000000 [0x410fd034]
Linux version 5.15.49-ipfire (root@arm64-01.zrh.ipfire.org) (gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.37) #1 SMP Thu Jul 7 20:33:55 GMT 2022
Machine model: SIMATIC IOT2050 Advanced PG2
earlycon: ns16550a0 at MMIO32 0x0000000002810000 (options '')
printk: bootconsole [ns16550a0] enabled
efi: UEFI not found.
Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
Zone ranges:
DMA [mem 0x0000000080000000-0x00000000ffffffff]
DMA32 empty
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x000000009e7fffff]
node 0: [mem 0x000000009e800000-0x00000000a21fffff]
node 0: [mem 0x00000000a2200000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
cma: Reserved 24 MiB at 0x00000000fc000000
psci: probing for conduit method from DT.
psci: PSCIv1.1 detected in firmware.
psci: Using standard PSCI v0.2 function IDs
psci: Trusted OS migration not required
psci: SMC Calling Convention v1.2
percpu: Embedded 27 pages/cpu s72280 r8192 d30120 u110592
Detected VIPT I-cache on CPU0
CPU features: detected: GIC system register CPU interface
CPU features: detected: ARM erratum 845719
Built 1 zonelists, mobility grouping on. Total pages: 516096
Kernel command line: console=ttyS3,115200n8 root=PARTUUID=0ddfe12b-03 rw earlycon=ns16550a,mmio32,0x02810000 mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),64k(pru0-fw),64k(pru1-fw),64k(rtu0-fw),64k(rtu1-fw),-@8m(ospi.rootfs) rootwait
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
mem auto-init: stack:byref_all(zero), heap alloc:on, heap free:off
Memory: 1927180K/2097152K available (13760K kernel code, 2658K rwdata, 5324K rodata, 5312K init, 794K bss, 145396K reserved, 24576K cma-reserved)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
ftrace: allocating 38996 entries in 153 pages
ftrace: allocated 153 pages with 4 groups
trace event string verifier disabled
rcu: Hierarchical RCU implementation.
rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
Rude variant of Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
GICv3: GIC: Using split EOI/Deactivate mode
GICv3: 960 SPIs implemented
GICv3: 0 Extended SPIs implemented
GICv3: Distributor has no Range Selector support
Root IRQ handler: gic_handle_irq
GICv3: 16 PPIs implemented
GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
ITS [mem 0x01820000-0x0182ffff]
GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
ITS: using cache flushing for cmd queue
GICv3: using LPI property table @0x0000000080150000
GIC: using cache flushing for LPI property table
GICv3: CPU0: using allocated LPI pending table @0x0000000080160000
kfence: initialized - using 2097152 bytes for 255 objects at 0x(____ptrval____)-0x(____ptrval____)
arch_timer: cp15 timer(s) running at 200.00MHz (phys).
clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
Console: colour dummy device 80x25
Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=200000)
pid_max: default: 32768 minimum: 301
LSM: Security Framework initializing
Yama: becoming mindful.
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
rcu: Hierarchical SRCU implementation.
Platform MSI: msi-controller@1820000 domain created
PCI/MSI: /bus@100000/interrupt-controller@1800000/msi-controller@1820000 domain created
EFI services will not be available.
smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
Detected VIPT I-cache on CPU1
GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
GICv3: CPU1: using allocated LPI pending table @0x0000000080170000
CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
Detected VIPT I-cache on CPU2
GICv3: CPU2: found redistributor 100 region 0:0x00000000018c0000
GICv3: CPU2: using allocated LPI pending table @0x0000000080180000
CPU2: Booted secondary processor 0x0000000100 [0x410fd034]
Detected VIPT I-cache on CPU3
GICv3: CPU3: found redistributor 101 region 0:0x00000000018e0000
GICv3: CPU3: using allocated LPI pending table @0x0000000080190000
CPU3: Booted secondary processor 0x0000000101 [0x410fd034]
smp: Brought up 1 node, 4 CPUs
SMP: Total of 4 processors activated.
CPU features: detected: 32-bit EL0 Support
CPU features: detected: 32-bit EL1 Support
CPU features: detected: CRC32 instructions
CPU: All CPU(s) started at EL2
alternatives: patching kernel code
devtmpfs: initialized
Registered cp15_barrier emulation handler
Registered setend emulation handler
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
pinctrl core: initialized pinctrl subsystem
DMI not present or invalid.
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
thermal_sys: Registered thermal governor 'fair_share'
thermal_sys: Registered thermal governor 'step_wise'
thermal_sys: Registered thermal governor 'user_space'
cpuidle: using governor menu
hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
ASID allocator initialised with 65536 entries
Serial: AMBA PL011 UART driver
platform 910000.serdes: Fixing up cyclic dependency with 900000.serdes
cryptd: max_cpu_qlen set to 1000
ACPI: Interpreter disabled.
iommu: Default domain type: Translated
iommu: DMA domain TLB invalidation policy: strict mode
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource arch_sys_counter
VFS: Disk quotas dquot_6.6.0
VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
pnp: PnP ACPI: disabled
NET: Registered PF_INET protocol family
IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
TCP: Hash tables configured (established 16384 bind 16384)
UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
PCI: CLS 0 bytes, default 64
Trying to unpack rootfs image as initramfs...
hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
kvm [1]: IPA Size Limit: 40 bits
kvm [1]: GICv3: no GICV resource entry
kvm [1]: disabling GICv2 emulation
kvm [1]: GIC system register CPU interface enabled
kvm [1]: vgic interrupt IRQ9
kvm [1]: Hyp mode initialized successfully
Initialise system trusted keyrings
workingset: timestamp_bits=46 max_order=19 bucket_order=0
NET: Registered PF_ALG protocol family
Key type asymmetric registered
Asymmetric key parser 'x509' registered
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
io scheduler mq-deadline registered
io scheduler kyber registered
io scheduler bfq registered
pinctrl-single 4301c000.pinctrl: 70 pins, size 280
pinctrl-single 11c000.pinctrl: 185 pins, size 740
pinctrl-single 11c2e8.pinctrl: 9 pins, size 36
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
Serial: AMBA driver
brd: module loaded
loop: module loaded
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ehci-platform: EHCI generic platform driver
ehci-orion: EHCI orion driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
ohci-platform: OHCI generic platform driver
uhci_hcd: USB Universal Host Controller Interface driver
usbcore: registered new interface driver uas
usbcore: registered new interface driver usb-storage
mousedev: PS/2 mouse device common for all mice
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
Synopsys Designware Multimedia Card Interface Driver
sdhci-pltfm: SDHCI platform and OF driver helper
ledtrig-cpu: registered to indicate activity on CPUs
SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
hid: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Initializing XFRM netlink socket
NET: Registered PF_INET6 protocol family
Freeing initrd memory: 15356K
Segment Routing with IPv6
In-situ OAM (IOAM) with IPv6
NET: Registered PF_PACKET protocol family
Bridge firewalling registered
Key type dns_resolver registered
registered taskstats version 1
Loading compiled-in X.509 certificates
Loaded X.509 cert 'IPFire.org: Build time autogenerated kernel key: 1633730cbae1cf92b5acf54cfb4ed659e173f220'
Warning: unable to open an initial console.
Freeing unused kernel memory: 5312K
Checked W+X mappings: passed, no W+X pages found
Run /init as init process
dracut Warning: Signal caught!
random: lvm: uninitialized urandom read (4 bytes read)
random: lvm: uninitialized urandom read (4 bytes read)
random: lvm: uninitialized urandom read (4 bytes read)
Listing of boot.cmd:
setenv bootargs console=ttyS3,115200n8 root=PARTUUID=0ddfe12b-03 rw earlycon=ns16550a,mmio32,0x02810000 mtdparts=47040000.spi.0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),128k(ospi.env),128k(ospi.env.backup),1m(ospi.sysfw),64k(pru0-fw),64k(pru1-fw),64k(rtu0-fw),64k(rtu1-fw),-@8m(ospi.rootfs) rootwait;
echo ------------------------------------- u-boot environment variables -------
echo ..devtype.......... = ${devtype};
echo ..devnum........... = ${devnum};
echo ..distro_bootpart.. = ${distro_bootpart};
echo ..kernel_addr_r.... = ${kernel_addr_r};
echo ..ramdisk_addr_r... = ${ramdisk_addr_r};
echo ..fdt_addr_r....... = ${fdt_addr_r};
echo ..fdtfile.......... = ${fdtfile};
echo --------------------------------------------------------------------------
echo Loading DTB /dtb-5.15.49-ipfire/${fdtfile}...
fatload ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} /dtb-5.15.49-ipfire/${fdtfile};
echo Loading Kernel /vmlinuz-5.15.49-ipfire...
fatload ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} /vmlinuz-5.15.49-ipfire;
echo Loading Ramdisk /uInit-5.15.49-ipfire...
if fatload ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} /uInit-5.15.49-ipfire; then
echo Ramdisk loaded...;
else
echo Ramdisk not loaded...;
fi;
echo Booting Ramdisk...
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r};
echo Booting Kernel...
booti ${kernel_addr_r} - ${fdt_addr_r};