Atsushi Nemoto wrote:
On Fri, 04 Jan 2008 13:40:46 -0500, Gregor Waltz <firstname.lastname@example.org>
load linux length 0x34408a
Checking CRC on downloaded RAM image
CRC Check passed
Image Started At Address 0x80020000.
Image Length = 3424394 (0x34408a).
Exception! EPC=80056eb4 CAUSE=30000008(TLBL)
80056eb4 8ce4000c lw a0,12(a3) # 0xc
Are you loading an ELF binary or a raw binary image? If your loader
does not handle ELF headers, you should do some trick to start running
your kernel at correct address.
If you were using 2.6.23, CONFIG_BOOT_RAW might help you.
But it seems CONFIG_BOOT_RAW is broken on current git again. It will
be an another story... :-<
I tried setting CONFIG_BOOT_RAW to y in .config, but that did not help.
Are there any other tricks for loading an ELF image?
Is there any way to verify that ELF is the issue?
I will do some research on ELF and loaders.
It took me many trials and some research to build the following tools
I include "ARCH=mips CROSS_COMPILE=mipsel-linux-gnu-" with each call of
make when working on the kernel. I did mrproper after unarchiving and I
used vmlinux followed by vmlinux.bin as build targets.
I built linux-22.214.171.124 with the above, but the results are still the
same and the EPC is not in System.map.
My problem does not appear to be a matter of tool versions.
Exception! EPC=8005625c CAUSE=30000008(TLBL)
8005625c 8e020098 lw v0,152(s0) # 0x98
I presume that 8e020098 is the full instruction, so I have tried
searching for it in vmlinux.bin. The first occurrence is around 0x869b,
which is more than 32k into the file. There is also nearly 1k worth of
zero padding at the start of vmlinux.bin.
Does anybody have any other suggestions for getting down to the bottom
of this problem?