Booting Linux Kernel without bootloader
Grant Likely
grant.likely at secretlab.ca
Fri Aug 4 00:34:57 EST 2006
On 8/3/06, Milton Miller <miltonm at bga.com> wrote:
> On Tue Aug 1 2006 11:17:41 PM CDT, Grant Likely wrote:
> > On 7/25/06, Clint Thomas <cthomas at soneticom.com> wrote:
> > >
> > > 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.
> >
> > Loading a kernel into memory and starting execution *is* a boot loader. :)
>
> If it's running on the cpu, then I agreee. But he didn't say how he was loading
> the image into memory, and if it is via an external agent then I would not
> necessarly call that a boot loader, altough it is performing those tasks.
> Actually, that may be too broad. Is kexec a boot loader?
I would say it is. :)
IMHO, even the basic tasks of correctly setting up the initial
conditions can be considered a bootloader.
> > You could use the bootwrapper that is in the kernel source tree
> > (zImage). If a zImage's entry point is at the execution entry point,
> > then it will start the Linux kernel correctly. However, it is still a
> > compressed image.
> >
>
> The boot wrapper is a reference implementation, not a required piece of the
> boot sequence. As I stated in my previous post, the kernel entry conditions
> are documted and loading the vmlinux raw is reasonable, asssuming that
> the other conditions can be met (registers and device treee, and maybe
> initrd).
I agree. However, the original post sounded to me like he was looking
for a canned solution. I know zImage isn't exactly what he asked for
because it is a compressed image, but it does achieve the *effect* he
asked for.
I am curious as to the source of his requirements. ie. what is
loading the kernel into ram? Where is it coming from?
I've got a similar situation on my Virtex-4 platform. The FPGA takes
care of all device initialization. However, the kernel is loaded of a
CF card via a *slow* JTAG interface. Loading an uncompressed image is
more time consuming than loading a compressed image and uncompressing
it in software.
>
> > If you *really* need an uncompressed image, I would start with the
> > bootwrapper and hack it to work with an non-gzipped kernel image.
> > However, why do you want to do it this way? You probably won't gain
> > much in boot time and it will be more difficult to maintain.
>
> Actually, the code is aready there to just copy anything inthe kernel
> section that is without the gzip header.
Perfect!
cheers,
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
More information about the Linuxppc-embedded
mailing list