* Booting Linux Kernel without bootloader
@ 2006-07-25 22:30 Clint Thomas
2006-07-25 23:38 ` bennett78
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Clint Thomas @ 2006-07-25 22:30 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 681 bytes --]
Hey guys,
I have gone through the Linuxppc embedded and dev lists for information
related to what I am trying to do, but was unable to find exactly what
i'm looking for.
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.
Clinton Thomas
cthomas@soneticom.com
[-- Attachment #2: Type: text/html, Size: 1100 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-25 22:30 Clint Thomas
@ 2006-07-25 23:38 ` bennett78
2006-07-26 6:15 ` Kalle Pokki
` (3 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: bennett78 @ 2006-07-25 23:38 UTC (permalink / raw)
To: Clint Thomas; +Cc: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2831 bytes --]
Clint Thomas wrote:
> Hey guys,
>
> I have gone through the Linuxppc embedded and dev lists for
> information related to what I am trying to do, but was unable to find
> exactly what i'm looking for.
>
> 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.
You seem to be looking for a striped down U-boot functionality:
o copy flash to ram and run code
but to do this:
o processor registers need to be initilized
o caches need to be flushed
o interrupts need to be disabled
o C environment (stack) needs to be setup
U-boot is fairly small compared to a x86 BIOS which has to find
multiple boot device choices, yet supports multiple architectures.
I'm using a BDI2000 to load/debug u-boot running in SDRAM
for a new PPC hardware design. U-boot is probably easier to
debug than the kernel!
U-boot has other features that help with initial H/W turnon:
o it's a debug/monitor
o ram test
o ram/register read/modify
o u-boot environment
o IP address, mac address
o Linux boot options - NFS verses flash
o Ethernet/NFS option using a server enables:
o debugging kernel changes
o debugging kernel driver modules
o quick change of application processes
o cross compile target code on server to local target
o telnet to embedded H/W
o knows how to flash partitions
o u-boot (/dev/mtd0) (well I use the BDI to flash here)
o can flash kernel (/dev/mtd1)
o can flash root fs (/dev/mtd2)
o can flash config data (/dev/mtd3)
o this partitioning will help with future F/W updates
o kind of required if your flash is soldered to the board
o to read/write flash requires u-boot to relocate itself to ram
>
> Clinton Thomas
> cthomas@soneticom.com
> _______________________________________________
>
>Linuxppc-embedded mailing list
>Linuxppc-embedded@ozlabs.org
>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
Frank Bennett
*/Technical Contractor/*
/Triad Systems Engineering
200 West Mountain Avenue, Suite 103C
Ft. Collins, CO 80521
/http://www.traidsyseng.com <http://www.triadsyseng.com>
frank.bennett@triadsyseng.com <mailto:frank.bennett@triadsyseng.com>/
/
"I think there's a world market for about five computers."
-- attr. Thomas J. Watson (Chairman of the Board, IBM), 1943
[-- Attachment #2: Type: text/html, Size: 5234 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-25 22:30 Clint Thomas
2006-07-25 23:38 ` bennett78
@ 2006-07-26 6:15 ` Kalle Pokki
2006-07-26 10:45 ` Andrei Konovalov
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Kalle Pokki @ 2006-07-26 6:15 UTC (permalink / raw)
To: Clint Thomas; +Cc: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 1259 bytes --]
On 7/26/06, Clint Thomas <cthomas@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.
>
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.
For reference, look
1) include/asm-ppc/ppcboot.h for example struct bd_info
2) arch/ppc/syslib/m8260_setup.c for the registers
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.
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.
[-- Attachment #2: Type: text/html, Size: 1682 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-25 22:30 Clint Thomas
2006-07-25 23:38 ` bennett78
2006-07-26 6:15 ` Kalle Pokki
@ 2006-07-26 10:45 ` Andrei Konovalov
2006-07-28 8:03 ` David H. Lynch Jr.
2006-08-02 4:17 ` Grant Likely
4 siblings, 0 replies; 15+ messages in thread
From: Andrei Konovalov @ 2006-07-26 10:45 UTC (permalink / raw)
To: Clint Thomas; +Cc: linuxppc-embedded
Hi Clint,
You may want to look at the arch/ppc/boot/simple bootwrapper.
This wrapper links together with the compressed kernel image
into single file. One just needs to load this file into memory
and pass control to the wrapper. The bootwrapper uncompresses
the kernel into memory and passes the board information in bd_t structure.
As an example, Xilinx ML300 or ML403 boards (without any firmware)
can be booted this way: load zImage.elf into RAM (e.g. using JTAG
debugger) and jump to the the wrapper entry point.
This stuff is not in arch/powerpc yet, but recently Mark Greer
has posted the patches to fix that:
[PATCH 0/6] bootwrapper: arch/powerpc/boot code reorg patches
Thanks,
Andrei
Clint Thomas wrote:
> Hey guys,
>
> I have gone through the Linuxppc embedded and dev lists for information
> related to what I am trying to do, but was unable to find exactly what
> i'm looking for.
>
> 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.
>
> Clinton Thomas
> cthomas@soneticom.com
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
@ 2006-07-26 14:06 Milton Miller
2006-08-02 3:49 ` Parav Pandit
0 siblings, 1 reply; 15+ messages in thread
From: Milton Miller @ 2006-07-26 14:06 UTC (permalink / raw)
To: cthomas, linuxppc-embedded
On Tue Jul 25 2006 05:30:39 PM CDT, Clint Thomas 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.
To run a powerpc (not ppc, which will be removed) kernel, in addition to the uncompressed kernel you will need to supply a device tree structure, point r3 to it, zero r5, and set r4 to the load address (zero as you have described). See Documentation/powerpc/booting-without-of.txt for details. Then arrange for you processor to start executing at address 0. Note that /vmlinux has an elf header, you can use objcopy to remove it or adjust r4 and your start point; the kernel will copy itself to 0, clear bss and set up the stack. The device tree structure must be placed above the bss space in memory, not just the initialized data.
milton
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-25 22:30 Clint Thomas
` (2 preceding siblings ...)
2006-07-26 10:45 ` Andrei Konovalov
@ 2006-07-28 8:03 ` David H. Lynch Jr.
2006-07-28 14:02 ` bennett78
2006-08-02 4:17 ` Grant Likely
4 siblings, 1 reply; 15+ messages in thread
From: David H. Lynch Jr. @ 2006-07-28 8:03 UTC (permalink / raw)
To: Clint Thomas, linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2337 bytes --]
Clint Thomas wrote:
> Hey guys,
>
> I have gone through the Linuxppc embedded and dev lists for
> information related to what I am trying to do, but was unable to find
> exactly what i'm looking for.
>
> 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.
You system powers on. It starts executing whatever is at the reset
vector, Something has to get you from the ppc powering up and going to
never never land, to starting to execute Linux.
The steps to get from Power on to booting Linux may not be that
complicated, Much of what needs to be done can likely be included as
part of the code for your board in arch/ppc/boot/simple.
But something still has to be done.
In my instance I am dealing with a Xilinx V4 (not an ML403). A small
"monitor" program is automatically loaded as part of the FPGA .bit
image. On power on it starts executing.
It sets up the CPU, cache, and very minimal hardware configuration,
and then loads Linux out of flash and executes it.
Linux does not have to have alot setup to boot. But something has to
to some minimal initial setup, get Linux into the memory of your system,
and jump to it.
>
> Clinton Thomas
> cthomas@soneticom.com
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.627.3770 dhlii@dlasys.net http://www.dlasys.net
fax: 1.253.369.9244 Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.
"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein
[-- Attachment #2: Type: text/html, Size: 3667 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-28 8:03 ` David H. Lynch Jr.
@ 2006-07-28 14:02 ` bennett78
0 siblings, 0 replies; 15+ messages in thread
From: bennett78 @ 2006-07-28 14:02 UTC (permalink / raw)
To: dhlii; +Cc: Clint Thomas, linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 3213 bytes --]
David H. Lynch Jr. wrote:
> Clint Thomas wrote:
>
>> Hey guys,
>>
>> I have gone through the Linuxppc embedded and dev lists for
>> information related to what I am trying to do, but was unable to find
>> exactly what i'm looking for.
>>
>> 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.
>
>
> You system powers on. It starts executing whatever is at the reset
> vector, Something has to get you from the ppc powering up and going to
> never never land, to starting to execute Linux.
> The steps to get from Power on to booting Linux may not be that
> complicated, Much of what needs to be done can likely be included as
> part of the code for your board in arch/ppc/boot/simple.
> But something still has to be done.
>
> In my instance I am dealing with a Xilinx V4 (not an ML403). A
> small "monitor" program is automatically loaded as part of the FPGA
> .bit image. On power on it starts executing.
Curious, how long does the V4 take to load up it's brain? (using a
serial EEprom?)
> It sets up the CPU, cache, and very minimal hardware
> configuration, and then loads Linux out of flash and executes it.
>
> Linux does not have to have alot setup to boot. But something has
> to to some minimal initial setup, get Linux into the memory of your
> system, and jump to it.
>
>>
>> Clinton Thomas
>> cthomas@soneticom.com
>>
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>Linuxppc-embedded mailing list
>>Linuxppc-embedded@ozlabs.org
>>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>>
>
>
>--
>Dave Lynch DLA Systems
>Software Development: Embedded Linux
>717.627.3770 dhlii@dlasys.net http://www.dlasys.net
>fax: 1.253.369.9244 Cell: 1.717.587.7774
>Over 25 years' experience in platforms, languages, and technologies too numerous to list.
>
>"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
>Albert Einstein
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Linuxppc-embedded mailing list
>Linuxppc-embedded@ozlabs.org
>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
Frank Bennett
*/Technical Contractor/*
/Triad Systems Engineering
200 West Mountain Avenue, Suite 103C
Ft. Collins, CO 80521
/http://www.traidsyseng.com <http://www.triadsyseng.com>
frank.bennett@triadsyseng.com <mailto:frank.bennett@triadsyseng.com>/
/office: 970-493-7586
cell: 970-402-9269
"I think there's a world market for about five computers."
-- attr. Thomas J. Watson (Chairman of the Board, IBM), 1943
[-- Attachment #2: Type: text/html, Size: 5332 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-26 14:06 Milton Miller
@ 2006-08-02 3:49 ` Parav Pandit
0 siblings, 0 replies; 15+ messages in thread
From: Parav Pandit @ 2006-08-02 3:49 UTC (permalink / raw)
To: Milton Miller, cthomas, linuxppc-embedded
--- Milton Miller <miltonm@bga.com> wrote:
> On Tue Jul 25 2006 05:30:39 PM CDT, Clint Thomas
> 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.
>
> To run a powerpc (not ppc, which will be removed)
> kernel, in addition to the uncompressed kernel you
> will need to supply a device tree structure, point
> r3 to it, zero r5, and set r4 to the load address
> (zero as you have described). See
> Documentation/powerpc/booting-without-of.txt for
> details. Then arrange for you processor to start
> executing at address 0. Note that /vmlinux has an
> elf header, you can use objcopy to remove it or
> adjust r4 and your start point; the kernel will copy
> itself to 0, clear bss and set up the stack. The
> device tree structure must be placed above the bss
> space in memory, not just the initialized data.
Linux kernel does the bss cleaning after
start_kernel() even though boot loader does it. So one
step less.
Parav
>
> milton
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
>
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-07-25 22:30 Clint Thomas
` (3 preceding siblings ...)
2006-07-28 8:03 ` David H. Lynch Jr.
@ 2006-08-02 4:17 ` Grant Likely
4 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2006-08-02 4:17 UTC (permalink / raw)
To: Clint Thomas; +Cc: linuxppc-embedded
On 7/25/06, Clint Thomas <cthomas@soneticom.com> wrote:
>
>
> Hey guys,
>
> I have gone through the Linuxppc embedded and dev lists for information
> related to what I am trying to do, but was unable to find exactly what i'm
> looking for.
>
> 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. :)
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.
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.
Cheers,
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
@ 2006-08-03 7:48 Milton Miller
2006-08-03 14:34 ` Grant Likely
0 siblings, 1 reply; 15+ messages in thread
From: Milton Miller @ 2006-08-03 7:48 UTC (permalink / raw)
To: grant.likely, cthomas; +Cc: linuxppc-embedded
On Tue Aug 1 2006 11:17:41 PM CDT, Grant Likely wrote:
> On 7/25/06, Clint Thomas <cthomas@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?
>
> 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).
> 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.
milton
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-08-03 7:48 Booting Linux Kernel without bootloader Milton Miller
@ 2006-08-03 14:34 ` Grant Likely
2006-08-03 16:27 ` Milton Miller
2006-08-03 16:49 ` David H. Lynch Jr.
0 siblings, 2 replies; 15+ messages in thread
From: Grant Likely @ 2006-08-03 14:34 UTC (permalink / raw)
To: Milton Miller; +Cc: linuxppc-embedded
On 8/3/06, Milton Miller <miltonm@bga.com> wrote:
> On Tue Aug 1 2006 11:17:41 PM CDT, Grant Likely wrote:
> > On 7/25/06, Clint Thomas <cthomas@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@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-08-03 14:34 ` Grant Likely
@ 2006-08-03 16:27 ` Milton Miller
2006-08-03 16:34 ` Grant Likely
2006-08-03 16:49 ` David H. Lynch Jr.
1 sibling, 1 reply; 15+ messages in thread
From: Milton Miller @ 2006-08-03 16:27 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-embedded
On Aug 3, 2006, at 9:34 AM, Grant Likely wrote:
> On 8/3/06, Milton Miller <miltonm@bga.com> wrote:
>> On Tue Aug 1 2006 11:17:41 PM CDT, Grant Likely wrote:
>> > On 7/25/06, Clint Thomas <cthomas@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.
>>
>> > 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.
...
>
> 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.
Actually the existing zImage will not do that, it requires a client
interface to allocate memory, etc. There are alternates available
but they are not yet merged.
> I am curious as to the source of his requirements. ie. what is
> loading the kernel into ram? Where is it coming from?
That would be useful to help suggest alternatives.
> 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.
This is often the case. However, if its loaded via some kind of DMA
access
from a higher powered cpu then loading the uncompressed kernel could be
the fastest way. Since we don't know we can only mention things to
consider as we state what can be done.
milton
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-08-03 16:27 ` Milton Miller
@ 2006-08-03 16:34 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2006-08-03 16:34 UTC (permalink / raw)
To: Milton Miller; +Cc: linuxppc-embedded
On 8/3/06, Milton Miller <miltonm@bga.com> wrote:
> > 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.
>
> This is often the case. However, if its loaded via some kind of DMA
> access
> from a higher powered cpu then loading the uncompressed kernel could be
> the fastest way. Since we don't know we can only mention things to
> consider as we state what can be done.
As alwasy; the devil is in the details. :)
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
2006-08-03 14:34 ` Grant Likely
2006-08-03 16:27 ` Milton Miller
@ 2006-08-03 16:49 ` David H. Lynch Jr.
1 sibling, 0 replies; 15+ messages in thread
From: David H. Lynch Jr. @ 2006-08-03 16:49 UTC (permalink / raw)
To: Grant Likely, linuxppc-embedded
Grant Likely wrote:
>
> 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.
>
>
I am working with the Pico E-12. It is a CF formfactor device. It
has only a pseudo Parallel/Jtag
interface exported through the CF connector Pico calls the Keyhole
Port, and A UartLite, and TEMAC off some mini connector.
Pico has their own "monitor" program that fits in 32K of ram inside
the FPGA that loads and executes ELF files (or FPGA bit images)
from a very simple FileSystem (basically a linked list). Then they
have Host software to Read/Write the Flash, update files in Flash, ...
that works primarily through the Keyhole.
I just build the Kernel as an ELF file, update the ELF File in Flash
and tell it to boot that file and away it goes.
--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.627.3770 dhlii@dlasys.net http://www.dlasys.net
fax: 1.253.369.9244 Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.
"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Booting Linux Kernel without bootloader
@ 2006-08-03 18:02 Milton Miller
0 siblings, 0 replies; 15+ messages in thread
From: Milton Miller @ 2006-08-03 18:02 UTC (permalink / raw)
To: dhlii, grant.likely, linuxppc-embedded
On Thu Aug 3 2006 11:49:24 AM CDT, David H. Lynch Jr. wrote:
> Grant Likely wrote:
> >
> > 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.
> >
>
> I am working with the Pico E-12. It is a CF formfactor device. It
> has only a pseudo Parallel/Jtag
> interface exported through the > CF connector Pico calls the Keyhole
> Port, and A UartLite, and TEMAC off some mini connector.
> Pico has their own "monitor" program that fits in 32K of ram inside
> the FPGA that loads and executes ELF files (or FPGA bit images)
> from a very simple FileSystem (basically a linked list). Then they
> have Host software to Read/Write the Flash, update files in Flash, ...
> that works primarily through the Keyhole.
>
> I just build the Kernel as an ELF file, update the ELF File in Flash
> and tell it to boot that file and away it goes.
The kernel requires some data be passed to it via both memory (the
device tree struct) and registers (pointer to same and a bit), or registers
set and a client interface. You don't want the later. See
Documentation/powerpc/booting-without-of.txt.
If loading from the filesystem is faster than decompressing and copying
the image to place, and the loader supports multiple load segments,
defined entry points, and loading to address 0, then you could construct
an elf that is the kernel load segment, the device tree, and an entry point
that sets the few registers and jumps to the kernel. Generating such an
image would still belong to the boot directory.
A zImage based compressed image may still be faster.
milton
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2006-08-03 18:29 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-03 7:48 Booting Linux Kernel without bootloader Milton Miller
2006-08-03 14:34 ` Grant Likely
2006-08-03 16:27 ` Milton Miller
2006-08-03 16:34 ` Grant Likely
2006-08-03 16:49 ` David H. Lynch Jr.
-- strict thread matches above, loose matches on Subject: below --
2006-08-03 18:02 Milton Miller
2006-07-26 14:06 Milton Miller
2006-08-02 3:49 ` Parav Pandit
2006-07-25 22:30 Clint Thomas
2006-07-25 23:38 ` bennett78
2006-07-26 6:15 ` Kalle Pokki
2006-07-26 10:45 ` Andrei Konovalov
2006-07-28 8:03 ` David H. Lynch Jr.
2006-07-28 14:02 ` bennett78
2006-08-02 4:17 ` Grant Likely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).