we have identified a problem with the recent Raspbian version when using the Monarco HAT on a Raspberry Pi.
On the Monarco HAT, the ID EEPROM contains the following device-tree overlay:
https://gist.github.com/vstk/e0f44d4763 ... b3457c19d6
The overlay in EEPROM is intended to do the same as pi3-miniuart-bt-overlay.dbo overlay distributed with Raspbian (can be enabled by setting dtoverlay=pi3-miniuart-bt in config.txt) = to remap ttyAMA0 back to GPIO header pins, and use ttyS0 for Bluetooth.
We only made a slight modification to make the same EEPROM working on both RPi2 and RPi3. Our solution worked well until (and including) Raspbian from 2017-04 with kernel 4.4.50-v7+
Unfortunatelly, since Raspbian 2017-06 with kernel 4.9.28-v7+, the ttyAMA0 remapping by overlay in Monarco HAT's EEPROM is broken!
The reason is the device-tree nodes for UARTs were renamed from "/soc/[email protected]" to "[email protected]", and we reference this name in the EEPROM:
https://gist.github.com/vstk/e0f44d4763 ... om-dts-L77
That's exactly the same approach which was used here:
https://github.com/raspberrypi/linux/bl ... ay.dts#L60
See v4.4: https://github.com/raspberrypi/linux/bl ... .dtsi#L139
See v4.9: https://github.com/raspberrypi/linux/bl ... .dtsi#L142
It is not possible to update EEPROMs in the field, because the i2c used for ID EEPROM is a bit "broken" on RPi3 after Linux boots (in the bootloader, which loads the overlay, it is OK).
Why the renaming from "/soc/[email protected]" to "[email protected]" in device tree? Any chance to get this back in some future release? Any advice how to make the overlay in EEPROM more future-proof? We shipped hundreds of Monarco HATs, and all of them will be facing this problem once their users decide to upgrade Raspbian...
Thanks for any hints or explanations!