[coreboot] New patch to review for coreboot: 6a22d1c w83627hf: correct typo in ASL include, correct indexed registers and remove unneccesary _PR0 defs

Oskar Enoksson enok at lysator.liu.se
Thu Oct 20 15:04:53 CEST 2011

On 10/20/2011 02:30 PM, Christoph Grenz wrote:
> Am Donnerstag, 20. Oktober 2011, um 05:20:11 schrieb Christoph Grenz:
>> Am Mittwoch, 19. Oktober 2011, um 22:52:16 schrieb Oskar Enoksson:
>>> Your recent changes make the error messages go away.
>>> However, I noticed another error message about PS2 controller:
>>> [    1.543494] i8042 kbd 00:02: unable to assign resources
>>> [    1.584667] i8042 kbd: probe of 00:02 failed with error -16
>>> [    1.625694] i8042 aux 00:03: [irq 12]
>>> [    1.626460] i8042 aux 00:03: activated
>>> [    1.666536] PNP: PS/2 Controller [PNP0f13:PS2M] at 0x0,0x0 irq 12
>>> [    1.706908] PNP: PS/2 controller has invalid data port 0x0; using
>>> default 0x60
>>> [    1.747678] PNP: PS/2 controller has invalid command port 0x0; using
>>> default 0x64
>>> [    1.788888] PNP: PS/2 controller doesn't have KBD irq; using default 1
>>> [    2.081400] serio: i8042 KBD port at 0x60,0x64 irq 1
>>> [    2.122528] mice: PS/2 mouse device common for all mice
>> [...]
> It seems this is partly a bug in linux kernel: If KBD0 is disabled, linux
> tries to assign ressources to it and therefore enable it. But as 0x60, 0x64
> and IRQ 1 are reserved (for the keyboard controller), linux fails to assign
> them. On the other way if I let the kernel choose other adresses and IRQs the
> pnp driver still expects the keyboard controller at 0x60,0x64 so it fails
> again. The only workaround seems to be to never signal that KBC was disabled.
> There are no error messages on my system in this case as some driver later in
> the boot process enables the kbc anyway.
Ok. I do have a PS2 keyboard and a mouse connected though, and I didn't 
get these error messages with my own w83627hf asl, but perhaps you are 

I have more questions about your asl-code though (I'm not an expert, so 
I could be wrong ...):

When you use "Divide", why do you shift the quotient afterwards? E.g.

                                 Divide(IOA0, 256, Local0, Local1)
                                 ShiftRight(Local1, 8, Local1)

Another thing: did you really mean the I/O ports (e.g. 0x60,0x64) to 
appear in both KBD0 _CRS and PS2M _CRS?

One more thing, this is wrong, right?:

@@ -1042,7 +1036,7 @@ Scope (\_SB)
                                         IRQNoFlags (IRQX) {6}
                                 ENCM ()
-                               Store (0x03, LDN)
+                               Store (0x06, LDN)
                                 Store(IO1H, Local1)
                                 Store(IO1L, Local0)
                                 Store(IRQ0, Local2)

There are a few more similar things, I'm running out of time ... Perhaps 
if you look through everything yourself one more time you will find more.

More information about the coreboot mailing list