* Nils njacobs8@hetnet.nl [110510 23:10]:
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
eip 8971, 8974, 897f, 897c but it is never 8978, which you are checking for above.
[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.
SerialICE mailing list SerialICE@serialice.com http://serialice.com/mailman/listinfo/serialice