On Wed, Apr 14, 2010 at 9:20 PM, Idwer Vollering vidwer@gmail.com wrote:
2010/4/14 Keith Hui buurin@gmail.com
Hi all,
Based on Idwer's RFC I tried adding ACPI to P2B-LS plus completing the rest of the PIIX4 function 3 initialization.
This is a summary of what I did:
- I used the DSDT table from the final vendor BIOS. Not provided here
for obvious reasons, but I can tell you how to extract it.
- I also replicated the content of the PIIX4 function 3 config space
after booting with vendor BIOS, as below:
00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02) 00: 86 80 13 71 03 00 80 02 02 00 80 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40: 01 e4 00 00 00 00 00 20 1e 30 00 01 00 00 00 00 50: 00 58 19 00 c0 c8 3b 02 37 40 40 03 00 00 00 00 60: 90 02 e7 00 00 00 00 10 04 e4 11 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 01 e8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 30 0f 00 00 00 00 00 00
One exception is 0x90-0x91 which has the SMBus host base address. I kept it as 0x0f00.
- Idwer is trying to build ACPI 4.0 (!) tables. Since P2B-LS is
shipped when ACPI was still at 1.0, that's what I did. For booting XP, even ACPI 2.0 compliance is sufficient.
Fixed the ACPI version, althought I'm not booting Windows.
Eventually we can make ACPI 2.0-compliant tables, maybe even add support for message LED, SMI button, and even "ATK0110" support.
This is a summary of what happens:
- I can no longer get POST codes on the PCI bus. POST codes still
appear on the ISA bus. Glad I picked a POST card that works on both buses.
What about POST codes on the serial port ? See http://www.coreboot.org/Coreboot_Options
- Power off does not work. The last POST code to show before complete
kernel shutdown and hard drive spinning down is 0xF5.
- I don't how how to enter soft suspend in Linux (silly me -_-! ), so
I have not tested it.
Thanks. I am indeed silly. :P
- the sensor appears on ISA bus port 0x290, just like vendor BIOS.
- My SB AWE64 ISA card still got initialized and driver loaded, but no
sound. In fact ALSA can't even do I/O to the card. That apparently is because PIIX4 needs to be configured to forward certain I/O port ranges to ISA, and some of those port ranges can be further configured. This would require detecting in runtime what ISA cards are installed, what are they, and what I/O port ranges they would use. Where in the source tree should I place such code? Southbridge?
The changes I made are described in two attached patches, one to southbridge/intel/i82371eb, one to mainboard/asus/p2bls. My coreboot and linux boot log is also attached.
Attached patch: coreboot_r5439_asus_p2b_ram+keithhui-pm+acpi-wip.patch coreboot's serial port log + dmesg and an incomplete bootlog from linux: http://coreboot.pastebin.com/x0QTfji7
This is also RFC and is not signed off at this point, but comments are welcome.
When is it okay to sign off :) probably when the major functions like standby and soft poweroff/reset work like they should and the ACPI tables are created. Oh, and irq routing..
I think when we reach a milestone eg. power off works, no ACPI warnings from Linux, and able to boot Windows 2000 AND XP.
The last point is because I have a laptop with an ACPI implementation that doesn't work with win2k, and I don't want that to happen.
Cheers Keith