I’m trying to add a XIP image to mount on my MPC860 target, along side a
non-XIP boot image that is already working on this board.
I’ve been trying to follow the example in the “Making Multiple Images”
TechNote, but some of it doesn’t make sense to me.
I build my combined boot/XIP image so that the XIP image is after the
boot image, starting at the next 4K boundary, using mkimage. I burn the
entire image into Flash, and my XIP image should start at physical
address 0xFFAAA000 (boot image starts at 0xFF780000).
Here is the build file for my XIP image:
[prefix=/xip]
[perms=+x]
[+raw data=copy code=uip]
sys/test # test is a small test program
In my boot build file, I use ‘-M0xFFAAA000,0x2000,2’ as a command line
argument for my start command. The TechNote says the offset from the IPL
is supposed to be used, but that doesn’t work either (also, in the
TechNote, there is confusion as to whether the address this offset is
calculated from is the start of the IPL or the boot image).
The boot image starts up, but I find no sign of the XIP image being
mounted. I recompiled my startup program so that print_syspage() is
executed, and added verbosity options to it and procnto-800. I show the
results below. Note that the last line (“Latest greatest build…”) is a
display_msg at the beginning of the script that runs right after
procnto-800 starts up.
In the output for meminfo, I see two entries of type 2
(MEMTYPE_IMAGEFSYS) - one for the imagefs that for my boot image (which
is in RAM) and the other for the XIP imagefs I’m trying to add. However,
I don’t see any entry for my XIP imagefs in the asinfo section, but I do
see entries there for the imagefs in the boot image.
Any helpful suggestions or comments would be most appreciated.
Thanks,
Kevin
Startup Output:
Header size=0x0000009c, Total Size=0x00000580, #Cpu=1, Type=1
Section:system_private offset:0x000001c0 size:0x00000068
syspage ptr user:00004000 kernel:00004000
cpupage ptr user:00005000 kernel:00005000 spacing:4096
kdebug info:00000000 callback:00000000
boot pgms: idx=0
0) base paddr:00016000 start addr:00034b74
ramsize:04000000 pagesize:00001000
Section:qtime offset:0x00000158 size:0x00000048
boot:00000009 CPS:0000000000393870 rate/scale:1220703125/-13 intr:15
Section:callout offset:0x000000a0 size:0x00000048
reboot:00000000 power:00000000
timer_load:00004750 reload:00004768 value:00004794
0) display:000047ac poll:0000481c break:00004894
- display:00000000 poll:00000000 break:00000000
Section:cpuinfo offset:0x000001a0 size:0x00000020 - cpu:00500000 flags:40000000 speed:0000003c cache i/d:1/0 name:64
Section:cacheattr offset:0x00000540 size:0x00000040 - flags:22 size:0010 #lines:0100 control:00004590 next:255
- flags:01 size:0010 #lines:0100 control:000045e0 next:255
Section:meminfo offset:0x00000228 size:0x00000060
t:1 a:00006000 s:0000f108 t:2 a:00015108 s:0031e938 t:3 a:00015108
s:0031e938
t:1 a:00333a40 s:03ccc5c0 t:2 a:ffaaa000 s:00002000
Section:asinfo offset:0x00000360 size:0x00000120 - ffff000000000000-00000000ffffffff o:ffff a:0010 p:100
c:00000000 n:21 - 00000000fa400000-000000000fa40032 o:0000 a:0013 p:100
c:00000000 n:28 - 00000000fa400000-000000000fa40032 o:0020 a:0003 p:100
c:00000000 n:35 - 00000000ff000000-00000000ffffffff o:0000 a:0005 p:100
c:00000000 n:38 - 0000000000000000-0000000003ffffff o:0000 a:0017 p:100
c:00000000 n:42
00a0) 0000000000015108-0000000000333a3f o:0000 a:0005 p:100
c:00000000 n:68
00c0) 0000000000015108-0000000000333a3f o:0000 a:0007 p:100
c:00000000 n:76
00e0) 0000000000006000-0000000000015107 o:0080 a:0007 p:100
c:00000000 n:84 - 0000000000333a40-0000000003ffffff o:0080 a:0007 p:100
c:00000000 n:84
Section:hwinfo offset:0x00000308 size:0x00000058
Section:typed_strings offset:0x00000288 size:0x00000020
off:0 type:5 string:‘targt’
off:12 type:2 string:‘localhost’
Section:strings offset:0x000002a8 size:0x00000060
[0]‘hw’ [3]‘Group’ [9]‘unknown’ [17]‘Bus’ [21]‘memory’ [28]‘device’
[35]‘io’
[38]‘rom’ [42]‘ram’ [46]‘rtc’ [50]‘rtc8xx’ [57]‘Device’ [64]‘800’
[68]‘imagefs’ [76]‘bootram’ [84]‘sysram’
Section:intrinfo offset:0x00000480 size:0x000000c0 - vector_base:00000000, #vectors:16, cascade_vector:7fffffff
cpu_intr_base:00000140, cpu_intr_stride:0, flags:0000
id => flags:0000, size:0024, rtn:0000460c
eoi => flags:1000, size:0028, rtn:00004630
mask:00004658, unmask:0000467c, config:00000000 - vector_base:80000000, #vectors:1, cascade_vector:7fffffff
cpu_intr_base:00000240, cpu_intr_stride:0, flags:0000
id => flags:0000, size:0004, rtn:000046a0
eoi => flags:0000, size:0000, rtn:000046a4
mask:000046a4, unmask:000046ac, config:00000000 - vector_base:80010000, #vectors:32, cascade_vector:00000009
cpu_intr_base:00000140, cpu_intr_stride:0, flags:0000
id => flags:0000, size:002c, rtn:000046b4
eoi => flags:1000, size:0028, rtn:000046e0
mask:00004708, unmask:0000472c, config:00000000
Section:smp offset:0x00000580 size:0x00000000
Section:pminfo offset:0x00000580 size:0x00000000
Section:boxinfo offset:0x00000580 size:0x00000000
Section:kerinfo offset:0x00000128 size:0x00000030
pretend_cpu:00000000 init_msr:00000000
Section:smpinfo offset:0x00000580 size:0x00000000
System page at phys:00004000 user:00004000 kern:00004000
Starting next program at v00034b74
add_mem 8
Latest greatest build 00005