Hi all,
We use the Lippert Cool LiteRunner in a commercial application. The POST times of the Lippert BIOS is DISMAL to say the least. The embedded system takes 11 seconds to the lilo/grub stage.
I noticed that the Cool FrontRunner has some work completed, although it is not listed as a working board. The Frontrunner is basically a LiteRunner with some extra features.
Our company are considering the possibilties for a new BIOS. The following questions come to mind:
Option 1: We hack coreboot. * What will this entail in work? We have some experience and equipment in house for the job. * What do we require to make life easy for us? (tools etc)
Option 2: We pay someone to hack coreboot for us. * Is there someone that can do this for us? * What will this cost?
Option 3: An alternative to coreboot? * Is there an alternative??
Option 4: /*Not really an option*/ We buy in one of the commercial bios solutions
Best regards,
Frans
On 11/03/08 13:59 +0100, Frans Grotepass wrote:
Hi all,
We use the Lippert Cool LiteRunner in a commercial application. The POST times of the Lippert BIOS is DISMAL to say the least. The embedded system takes 11 seconds to the lilo/grub stage.
I noticed that the Cool FrontRunner has some work completed, although it is not listed as a working board. The Frontrunner is basically a LiteRunner with some extra features.
Thats a Geode GX/CS5535 based platform, for those who don't know.
Official support for the GX/5535 isn't currently available, but the Geode LX and CS5536 are supported and similar to the GX/5535 (the LX is the newer version of the GX). It shouldn't be too difficult to add support for the GX, you can borrow much of the code from the LX.
There are some other people on this list who are also interested in supporting the GX and 5535, I'll let them speak up.
Jordan
On Tuesday 11 March 2008, Jordan Crouse wrote:
On 11/03/08 13:59 +0100, Frans Grotepass wrote:
Hi all,
We use the Lippert Cool LiteRunner in a commercial application. The POST times of the Lippert BIOS is DISMAL to say the least. The embedded system takes 11 seconds to the lilo/grub stage.
I noticed that the Cool FrontRunner has some work completed, although it is not listed as a working board. The Frontrunner is basically a LiteRunner with some extra features.
Thats a Geode GX/CS5535 based platform, for those who don't know.
Official support for the GX/5535 isn't currently available, but the Geode LX and CS5536 are supported and similar to the GX/5535 (the LX is the newer version of the GX). It shouldn't be too difficult to add support for the GX, you can borrow much of the code from the LX.
There are some other people on this list who are also interested in supporting the GX and 5535, I'll let them speak up.
Jordan
I just had another detailed look at the components.
We use the Cool Lite Runner2 (CLR2) board (due to the required Audio output)
According to the coreboot site, V2 supports the GX1, GX2 and LX northbridges.
The CLR2 has the CS5536 southbridge compared to the standard CLR having the CS5535. This is also supported.
The Super I/O is the Winbond63827HF and that is not supported, but supported in coreboot V3
How much info is required of the rest of the board specifications?
Regards,
Frans
On 11.03.2008 16:55, Frans Grotepass wrote:
On Tuesday 11 March 2008, Jordan Crouse wrote:
On 11/03/08 13:59 +0100, Frans Grotepass wrote:
We use the Lippert Cool LiteRunner in a commercial application. The POST times of the Lippert BIOS is DISMAL to say the least. The embedded system takes 11 seconds to the lilo/grub stage.
Thats a Geode GX/CS5535 based platform, for those who don't know.
Official support for the GX/5535 isn't currently available, but the Geode LX and CS5536 are supported and similar to the GX/5535 (the LX is the newer version of the GX). It shouldn't be too difficult to add support for the GX, you can borrow much of the code from the LX.
There are some other people on this list who are also interested in supporting the GX and 5535, I'll let them speak up.
I just had another detailed look at the components.
We use the Cool Lite Runner2 (CLR2) board (due to the required Audio output)
According to the coreboot site, V2 supports the GX1, GX2 and LX northbridges.
The CLR2 has the CS5536 southbridge compared to the standard CLR having the CS5535. This is also supported.
The Super I/O is the Winbond63827HF and that is not supported, but supported in coreboot V3
How much info is required of the rest of the board specifications?
The Geode GX + CS5536 combination is new to me, but it also means you should be able to reuse a lot more of the v3 code (no CS5535 support required). Actually, I'm pretty sure it will be even easier to modify the v3 code to support your board because you only have to modify the LX code to support GX and you can skip CS5535 support.
However, there are some targets in v2 which have the GX/CS5536 combination (AMD Rumba, OLPC rev_a+btest), so using v2 is also definitely an option. Please be aware that support for the OLPC mainboards may have bitrotted (and it had special OLPC-only code).
Regards, Carl-Daniel
Jordan Crouse wrote:
There are some other people on this list who are also interested in supporting the GX and 5535, I'll let them speak up.
Here I am. Personally, I got some major trouble how to understand coreboot:
- Migration from v2 to v3: Is there any help and docu how code should be ported from v2 to v3 - or is v3 that much cleaner (that means completely new and different) so that it would be better to write new code from scratch?
- Hardware info: would I need the circuit plans of a board in order to know what is available? I got e.g. several ports on my board which could be GPIO, LPC, LVDS, ...
- BIOS decompiler: Is there any BIOS decompiler which would tell me the current operations which have to be done?
On 12.03.2008 06:53, Martin Trautmann wrote:
Jordan Crouse wrote:
There are some other people on this list who are also interested in supporting the GX and 5535, I'll let them speak up.
Here I am. Personally, I got some major trouble how to understand coreboot:
- Migration from v2 to v3: Is there any help and docu how code should be
ported from v2 to v3 - or is v3 that much cleaner (that means completely new and different) so that it would be better to write new code from scratch?
Reading the design document in the v3 tree and the mainboard specific code for one mainboard will give you a pretty good overview of the v3 structure (and to some extent, code quality). The architecture of v3 is completely different from v2 and porting means a lot of refactoring. Depending on how baroque the old code is, you might want to work from existing v3 code instead (this is especially true for GX and CS5535 code).
- Hardware info: would I need the circuit plans of a board in order to
know what is available? I got e.g. several ports on my board which could be GPIO, LPC, LVDS, ...
In theory, all those settings should be done in the mainboard dts. However, there may be some settings which can not yet be done in the dts and the recommended course of action would be to make them dts-aware. Having board schematics eases porting somewhat, but most of the board bringup (except specialized functions like those you mentioned and IRQ routing) should be easily doable without schematics.
- BIOS decompiler: Is there any BIOS decompiler which would tell me the
current operations which have to be done?
There are some tools to analyze proprietary BIOS images, but the person doing the analysis is not allowed to use the results to write code because it would violate clean room principles. The best advice I can give is to avoid touching/analyzing proprietary BIOS code/images, especially if hardware documentation is readily available.
Regards, Carl-Daniel
Hi Frans,
On 11.03.2008 13:59, Frans Grotepass wrote:
We use the Lippert Cool LiteRunner in a commercial application. The POST times of the Lippert BIOS is DISMAL to say the least. The embedded system takes 11 seconds to the lilo/grub stage.
I assume you want to run Linux on that board and not Windows.
I noticed that the Cool FrontRunner has some work completed, although it is not listed as a working board. The Frontrunner is basically a LiteRunner with some extra features.
The Frontrunner support in Coreboot v2 was in a half-working state about two years ago and the situation has not improved since then. It is rather unlikely you can use it as a template for Literunner without being very familiar with the old Coreboot v2 code structure.
Our company are considering the possibilties for a new BIOS. The following questions come to mind:
Option 1: We hack coreboot.
- What will this entail in work? We have some experience and equipment in
house for the job.
Depending on how familiar your engineers are with firmware development and ROMCC pitfalls in particular, it could take quite a few months.
- What do we require to make life easy for us? (tools etc)
- POST card - Serial connector which is attached to the CS5535 or the Winbond SuperIO - ROM emulator which attaches to the board in place of the flash chip - FS2 debugger if there are hard-to-debug problems
Option 2: We pay someone to hack coreboot for us.
- Is there someone that can do this for us?
Yes, a few coreboot contributors offer such services.
- What will this cost?
It almost invariably will be cheaper than doing the porting yourself unless you manage to find well-skilled wage slaves. I do not know how difficult porting to that particular board will be, but it might be necessary to switch the code from ROMCC to CAR+GCC which will need quite some time, but result in better code and better debuggability. AFAIK the current Frontrunner implementation has no support for PC/104, so that would have to be written as well.
Option 3: An alternative to coreboot?
- Is there an alternative??
Except for proprietary/commerical BIOS, I know of no alternatives for Geode based boards. Not really an alternative to coreboot, but an alternative to coreboot v2 would be coreboot v3. It is still in development and does not yet support the Geode GX, but its structure is a lot cleaner than that of coreboot v2 and allows adaptation to new boards in a matter of days if the processor and chipset are supported. Depending on the effort needed to get v2 working on the Literunner, the package of adding Geode GX support to v3 and adapting it to the Literunner may be faster+cheaper.
Option 4: /*Not really an option*/ We buy in one of the commercial bios solutions
I'm confident we can help you to avoid that option.
Regards, Carl-Daniel
On Tuesday 11 March 2008, Carl-Daniel Hailfinger wrote:
I assume you want to run Linux on that board and not Windows.
The board is running Linux at the moment. It is part of a larger embedded system one of the other components takes longer to start up, so the fact that POST takes long is not that critical at the moment. If we speed up things in the other ompnents, then it will become an issue.
It is rather unlikely you can use it as a template for Literunner without being very familiar with the old Coreboot v2 code structure.
Will take this into consideration...
Depending on how familiar your engineers are with firmware development and ROMCC pitfalls in particular, it could take quite a few months.
I'll be the (un)lucky soul. My knowledge is limited, but I am an eager learner and it looks like fun to get better in.
Option 2: We pay someone to hack coreboot for us.
- Is there someone that can do this for us?
It almost invariably will be cheaper than doing the porting yourself unless you manage to find well-skilled wage slaves. >
As said, I'll be the wage slave. It sounds like fun to build! We will consider sourcing it out, but gaining the intelligence for in house is not amis.
Option 4: /*Not really an option*/ We buy in one of the commercial bios solutions
I'm confident we can help you to avoid that option.
I'll get my swimming trunks! At this stage possible development of a custom bios is still at a low priority, but it might get pushed up if there is a clear plan that could provide good results. For a start I'll have to check out the tools required and how much that would cost.
Best regards,
Frans
I think for the level of effort, coreboot v3 might make the most sense. I did the literunner port startup and ran out of time.
So, since you are in essence starting something new, I think the long term picture is that v3 is a better "new" thing to start, since it is much easier to work with.
thanks
ron