Expose WiFi interface where applicable
Changes to this HAL to support WiFi are more extensive than to other HALs. This is partly due to the number of board variants in circulation.
- For Pi 4. 400: the new "fast" Arasan SDHCI controller continues to be used to access the micro-SD slot, and the old "slow" Arasan SDHCI controller is mapped to expose the WiFi chip.
- For Pi 0W, 02W, 3B, 3B+, 3A+: only the (sole) Arasan SDHCI controller can be mapped to the WiFi pins via pin mux. A completely new driver for the Broadcom proprietary, undocumented "SDHOST" controller had to be written to drive the micro-SD slot. This utilises DMA, because it turns out it's really slow to access it in PIO mode.
- For Pi 0, 1B, 1B+, 2B: these boards don't have a WiFi chip, so the behaviour is unchanged (the sole Arasan SDHCI controller drives the micro-SD slot).