On OpenWrt 22.03.3, Asus RT-AC88U does not boot anymore:
UBI: auto-attach mtd4
ubi0: attaching mtd4
ubi0 error: 0xc04f0b3c: PEB 0 contains corrupted VID header, and the
data does not contain all 0xFF
ubi0 error: 0xc04f0b4c: this may be a non-UBI PEB or a severe VID
header corruption which requires manual inspection
The problem seems to be that brcm_nvram_read accesses its (mapped) io
memory. When doing so the correct data is read but after that the
mtd/ubi process fails to work.
The bcm47xx_nvram.c code has buffered the nvram data so the cells value
can be read from there.
v3:
- Export symbol for modules.
- No dependency on Kconfig.
v2:
- Fix the wrong author information.
v1:
- arinc.unal: Improved patch subject and log
Willem-Jan de Hoog (2):
The bcm47xx code makes a copy of the NVRAM data in ram. Allow access
to this data so property values can be read using nvmem cell api.
The bcm47xx module has a copy of the NVRAM data in ram. When available
use this one instead of reading from io memory since it causes
mtd/ubi to fail.