I'm attempting to compare this binary bootloader to a slightly different C version of some boot code. My initial approach is to look at the msg()
calls and the strings they use. I can dump the strings, and most of the strings in the binary are also in the C code. However, Ghidra shows only one or two strings as being referenced anywhere.
Disassembly seems to be working since it's matching relatively closely between the binary and the repository code.
Note that the file in question isn't an ELF or PE/COFF. It's a boot loader image where the very first address is the first instruction (that jumps down past some header info to 00000338). Supposedly it gets loaded into SRAM at address 0x00000000. I believe that since the jump at address 0x00 does seem to go to the correct location (0x00000338).
I suppose as part of the setup code, the strings could get copied elsewhere...
0x0
? In the linked source code you can find lines like this#define UBOOT_BASE 0x4a000000
and similar that defines much higher addresses.