On Tue, Apr 5, 2022, 7:02 AM Undiscussed Horrific Abuse, One Victim of Many <
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.
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.