Support for D-Link DWL-7620AP and DWL-8620AP

Hi everyone,

I would like to add support for a few access points from the D-Link DWL series,
although many of these used to be based on Broadcom, recently many models have been added with Qualcomm chips.

I have started documenting the basic specs for the most interesting models and added details for the factory image encryption and the ubi partitions in a wiki article:

https://openwrt.org/toh/d-link/d-link_dwl_series_of_business_access_points

I'm mostly done with DWL-7620AP, which is based in ipq40xx.
However I'm not yet sure about what would be the best way to deal with ubi and dual boot, please see the wiki article for what I've found regarding the ubi layout so far.

Should we maybe place a copy of the kernel image into each of the ubi partitions (there would need to be some synchronization, i.e. duplication, after initial flashing or sysupgrading) and use mtd-concat on the remaining portions of the flash (across 3 separate ubi partitions)?

Are there other devices currently supported using a similar flash constellation?

Regarding the actual dual boot mechanisms (triggers for switching between partitions etc.) more investigation is necessary. Does anyone else own devices from this family? (@djfe: do you happen to have access to a DWL-8620AP, since I remember you mentioned the GPL code at some point?)

My current progress on DWL-7620AP is here, not yet including factory image generation (there is a PoC build recipe linked in the wiki though):

The layout inside ubi looks very openwrt-ish kernel rootfs rootfs_data
You sound scared by flashing own kernel - not yet, if boot logs have entrypoints and offsets and tftp boot you need kernel with initial ramdisk on a server to explore further.

I currently used initramfs loaded via tftp, so the next step would be trying to package an initramfs-image into a factory image flash it? (or maybe just flash the ubi kernel partition manually via tftp first).

I was unsure about how we should deal with those 3 separate volumes, probably just try the first one with an image containing not just kernel (initramfs) but also rootfs and roots_data? (I guess this also needs some further investigation regarding the checks that are performed by the factory web interface updater.)