Dear list(s),
This is the final patch that got everything working for me with the HP dl145g3. I would like to remind you that this firmware enables the hardware virtualization on the AMD cpu's on the machine. That feature was explicitly disabled by the factory BIOS. Due to an error in the VGAROM no other rom loader (YABEL or X*^BIOS) than SeaBIOS manages to load the VGA rom. The VGA ROM tries to read config space of a device that is actually not present. Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting: ./cbfstool coreboot.rom add-payload filo.elf img/FILO
Signed-off-by: Samuel Verstraete (samuel.verstraete@gmail.com)
As the machine is working wonderfull now I would say that the goal of the "contest [1]" was achieved. Hereby I would like to thank everyone that helped me with this, especially Mondrian Nuessle (for the initial patches), Myles Watson (for the many hours in chat to help me with loading the vga rom, cleaning up the patches and fiddling with the payloads) and Anton Borisov (for extracting the vga rom for me). In the name of the Xfce development team I would like to award the 3 of you with each 33 euro for all the work you have done. Can you guys please contact me so we can transfer the money to you? In general I would like to thank all of the Coreboot developers and users. You were all very responsive to help me out with this machine.
The machine will ship on friday to sweden where it will find it's final destination in the datacenter of http://www.su.se . From then on it will be building snapshots for Xfce.
[1] http://www.coreboot.org/pipermail/coreboot/2009-March/045954.html
Cheers,
Samuel aka ElAngelo
Hi,
Thats very nice! I just wanted to ask if you know in what register/MSR gets the SVM disabled. Or maybe Marc will know?
Thanks, Rudolf
On Tue, May 12, 2009 at 5:50 AM, Rudolf Marek r.marek@assembler.cz wrote:
Hi,
Thats very nice! I just wanted to ask if you know in what register/MSR gets the SVM disabled. Or maybe Marc will know?
The details are in the Fam 10 BKDG section 2.16 - BIOS support for SVM Disable
Congratulations Samuel. This is a very exciting port for coreboot.
Marc
This would be a great success story to have on the wiki!
Especially given that part of the result was a *more* capable machine, with hardware working that the vendor disabled.
ron
Hi Samuel,
could I interest you in writing a small success story for our wiki? It might get used for some promotional material as well.
On 12.05.2009 16:51, ron minnich wrote:
This would be a great success story to have on the wiki!
Especially given that part of the result was a *more* capable machine, with hardware working that the vendor disabled.
Absolutely agreed.
Regards, Carl-Daniel
On Tue, May 12, 2009 at 5:44 AM, samuel samuel.verstraete@gmail.com wrote:
Dear list(s),
This is the final patch that got everything working for me with the HP dl145g3. I would like to remind you that this firmware enables the hardware virtualization on the AMD cpu's on the machine. That feature was explicitly disabled by the factory BIOS. Due to an error in the VGAROM no other rom loader (YABEL or X*^BIOS) than SeaBIOS manages to load the VGA rom. The VGA ROM tries to read config space of a device that is actually not present.
Pattrick, I think that YABEL should print a warning and return 0xFFFF for config reads to non-existant devices.
Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting:
Kevin, It looks like AHCI uses backward compatible register definitions. FILO support of AHCI looks pretty simple. I wonder how many other boards need this support.
./cbfstool coreboot.rom add-payload filo.elf img/FILO
Signed-off-by: Samuel Verstraete (samuel.verstraete@gmail.com)
Acked-by: Myles Watson mylesgw@gmail.com
Rev 4277.
Thanks, Myles
On Tue, May 12, 2009 at 09:21:12AM -0600, Myles Watson wrote:
On Tue, May 12, 2009 at 5:44 AM, samuel samuel.verstraete@gmail.com wrote:
Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting:
Heh.
Kevin, It looks like AHCI uses backward compatible register definitions. FILO support of AHCI looks pretty simple. I wonder how many other boards need this support.
Can you point me to the filo repo/file/line that has this support?
-Kevin
-----Original Message----- From: Kevin O'Connor [mailto:kevin@koconnor.net] On Tue, May 12, 2009 at 09:21:12AM -0600, Myles Watson wrote:
On Tue, May 12, 2009 at 5:44 AM, samuel samuel.verstraete@gmail.com
wrote:
Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting:
Heh.
Kevin, It looks like AHCI uses backward compatible register definitions. FILO support of AHCI looks pretty simple. I wonder how many other boards need this support.
Can you point me to the filo repo/file/line that has this support?
I actually couldn't find anything different in the file between how the registers were programmed. I didn't look for too long. I've since been told that the Broadcom chip we're talking about doesn't have AHCI, so I don't know... Except that FILO works with the board.
Too bad we didn't get it figured out before it got shipped to the data center. At least it worked out for him.
Maybe there will be others who will be interested in running virtual machines on their dl145G3, and we'll get another shot at it :)
Thanks, Myles
On Tue, May 12, 2009 at 09:05:09PM -0600, Myles Watson wrote:
I actually couldn't find anything different in the file between how the registers were programmed. I didn't look for too long. I've since been told that the Broadcom chip we're talking about doesn't have AHCI, so I don't know... Except that FILO works with the board.
Samuel posted a log after patching SeaBIOS that had:
ATA controller 0 at 000001f0/000003f0 (dev 00000170 prog_if 00000080) ATA controller 1 at 00000170/00000370 (dev 00000170 prog_if 00000080) ATA controller 2 at 00001050/00001090 (dev 00000171 prog_if 0000008f) ATA controller 3 at 00001060/000010a0 (dev 00000171 prog_if 0000008f) powerup IDE floating powerup IDE floating ata_detect drive=0 sc=000000ff sn=000000ff dh=000000ff powerup IDE floating powerup IDE floating ata_detect drive=1 sc=000000ff sn=000000ff dh=000000ff powerup IDE floating powerup IDE floating ata_detect drive=2 sc=000000ff sn=000000ff dh=000000ff powerup IDE floating powerup IDE floating ata_detect drive=3 sc=000000ff sn=000000ff dh=000000ff powerup iobase=00001050 st=0000007f powerup iobase=00001050 st=0000007f ata_detect drive=4 sc=000000ff sn=000000ff dh=000000ff powerup iobase=00001050 st=0000007f powerup iobase=00001050 st=0000007f ata_detect drive=5 sc=000000ff sn=000000ff dh=000000ff powerup iobase=00001060 st=0000007f powerup iobase=00001060 st=0000007f ata_detect drive=6 sc=000000ff sn=000000ff dh=000000ff powerup iobase=00001060 st=0000007f powerup iobase=00001060 st=0000007f ata_detect drive=7 sc=000000ff sn=000000ff dh=000000ff
The above indicates that SeaBIOS found the HT1000, but that the ioport registers weren't responding to writes. (A 0xaa/0x55 pattern should have been seen instead of 0xff.) Filo has the same register presence check - so I'm not sure why filo doesn't have the same issue.
Too bad we didn't get it figured out before it got shipped to the data center. At least it worked out for him.
I thought someone else on the list had one of these machines. Oh well, maybe next time.
-Kevin
Hi,
On Tue, May 12, 2009 at 5:21 PM, Myles Watson mylesgw@gmail.com wrote:
Pattrick, I think that YABEL should print a warning and return 0xFFFF for config reads to non-existant devices.
i will come up with patches... however i am not sure wether that is the right thing to do... i have seen roms that use the ffff to continue and very strange results occur...
There is the option CONFIG_YABEL_PCI_ACCESS_OTHER_DEVICES to allow access to other PCI devices... maybe i should make that the default, since some ROMs seem to rely on it?
Cheers, Pattrick
-----Original Message----- From: Pattrick Hueper [mailto:phueper@hueper.net] Sent: Sunday, May 17, 2009 2:42 PM To: Myles Watson Cc: samuel; coreboot@coreboot.org; Kevin O'Connor Subject: Re: HP DL145G3 - BuildBot
Hi,
On Tue, May 12, 2009 at 5:21 PM, Myles Watson mylesgw@gmail.com wrote:
Pattrick, I think that YABEL should print a warning and return 0xFFFF for config reads to non-existant devices.
i will come up with patches... however i am not sure wether that is the right thing to do... i have seen roms that use the ffff to continue and very strange results occur...
I think it should still have a very loud warning, but I'm not sure what the alternative is. It seems like any other value has the potential for more problems.
There is the option CONFIG_YABEL_PCI_ACCESS_OTHER_DEVICES to allow access to other PCI devices... maybe i should make that the default, since some ROMs seem to rely on it?
Maybe for read, but not for write?
Thanks, Myles
On Tue, May 12, 2009 at 7:44 AM, samuel samuel.verstraete@gmail.com wrote:
Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting: ./cbfstool coreboot.rom add-payload filo.elf img/FILO
I think you may still be able to get this part working without FILO, but I am not sure how. The HT1000 SATA is not AHCI, so support for AHCI won't actually help. The controller has normal PATA emulation mode, as well as its own "QDMA" SATA mode (in lieu of AHCI).
On Tue, May 12, 2009 at 10:20 AM, Tom Sylla tsylla@gmail.com wrote:
On Tue, May 12, 2009 at 7:44 AM, samuel samuel.verstraete@gmail.com wrote:
Because SeaBIOS does not support AHCI SATA it can not start the bootable drive of the machine so i had to add filo to seabios to manage booting: ./cbfstool coreboot.rom add-payload filo.elf img/FILO
I think you may still be able to get this part working without FILO, but I am not sure how. The HT1000 SATA is not AHCI, so support for AHCI won't actually help. The controller has normal PATA emulation mode, as well as its own "QDMA" SATA mode (in lieu of AHCI).
Are you saying that FILO shouldn't be working, or that SeaBIOS should be working?
The controller seems to be in SATA mode and works with FILO.
Thanks, Myles
Myles Watson wrote:
The controller has normal PATA emulation mode, as well as its own "QDMA" SATA mode (in lieu of AHCI).
Are you saying that FILO shouldn't be working, or that SeaBIOS should be working?
SeaBIOS should be working, as long as the controller is in PATA mode.
The controller seems to be in SATA mode and works with FILO.
FILO only has special support for SATA controllers as far as controller enumeration goes. FILO drives them just like it drives PATA controllers.
//Peter
On Tue, May 12, 2009 at 12:46 PM, Myles Watson mylesgw@gmail.com wrote:
I think you may still be able to get this part working without FILO, but I am not sure how. The HT1000 SATA is not AHCI, so support for AHCI won't actually help. The controller has normal PATA emulation mode, as well as its own "QDMA" SATA mode (in lieu of AHCI).
Are you saying that FILO shouldn't be working, or that SeaBIOS should be working?
What Peter said, it seems like SeaBIOS could work, with some more effort. There is some sort of combination of controller mode or settings that should make it work, on our HT1000 platform, with non-coreboot BIOS, we can boot all OSes in HT1000 "PATA" mode.
The controller seems to be in SATA mode and works with FILO.
That sort of sounded non-ideal from the original mail, but if it is no problem, then there doesn't need to be more effort.
On Tue, May 12, 2009 at 3:45 PM, Tom Sylla tsylla@gmail.com wrote:
On Tue, May 12, 2009 at 12:46 PM, Myles Watson mylesgw@gmail.com wrote:
I think you may still be able to get this part working without FILO, but I am not sure how. The HT1000 SATA is not AHCI, so support for AHCI won't actually help. The controller has normal PATA emulation mode, as well as its own "QDMA" SATA mode (in lieu of AHCI).
Are you saying that FILO shouldn't be working, or that SeaBIOS should be working?
What Peter said, it seems like SeaBIOS could work, with some more effort. There is some sort of combination of controller mode or settings that should make it work, on our HT1000 platform, with non-coreboot BIOS, we can boot all OSes in HT1000 "PATA" mode.
We tried applying the patch that enabled the HT1000 with FILO to seabios, but it didn't make a difference.
The controller seems to be in SATA mode and works with FILO.
That sort of sounded non-ideal from the original mail, but if it is no problem, then there doesn't need to be more effort.
It would have been nice to boot directly Coreboot+SeaBIOS instead of Coreboot+SeaBIOS+FILO. It would have made system administration easier.
Since the box is now in a data center (or on its way) and I don't have one... It will have to be a future effort.
Thanks, Myles