Gregor Waltz wrote:
> From where in the kernel image should execution begin?
Normally from kernel_entry, but your boot loader appears to start
from the begin of the code segment it loaded.
> Presuming that the output of "objdump -d" reflects the disassembled
> binary from the beginning in order, it looks like my 2.6 kernel is
> running straight into run_init_process as the first real code executed.
> From what I have seen in the kernel code, run_init_process should be
> jumped to far later in the boot process. If what I am thinking is
> correct, then it also explains why the failure happens in kernel_execve.
> I have also included the start of my working kernel, which has _ftext
> with non-zero data as its first entry. Is the _ftext the ELF header or
> some other info for the boot loader?
This is likely code which jumps to kernel_entry (but the disassembler
doesn't know since it sees no function symbol, so it defaults to data).
> linux-18.104.22.168/vmlinux: file format elf32-tradlittlemips
> Disassembly of section .text:
> 80020000 <run_init_process-0x400>:
Enabling CONFIG_BOOT_RAW, as Atsushi already suggested, would have
added a jump to kernel_entry in this place.
> 80020400 <run_init_process>:
> 80020400: 3c028033 lui v0,0x8033
> 80020404: 3c068033 lui a2,0x8033
> 80020408: 244594dc addiu a1,v0,-27428