[SerialICE] SerialICE dump freezing
Stefan Reinauer
stepan at coreboot.org
Thu Jan 6 20:01:51 CET 2011
* Joseph Smith <joe at settoplinux.org> [110106 19:28]:
> [f000:3a5c] -- IO: outb 0cfc <= 10
> PCI 0:1f.0 R.44
> [f000:3a5c] -- IO: inw 1004 => 0000
> [f000:0013] -- IO: outw 0080 <= fea0
> [f000:0024] -- IO: outl 0cf8 <= 800000fc
> [f000:0024] -- IO: outw 0cfc <= 0109
> PCI 0:00.0 R.fc
> [f000:0024] -- IO: outb 0080 <= 01
> [f000:0078] -- IO: outb 0080 <= 02
> [f000:009a] -- IO: outw 0080 <= eee3 <------FREEZE
>
> 0xf0091: test $0x3,%ebp
> 0xf0098: jne 0xf00a1
> 0xf009a: mov $0xeee3,%ax
> 0xf009d: out %ax,$0x80
> 0xf009f: jmp 0xf009f
> 0xf00a1: mov $0x3,%al
> 0xf00a3: out %al,$0x80
> ----bla, bla, bla
>
>
> So I think it all points back to the PMBASE + 4 (0x1004) register.
>
> 0xf3b0a: shr $0xa,%ax
> 0xf3b0d: and $0x7,%ax
> 0xf3b10: cmp $0x5,%ax
This checks if bits 12:0 have a value of 5. I.e. whether the machine is
coming out of a deep sleep
>
> I tried to set PMBASE + 4 (0x1004) to 0x0005 in my serialice
> mainboard config but when the bios re-enables PMBASE it seems to get
> wiped out (reset to 0).
Also, that would set bits that are completely unrelated to the ones
checked above.
You should look for code that sets/clears the lower 2 bits in ebp
Stefan
More information about the SerialICE
mailing list