[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