Good Day!
We are curently use QNX Neutrino 6.2.1. I try porting Neutrino RTOS on
embedded SBC(single board computer) based on ARM720T-cpucore. Our MCU this
is EP7312 from Cirrus Logic. We have 2Mb flash memory (AM29LV160), and 2Mb
SRAM memory. All my perephiral device’s(UART,timer’s and etc.) are
integrated in MCU chip. phisycal address if see from CPU
Flash: 0x0000000 - 0x00200000
RAM: 0x3000000 - 0x30200000
MCU_Registers 0x8000000 - 0x80004000
IPL-IFS-ARM.bin burned to flash from address 0x00010000
Because QNX currently not support this MCU, I write ‘ipl’ and ‘startup’
itself. I used BSP for Integrator board, like example project. My system
not work, please see on information that printed by my debuging function’s
and that printed by “print_syspage()”.
( I explain some lines by // and follow description what startup programm
doing)
// begin!
QNX IPL for ARM EP7312 based:
Scan_Flash
Scanning flash from 0x00011000 to 0x00012000
Succes QNX OS Image Found! at address: 0x000110DC // from 0x00010000 -
0x000110DC take space IPL
Signature type: 00FF7EEB
Version MKIFS: 00000001
flag1: 00000001
flag2: 00000000
header_size: 00000100
Mashine type: 00000028
startup_vaddr: 30051900
paddr_bias: 00000000
image_paddr: 30050000
ram_paddr: 30050000
ram_size: 000E3350
startup_size: 0001C108
stored_size: 000E3350
imagefs_paddr: 00000000
imagefs_size: 000C7248
preboot_size: 00000000
info[1]: 00000000
info[2]: 00000000
info[3]: 00000000
info[4]: 00000000
info[5]: 00000000
AFTER IMAGE_SETUP: // this is after calling function
image_setup(image);
flag1: 00000001
flag2: 00000000
header_size: 00000100
Mashine type: 00000028
startup_vaddr: 30051900
paddr_bias: 00000000
image_paddr: 30050000
ram_paddr: 30050000
ram_size: 000E3350
startup_size: 0001C108
stored_size: 000E3350
imagefs_paddr: 0002D1E4
imagefs_size: 000C7248
preboot_size: 00000000
info[1]: 00000000
info[2]: 00000000
info[3]: 00000000
info[4]: 00000000
info[5]: 00000000
Found image at 0x000110DC
Jumping to startup at 0x30051900
Startup is STARTED
// this is string printed by “startup” by my functions for debug.
// below string’s printed by init_mmu() function
Cache: 512x16 WT
arm720 rev 2 0MHz
// below string’s printed by print_syspage() function
Header size=0x0000009c, Total Size=0x000004d8, #Cpu=1, Type=4
Section:system_private offset:0x000001d8 size:0x00000068
syspage ptr user:fc404000 kernel:fc404000
cpupage ptr user:fc404858 kernel:fc404858 spacing:32
kdebug info:00000000 callback:00000000
boot pgms: idx=0
0) base paddr:3006d000 start addr:fe01c530
ramsize:00200000 pagesize:00001000
Section:qtime offset:0x00000148 size:0x00000048
boot:00000016 CPS:000000000007d000 rate/scale:1953125000/-15 intr:3
Section:callout offset:0x000000a0 size:0x00000048
reboot:fc404680 power:00000000
timer_load:fc4046b0 reload:fc4046f0 value:fc404708
0) display:fc404728 poll:fc404754 break:fc404780
- display:00000000 poll:00000000 break:00000000
Section:cpuinfo offset:0x00000190 size:0x00000020 - cpu:41807202 flags:40000000 speed:00000000 cache i/d:0/0 name:46
Section:cacheattr offset:0x000004b8 size:0x00000020 - flags:13 size:0010 #lines:0200 control:fc4044f8 next:255
Section:meminfo offset:0x00000240 size:0x00000060
t:1 a:30000000 s:00008000 t:1 a:30013878 s:0003c788 t:2 a:3006c108
s:000c7248
t:3 a:3006c108 s:000c7248 t:1 a:30133350 s:000cccb0
Section:asinfo offset:0x00000338 size:0x00000140 - 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000
n:21 - 0000000000000000-0000000000200000 o:0000 a:0005 p:100 c:00000000
n:28 - 0000000080000000-0000000080004000 o:0000 a:0013 p:100 c:00000000
n:32 - 0000000080000000-0000000080004000 o:0040 a:0003 p:100 c:00000000
n:39 - 0000000030000000-00000000301fffff o:0000 a:0017 p:100 c:00000000
n:42
00a0) 000000003006c108-000000003013334f o:0000 a:0005 p:100 c:00000000
n:53
00c0) 000000003006c108-000000003013334f o:0000 a:0007 p:100 c:00000000
n:61
00e0) 0000000030000000-0000000030007fff o:0080 a:0007 p:100 c:00000000
n:69 - 0000000030013878-000000003004ffff o:0080 a:0007 p:100 c:00000000
n:69 - 0000000030133350-00000000301fffff o:0080 a:0007 p:100 c:00000000
n:69
Section:hwinfo offset:0x00000310 size:0x00000028 - size:3 tag:3 isize:3, iname:0, owner:65535, kids:1
- size:3 tag:17 isize:3, iname:9, owner:0, kids:0
Section:typed_strings offset:0x000002a0 size:0x00000020
off:0 type:5 string:‘arm’
off:12 type:2 string:‘localhost’
Section:strings offset:0x000002c0 size:0x00000050
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘memory’ [28]‘rom’
[32]‘device’
[39]‘io’ [42]‘ram’ [46]‘arm720’ [53]‘imagefs’ [61]‘bootram’ [69]‘sysram’
Section:intrinfo offset:0x00000478 size:0x00000040 - vector_base:00000000, #vectors:4, cascade_vector:7fffffff
cpu_intr_base:00000000, cpu_intr_stride:0, flags:0000
id => flags:0000, size:0060, rtn:fc40450c
eoi => flags:1000, size:005c, rtn:fc40456c
mask:fc4045c8, unmask:fc404624, config:00000000
Section:smp offset:0x000004d8 size:0x00000000
Section:boxinfo offset:0x000001b0 size:0x00000028
hw_flags:00000000
Section:cpu offset:0x00000128 size:0x00000020
page_flush:fc4044d8 page_flush_deferred:fc4044ec
upte_ro:00000aae upte_rw:00000ffe
kpte_ro:0000000e kpte_rw:0000055e
mask_nc:0000000c
System page at phys:30013000 user:fc404000 kern:fc404000
Starting next program at vfe01c530
Shutdown[0,0]
0
0 3310 5 cfe
// That’s all . After this, system not respond\print any message.
// I try write application that print string “Hellow from APPLICATION”
// but I can not see any string on hyperterminal.
//
// Some time i see
// Shutdown[0,0]
0
0 3310 5 50
// instead Shutdown[0,0]
0
0 3310 5 cfe
// or Shutdown[0,0]
0
0 3310 5 fe
and see my build file for this IFS and debug info.
###########################################################################
Neutrino on the ARM board
on EP7312 MCU
boot image
###########################################################################
On-board devices:
----------------
#currently section skiped
###########################################################################
To boot using XIP, uncomment the following two lines:
#[image=0x000110DC]
#[ram=0x30050000]
[image=0x30050000]
[virtual=armle,srec] .bootstrap = {
startup-arm
PATH=/proc/boot procnto -vvvv
}
[+script] .script = {
Programs require the runtime linker (ldqnx.so) to be at a fixed location
procmgr_symlink …/…/proc/boot/libc.so.2 /usr/lib/ldqnx.so.2
Initialise the console
this is my serial port resource manager
devc-my_uart
slogger &
Start some common servers
pipe &
Start the main shell
[+session] sh
}
Redirect console messages
[type=link] /dev/console=/dev/ser1
Shared libaries
libc.so
Executables
[data=c]
devc-my_uart
pipe
ls
cat
slogger
sloginfo
Use the “fat” embedded shell as the default shell
sh=fesh
###########################################################################
Interrupt Assignments
---------------------
vector: 0 (_SOFTINT)
trigger: N/A
device: Software interrupt
vector: 1 (_UART0_TX)
trigger: N/A
device: UART 0
vector: 2 (_UART0_RX)
trigger: N/A
device: UART 0
vector: 3 (_TIMER0)
trigger: N/A
device: Timer
###########################################################################
Can You show me errors in debug information or please send me debug info
that print function “print_syspage()” from Integrator BSP, for compare
with my result’s. This is was non-XIP variant IFS. When I try build XIP
variant by use this build file:
###########################################################################
To boot using XIP, uncomment the following two lines:
[image=0x000110DC]
[ram=0x30050000]
#[image=0x30050000]
[virtual=armle,srec] .bootstrap = {
startup-arm
PATH=/proc/boot procnto -vvvv
}
…
…
…
I receive from target this info:
Scan_Flash
Scanning flash from 0x00011000 to 0x00012000
Succes QNX OS Image Found! at address: 0x000110DC
Signature type: 00FF7EEB
Version MKIFS: 00000001
flag1: 00000001
flag2: 00000000
header_size: 00000100
Mashine type: 00000028
startup_vaddr: 30051900
paddr_bias: 00000000
image_paddr: 000110DC
ram_paddr: 30050000
ram_size: 0001E728
startup_size: 0001C108
stored_size: 000E4350
imagefs_paddr: 00000000
imagefs_size: 000C8248
preboot_size: 00000000
AFTER IMAGE_SETUP:
flag1: 00000001
flag2: 00000000
header_size: 00000100
Mashine type: 00000028
startup_vaddr: 30051900
paddr_bias: 00000000
image_paddr: 000110DC
ram_paddr: 30050000
ram_size: 0001E728
startup_size: 0001C108
stored_size: 000E4350
imagefs_paddr: 0002D1E4
imagefs_size: 000C8248
preboot_size: 00000000
Found image at 0x000110DC
Jumping to startup at 0x30051900
Startup say HELLOW
Cache: 512x16 WT
arm720 rev 2 0MHz
Header size=0x0000009c, Total Size=0x000004d8, #Cpu=1, Type=4
Section:system_private offset:0x000001d8 size:0x00000068
syspage ptr user:fc404000 kernel:fc404000
cpupage ptr user:fc404858 kernel:fc404858 spacing:32
kdebug info:00000000 callback:00000000
boot pgms: idx=0
0) base paddr:0002e0dc start addr:fe01c530
ramsize:00200000 pagesize:00001000
Section:qtime offset:0x00000148 size:0x00000048
boot:000001a0 CPS:000000000007d000 rate/scale:1953125000/-15 intr:3
Section:callout offset:0x000000a0 size:0x00000048
reboot:fc404680 power:00000000
timer_load:fc4046b0 reload:fc4046f0 value:fc404708
0) display:fc404728 poll:fc404754 break:fc404780
- display:00000000 poll:00000000 break:00000000
Section:cpuinfo offset:0x00000190 size:0x00000020 - cpu:41807202 flags:40000000 speed:00000000 cache i/d:0/0 name:46
Section:cacheattr offset:0x000004b8 size:0x00000020 - flags:13 size:0010 #lines:0200 control:fc4044f8 next:255
Section:meminfo offset:0x00000240 size:0x00000060
t:2 a:0002d1e4 s:000c8248 t:1 a:30000000 s:00008000 t:1 a:30014878
s:0003b788
t:3 a:3006c108 s:00002620 t:1 a:3006e728 s:001918d8
Section:asinfo offset:0x00000338 size:0x00000140 - 0000000000000000-00000000ffffffff o:ffff a:0010 p:100 c:00000000
n:21 - 0000000000000000-0000000000200000 o:0000 a:0005 p:100 c:00000000
n:28 - 0000000080000000-0000000080004000 o:0000 a:0013 p:100 c:00000000
n:32 - 0000000080000000-0000000080004000 o:0040 a:0003 p:100 c:00000000
n:39 - 0000000030000000-00000000301fffff o:0000 a:0017 p:100 c:00000000
n:42
00a0) 000000000002d1e4-00000000000f542b o:0000 a:0005 p:100 c:00000000
n:53
00c0) 000000003006c108-000000003006e727 o:0000 a:0007 p:100 c:00000000
n:61
00e0) 0000000030000000-0000000030007fff o:0080 a:0007 p:100 c:00000000
n:69 - 0000000030014878-000000003004ffff o:0080 a:0007 p:100 c:00000000
n:69 - 000000003006e728-00000000301fffff o:0080 a:0007 p:100 c:00000000
n:69
Section:hwinfo offset:0x00000310 size:0x00000028 - size:3 tag:3 isize:3, iname:0, owner:65535, kids:1
- size:3 tag:17 isize:3, iname:9, owner:0, kids:0
- size:3 tag:17 isize:3, iname:9, owner:0, kids:0
off:0 type:5 string:‘arm’
off:12 type:2 string:‘localhost’
Section:strings offset:0x000002c0 size:0x00000050
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘memory’ [28]‘rom’
[32]‘device’
[39]‘io’ [42]‘ram’ [46]‘arm720’ [53]‘imagefs’ [61]‘bootram’ [69]‘sysram’
Section:intrinfo offset:0x00000478 size:0x00000040 - vector_base:00000000, #vectors:4, cascade_vector:7fffffff
cpu_intr_base:00000000, cpu_intr_stride:0, flags:0000
id => flags:0000, size:0060, rtn:fc40450c
eoi => flags:1000, size:005c, rtn:fc40456c
mask:fc4045c8, unmask:fc404624, config:00000000
Section:smp offset:0x000004d8 size:0x00000000
Section:boxinfo offset:0x000001b0 size:0x00000028
hw_flags:00000000
Section:cpu offset:0x00000128 size:0x00000020
page_flush:fc4044d8 page_flush_deferred:fc4044ec
upte_ro:00000aae upte_rw:00000ffe
kpte_ro:0000000e kpte_rw:0000055e
mask_nc:0000000c
System page at phys:30014000 user:fc404000 kern:fc404000
Starting next program at vfe01c530
// That’s all . After this, system not respond\print any message.
Please see on debug info and correct me.
If your need more info I can send source code for you.
Best Regards.!
Andrey.