Fix I2C address map: 0x61 (wrong) → 0x10 (confirmed by hardware scan)

The bus scan on real hardware returns [0x08, 0x10, 0x51], matching the
firmware source (#define BCM4500_ADDR 0x08), bus-architecture docs, and
boot-debug-findings.md. The 0x61 "BCM3440" entry was speculative and
never appeared on the actual SkyWalker-1 I2C bus.

Updated: server known_devices map, mock_device, and test assertions.
This commit is contained in:
Ryan Malloy 2026-02-17 17:47:45 -07:00
parent 57c6ca4a00
commit 33fe955834
3 changed files with 4 additions and 4 deletions

View File

@ -119,7 +119,7 @@ class MockSkyWalker1:
def i2c_bus_scan(self):
self._record("i2c_bus_scan")
return [0x08, 0x61, 0x51]
return [0x08, 0x10, 0x51]
def i2c_raw_read(self, slave, register):
self._record("i2c_raw_read", slave, register)

View File

@ -647,8 +647,8 @@ async def scan_i2c_bus(ctx: Context) -> dict:
addresses = await _dev_call(ctx, "i2c_bus_scan")
known_devices = {
0x08: "BCM4500 (demodulator)",
0x61: "BCM3440 (tuner)",
0x51: "24C128 EEPROM (boot)",
0x10: "Tuner / LNB controller",
0x51: "24Cxx EEPROM (config/serial)",
}
devices = []
for addr in addresses:

View File

@ -414,7 +414,7 @@ async def test_i2c_scan(ctx):
assert result["device_count"] == 3
addresses = [d["address"] for d in result["devices"]]
assert "0x08" in addresses
assert "0x61" in addresses
assert "0x10" in addresses
assert "0x51" in addresses