I'm currently working on porting OpenWrt to the AVM FRITZ!Box 3390. This device is similar to the 7490, but lacks a few features. As the 7490, it has a separate Atheros SoC for WiFi offloading, which makes things a bit more complicated. I've been hacking around the device for a few days now, here is the current status and a bunch a questions:
- Lantiq SoC working, not extensively tested
- Communication with Atheros SoC working, but a bit hacky (see below)
- Second OpenWrt RAM image running on Ahteros SoC (boots, nothing more tested)
The upload of the stage 1 firmware to the Atheros device works via MDIO. I had to create a fake PHY driver that exposes the MDIO registers to sysfs and patched the Lantiq ethernet driver to fake a fixed PHY id at a specified address. I don't like this part, any suggestions how this could be improved?
The upload of the stage 2 firmware works over raw ethernet frames, this works quite nicely. I can upload and boot an OpenWrt initramfs image.
Now the questions:
- How can I improve the MDIO kernel driver to be less hacky?
- The Atheros SoC has no flash storage! How could the two OpenWrt instances communicate or how could the Atheros SoC save configuration data?
- I tested WiFi only very briefly, but ath9k fails to load because of missing EEPROM data. Obviously, there is nor ART partition, so how can I provide the needed data?
All code is in my github: