Skip to content

Commit a1fe14f

Browse files
dkulpclaude
andcommitted
docs(bb64): say how a dead MSPM0 is actually recovered
The message told whoever picks the board up to reflash "over BSL/SWD", which undersells it: the MSPM0's ROM bootstrap loader answers on i2c at 0x48 once it is reset with the backdoor asserted, and the AM62 drives both of those lines itself -- the pins are already in FPP's pin table for this purpose. So the recovery needs no external programmer. Also notes what keeps that from being automatic here: reflashing begins with a mass erase, which would destroy a factory-programmed serial, so it must never run against an MSPM0 that is merely misbehaving. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5dea38b commit a1fe14f

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

capes/drivers/bb64/check_pb2_eeprom.sh

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@
2121
# MSPM0L1105 emulates a 24c32 at 0x50, and the kernel's at24 driver talks to that.
2222
# If the MSPM0's own firmware was never flashed, 0x50 does not ACK, at24's probe-time
2323
# test read fails, and the driver never binds. Nothing this script can write will
24-
# help: the fix is reflashing the MSPM0 over BSL/SWD. So it refuses -- see the exit
25-
# codes.
24+
# help, because the thing that would serve the write is what is missing. So it
25+
# refuses -- see the exit codes.
26+
#
27+
# That is recoverable, but not from here: the MSPM0's ROM bootstrap loader answers on
28+
# i2c at 0x48 once it is reset with the backdoor asserted, and the AM62 drives both
29+
# of those lines itself (the NRST and BSL_Invoke pins, already in FPP's pin table).
30+
# So no external programmer is needed -- but reflashing starts with a mass erase, so
31+
# it must never be attempted on a board whose MSPM0 is merely misbehaving.
2632
#
2733
# The same MSPM0 also emulates the ad7291 ADC at 0x20, so the two appear and
2834
# disappear together. That is what separates "the MSPM0 is not running at all" from
@@ -114,7 +120,9 @@ if [ ! -f "${EEPROM}" ]; then
114120
MSPM0 that was never flashed at the factory looks like.
115121
116122
Nothing this script can write will fix it: with 0x50 silent there is nothing
117-
to write to. The MSPM0 has to be reflashed over BSL/SWD first.
123+
to write to. The MSPM0 has to be reflashed first, over its ROM bootstrap
124+
loader at i2c 0x48 -- the AM62 drives the NRST and BSL_Invoke lines itself, so
125+
this needs no external programmer, but it does start with a mass erase.
118126
119127
Until then u-boot cannot identify the board and will configure it as the
120128
512MB base variant. This board must not be flashed or shipped."

0 commit comments

Comments
 (0)