> Like the subject, beagleboard is supported in Qi bootloader. > My blog has detailed information: > http://matthsu-abacus.blogspot.com/2009/09/add-omap3-beagleboard-supp... > Qi can provide: > - Faster booting time > - Simplify the requisite bootloaders > - Get rid of flash on display device as getting into kernel
> Like the subject, beagleboard is supported in Qi bootloader. > My blog has detailed information: > http://matthsu-abacus.blogspot.com/2009/09/add-omap3-beagleboard-supp... > Qi can provide: > - Faster booting time > - Simplify the requisite bootloaders > - Get rid of flash on display device as getting into kernel
The OMAP processor follows a 2 stage boot process. The first stage is loaded into the internal static RAM by the ROM code. Because the internal static RAM is very small (64k), the first stage loader is needed to initialize memory and enough of the peripheral devices to access and load the second stage loader into main memory. It is the job of the second stage loader to initialize the remaining hardware and prepare the system for kernel boot."
TI omap3 processors actually support the usage of configuration header or
CH. Using CH, you can directly boot to SDRAM instead of going through the
internal ram. (
http://focus.ti.com/pdfs/wtbu/SWPU114Q_PrelimFinal_EPDF_03_05_2009.pdf,
section 26.4.8.2(page 3427) ). It basically is a small block of binary data
that is added to the top of the TI boot image and is actually just basic
configuration data that is used for setting up the external ram, which is
what, I think, Qi is using as well.
> The OMAP processor follows a 2 stage boot process. The first stage is
> loaded into the internal static RAM by the ROM code. Because the
> internal static RAM is very small (64k), the first stage loader is
> needed to initialize memory and enough of the peripheral devices to
> access and load the second stage loader into main memory. It is the
> job of the second stage loader to initialize the remaining hardware
> and prepare the system for kernel boot."
Abhinayak Mishra wrote:
> TI omap3 processors actually support the usage of configuration header > or CH. Using CH, you can directly boot to SDRAM instead of going > through the internal ram. > (http://focus.ti.com/pdfs/wtbu/SWPU114Q_PrelimFinal_EPDF_03_05_2009.pdf, > section 26.4.8.2(page 3427) ). It basically is a small block of binary > data that is added to the top of the TI boot image and is actually > just basic configuration data that is used for setting up the external > ram, which is what, I think, Qi is using as well.
Hi Abhinayak,
Thanks for your information. This might makes the implementation of supporting omap3 easier.
I definitely would give this a try out.
> On Mon, Oct 5, 2009 at 8:13 PM, Jim Huang <js...@0xlab.org > <mailto:js...@0xlab.org>> wrote:
> 2009/9/23 Matt Hsu <m...@0xlab.org <mailto:m...@0xlab.org>>:
> > Like the subject, beagleboard is supported in Qi bootloader.
> > My blog has detailed information:
> The OMAP processor follows a 2 stage boot process. The first stage is
> loaded into the internal static RAM by the ROM code. Because the
> internal static RAM is very small (64k), the first stage loader is
> needed to initialize memory and enough of the peripheral devices to
> access and load the second stage loader into main memory. It is the
> job of the second stage loader to initialize the remaining hardware
> and prepare the system for kernel boot."
> Like the subject, beagleboard is supported in Qi bootloader. > My blog has detailed information: > http://matthsu-abacus.blogspot.com/2009/09/add-omap3-beagleboard-supp... > Qi can provide: > - Faster booting time > - Simplify the requisite bootloaders > - Get rid of flash on display device as getting into kernel
As far as we can see, boot time from hardware reset to Linux user-space reduction could benefit from the approach of using Qi, a new lightweight boot loader (only 1 stage required), by simplifying boot sequence and avoiding doubly hardware initializations. For example, there is no LCD flicking with Qi comparing to the one booted by original u-boot.
Hi Matt,
I was trying to replicate the QI build for beagle board using instructions
at
http://matthsu-abacus.blogspot.com/2009/09/add-omap3-beagleboard-supp....
I ran into the issue where I could not found the 3530 specific portion. I
might have been just replicating the wrong git repository.
Any clue?
Thanks!
Abhinayak
On Tue, Oct 6, 2009 at 12:10 AM, Matt Hsu <m...@0xlab.org> wrote:
> Abhinayak Mishra wrote:
>> TI omap3 processors actually support the usage of configuration header or
>> CH. Using CH, you can directly boot to SDRAM instead of going through the
>> internal ram. (
>> http://focus.ti.com/pdfs/wtbu/SWPU114Q_PrelimFinal_EPDF_03_05_2009.pdf,
>> section 26.4.8.2(page 3427) ). It basically is a small block of binary data
>> that is added to the top of the TI boot image and is actually just basic
>> configuration data that is used for setting up the external ram, which is
>> what, I think, Qi is using as well.
> Hi Abhinayak,
> Thanks for your information. This might makes the implementation of
> supporting omap3 easier.
> I definitely would give this a try out.
> Cheers,
> Matt
>> On Mon, Oct 5, 2009 at 8:13 PM, Jim Huang <js...@0xlab.org <mailto:
>> js...@0xlab.org>> wrote:
>> 2009/9/23 Matt Hsu <m...@0xlab.org <mailto:m...@0xlab.org>>:
>> > Like the subject, beagleboard is supported in Qi bootloader.
>> > My blog has detailed information:
>> The OMAP processor follows a 2 stage boot process. The first stage is
>> loaded into the internal static RAM by the ROM code. Because the
>> internal static RAM is very small (64k), the first stage loader is
>> needed to initialize memory and enough of the peripheral devices to
>> access and load the second stage loader into main memory. It is the
>> job of the second stage loader to initialize the remaining hardware
>> and prepare the system for kernel boot."
Abhinayak Mishra wrote:
> Hi Matt,
> I was trying to replicate the QI build for beagle board using > instructions at > http://matthsu-abacus.blogspot.com/2009/09/add-omap3-beagleboard-supp... > .
> I ran into the issue where I could not found the 3530 specific > portion. I might have been just replicating the wrong git repository.
> Any clue?
Hi Abhinayak,
Did you checkout origin/omap3530 branch?
Can you dump your .git/config in qi directory?
You should find the image of qi-omap3530-something.bin under /images.
> On Tue, Oct 6, 2009 at 12:10 AM, Matt Hsu <m...@0xlab.org > <mailto:m...@0xlab.org>> wrote:
> Abhinayak Mishra wrote:
> TI omap3 processors actually support the usage of
> configuration header or CH. Using CH, you can directly boot to
> SDRAM instead of going through the internal ram.
> (http://focus.ti.com/pdfs/wtbu/SWPU114Q_PrelimFinal_EPDF_03_05_2009.pdf,
> section 26.4.8.2(page 3427) ). It basically is a small block
> of binary data that is added to the top of the TI boot image
> and is actually just basic configuration data that is used for
> setting up the external ram, which is what, I think, Qi is
> using as well.
> Hi Abhinayak,
> Thanks for your information. This might makes the implementation
> of supporting omap3 easier.
> I definitely would give this a try out.
> Cheers,
> Matt
> On Mon, Oct 5, 2009 at 8:13 PM, Jim Huang <js...@0xlab.org
> <mailto:js...@0xlab.org> <mailto:js...@0xlab.org
> <mailto:js...@0xlab.org>>> wrote:
> 2009/9/23 Matt Hsu <m...@0xlab.org <mailto:m...@0xlab.org>
> <mailto:m...@0xlab.org <mailto:m...@0xlab.org>>>:
> > Like the subject, beagleboard is supported in Qi bootloader.
> > My blog has detailed information:
> The OMAP processor follows a 2 stage boot process. The
> first stage is
> loaded into the internal static RAM by the ROM code.
> Because the
> internal static RAM is very small (64k), the first stage
> loader is
> needed to initialize memory and enough of the peripheral
> devices to
> access and load the second stage loader into main memory.
> It is the
> job of the second stage loader to initialize the remaining
> hardware
> and prepare the system for kernel boot."
Grégory Clement gave a talk, "How We Got a 3D Application Booting in 5
Seconds Under Linux"[1], at ELC Europe 2009.
It is all about boot time optimizations including u-boot, linux
kernel, and user-space applications. (Page 60)
Bootstrap || U-Boot || Linux Kernel
|| Init (user) || app (user) || Total
Before optimization 0.1 || 4.2 || 12.6
|| 6.3 || 6.8 || 30
After optimization 0.1 || 2.6 || 0.9
|| 0.4 || 0.4 || 4.4
As you can see, it was a great improvement over each components.
However, u-boot is now a boot time bottleneck: taking
2.6s to boot! That is the advantage of Qi lightweight boot loader.
> Grégory Clement gave a talk, "How We Got a 3D Application Booting in 5
> Seconds Under Linux"[1], at ELC Europe 2009.
> It is all about boot time optimizations including u-boot, linux
> kernel, and user-space applications. (Page 60)
> As you can see, it was a great improvement over each components.
> However, u-boot is now a boot time bottleneck: taking
> 2.6s to boot! That is the advantage of Qi lightweight boot loader.
> You received this message because you are subscribed to the Google Groups
> "0xlab-devel" group.
> To post to this group, send email to 0xlab-devel@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/0xlab-devel?hl=en.
Brief:
<%
Qi (named by Alan Cox on Openmoko kernel list) is a minimal bootloader that
“breathes life” into Linux. Its goal is to stay close to the minimum needed
to “load” and then “boot” Linux — no boot menus, additional peripheral init
or private states.
%>
We would like to enable more SoC following Qi's philosophy. At
present, the supported
platform list:
- TI omap3530 / Beagleboard
- Samsung smdk6410
- Freescale i.MX31
- Openmoko GTA02 (Freerunner) / s3c2442
- Openmoko GTA01 / s3c2410