Adding OpenWrt support for Aruba AP175

The Aruba AP175 is a heavy outdoor version of the Aruba AP-105, with much higher-power radios, both of which are dual band.

The port is very nearly done due to the extent of the similarity with the AP-105. The device will need a U-boot replacement, but the SOIC16 is immediately available, clippable and flashable after opening the 4 corner screws and removing the lid.

Internal photos: https://fccid.io/Q9DAP175/Internal-Photos/Internal-Photos-1374703

Very similar to the AP105 in terms of hardware used:

  • Atheros AR7161 CPU
  • 128MiB RAM
  • Boots using the same U-boot partitioning (and @riptidewave93's / @Chunkeey's u-boot port works.)

Tasks

  • [x] U-boot support
    • [x] Cleanup, PR
    • [x] Base boot / memory initialization
    • [x] Document compilation process
      • Started, here.
      • [x] Supply an x86_64 Dockerfile for this
    • [x] MII support to initialize IP1001-LF ICPLUS PHY
      • [x] Attach documentation so far of stock MII configuration
      • [x] Get memory-mapping of PHY registers working
      • [x] Replicate OEM's PHY register options in U-Boot
      • [x] Get PHY eth0 working
  • [ ] Flashing support
  • [ ] OpenWrt support
    • [ ] Device tree
      • [x] MDIO setup for ICPLUS PHY
      • [x] TI TCA6416 I2C gpio expander
        • GPIO1 -> PIN23 (SDA), GPIO2 -> PIN22 (SCL)
      • [ ] LEDs
        • [ ] Map out LEDs off GPIO expander
        • [ ] Name / label (?) LEDs appropriately
      • [ ] Consistent console setup -- tweak chosen
      • [ ] nvmem-cells for ART partition firmware loading
      • [ ] Get RTC enumerated in the device tree
      • [ ] Temp sensor
        • [ ] Find the actual IC
        • [ ] Get sensor working, compatible-d, enumerated in device tree
      • [ ] Validate MAC address use
        • I think the MAC address is stored in the original u-boot-env, but I don't believe the replacement U-Boot shims the MAC address into the device tree. I can either fix that, or see if I can get the device-tree to consume the MAC address on its own.
2 Likes

@hurricos
It appears they used MMCX connectors on this model for the WiFi cards ?

Also i suggest "inserting" the sysupgrade image into the bin flash file (save you the step todo sysupgrade later)

It appears they used MMCX connectors on this model for the WiFi cards ?

Correct, two pairs of them; the cards are the well-known DNMA-H92 (though it's too bad the AREDN crowd refuses to move to ath79).

Also i suggest "inserting" the sysupgrade image into the bin flash file (save you the step todo sysupgrade later)

I'd prefer to stick with the standard initramfs-to-sysupgrade procedure ...

Hey @markbirss -- I understand what you mean now! I don't know how I misread your initial comment. Since we're already overwriting flash, ...

I've been loading data into u-boot over S-record; your idea works much better.

I'll put up a tree soon as I work on this.

I chose not to settle for a non-working ethernet under U-Boot: I want to ensure that rescuing the board via tftpboot works since we have an external console port.

I'm not having any success with setting the state of MII registers, either through code that automatically runs to set up the PHY, or through manual mii commands.

Theory: Maybe Chunkeey's u-boot-ap105 does not have a functioning mii command, as CONFIG_MII is unset in ap105.h.

Test: Add #define CONFIG_MII 1 to the ap105.h and re-test.

Result: No change of behavior.

Noticing the LEDs

I noticed just now that the LEDs change when I do an mii write 1 0:

Hit any key to stop autoboot:  0 
ar7100> mii read 1 0 0
0000
ar7100> mii dump 1 0 0
0.     (0000)                 -- PHY control register --
  (8000:0000) 0.15    =     0    reset
  (4000:0000) 0.14    =     0    loopback
  (2040:0000) 0. 6,13 =   b00    speed selection = 10 Mbps
  (1000:0000) 0.12    =     0    A/N enable
  (0800:0000) 0.11    =     0    power-down
  (0400:0000) 0.10    =     0    isolate
  (0200:0000) 0. 9    =     0    restart A/N
  (0100:0000) 0. 8    =     0    duplex = half
  (0080:0000) 0. 7    =     0    collision test enable
  (003f:0000) 0. 5- 0 =     0    (reserved)

# ETH led is green and flickering (as though receiving data).

ar7100> mii write 1 0 1

# ETH LED goes dark for one second, then comes back as flickering orange

ar7100> mii dump 1 0 0
0.     (0000)                 -- PHY control register --
  (8000:0000) 0.15    =     0    reset
  (4000:0000) 0.14    =     0    loopback
  (2040:0000) 0. 6,13 =   b00    speed selection = 10 Mbps
  (1000:0000) 0.12    =     0    A/N enable
  (0800:0000) 0.11    =     0    power-down
  (0400:0000) 0.10    =     0    isolate
  (0200:0000) 0. 9    =     0    restart A/N
  (0100:0000) 0. 8    =     0    duplex = half
  (0080:0000) 0. 7    =     0    collision test enable
  (003f:0000) 0. 5- 0 =     0    (reserved)

So even though mii dump cannot see the register values, mii write must be resetting some of them.

I found my bug. Commenting out a difference I found between the aruba-ap-310 U-Boot tree and the aruba-ap-105 tree fixes the issue.

I'm going to commit this and then backtrack to a much smaller diff set.

This video demostrates the installation process using Raspberry Pi SBC and flashrom.

1 Like

FANTASTIC! Van, you are THE BEST!