On 7/26/06, <b class="gmail_sendername">Clint Thomas</b> <<a href="mailto:cthomas@soneticom.com">cthomas@soneticom.com</a>> wrote:<div><span class="gmail_quote"></span><div><br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div><div><font face="Arial" size="2"><span>Basically, the system I want linux running on does not require the
initialization of hardware that U-boot provides, or at least it does not need it
to boot the linux kernel. I want to load an uncompressed linux kernel into
memory and start the execution of the kernel, without using any kind of
bootloader. Is this possible? Or does linux need some kind of firmware or other
software to tell it to start executing? Thanks for any info you might
have.</span></font></div></div></div></blockquote><div><br>
Once the hardware is initialised, it is pretty straightforward to
boot the linux kernel. All you have to have is the kernel at address
zero, struct bd_info filled in some place in memory, kernel command
line stored in memory, and registers r3 ... r7 containing pointers to
these.<br>
<br>
For reference, look<br>
1) include/asm-ppc/ppcboot.h for example struct bd_info<br>
2) arch/ppc/syslib/m8260_setup.c for the registers<br>
<br>
If you have some custom hardware, you need to create (basically empty)
platform code, since the existing ones would try to touch some board
control registers you don't have.<br>
<br>
But remember, you need to initialise the memory controller and all
sorts of things yourself somehow - with a JTAG debugger or a custom
boot loader.<br>
<br>
<br>
</div></div>