Datel XBox 360 adapter
Oleksij Rempel
linux at rempel-privat.de
Tue May 23 03:26:25 PDT 2017
Hi,
Am 20.05.2017 um 23:03 schrieb Tobias Diedrich:
> Hi,
>
> while looking for a AR7010-based wlan adapter I bought a used Datel
> XBox 360 adapter on ebay.
>
> Interestingly compared to the pictures on
> https://wikidevi.com/wiki/Datel_Wireless_%27N%27_Networking_Adapter_For_Xbox_360
> mine doesn't have the raw//science XB102 chip (which seems to be
> connected to what I'd guess are the jtag pins?).
this pins can be multiplexed with other funktionions. But i don't have
ar7010 docs, so not really sure
> I've got it to work with a minor hacky patch (the eeprom data is
> stored at the end of the SPI flash instead of the EEPROM which is
> populated, but empty (all 0s)):
>
> usb 1-3.4.3: New USB device found, idVendor=045e, idProduct=02a8
> usb 1-3.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 1-3.4.3: Product: Wireless Network Adapter Boot
> usb 1-3.4.3: Manufacturer: Microsoft Corporation
> usb 1-3.4.3: SerialNumber: <redacted>
> usb 1-3.4.3: ath9k_htc: Firmware ath9k_htc/htc_7010-1.4.0.fw requested
> usbcore: registered new interface driver ath9k_htc
> usb 1-3.4.3: ath9k_htc: Transferred FW: ath9k_htc/htc_7010-1.4.0.fw, size: 72812
> ath9k_htc 1-3.4.3:1.0: ath9k_htc: HTC initialized with 45 credits
> ath9k_htc 1-3.4.3:1.0: ath9k_htc: FW Version: 1.4
> ath9k_htc 1-3.4.3:1.0: FW RMW support: On
> ath: EEPROM regdomain: 0x0
> ath: EEPROM indicates default country code should be used
> ath: doing EEPROM country->regdmn map search
> ath: country maps to regdmn code: 0x3a
> ath: Country alpha2 being used: US
> ath: Regpair used: 0x3a
> ieee80211 phy29: Atheros AR9280 Rev:2
> ath9k_htc 1-3.4.3:1.0 wlx0<redacted>: renamed from wlan0
>
>
> The 512KiB SPI flash (Winbond W25X40) is memory-mapped at 0xf000000 in the
> Xtensa address space, with two identical copies of the wifi EEPROM data at the
> very end of the flash at offset 0x7e000 and 0x7f000.
>
> Any suggestions on how to hook this up more properly instead of this hack?
First of all thank you for your work! :)
I would assume, adding a quirk will be the way to go.
>
> Hacky patch to read the ath9k eeprom data from the memory-mapped PSI flash instead of the actual EEPROM:
>
> --- a/drivers/net/wireless/ath/ath9k/hif_usb.c
> +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
> @@ -57,6 +57,8 @@ static struct usb_device_id ath9k_hif_us
> .driver_info = AR9280_USB },
> { USB_DEVICE(0x0930, 0x0a08),
> .driver_info = AR9280_USB }, /* Toshiba WLM-20U2 and GN-1080 */
> + { USB_DEVICE(0x045e, 0x02a8),
> + .driver_info = AR9280_USB }, /* Datel Xbox 360 */
For example:
.driver_info = AR9280_USB_SPI
> { USB_DEVICE(0x0cf3, 0x20ff),
> .driver_info = STORAGE_DEVICE },
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
> @@ -522,6 +522,22 @@ static bool ath_usb_eeprom_read(struct a
> {
> struct ath_hw *ah = (struct ath_hw *) common->ah;
>
> + u32 magic = REG_READ(ah, 0xf07f000);
> + if (magic == 0x00005aa5 || magic == 0x5aa50000) {
> + u32 offset = (off << 1) & ~3;
> + u32 word = be32_to_cpu(REG_READ(ah, 0xf07f000 + offset));
> + u16 x;
> + if (off & 1) {
> + x = word;
> + } else {
> + x = word >> 16;
> + }
> + *data = x;
> + return true;
> + } else {
> + ath_info(common, "Magic=%08x\n", magic);
> + }
> +
> (void)REG_READ(ah, AR5416_EEPROM_OFFSET + (off << AR5416_EEPROM_S));
>
> if (!ath9k_hw_wait(ah,
> --- a/drivers/net/wireless/ath/ath9k/eeprom.c
> +++ b/drivers/net/wireless/ath/ath9k/eeprom.c
> @@ -84,6 +84,14 @@ void ath9k_hw_usb_gen_fill_eeprom(struct
> u32 addrdata[8];
> u32 data[8];
>
> +#if 1
> + for (addr = 0; addr < size; addr++) {
> + if (!ath9k_hw_nvram_read(ah, addr + eep_start_loc, eep_data))
> + return;
> + eep_data++;
> + }
> +
> +#else
> for (addr = 0; addr < size; addr++) {
> addrdata[i] = AR5416_EEPROM_OFFSET +
> ((addr + eep_start_loc) << AR5416_EEPROM_S);
> @@ -107,6 +115,7 @@ void ath9k_hw_usb_gen_fill_eeprom(struct
> eep_data++;
> }
> }
> +#endif
> }
>
> static bool ath9k_hw_nvram_read_array(u16 *blob, size_t blob_size,
>
>
>
--
Regards,
Oleksij
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/ath9k_htc_fw/attachments/20170523/92a1bc33/attachment.sig>
More information about the ath9k_htc_fw
mailing list