On Tue, 2007-10-30 at 17:49 +0900, bruno randolf wrote: > hi luis! > > adding the following patch lets us log the calling function names as well! > which makes it much easier to make sense to the traces :) > > and i added ALQ=1 MMIOTRACE=1 and the objdump command to the Makefile as well > to avoid forgetting that. > > cheers, > bruno > > this time the patch is included, sorry... > > diff -Nurb madwifi-trace.luis/ath_hal/ah_os.c madwifi-trace/ath_hal/ah_os.c > --- madwifi-trace.luis/ath_hal/ah_os.c 2007-10-30 17:44:48.000000000 +0900 > +++ madwifi-trace/ath_hal/ah_os.c 2007-10-30 17:39:52.000000000 +0900 > @@ -152,6 +152,7 @@ > * useful for debugging and figuring out, which hal function sets which > * registers */ > char *ath_hal_func = NULL; > +EXPORT_SYMBOL(ath_hal_func); Any particular reason this is not EXPORT_SYMBOL_GPL? > #endif > > #ifdef AH_DEBUG_ALQ > diff -Nurb madwifi-trace.luis/ath_hal/ah_os.h madwifi-trace/ath_hal/ah_os.h > --- madwifi-trace.luis/ath_hal/ah_os.h 2007-10-30 17:44:28.000000000 +0900 > +++ madwifi-trace/ath_hal/ah_os.h 2007-10-30 17:39:52.000000000 +0900 > @@ -228,13 +228,9 @@ > > extern char *ath_hal_func; > static inline void ath_hal_set_function(const char *name) > -#if defined(AH_DEBUG) > { > ath_hal_func = (char *)name; > } > -#else > -{ } > -#endif > > #ifdef AH_DEBUG_ALQ > extern void __ahdecl OS_MARK(struct ath_hal *, u_int id, u_int32_t value); > diff -Nurb madwifi-trace.luis/Makefile madwifi-trace/Makefile > --- madwifi-trace.luis/Makefile 2007-10-30 17:44:55.000000000 +0900 > +++ madwifi-trace/Makefile 2007-10-30 17:39:52.000000000 +0900 > @@ -50,7 +50,7 @@ > include $(TOP)/Makefile.inc > endif > > -DIRS_MODULES = $(ATH) $(ATH_HAL) $(ATH_RATE) $(WLAN) $(if > $(MMIOTRACE),mmiotrace/) > +DIRS_MODULES = $(ATH) $(ATH_HAL) $(ATH_RATE) $(WLAN) mmiotrace/ > > obj-y := ath/ ath_hal/ ath_rate/ net80211/ $(if $(MMIOTRACE),mmiotrace/) > > @@ -62,7 +62,12 @@ > $(MAKE) -C $$i || exit 1; \ > done > else > - $(MAKE) -C $(KERNELPATH) SUBDIRS=$(shell pwd) modules > + $(MAKE) -C $(KERNELPATH) SUBDIRS=$(shell pwd) ALQ=1 MMIOTRACE=1 modules > + cp ath/ath_pci.ko ath/ath_pci.ko.old; \ > + objcopy --redefine-sym __ioremap=__ioremap_trace \ > + --redefine-sym iounmap=iounmap_trace \ > + --redefine-sym ioremap_nocache=ioremap_nocache_trace \ > + ath/ath_pci.ko.old ath/ath_pci.ko > endif > > .PHONY: svnversion.h > @@ -91,7 +96,7 @@ > sh scripts/find-madwifi-modules.sh -r $(KERNELRELEASE) $(DESTDIR) > > for i in $(DIRS_MODULES); do \ > - $(MAKE) -C $$i install || exit 1; \ > + $(MAKE) -C $$i ALQ=1 MMIOTRACE=1 install || exit 1; \ > done > ifeq ($(DESTDIR),) > (export KMODPATH=$(KMODPATH); /sbin/depmod -ae $(KERNELRELEASE)) > diff -Nurb madwifi-trace.luis/mmiotrace/Makefile > madwifi-trace/mmiotrace/Makefile > --- madwifi-trace.luis/mmiotrace/Makefile 2007-10-30 17:44:55.000000000 +0900 > +++ madwifi-trace/mmiotrace/Makefile 2007-10-30 17:41:42.000000000 +0900 > @@ -13,3 +13,8 @@ > install: > test -d $(DESTDIR)/$(KMODPATH) || mkdir -p $(DESTDIR)/$(KMODPATH) > install mmio.$(KMODSUF) $(DESTDIR)/$(KMODPATH) > + > +clean: > + rm -f *~ *.o *.ko *.mod.c .*.cmd > + rm -f .depend .version .*.o.flags .*.o.d > + rm -rf .tmp_versions > > On Saturday 20 October 2007 04:55:18 Luis R. Rodriguez wrote: > > We have initial support for AR5210s (still needs work), AR5211 and > > AR5212. To add support for other hardware we'll need register dumps of > > the HAL. Fortunately we have a way to do this. It's still hard to > > figure out what we're supposed to do but at least we can get the some > > idea of what to do this way. > > > > Below are instructions, you can find later instructions on the URL: > > > > http://kernel.org/pub/linux/kernel/people/mcgrof/madwifi-regdumps/README > > > > MadWifi HAL Register dumping > > ---------------------------- > > > > You can use these instructions to get register dumps of HAL register > > reads and writes. For this we build the alq and mmio trap modules and > > make some use of them. > > > > This is based on patches and information from: > > > > http://madwifi.org/ticket/1380 > > http://nouveau.freedesktop.org/wiki/MmioTrace > > > > -- Steps to take --- > > > > 0. Get MadWifi svn trunk, patches, pach up and build: > > > > svn export http://svn.madwifi.org/madwifi/trunk trunk > > wget > > http://kernel.org/pub/linux/kernel/people/mcgrof/madwifi-regdumps/alq.diff > > wget > > http://kernel.org/pub/linux/kernel/people/mcgrof/madwifi-regdumps/mmio.diff > > wget > > http://kernel.org/pub/linux/kernel/people/mcgrof/madwifi-regdumps/var.diff > > > > cd trunk/ > > patch -p1 < ../alq.patch > > patch -p1 < ../mmio.patch > > patch -p1 < ../var.diff > > > > make ALQ=1 MMIOTRACE=1 > > > > 1. Alter the ath_pci.ko module with this command and then install modules: > > > > mv ath/ath_pci.ko ath/ath_pci.ko.old > > objcopy --redefine-sym __ioremap=__ioremap_trace --redefine-sym \ > > iounmap=iounmap_trace --redefine-sym \ > > ioremap_nocache=ioremap_nocache_trace \ > > ath/ath_pci.ko.old ath/ath_pci.ko > > > > sudo make install ALQ=1 MMIOTRACE=1 > > > > 2. Load mmio, alq, ath_hal > > > > sudo modprobe mmio > > sudo modprobe alq > > sudo modprobe ath_hal > > > > 3. Proc stuff: > > > > sudo su - > > echo 2 > /proc/sys/dev/ath/hal/debug > > echo 1 > /proc/sys/dev/ath/hal/alq > > > > 4. Load ath_pci > > > > modprobe ath_pci > > > > 5. Check reg dump file exists > > > > ls -l /tmp/ath_hal.log > > > > As you do things with the driver it should increase in size: > > > > root@pogo:~# wc -l /tmp/ath_hal.log > > 14236 /tmp/ath_hal.log > > > > root@pogo:~# iwconfig wlan3 > > wlan3 IEEE 802.11b ESSID:"" Nickname:"" > > Mode:Managed Channel:0 Access Point: Not-Associated > > Bit Rate:0 kb/s Tx-Power:0 dBm Sensitivity=1/1 > > Retry:off RTS thr:off Fragment thr:off > > Encryption key:off > > Power Management:off > > Link Quality=0/70 Signal level=-256 dBm Noise level=-256 dBm > > Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 > > Tx excessive retries:0 Invalid misc:0 Missed beacon:0 > > > > root@pogo:~# wc -l /tmp/ath_hal.log > > 14425 /tmp/ath_hal.log > > > > 6. Parse the regdump stuff, it looks nasty: > > > > perl -pe 's,\x00,,g' < /tmp/ath_hal.log > /tmp/ath_hal.log.txt > > > > In the end you should see lines like this: > > > > R:0x04004 = 0x00010000 - unknown > > W:0x04004 = 0x00000000 - unknown > > R:0x04010 = 0x00010014 - unknown > > R:0x04004 = 0x00000000 - unknown > > W:0x04004 = 0x00000000 - unknown > > ... > > > > -- Sending dumps -- > > > > Please feel free to post dumps of hardware to ath5k-devel@xxxxxxxxxxxxxxx > > > > In doing so you should also provide ath_info dump: > > > > cd trunk/tools > > make > > lspci -v > > # look for the line like: > > # Memory at b8000000 (32-bit, non-prefetchable) [size=64K] > > # for your card, put 0x in front of it as and fun ath_info with it: > > sudo ./ath_info 0xb8000000 > > > > You should get something like: > > > > --- > > > > -==Device Information==- > > MAC Version: 5212 (0x50) > > MAC Revision: 5213A(0x59) > > PHY Revision: 5112a(0x36) > > -==EEPROM Information==- > > EEPROM Version: 5.2 > > EEPROM Size: 16K > > Regulatory Domain: 0x10 > > -==== Capabilities ====- > > > > | 802.11a Support: yes | > > | 802.11b Support: yes | > > | 802.11g Support: yes | > > | RFKill Support: no | > > | 32KHz Crystal: yes | > > > > ======================== > > GPIO registers: CR 00000000 DO 00000000 DI 00000000 > > > > --- > > > > Other tips: > > > > If you are sending dumps please add stuff to the regdump which > > indicates what you did to trigger a section of reg reads/writes. > > > > The dumps can be pretty big so please compress the file with bzip2. If > > you can host the file somewhere and just send us the URL that may > > help. > > > > Luis > > _______________________________________________ > > ath5k-devel mailing list > > ath5k-devel@xxxxxxxxxxxxxxx > > https://lists.ath5k.org/mailman/listinfo/ath5k-devel > > > - > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html