So as you may be aware, I've taken on the immense task of porting
coreboot to the ppc64/power9/talos ii platform. I've figured out how to
get the sbe and hostboot bootloader to load and execute my bootblock,
and figured out just enough of qemu and gdb to be able to make some bad
debugging decisions, but I'm stuck somewhere in run_romstage, specifically
I get so far as `size_t fmap_top` which appears to have a correct value
(gdb says its 0x3fff000, and this is a 64mb flash chip. 0x3ffefc0-0x3fff000
in the rom has `LARCHIVE....<header pointer... BCZL` so that looks right,
I think), then offset has the value 0x3ffeffc, which contains the bytes
'0x381102fc' in the rom and then the second rdev_readat causes it to return -1,
and I end up in hlt(). at this point, `print *&header` shows the struct
to be mostly filled with 0xdeadbeef, with the exception of the offset,
which says '0x9fda0'. This does not appear to be the address of anything
in the rom as far as I can tell.
I'm not certain what else I could do from this point. If any of you
folks have suggestions or ideas, I would greatly appreciate an assist.
For the record, the code is being written using the elfv2 abi, and is
big endian, if that matters.
Show replies by date