Page 1 of 26

Coreboot and SeaBIOS

Posted: Thu Aug 09, 2012 8:22 pm
by inaxeon
Recently I've taken a few weeks off work to do something I've been wanting to do all year: Port Coreboot and SeaBIOS to the Joggler

Why? I'm mostly a Windows user and I've been pretty disappointed with Windows operation as it stands, specifically, these were my main gripes:

* No Windows 7
* No ability to boot from PATA
* Windows installations need to be patched
* Builds have to be pre-made, i.e. can't just plug in a USB CD-ROM and install
* No boot screen
* No ability to use VGA BIOSes/EFI splash screens other than that for the original Joggler LCD panel
* Backlight brightness is "dim" by default when booting Windows XP, requires a hacky program to adjust
* "Error 10" problems when using the internal NIC

Having coreboot allows me to fix all of these problems but it's been a lot of work. I've been keeping a diary of my efforts here:

http://www.jogglerwiki.com/wiki/Joggler_Coreboot_Diary

I'm by no means finished yet, but I'm at a point where I could use some help. Windows 7 and Windows XP don't work yet - but I know why this is, and am working on it. Linux on the other hand seems to be a lot more working.

Would anyone be prepared to spend some time trying to figure out why Linux booting doesn't work? Currently it gets to about the point where the X server is to be started, then crashes. I realise there aren't many developers in the Joggler community, but If there's anyone with a lot of Linux expertise and a bit of spare time, I could definitely use your help right now!

EDIT: A little more context: Coreboot replaces the current EFI. SeaBIOS is to provide a legacy PC BIOS layer currently lacking in the Joggler.

Coreboot is all working on the Joggler now, but SeaBIOS isn't quite there yet.

Re: Coreboot and SeaBIOS

Posted: Thu Aug 09, 2012 8:56 pm
by danfoshizzle
This is frickin awesome, Great work mate!

Re: Coreboot and SeaBIOS

Posted: Thu Aug 09, 2012 11:25 pm
by OwenRW
Wow, that's some pretty impressive work! :D

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 11:41 am
by Mevi
+1, awesome. Some months back I investigated using an open source BIOS and came across a lot of information. My idea was to add a fake BIOS into Grub, however I lacked the brain power to make it happen. It was still gonna be a software hack, but I hoped it would get us more OS options. :D

DOS on a Joggler! I never thought I'd see the day. That'd be good for flashing the NIC... if that even IS the fix for the broken NIC on some Jogglers.

Obviously, I'm no help getting it working, but I can donate one or two sacrificial Jogglers.

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 11:49 am
by inaxeon
I think there are a lot of ways you could patch in a BIOS, I even found that you could load SeaBIOS from the EFI.

Regardless of whether it's coreboot or the EFI which brings the system up though, getting that BIOS and the companion VGA BIOS to work properly is the lion's share of the effort. I'd prefer coreboot as I can hack it all I like, and it's an order of magnitude faster than the 'AMI Aptio' EFI the Joggler ships with.

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 11:56 am
by Mevi
inaxeon wrote:I think there are a lot of ways you could patch in a BIOS, I even found that you could load SeaBIOS from the EFI.

Regardless of whether it's coreboot or the EFI which brings the system up though, getting that BIOS and the companion VGA BIOS to work properly is the lion's share of the effort. I'd prefer coreboot as I can hack it all I like, and it's an order of magnitude faster than the 'AMI Aptio' EFI the Joggler ships with.
Once completed will this be a EFI/BIOS chip re-program, or are there more steps to get it working on multiple Jogglers? I read somewhere that we can re-flash the EFI from Linux. Would that work in this case?

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 12:09 pm
by inaxeon
Mevi wrote:Obviously, I'm no help getting it working, but I can donate one or two sacrificial Jogglers.
You definitely could help me out here. Assuming I get all this working, there's a few things I'm unsure of at present: Is it possible, and feasible to boot Win 7 from a USB HDD? I noticed that USBoot doesn't support anything newer than XP

Also, How is Win 7 with, err, 507MB of RAM? I've read mixed reports..

Also also, What about that USB touch screen? Are there drivers that will work on Win 7 32-bit? Is multi touch going to work on that screen and would the Windows 7 Touch feature be able to make use of it?

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 12:11 pm
by inaxeon
Mevi wrote:Once completed will this be a EFI/BIOS chip re-program, or are there more steps to get it working on multiple Jogglers? I read somewhere that we can re-flash the EFI from Linux. Would that work in this case?
I'd provide a 1MB image which has to be written into the FWH, completely replacing the EFI.

I think BuZz mentioned that there is software in the OpeanPeak build which can overwrite this. Going back to the stock EFI after that would be a piece of cake because we can use the DOS reflash util.

And hey, if you want to play with it, I can send alpha builds over...

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 2:35 pm
by danfoshizzle
Sign me up for an alpha build, will help how I can, but will most definitely be a tester for you,

Windows 7 will boot from usb hdd, just a matter of following this: http://www.intowindows.com/how-to-insta ... -must-read( I did have a better guide than this, cant find it though!)

Windows 8 runs better on lower specification than 7, It is almost as light as xp in my test of the RTM, and then we could use windows to go from our on installations! (no licensing to worry about then :) )

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 2:44 pm
by pete
Hello from Chicago!

Great idea!

I can also volunteer a couple of Jogglers here to test.

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 3:15 pm
by danfoshizzle
Just read the wiki again, so you have a partial working SeaBios? If this is the case could the crash be caused by the installers/live cds running out of ram? it should not be, as 512mb should be more than enough, but just in case maybe try a puppy linux live cd?

EDIT: This is really exciting, not just for the windows functions, but this will help with linux too for me, I lack the knowledge of linux to build my own images, but do like it on the joggler, this will make it alot easier to try different tastes of anything you like, this is fabulous work mate, well done! :D

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 5:43 pm
by inaxeon
danfoshizzle wrote:Sign me up for an alpha build, will help how I can, but will most definitely be a tester for you
Okay, but I've got a few things which really need fixing before I hand anything out i.e. it's stuck with USB 1.1 at the moment which sucks, some mofo broke the SeaBIOS USB 2.0 code for this chip :-<

Also, I need to make sure that DOS FWH flashing works too

Do any of your Jogglers have PATA connectors fitted?

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 5:45 pm
by inaxeon
danfoshizzle wrote:Just read the wiki again, so you have a partial working SeaBios? If this is the case could the crash be caused by the installers/live cds running out of ram? it should not be, as 512mb should be more than enough, but just in case maybe try a puppy linux live cd?
It's not an out of RAM problem. It tries to start X then spits out a message which reads like "Authentication failure" then drops back to the console

of course, you have to wait half an hour to get to that point thanks to the USB 1.1 only problem.

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 9:35 pm
by Mevi
PWBoot, which you can find on reboot.pro is what I used to install Win7 on USB HDD. I only did it for laughs, so it could do with some optimisation for the Joggler, but it ran really really slow on my C2D lappy. The process is as easy as pointing the app to the .WIM image file on the Win7 DVD and clicking the 'go' button. Painless, but disappointing in my case.

None of my Jogglers have a PATA soldered on. My soldering skills are pants. PM me an address if you want spare HW and I'll send you a couple of Jogglers that I'm not using. One is stuck on the O2 logo and might just need the 'press esc' trick, the other works fine but has fried eMMC.

I remember reading here on the forum that Win7 recognises the Joggler's touch screen when connected to another PC via USB. I don't expect there's multitouch though.

Re: Coreboot and SeaBIOS

Posted: Fri Aug 10, 2012 11:20 pm
by danfoshizzle
inaxeon wrote:
danfoshizzle wrote:Sign me up for an alpha build, will help how I can, but will most definitely be a tester for you
Okay, but I've got a few things which really need fixing before I hand anything out i.e. it's stuck with USB 1.1 at the moment which sucks, some mofo broke the SeaBIOS USB 2.0 code for this chip :-<

Also, I need to make sure that DOS FWH flashing works too

Do any of your Jogglers have PATA connectors fitted?

Cant remember will have a look, could be that 1.1 speeds are making other stuff timeout, I know that some xp builds that are too slow fail to boot also, just a thought mind. Sorry I cant be of any more help!

Re: Coreboot and SeaBIOS

Posted: Sun Aug 12, 2012 5:51 am
by danfoshizzle
Apparently deleting the i8042prt.sys from the active installation will get rid of the error, but not sure if you are using a pre made xp or trying to do an install?

Re: Coreboot and SeaBIOS

Posted: Sun Aug 12, 2012 5:03 pm
by inaxeon
danfoshizzle wrote:Apparently deleting the i8042prt.sys from the active installation will get rid of the error, but not sure if you are using a pre made xp or trying to do an install?
Just installing from CD

There problem is more that NTDETECT is trying to probe the i8042 by writing to ports 0x60, 0x61 and 0x64 and locking its self up in the process. The assumption is that one will always exist, it's just trying to detect if there's a physical keyboard behind it.

I believe the correct hack is to tweak NTDETECT to not ever try to probe the i8042, and therefore tell the system not to load i8042prt.sys. Just to be a real freakin pain, the i82801G (from which the US15W was partially based) had SMI hooks for the i8042 which would allow one to be emulated in software, except there's an errata in the US15W which effectively breaks this, so rather than fixing it, Intel pulled all mention of it out of the manual.


Or are you saying NTDETECT won't bother trying to talk to the 8042 if i8042prt.sys isn't present? That seems unlikely but if that's how it works then that'd be a real bonus

Re: Coreboot and SeaBIOS

Posted: Sun Aug 12, 2012 7:29 pm
by inaxeon
Dan, Mevi:

EHCI problem is (mostly) fixed. I've PM'd you a link to the 'Alpha'. Good luck :P

Chances are I will have replaced it with another (less buggy) version before you get a chance to look at it, but that's a starting point.

It boots DOS and kind of boots Linux from USB CD-ROM, but that's it. It may boot off a USB HDD.

A little bad news on the DOS flashing front. The utility Intel recommends (AFUDOS) only works when the system is running an AMIBIOS, which it isn't, so writing another image into the FWH is going to require some 'hot socketing', using another Joggler running the stock Aptio EFI and the built in OS. I do recall a thread somewhere on this forum where someone did it, but can't find it. I'll have to write a driver for SeaBIOS to do this at some point.

Re: Coreboot and SeaBIOS

Posted: Mon Aug 13, 2012 12:20 am
by danfoshizzle
Yeah, apparently if i8042prt.sys is not present, ntdetect does not try to call it, could be for an active installation over a install from from cd though.

Re: Coreboot and SeaBIOS

Posted: Mon Aug 13, 2012 5:13 pm
by Mevi
Thanks for the PM Inaxeon. I'll get onto it tomorrow or maybe late tonight.... Kids to entertain in the meantime. I don't remember being bored in the summer holidays when I was a kid. I was satisfied with my Speccy and my BMX.

Really excited by this new rom. I've selected which of my lucky Jogglers will be getting an upgrade - my 'stunt Joggler', the one with the blobs of solder still on the main board from my last HW mod attempts... Did I mention I'm no good at soldering? :D

I'm expecting Dan will have Win7 or 8 running pretty soon, not that it's a race or anything. ;P