Hello
Some background -
We are trying to
run Qualcomm Atheros AR928X Wireless Network Adapter and
have a crash right on driver load, following are our
observations and questions.
Jurgen's observation -
" The Atheros card "Qualcomm
Atheros AR928X Wireless Network Adapter (PCI-Express) (rev
01)" is plugged into the host system (datatron).
When I attach it to the DomU -
the module "ath9k" is automatically loaded, but it gives an
exception "iowrite32+0x2b/0x30".
No idea what the issue is
(tried also with another Atheros Card (ath10k) - similar
problem). When I try an Intel card, it works.
(the card also works on the
Dom0 - so the Linux driver and HW is OK)."
Debugging -
After some investigation with kgdb and iommu trace on
DomU it seems the iomap of PCI BAR for the device returns
a a mapping f which first 0x1000 bytes are read only and
that causes access violation when trying to write
registers mapped to this area (all the regs with offset
< 0x1000) - why this happens i still don't know.
Register writes with offsets > 0x1000 are fine.
Running same driver on Dom0 is totally fine
Bellow the sigsev backtrace and xen dmesg from DomU
As can be seen there is ioremap_ of size 0x10000 starting
at ffffc900402c0000 but as i said, i noticed that anything
bellow ffffc900402c1000 is not writable (from gdb
using set addr = val) and only readable while anything above
this address is writeable.
Question -
Please give any advise on this issue and especially how
to approach debugging this both on Domu and Dom0 and where
in xen code to look for possible issues.