[SerialICE] SerialICE_memory_read_filter problem

Nils njacobs8 at hetnet.nl
Tue May 10 23:10:13 CEST 2011


Hi Stefan,
Thanks for your reply and the hint!
After some googling i came up with the following patch:

>function SerialICE_register_manipulation(data)
>	-- **********************************************************
>	--
>	-- Wyse S50 skip TSC calibration loop
>	if ( SerialICE_mainboard == "WYSE S50" and
>		regs.cs == 0xf000 and regs.eip == 0x8978 ) then
>		-- f000:8978
>		printf("Skipping TSC calibration loop...\n")
>		regs.eip = 0xa1c0	
>	end
>end

Unfortunately it doesn't work either.

I encountered something that might be a bug in SerialICE.
I enabled "log_rom_access = true" and "ip_logging = true" in serialice.lua .

It seems to me that the eip is not updated frequently enough before printing
See for instance f000:8960 in the following snippet of output:
 
[f000:a1f1] -- MEM:  readb 000fa1f1 => 8b
[f000:a1f1] -- MEM:  readw 000fa1ff => 7654
[f000:a1a4] -- MEM:  readw 000fa1af => a1b4
[f000:8960] -- MEM:  readw 000f896d => 01f4
[f000:8960] -- IO: outb 0043 <= 56
[f000:8960] -- IO: outb 0041 <= ee
[f000:8960] -- IO:  inb 0061 => 10
[f000:8971] -- IO:  inb 0061 => 10
[f000:8974] -- IO:  inb 0061 => 00
[f000:897f] -- IO:  inb 0061 => 00
[f000:897c] -- IO:  inb 0061 => 10
[f000:8971] -- IO:  inb 0061 => 10
[f000:8974] -- IO:  inb 0061 => 00
[f000:897f] -- IO:  inb 0061 => 00
[f000:897c] -- IO:  inb 0061 => 10
[f000:8971] -- IO:  inb 0061 => 10
[f000:8974] -- IO:  inb 0061 => 00
[f000:897f] -- IO:  inb 0061 => 00
[f000:897c] -- IO:  inb 0061 => 00
[f000:8974] -- IO:  inb 0061 => 10

I think that the instruction "MEM:  readw 000f896d => 01f4" should come after 
the "IO: outb 0043 <= 56" and "IO: outb 0041 <= ee" on f000:896c .
And the inb 0061 is according to GDB on f000:8974 not on the other addresses.

I'l sent you the corresponding snippet of assembler in private.

I'm not an experienced programmer so excuse me if i'm totally wrong here.

Thanks, Nils.



More information about the SerialICE mailing list