On 02/15/2011 10:39 PM, Nikolay Ledovskikh wrote: >> Maybe the address you got from the platform side was already ored by >> KSEG1... > > I took a look at openwrt atheros platform code and suppose you are right. > So what we should do for now? Add pointer cast (void __iomem *)? > Because ioremap_nocache doesn't work as expected. I think it's better > to rewrote the openwrt > code, but not now. So I've found: http://www.google.com/codesearch/p?hl=en#sayuPQDVf4c/trunk/openwrt/target/linux/atheros/patches-2.6.32/100-board.patch&q=ar231x-wmac&sa=N&cd=4&ct=rc There, the res->start may be either of the following: AR531X_WLAN0 .. 0x18000000 AR531X_WLAN1 .. 0x18500000 AR2315_WLAN0 .. 0xB0000000 I suppose you have the 3rd otherwise it should die without ORing KSEG1? Or maybe MIPS guys will correct me? (The problem is that ioremap of one of the addresses above kills the box. If Nikolaj removes the ioremap and uses the address directly, it works for him. I'm saying it will die for the first 2 addresses if we remove ioremap completely -- from what I found in MIPS specs.) I _think_ there should be (instead of ioremap): sc->iobase = (void __iomem *)KSEG1ADDR(res->start); Then we do readl(sc->iobase) et al. in ath5k. thanks, -- js -- 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