Openwrt/target/linux/lantiq/base-files/lib/preinit/42_athfix
John Crispin 81ddc886e1 dgn3500 support with eeprom loading from sysfs
WIFI eeprom:
As discussed, it is impossible for nand and spi flash platforms to have the eeprom data available from mtd. I suggested to load the eeprom from user-space. I've looked into regular firmware loading but this is only possible when using modules.  I've created a sysfs entry that allows reading and writing the eeprom data to the platform data. After loading the eeprom data I rely on pci-hotplug support to disable the bogus pci device and rescan the bus (with fixups and all). Because hotplug is not available, an init script is created that performs the copy from mtd to platform data. I think it is best to eventually move the sysfs functions to dev_wifi_athxk.c file, this would get rid of the external to the ath9k platform data.

SPI flash:
It seems that the spi-xway driver is not really working. It causes my kernel to crash in all sorts of ways. I added to bitbang SPI to be able to the calibration data mention above.
I've kept the original mtd partitioning that Netgear uses.

Buttons/LED:
Both buttons are working properly. Two leds are not enabled: The red internet led is connected to the pci_gnt1 pin... I can't disable it because then DMA stops working.
The green wifi led is connected to an unknown atheros gpio.

Signed-off-by: Pieter Voorthuijsen <p.voorthuijsen at gmail.com>

SVN-Revision: 31910
2012-05-27 16:02:22 +00:00

20 lines
369 B
Bash

#!/bin/sh
. /lib/lantiq.sh
init_atheeprom() {
local board=$(lantiq_board_name)
case $board in
"Netgear DGN3500B")
echo "- loading eeprom -"
dd if=/dev/mtd2 of=/sys/firmware/ath_eeprom bs=1k skip=60 count=4
echo 0 > /sys/bus/pci/slots/0000\:00\:0e.0/power
sleep 1
echo 1 > /sys/bus/pci/rescan
;;
esac
}
boot_hook_add preinit_essential init_atheeprom