Atheros AR6001 Driver
Samuel Ortiz
sameo at openedhand.com
Wed Mar 19 17:37:39 CET 2008
Hi Nick,
On Wed, Mar 19, 2008 at 11:18:20AM -0500, Nick Moszer wrote:
> Hello,
>
> First I would like to thank you guys for your AR6001 patches, very
> helpful. I'm trying to get this chip to work over SDIO on a
> at91sam9260 dev board and was wondering if I could talk you gentlemen
> into a little assistance.
>
> I took a vanilla 2.6.24 kernel, applied the at91 patches and then
> applied the patches (minus the gta02 patch) found at:
> http://svn.openmoko.org/developers/sameo/patches/ar6k-atheros-2.0/2.6.24/
I would use atheros_2_0_* the patches from:
http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/
That is if your ar6k chip is running a 2.0.x firmware.
Then you would need a couple more things:
1) Add your Atheros compliant SDIO host controller driver, see:
http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/patches/atheros_2_0_hcd.patch
for the s3c24xx one
2) You need to enable PNP on your .config.
I have a somehow working patch set for the ar6k, working on top of the
kernel's SDIO stack. With that patchset you won't need either of those 2
items.
I'll upload those patches to my openmoko SVN repo this week (I've been
trying to do so for the past 3 weeks, didn't have time yet...)
Cheers,
Samuel.
> Here are some of the .config entries. I tried to the match the relevant
> parts to the defconfig at:
> http://svn.openmoko.org/branches/src/target/kernel/2.6.24.x/config/defconfig-gta02
>
> #
> # Networking options
> #
> CONFIG_PACKET=y
> # CONFIG_PACKET_MMAP is not set
> CONFIG_UNIX=y
> # CONFIG_NET_KEY is not set
> CONFIG_INET=y
> # CONFIG_IP_MULTICAST is not set
> # CONFIG_IP_ADVANCED_ROUTER is not set
> CONFIG_IP_FIB_HASH=y
> CONFIG_IP_PNP=y
> CONFIG_IP_PNP_DHCP=y
> # CONFIG_IP_PNP_BOOTP is not set
>
>
> #
> # UBI - Unsorted block images
> #
> # CONFIG_MTD_UBI is not set
> # CONFIG_PARPORT is not set
> CONFIG_PNP=y
> CONFIG_PNP_DEBUG=y
>
>
> #
> # SDIO support
> #
> CONFIG_SDIO=y
> CONFIG_SDIO_AR6000_WLAN=y
> CONFIG_MMC=y
> CONFIG_MMC_DEBUG=y
> # CONFIG_MMC_UNSAFE_RESUME is not set
>
> #
> # MMC/SD Card Drivers
> #
> CONFIG_MMC_BLOCK=y
> CONFIG_MMC_BLOCK_BOUNCE=y
> # CONFIG_SDIO_UART is not set
>
> #
> # MMC/SD Host Controller Drivers
> #
> CONFIG_MMC_AT91=y
> # CONFIG_MMC_SPI is not set
> CONFIG_NEW_LEDS=y
> CONFIG_LEDS_CLASS=y
>
>
> The kernel compiles mostly cleanly (a few warnings). When I boot a
> open-embedded minimal image and take a look at dmesg, this is what I get
> (having MMC debug enabled):
>
>
> mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
> MMC: Setting controller bus width to 1
> Added MCI driver
> mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
> MMC: Setting controller bus width to 1
> mmc0: clock 375000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
> clkdiv = 132. mcck = 373413
> MMC: Setting controller bus width to 1
> mmc0: clock 375000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
> clkdiv = 132. mcck = 373413
> MMC: Setting controller bus width to 1
> mmc0: starting CMD0 arg 00000000 flags 000000c0
> Sending command 0 as 00000800, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0000C3E5, C07F0001, 00000001
> Command ready
> Completed command
> Status = 0000C3E5 [00000000 00000000 00000000 00000000]
> mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
> mmc0: clock 375000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
> clkdiv = 132. mcck = 373413
> MMC: Setting controller bus width to 1
> mmc0: starting CMD8 arg 000001aa flags 000002f5
> Sending command 8 as 00001848, arg = 000001AA, blocks = 0, length = 0
> (MR = 00009B84)
> pnp: the driver 'sdio_wlan' has been registered
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 8, retries = 0)
> mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
> mmc0: starting CMD5 arg 00000000 flags 000002e1
> Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 5, retries = 3)
> mmc0: req failed (CMD5): -110, retrying...
> Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 5, retries = 2)
> mmc0: req failed (CMD5): -110, retrying...
> Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 5, retries = 1)
> mmc0: req failed (CMD5): -110, retrying...
> Sending command 5 as 00001845, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 5, retries = 0)
> mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
> mmc0: starting CMD55 arg 00000000 flags 000000f5
> Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 55, retries = 0)
> mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
> mmc0: starting CMD55 arg 00000000 flags 000000f5
> Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> Registered led device: ds5
> MCI irq: status = 0010C3E5, C07F0001, 00100001
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 55, retries = 0)
> mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
> mmc0: starting CMD55 arg 00000000 flags 000000f5
> Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 55, retries = 0)
> mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
> mmc0: starting CMD55 arg 00000000 flags 000000f5
> Sending command 55 as 00001877, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> Registered led device: ds1
> MCI irq: status = 0010C3E5, C07F0001, 00100001
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 55, retries = 0)
> mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
> TCP cubic registered
> NET: Registered protocol family 1
> NET: Registered protocol family 17
> mmc0: starting CMD1 arg 00000000 flags 000000e1
> Clearing timeout
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Clearing: SR = 0000C3E4
> Sending command 1 as 00001841, arg = 00000000, blocks = 0, length = 0
> (MR = 00009B84)
> MCI irq: status = 0010C3E4, C07F0001, 00100000
> MMC: Response timeout
> Completed command
> Status = 0010C3E5 [00000000 00000000 00000000 00000000]
> Error detected and set to -110 (cmd = 1, retries = 0)
> mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
> RPC: Registered udp transport module.
> RPC: Registered tcp transport module.
> mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
> MMC: Setting controller bus width to 1
>
>
>
> doing a quick cat of /proc/devices shows
>
> Character devices:
> 1 mem
> 2 pty
> 3 ttyp
> 4 /dev/vc/0
> 4 tty
> 4 ttyS
> 5 /dev/tty
> 5 /dev/console
> 5 /dev/ptmx
> 7 vcs
> 10 misc
> 13 input
> 89 i2c
> 90 mtd
> 128 ptm
> 136 pts
> 153 spi
>
> Block devices:
> 1 ramdisk
> 7 loop
> 8 sd
> 31 mtdblock
> 65 sd
> 66 sd
> 67 sd
> 68 sd
> 69 sd
> 70 sd
> 71 sd
> 128 sd
> 129 sd
> 130 sd
> 131 sd
> 132 sd
> 133 sd
> 134 sd
> 135 sd
> 179 mmc
>
> I don't think it's in there?? I do have an entry in sysfs
> (sys/class/mmc_host/mmc0....)
> A regular SD flash card works just fine on the board, but AR6k wifi
> cards obviously do not.
>
> Does anyone have an idea what is wrong with my current setup?
>
> Thanks!
>
>
>
>
>
> --
>
> *
> Nick Moszer
> Research Engineer
> Packet Digital, LLC
> 201 N 5th Street, Suite 1500
> Fargo, ND 58102
> 701.365.4392
>
>
> This message may contain confidential and privileged information. It is
> intended only for the use of the addressee, or any authorized agent of
> the addressee. Any unauthorized use, distribution or copying of this
> information is strictly prohibited and may be unlawful. If you have
> received this communication in error, please notify the sender by
> replying immediately and destroy the original message and all
> attachments from your electronic files.*
>
More information about the openmoko-kernel
mailing list