Date: Sat, 22 Dec 2018 17:35:59 -0800 From: Adrian Chadd <adrian@freebsd.org> To: lr x <lrx337@gmail.com> Cc: "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>, kevans@freebsd.org Subject: Re: Support for AR9271 (ath USB glue) Message-ID: <CAJ-Vmok_RgMa-86AhOzHiMcgcdCJn%2BUviRUpCFwgahY33MD9jw@mail.gmail.com> In-Reply-To: <CAFgaRUXe-=9hjFeswe14_TpefxuxvjG2XNEMLLgpnpeEmvXfGQ@mail.gmail.com> References: <CAFgaRUXe-=9hjFeswe14_TpefxuxvjG2XNEMLLgpnpeEmvXfGQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi! Sorry for not replying earlier. The 30 second version - you should look at uath and ath9k's usb code. It's not ENTIRELY just a register access method - there are a bunch of things that are done by firmware via calls - like setting the mode, adding/removing nodes, etc. ath(4) will need a bunch of stuff turned into methods that the USB driver calls into. Sorry I can't be more help right now, life's busy as heck atm. -a On Sat, 22 Dec 2018 at 15:50, lr x <lrx337@gmail.com> wrote: > Hi, > > I have a TP-LINK device[1] and I'd like to get this running on FreeBSD. I > have searched the interwebs[2][3] and, as I understand, the only thing > that's blocking this is the missing usb glue in ath / ath_hal [4][5]. > > I'm not entirely sure of how it all works together. What all should the > USB glue be doing? uath seems to be handling stuff like radiotap headers > that I'm not really sure belong in this USB glue. otus[6] seems a more > likely candidate of what this glue code should look like. Or is this about > adding USB support to the existing ath hal code (like checking if USB > device is supported when ath_hal_probe() is called?) > > I started writing an if_ath_usb.c file under sys/dev/ath and have probe() > working for my device. I'm looking at the ukbd, uath, otus and if_ath_pci > modules to understand what if_ath_usb should do (along with man usbdi). > > Have I completely misunderstood what needs to be done? > > From the if_ath_usb.c I have right now: > > static int > ath_usb_probe(device_t dev) > { > struct usb_attach_arg *uaa = device_get_ivars(dev); > printf("[ath_usb_probe] vendorId = %x, productId %x\n", > uaa->info.idVendor, uaa->info.idProduct); > > /* Skipping ath_hal_probe here as we have not registered a chip > (YET).. */ > /* Check if product is AR9271 chip */ > > /* idVendor = 0x0cf3 */ > /* idProduct = 0x9271 */ > if(uaa->info.idVendor == 0x0cf3 && uaa->info.idProduct == 0x9271) > return BUS_PROBE_DEFAULT; > > return ENXIO; > } > > > [1] https://wikidevi.com/wiki/TP-LINK_TL-WN721N > [2] > https://lists.freebsd.org/pipermail/freebsd-wireless/2015-June/005934.html > [3] https://wiki.freebsd.org/dev/ath_hal%284%29/HardwareSupport (Chipsets > I won't be working on) > [4] https://wiki.freebsd.org/dev/ath_hal%284%29 > [5] https://wiki.freebsd.org/dev/ath_hal%284%29/ApiOverview > [6] > http://adrianchadd.blogspot.com/2015/09/porting-wifi-driver-from-openbsd-ar9170.html > > Regards. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmok_RgMa-86AhOzHiMcgcdCJn%2BUviRUpCFwgahY33MD9jw>