On Fri, Jan 29, 2010 at 10:50 AM, Myles Watson mylesgw@gmail.com wrote:
Disclaimer: I could easily have botched the answers to your questions. Maybe someone will know the best way to load Linux from Uboot, but I don't.
I theory this would be the U-Boot mailing list, but in this case, I am on my own there. U-Boot (and the Embedded Linux Development Kit (EDLK) which is also written by DENX Software Engineering) is geared towards ARM and PPC architectures. Both these architectures have very strong embedded communities and therefore much better access to the information I am seeking
I've found that people more readily correct misinformation than volunteer information, so I hope this gets you somewhere :)
I suppose I have a couple of questions to start of with that I hope someone here can answer:
The best answer to your questions is probably something like: It depends on your boot loader.
In this regard, the 'Boot Loader' is U-Boot. I suppose to clear up some confusion, you could probably think of U-Boot and Coreboot as 'Boot Strappers' rather than 'Boot Loaders' - They both start from power-up of the CPU and hardware, initialise core hardware services (like SDRAM etc) and execute a payload. U-Boot is capable of executing stand-alone payloads as well as the Linux Kernel just like Coreboot.
Coreboot initializes the hardware and then loads its payload. That payload could be a BIOS (SeaBIOS), a boot loader (FILO, Grub, Linux-As-Bootloader, elfboot...), a Linux kernel, memtest, coreinfo, ...
This gives you the flexibility to load the kernel over the network, from a disk...
You can check out buildrom to see how some payloads are built. It gets out of date quickly, but it is faster than starting from scratch.
OK, I'll see if the buildrom code sheds any more light on how Linux is started from Coreboot.
- Is there a good repository of information regarding embedded Linux in the x86 (not PC!!!!) architecture
I would choose a boot loader and go from there.
In this case, I have no 'Boot Loader' (GRUB, LILO etc) and nor do I want one
- The boot-loader (both U-Boot and coreboot) put the x86 staight into Protected Mode - Does the CPU need to be put back into Real Mode before entering the Linux Kernel (in order to allow the Kernel to put the CPU into Protected Mode)
Our terminology is conflicting here, since we don't call Coreboot a boot-loader, but hopefully what I'm saying still makes sense. The boot-loader will do this if it needs to.
As mentioned earlier, U-Boot and Coreboot are the same in this regard
- Which Kernel image should I use (vmlinux, vmlinux.bin, bzImage etc)
- Can I copy the compiled Kernel image directly into RAM simply perform a 'Jump' into it
- Can I run x86 Linux without needed any kind of BIOS emulation?
- Are these the right questions to ask? Are there 'better' questions I should be asking?
If you want to use Coreboot, the first question is probably "Which bootloader do I want to use?"
My question is, how does Coreboot launch the Linux Kernel as a payload without the intervention of a Boot-Loader
All the rest will be answered by the documentation for that bootloader.
Thanks, Myles
Thanks for your reply Myles - Every little tidbit of information gets my that tiny bit closer to my goal - I have patience ;)
Regards,
Graeme