Stock firmware at 0x0DDD reads back each init block from register A7 after writing and verifies the data matches (with bit 7 XOR'd on the block address byte). Without this readback, the BCM4500 may not finalize the write — our init blocks were "silently failing" (I2C succeeds, status reports booted, but SNR reads all zeros). Changes: - bcm_write_init_block: add pre-write bcm_poll_ready(), post-write A7 readback with XOR(0x80) on byte[0] and full data comparison - i2c_rd buffer: expand from 8 to 24 bytes for 16-byte block readback This is the most likely root cause of the BCM4500 "boots but doesn't work" issue (Task #5). Needs hardware test to confirm. |
||
|---|---|---|
| .. | ||
| dscr.a51 | ||
| Makefile | ||
| skywalker1.c | ||