Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 3494

32-bit acorn software: RISC iX • Re: Adventures in A680 RiscIx

$
0
0
Aha - in that memory dump we do see the strings we seek.

For example I see

Code:

e.g "boot sc0(0,0)vmunix"
Yep -- I needed to practice my ghidra skills this afternoon (I'm teaching Malware analysis at the moment), so took a look through the code. Fortunately, it appeared to have symbol names in there so it made things easier, and managed to find the code that generated the error Boydie saw:

Code:

                             LAB_001043ac                                         XREF[1]:     00104388(j)          001043ac 00 00 9c e5     ldr             r0,[r12,#0x0]        001043b0 42 bf 50 e2     subs            r11,r0,#0x108        001043b4 03 00 5b a3     cmpge           r11,#0x3        001043b8 09 00 00 0a     beq             LAB_001043e4        001043bc 01 0f 8f e2     adr             r0,s_Image_is_not_executable_001043c8                           = "Image is not executable\n"        001043c0 d3 26 00 eb     bl              _printf                                                         undefined _printf()        001043c4 7b 00 00 ea     b               LAB_001045b8
It's checking the first 32-bit value to see if it is 0x10b and errors if it isn't… The vmunix kernels I have here (for Arcs) have a first word that begins 0x30b (IIRC). But I think I've found the cause…

In the file 'sys/conf/A680squeezecmd', it reads:

Code:

# kernel squeeze command file for use with A680 kernels.# This does nothing: the A680 boot ROM can't handle unsqueezing.
which probably explains what is going on. Normal RISCiX kernels (for the R140 etc) are built with compressed kernels (see 'conf/SYSTEMsqueezecmd'), so aren't loadable by the A680 boot rom, which presumably means A680s need a A680-specific kernel built.

Steve

Statistics: Posted by SteveBagley — Thu Jan 30, 2025 7:16 pm



Viewing all articles
Browse latest Browse all 3494

Trending Articles