On Tue, Apr 5, 2022, 7:02 AM Undiscussed Horrific Abuse, One Victim of Many <[1]gmkarl@gmail.com> wrote: notes: in the flasher source, it's designed for more than one interface, and use of the lpc chip is guarded by this: uint8_t lpc_test(void) { nibble_hw_init(); FRAME is driven high for 1us and then allowed to drop for 1us. lpc_init(); calls nibble_init(): INIT is briefly dropped and then raised. CLK is raised. FRAME is raised. calls nibble_write(0): DATA lines are set high. calls clock_cycle() 24 times. The code for clock_cycle drops CLK then immediately raises it. It goes on with more port writes. I may have made an error in transcribing the above. I'm guessing the clock is happening faster than I have my oscilloscope set. Maybe I can spend some time learning it better and see the 1us FRAME behavior. if (lpc_read_address(0xFFFFFFFF)==-1) return 0; return 1; } flashrom itself doesn't seem to care about that check (although I haven't looked in the source): it just probes for a bunch of chips anyway. so I guess the thing to do would be to look for the first lines that are engaged, and see where failure starts. References 1. mailto:gmkarl@gmail.com