Running QNX on emulated cortex-a15 using QEMU
General information:- Host (for running QEMU) OS: Ubuntu 24.04.2 LTS
- QEMU: QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.6)
- QNX 6.5 SP1 on Windows 10 LTSC
Build minimal QNX Image File System (IFS) on Windows 10
Checkout bsp-qnx65-qemu-virt-a15 and build on Windows 10 with QNX 6.5 SP1
C:\prj>git clone https://github.com/myQNX/bsp-qnx65-qemu-virt-a15.git C:\prj>cd bsp-qnx65-qemu-virt-a15 C:\prj\bsp-qnx65-qemu-virt-a15>make
Build u-boot that supports virtualized Cortex-A15 machine on Ubuntu 24.04
Install dependencies
$ sudo apt update $ sudo apt install build-essential gcc-arm-linux-gnueabihf flex bison libssl-dev device-tree-compiler qemu-system-arm libgnutls28-dev
$ git clone https://source.denx.de/u-boot/u-boot.git $ cd u-boot $ git checkout v2025.04
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ ${CROSS_COMPILE}gcc --version
arm-linux-gnueabihf-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ make qemu_arm_defconfig
Edit .config
u1@m1:~/u-boot$ nvim .config
CONFIG_BOOTCOMMAND="virtio scan; fatload virtio 0:1 0x40200000 bsp-qemu-virt.bin; go 0x40200000"
CONFIG_BOOTDELAY=0
u1@m1:~/u-boot$ make -j$(nproc)
u1@m1:~/u-boot$ mkdir -p ~/vmtest/images u1@m1:~/u-boot$ cp u-boot.bin ~/vmtest/images
~/vmtest/images should have files like below -
u1@m1:~/vmtest$ ls images bsp-qemu-virt.bin u-boot.bin
u1@m1:~/vmtest$ qemu-system-arm -M virt -m 256 -cpu cortex-a15 -bios ./images/u-boot.bin -hda fat:rw:./images -vga none -serial mon:stdio -nographic
u1@m1:~/vmtest$ qemu-system-arm -M virt -m 256 -cpu cortex-a7 -bios ./images/u-boot.bin -hda fat:rw:./images -vga none -serial mon:stdio -nographi
c
WARNING: Image format was not specified for 'json:{"fat-type": 0, "dir": "./images", "driver": "vvfat", "floppy": false, "rw": true, "write-target": {"driver"
: "qcow", "file": {"driver": "file", "filename": "/var/tmp/vl.TH4052"}}}' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
Bloblist at 0 not found (err=-2)
alloc space exhausted ptr 400 limit 0
Bloblist at 0 not found (err=-2)
U-Boot 2025.04 (Apr 29 2025 - 12:45:47 -0500)
DRAM: 256 MiB
using memory 0x4e69b000-0x4f6db000 for malloc()
Core: 51 devices, 14 uclasses, devicetree: board
Flash: 64 MiB
Loading Environment from Flash... *** Warning - bad CRC, using default environment
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
No USB controllers found
Net: eth0: virtio-net#32
starting USB...
No USB controllers found
Net: eth0: virtio-net#32
starting USB...
No USB controllers found
Hit any key to stop autoboot: 0
2700652 bytes read in 4 ms (643.9 MiB/s)
## Starting application at 0x40200000 ...
CPUID=1091551349 ;
> init_intrinfo:
> init_cacheattr:
> init_cpuinfo:
CPUID=1091551349 ;
CPU0: L1 Icache: 512x64
CPU0: L1 Dcache: 512x64 WB
CPU0: L2 Dcache: 36864x64 WB
CPU0: VFP-d32 FPSID=41023075
CPU0: NEON MVFR0=10110222 MVFR1=11111111
CPU0: 410fc075: Cortex A7 rev 5 500MHz
init_hwinfo:Loading IFS...done
elf_map: 1M va=fe000000 pa=40200000 sz=00100000
elf_map: 1M va=fe000000 pa=40200000 sz=00100000
Header size=0x0000009c, Total Size=0x000005d0, #Cpu=1, Type=4
Section:system_private offset:0x000001f0 size:0x00000068
syspage ptr user:fc404000 kernel:fc404000
cpupage ptr user:fc404948 kernel:fc404948 spacing:84
kdebug info:00000000 callback:00000000
boot pgms: idx=0
0) base paddr:40211000 start addr:fe043024
ramsize:00000000 pagesize:00001000
Section:qtime offset:0x00000148 size:0x00000060
boot:00000000 CPS:00000000016e3600 rate/scale:83333333/-15 intr:1
flags:00000001 load:0 epoch:1970 rr_mul:0 adj count/inc:0/0
Section:callout offset:0x000000a0 size:0x00000048
reboot:00000000 power:fc4047ec
timer_load:fc40480c reload:fc404834 value:fc404850
0) display:fc404868 poll:fc40488c break:fc4048b0
1) display:00000000 poll:00000000 break:00000000
Section:cpuinfo offset:0x000001a8 size:0x00000020
0) cpu:410fc075 flags:c0000076 speed:000001f4 cache i/d:0/1 name:72
Section:cacheattr offset:0x00000590 size:0x00000040
0) flags:01 size:0040 #lines:0200 control:fc4045d8 next:255
1) flags:22 size:0040 #lines:0200 control:fc404638 next:255
Section:meminfo offset:0x000005d0 size:0x00000000
Section:asinfo offset:0x00000330 size:0x00000220
0000) 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000 n:21
0020) 0000000000000000-00000000ffffffff o:0000 a:0010 p:100 c:00000000 n:28
0040) 0000000048000000-0000000048ffffff o:0000 a:0013 p:100 c:00000000 n:36
0060) 0000000048000000-0000000048ffffff o:0040 a:0013 p:100 c:00000000 n:44
0080) 0000000040000000-0000000047ffffff o:0020 a:0037 p:100 c:00000000 n:47
00a0) 0000000048000000-0000000048ffffff o:0060 a:0037 p:100 c:00000000 n:47
00c0) 0000000049000000-000000004fffffff o:0020 a:0017 p:100 c:00000000 n:47
00e0) 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000 n:21
0100) 0000000040000000-0000000047ffffff o:00e0 a:0007 p:100 c:00000000 n:51
0120) 0000000040210110-000000004049356b o:0000 a:0005 p:100 c:00000000 n:82
0140) 0000000040200008-000000004021010f o:0000 a:0007 p:100 c:00000000 n:90
0160) 0000000040210110-000000004049356b o:0000 a:0007 p:100 c:00000000 n:98
0180) 0000000040000000-0000000040007fff o:0080 a:0007 p:100 c:00000000 n:106
01a0) 000000004001099c-0000000040200007 o:0080 a:0007 p:100 c:00000000 n:106
01c0) 000000004049356c-0000000047ffffff o:0080 a:0027 p:100 c:00000000 n:106
01e0) 0000000048000000-0000000048ffffff o:00a0 a:0027 p:100 c:00000000 n:106
0200) 0000000049000000-000000004fffffff o:00c0 a:0007 p:100 c:00000000 n:106
Section:hwinfo offset:0x000002e8 size:0x00000048
0) size:3 tag:3(Group) isize:3, iname:0(hw), owner:65535, kids:1
12) size:3 tag:17(Bus) isize:3, iname:9(unknown), owner:0, kids:1
24) size:3 tag:3(Group) isize:3, iname:56(rtc), owner:12, kids:1
36) size:4 tag:65(Device) isize:4, iname:60(NONE), owner:24, kids:0
00 00 00 00
Section:typed_strings offset:0x00000258 size:0x00000018
off:0 type:2 string:'localhost'
Section:strings offset:0x00000270 size:0x00000078
[0]'hw' [3]'Group' [9]'unknown' [17]'Bus' [21]'memory' [28]'below4G'
[36]'L4-Ctrl' [44]'io' [47]'ram' [51]'1to1' [56]'rtc' [60]'NONE' [65]'Device'
[72]'Cortex A7' [82]'imagefs' [90]'startup' [98]'bootram' [106]'sysram'
Section:intrinfo offset:0x00000550 size:0x00000040
0) vector_base:00000000, #vectors:160, cascade_vector:7fffffff
cpu_intr_base:00000000, cpu_intr_stride:0, flags:0000
id => flags:8000, size:005c, rtn:fc4046dc
eoi => flags:9000, size:003c, rtn:fc404738
mask:fc404774, unmask:fc4047a8, config:fc4047dc
Section:smp offset:0x000005d0 size:0x00000000
Section:pminfo offset:0x000005d0 size:0x00000000
Section:mdriver offset:0x000005d0 size:0x00000000
Section:boxinfo offset:0x000001c8 size:0x00000028
hw_flags:00000000
Section:cpu offset:0x00000128 size:0x00000020
page_flush:fc404688 page_flush_deferred:fc4046d8
upte_ro:00000e6e upte_rw:00000c7e
kpte_ro:0000065e kpte_rw:0000045e
mask_nc:000001cc
mmu_cr1:00c51870 set:00803c7f clr:00000000 -> 00c53c7f
System page at phys:40010000 user:fc404000 kern:fc404000
Starting next program at vfe043024
cpu_startnext: cpu0 -> fe043024
vstart: 1075845408
flags:1VFPv3: fpsid=41023075
coproc_attach(10): replacing fe05a8b4 with fe06826c
coproc_attach(11): replacing fe05a8b4 with fe06826c
Welcome to QNX Neutrino 6.5.0 on the QEMU ARMv7 virt
Serial opened...
#
No comments:
Post a Comment