Skip to content
Snippets Groups Projects
  • Mathias Kresin's avatar
    0b62fe5e
    lantiq: complete AVM FRITZ!Box 3370 support · 0b62fe5e
    Mathias Kresin authored
    
    Rename the image and use a compatible string which indicates that only
    hardware revision 2 and higher is supported.
    
    It allows to use the wireless LED, as HWRev 1 uses GPIO#39 for the
    wireless LED and starting with HWRev 2 GPIO#35 is used for the wireless
    LED and GPIO#39 for IFX_GPIO_MODULE_EXTPHY_MDIO.
    
    The HWREV can be checked by connecting to the fritzbox right after power
    on via ftp:
    
      ftp> quote GETENV HWSubRevision
    
    Within the same HW revision 5 of the Fritz!Box 3370 different NAND flash
    chips are used. Usually it isn't a big deal but depending on the used
    NAND flash chip, the ECC calculation is done different (and incompatible
    of course).
    
    Boards with a Micron MT29F1G08ABADA NAND flash chip are using the NAND
    chip to calculate the ECC (on-die). Boards with a Hynix HY27UF081G2M NAND
    flash chip are doing the ECC calculation in software.
    
    Supporting both with a single DTS isn't possible. It might be possible
    to add a patch selecting the ECC mode dynamicaly based on the found NAND
    flash chip. But such a patch has no chance to get accepted upstream and
    most likely need to be touched with every kernel update.
    
    Instead two images are created. One for Micron NAND flash chip and one
    for Hynix NAND flash chip. So far no pattern is known to identify the
    used flash chip without opening the box.
    
    Add the power off GPIO. At least EVA version 2186 sets/keeps the GPIO as
    input, which will cause a reboot 30sec after power on. For boards with
    EVA version 2186 the installation is tricky as it has to be finished
    within the 30sec time frame.
    
    The EVA version can be checked by connecting to the fritzbox right after
    power on via ftp:
    
      ftp> quote GETENV urlader-version
    
    The ath9k eeprom/caldata is at a different and offset and stored in
    reverse order (from the last byte to the beginning) on the flash.
    Reverse the bits to bring the data into the format expected by the
    ath9k driver.
    
    Since the ath9k eeprom is stored in reverse order on flash, we can not
    use the mac address from the on flash eeprom. Get the MAC address from
    the tffs instead.
    
    Within the same HW revision 5 of the Fritz!Box 3370 both version of the
    vr9 SoC are used. During preparation of kernel 4.14 support, all
    devicetree source files were changed to load the vr9 v1.1 and vr9 v1.2
    gphy firmware, which fixed the embedded phys for boards using the
    version 1.2 of the vr9 SoC.
    
    While at it, add a trigger to make use of the LAN LED. Setup the
    build-in switch and add a hint for LuCI two show the ports in order
    matching the labels on the case
    
    Add support for the second USB port and provide the volatage GPIOs. Use
    GPIO#21 as PCIe reset pin. The lan led is connected to GPIO#38.
    
    Name the rootfs partition ubi and remove the mtd/rootfs related kernel
    bootargs to use the OpenWrt autoprobing based on the partition name.
    
    Enable sysupgrade support to allow an upgrade from a running system.
    Since sysupgrade wasn't supported till now, drop image build code which
    was added to allow a sysupgrade from earlier OpenWrt versions.
    
    Build images that allow an (initial) installation via EVA bootloader.
    
    To install OpenWrt via Eva bootloader, within the first seconds after
    power on a ftp connection need to be established to the FRITZ!Box at
    192.168.178.1 and the the following ftp commands need to be run:
    
      ftp> quote USER adam2
      ftp> quote PASS adam2
      ftp> binary
      ftp> debug
      ftp> passive
      ftp> quote SETENV linux_fs_start 0
      ftp> quote MEDIA FLSH
      ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-kernel.bin mtd1
      ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-filesystem.bin mtd0
    
    Signed-off-by: default avatarAndrea Merello <andrea.merello@gmail.com>
    Signed-off-by: default avatarMathias Kresin <dev@kresin.me>
    0b62fe5e
    History
    lantiq: complete AVM FRITZ!Box 3370 support
    Mathias Kresin authored
    
    Rename the image and use a compatible string which indicates that only
    hardware revision 2 and higher is supported.
    
    It allows to use the wireless LED, as HWRev 1 uses GPIO#39 for the
    wireless LED and starting with HWRev 2 GPIO#35 is used for the wireless
    LED and GPIO#39 for IFX_GPIO_MODULE_EXTPHY_MDIO.
    
    The HWREV can be checked by connecting to the fritzbox right after power
    on via ftp:
    
      ftp> quote GETENV HWSubRevision
    
    Within the same HW revision 5 of the Fritz!Box 3370 different NAND flash
    chips are used. Usually it isn't a big deal but depending on the used
    NAND flash chip, the ECC calculation is done different (and incompatible
    of course).
    
    Boards with a Micron MT29F1G08ABADA NAND flash chip are using the NAND
    chip to calculate the ECC (on-die). Boards with a Hynix HY27UF081G2M NAND
    flash chip are doing the ECC calculation in software.
    
    Supporting both with a single DTS isn't possible. It might be possible
    to add a patch selecting the ECC mode dynamicaly based on the found NAND
    flash chip. But such a patch has no chance to get accepted upstream and
    most likely need to be touched with every kernel update.
    
    Instead two images are created. One for Micron NAND flash chip and one
    for Hynix NAND flash chip. So far no pattern is known to identify the
    used flash chip without opening the box.
    
    Add the power off GPIO. At least EVA version 2186 sets/keeps the GPIO as
    input, which will cause a reboot 30sec after power on. For boards with
    EVA version 2186 the installation is tricky as it has to be finished
    within the 30sec time frame.
    
    The EVA version can be checked by connecting to the fritzbox right after
    power on via ftp:
    
      ftp> quote GETENV urlader-version
    
    The ath9k eeprom/caldata is at a different and offset and stored in
    reverse order (from the last byte to the beginning) on the flash.
    Reverse the bits to bring the data into the format expected by the
    ath9k driver.
    
    Since the ath9k eeprom is stored in reverse order on flash, we can not
    use the mac address from the on flash eeprom. Get the MAC address from
    the tffs instead.
    
    Within the same HW revision 5 of the Fritz!Box 3370 both version of the
    vr9 SoC are used. During preparation of kernel 4.14 support, all
    devicetree source files were changed to load the vr9 v1.1 and vr9 v1.2
    gphy firmware, which fixed the embedded phys for boards using the
    version 1.2 of the vr9 SoC.
    
    While at it, add a trigger to make use of the LAN LED. Setup the
    build-in switch and add a hint for LuCI two show the ports in order
    matching the labels on the case
    
    Add support for the second USB port and provide the volatage GPIOs. Use
    GPIO#21 as PCIe reset pin. The lan led is connected to GPIO#38.
    
    Name the rootfs partition ubi and remove the mtd/rootfs related kernel
    bootargs to use the OpenWrt autoprobing based on the partition name.
    
    Enable sysupgrade support to allow an upgrade from a running system.
    Since sysupgrade wasn't supported till now, drop image build code which
    was added to allow a sysupgrade from earlier OpenWrt versions.
    
    Build images that allow an (initial) installation via EVA bootloader.
    
    To install OpenWrt via Eva bootloader, within the first seconds after
    power on a ftp connection need to be established to the FRITZ!Box at
    192.168.178.1 and the the following ftp commands need to be run:
    
      ftp> quote USER adam2
      ftp> quote PASS adam2
      ftp> binary
      ftp> debug
      ftp> passive
      ftp> quote SETENV linux_fs_start 0
      ftp> quote MEDIA FLSH
      ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-kernel.bin mtd1
      ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-filesystem.bin mtd0
    
    Signed-off-by: default avatarAndrea Merello <andrea.merello@gmail.com>
    Signed-off-by: default avatarMathias Kresin <dev@kresin.me>