Contribute
Register

Rebranding the Atheros 928x cards - The guide

Status
Not open for further replies.
Have you tried to undo the changes in eeprom_dump.rom and write it again with atheros_eeprom_tool.exe /w512?

I can't - windows shows error code 10 on any driver that I want to load for that card....
 
I can't - windows shows error code 10 on any driver that I want to load for that card....

That sucks. I've rebranded one Atheros 9285 based card, using the Broadcom Vendor/Product IDs and guess, the result was the same. Unfortunately, I have no idea if the card can be fixed at all, that's why I've appended the guide with information to be avoided Vendor/Product IDs changes.
 
That sucks. I've rebranded one Atheros 9285 based card, using the Broadcom Vendor/Product IDs and guess, the result was the same. Unfortunately, I have no idea if the card can be fixed at all, that's why I've appended the guide with information to be avoided Vendor/Product IDs changes.

I found tool called "iwleeprom" for linux, it can read/write ath9k.... I don't know why, but it writes full EEPROM flash file but ID's get back somehow.... :?: :banghead:
 
I found tool called "iwleeprom" for linux, it can read/write ath9k.... I don't know why, but it writes full EEPROM flash file but ID's get back somehow.... :?: :banghead:

According to its page, this tool is for Intel cards, not Atheros. I really doubt it's doing anything at all. It's pointless to use Intel tool on Atheros cards, it won't work at all.
 
According to its page, this tool is for Intel cards, not Atheros. I really doubt it's doing anything at all. It's pointless to use Intel tool on Atheros cards, it won't work at all.

Actually no:
look here

I found something strange - when I remove all wireless drivers for that card and leave it as unknown device, atheros_eeprom_tool.exe can access that card...... :crazy: I can read and write all, except device ID and Subdev.... Maybe my device is somehow locked now?? :?:
 
Actually no:
look here

I found something strange - when I remove all wireless drivers for that card and leave it as unknown device, atheros_eeprom_tool.exe can access that card...... :crazy: I can read and write all, except device ID and Subdev.... Maybe my device is somehow locked now?? :?:

Or these registers are just locked for changes by this tool... But since I'm no coder, I really cant's say that for sure.
 
Or these registers are just locked for changes by this tool... But since I'm no coder, I really cant's say that for sure.

But why I was able to change ID's 1st time by atheros_eeprom_tool.exe /w512 ?
Now when I try to write original 512byte dump it says that is is written without problem, but after restart values are back..... Maybe atheros_eeprom_tool now recognizes my card as "AR9462" and that locks changes?

Same happens with "iwleeprom" on Linux - values with ID's are not written, but values with channel info are.... On Linux I even forced "iwleeprom" to recognize my card as "AR9285" not "AR9462" - by changing "iwleeprom" source code but it still can't write to these areas....

I really don't understand why it doesn't works!
:banghead:
Any ideas?


 
But why I was able to change ID's 1st time by atheros_eeprom_tool.exe /w512 ?
Now when I try to write original 512byte dump it says that is is written without problem, but after restart values are back..... Maybe atheros_eeprom_tool now recognizes my card as "AR9462" and that locks changes?

Same happens with "iwleeprom" on Linux - values with ID's are not written, but values with channel info are.... On Linux I even forced "iwleeprom" to recognize my card as "AR9285" not "AR9462" - by changing "iwleeprom" source code but it still can't write to these areas....

I really don't understand why it doesn't works!
:banghead:
Any ideas?



The Atheros EEPROM Tool produces two kind of dumps: the first one is the dump you can make, starting the tool in GUI mode (which is full EEPROM dump), the second one is the 512b dump, taken from the command line. I've compared them both and it seems they are different, the data from the 512b dump can't be found anywhere inside the big dump. My presumption is that both are taken from different areas on the chip.

You know, I was able to make the Atheros EEPROM Tool to ignore the Vendor code by some changes in its source code (included in the archive), but that wasn't enough. It seems there are additional checks in the driver that's being used by the tool. Its source code is included too, but it's totally unfamiliar to me.

You said that your card works in Linux. How exactly did you do that? AFAIK, you should add the new IDs in the ath9k source code and then blacklist the kernel module that would be loaded with these IDs (in this case maybe ath10k).

May I ask you about the changes you've made in that code (the tool code and maybe the ath9k code)?
 
The Atheros EEPROM Tool produces two kind of dumps: the first one is the dump you can make, starting the tool in GUI mode (which is full EEPROM dump), the second one is the 512b dump, taken from the command line. I've compared them both and it seems they are different, the data from the 512b dump can't be found anywhere inside the big dump. My presumption is that both are taken from different areas on the chip.

You know, I was able to make the Atheros EEPROM Tool to ignore the Vendor code by some changes in its source code (included in the archive), but that wasn't enough. It seems there are additional checks in the driver that's being used by the tool. Its source code is included too, but it's totally unfamiliar to me.

You said that your card works in Linux. How exactly did you do that? AFAIK, you should add the new IDs in the ath9k source code and then blacklist the kernel module that would be loaded with these IDs (in this case maybe ath10k).

May I ask you about the changes you've made in that code (the tool code and maybe the ath9k code)?

I checked the source code of Atheros EEPROM Tool, it seems like some C++ thing which I don't understand too... About two different dumps - I saw that, seems like big dump is incomplete, in Linux it was complete thing... Needs some thinkering... Which is memory start address for your card? 0xC2400000 ?

In linux everything is simple - Linux loads ath9k module for all cards and doesn't asks which card is it.... It works OOB....

In "iwleeprom" I changed ath9k driver IDs to detect my card correct as ath9k card, not ath9300... It loads different addresses for ath9k and ath9300... Simple hack...

Code:
/* Atheros 9k devices */
const struct pci_id ath9k_ids[] = {
	{ ATHEROS_PCI_VID, 0x0034, "AR9285 Wireless Adapter (PCI-E)" },
/* AR9300 devices */
const struct pci_id ath9300_ids[] = {
	{ ATHEROS_PCI_VID, 0x0030, "AR9300 Wireless Adapter (PCI-E)" },
 
I checked the source code of Atheros EEPROM Tool, it seems like some C++ thing which I don't understand too... About two different dumps - I saw that, seems like big dump is incomplete, in Linux it was complete thing... Needs some thinkering... Which is memory start address for your card? 0xC2400000 ?

I've tried this tool last night on my working AR9280, made a dump with it and compared with the full dump from the Atheros EEPROM tool. Yes, the second one looks incomplete, but most of it is present in the first.

In linux everything is simple - Linux loads ath9k module for all cards and doesn't asks which card is it.... It works OOB....

Hm, it should not be like this... The ath9300 should be chosen by the kernel in case of IDs like yours. How many IDs did you change initially (you know that these IDs can appear in more that one place in the 512b dump, right)?

In "iwleeprom" I changed ath9k driver IDs to detect my card correct as ath9k card, not ath9300... It loads different addresses for ath9k and ath9300... Simple hack...

Code:
/* Atheros 9k devices */
const struct pci_id ath9k_ids[] = {
    { ATHEROS_PCI_VID, 0x0034, "AR9285 Wireless Adapter (PCI-E)" },
/* AR9300 devices */
const struct pci_id ath9300_ids[] = {
    { ATHEROS_PCI_VID, 0x0030, "AR9300 Wireless Adapter (PCI-E)" },

Yeah, I saw that part. This is an easy one.

Maybe it's time to ask the author of this code, I saw there is an e-mail inside the source files.

Edit: may I ask you to send me the dump of your card, made with iwleeprom (the current one)?

Edit2: I almost forgot, may I see the terminal log too? Do you get any error messages, when you try to write the EEPROM?
 
Status
Not open for further replies.
Back
Top