ath9k-devel.lists.ath9k.org archive mirror
 help / color / mirror / Atom feed
* [ath9k-devel] Fwd: Re: ath9k_htc firmware
       [not found] ` <57526D1D.9000305@gmx.net>
@ 2016-06-04  5:58   ` Oleksij Rempel
  2016-06-04 19:44   ` [ath9k-devel] " bruce m beach
  1 sibling, 0 replies; 5+ messages in thread
From: Oleksij Rempel @ 2016-06-04  5:58 UTC (permalink / raw)
  To: ath9k-devel



Am 03.06.2016 um 19:26 schrieb bruce m beach:
> Hello All
> 
>  I am still working on cleaning up ath9k_htc firmware build tree for about 6
> months now ( and looks like I'll be doing this for all eternity**2 ) and am
> not clear myself what I'm looking for right now.
> 
> I'm looking for some kind of simple request in the ath9k_htc driver, through
> the usb ep0, like a memory read on the card, where a urb is sent with
> the resulting chain of events. The simpler the better. The simplest.

For EP0 on drivers site:
static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
{
        int transfer, err;
        const void *data = hif_dev->fw_data;
        size_t len = hif_dev->fw_size;
        u32 addr = AR9271_FIRMWARE;
        u8 *buf = kzalloc(4096, GFP_KERNEL);
        u32 firm_offset;

        if (!buf)
                return -ENOMEM;

        while (len) {
                transfer = min_t(size_t, len, 4096);
                memcpy(buf, data, transfer);

                err = usb_control_msg(hif_dev->udev,
                                      usb_sndctrlpipe(hif_dev->udev, 0),
                                      FIRMWARE_DOWNLOAD, 0x40 | USB_DIR_OUT,
                                      addr >> 8, 0, buf, transfer, HZ);

=============================================================================



On side of pre installed firmware, the code looks like this:
open-ath9k-htc-firmware/sboot/magpie_1_1/sboot/hif/usb/src/usb_api.c
LOCAL void VendorCommand(void)
{
#define cUSB_REQ_DOWNLOAD          0x30
#define cUSB_REQ_DOWNLOAD_COMP     0x31
#define cUSB_REQ_BOOT              0x32
#define cUSB_REQ_RESERVED_1        0x33
#define cUSB_REQ_RESERVED_2        0x34

#define cUSB_REQ_FLASH_READ        0x35
#define cUSB_REQ_FLASH_READ_COMP   0x36

//#define ZM_FIRMWARE_ADDR           0x200000

    void (*funcPtr)(void);
    uint16_t *text_addr = 0;
    uint32_t ep0_data = 0x0;
...





-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 213 bytes
Desc: OpenPGP digital signature
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20160604/2a073a8d/attachment.pgp 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] ath9k_htc firmware
       [not found] ` <57526D1D.9000305@gmx.net>
  2016-06-04  5:58   ` [ath9k-devel] Fwd: Re: ath9k_htc firmware Oleksij Rempel
@ 2016-06-04 19:44   ` bruce m beach
  2016-06-04 20:25     ` Oleksij Rempel
  2016-06-04 20:27     ` Oleksij Rempel
  1 sibling, 2 replies; 5+ messages in thread
From: bruce m beach @ 2016-06-04 19:44 UTC (permalink / raw)
  To: ath9k-devel

>> I'm looking for some kind of simple request in the ath9k_htc driver, through
>> the usb ep0, like a memory read on the card, where a urb is sent with
>> the resulting chain of events. The simpler the better. The simplest.

> For EP0 on drivers site:
> static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
> {
> int transfer, err;
> const void *data = hif_dev->fw_data;
> size_t len = hif_dev->fw_size;
> u32 addr = AR9271_FIRMWARE;
> u8 *buf = kzalloc(4096, GFP_KERNEL);
> u32 firm_offset;
> ...

  What about the code for setting and resetting leds ???

Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] ath9k_htc firmware
  2016-06-04 19:44   ` [ath9k-devel] " bruce m beach
@ 2016-06-04 20:25     ` Oleksij Rempel
  2016-06-04 20:27     ` Oleksij Rempel
  1 sibling, 0 replies; 5+ messages in thread
From: Oleksij Rempel @ 2016-06-04 20:25 UTC (permalink / raw)
  To: ath9k-devel

Am 04.06.2016 um 21:44 schrieb bruce m beach:
>>> I'm looking for some kind of simple request in the ath9k_htc driver, through
>>> the usb ep0, like a memory read on the card, where a urb is sent with
>>> the resulting chain of events. The simpler the better. The simplest.
> 
>> For EP0 on drivers site:
>> static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
>> {
>> int transfer, err;
>> const void *data = hif_dev->fw_data;
>> size_t len = hif_dev->fw_size;
>> u32 addr = AR9271_FIRMWARE;
>> u8 *buf = kzalloc(4096, GFP_KERNEL);
>> u32 firm_offset;
>> ...
> 
>   What about the code for setting and resetting leds ???
> 
> Bruce
> 


It is EP3/EP4 and it is not working without firmware.
Here is one example how you can add new command to firmware:
https://github.com/olerem/open-ath9k-htc-firmware/commit/c73c159303e30a28e2d3dc05ba0d2d15504e5fad


And for kernel driver:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8badb50cfab6d433622dbfd5a90b6adf27333107

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] ath9k_htc firmware
  2016-06-04 19:44   ` [ath9k-devel] " bruce m beach
  2016-06-04 20:25     ` Oleksij Rempel
@ 2016-06-04 20:27     ` Oleksij Rempel
  1 sibling, 0 replies; 5+ messages in thread
From: Oleksij Rempel @ 2016-06-04 20:27 UTC (permalink / raw)
  To: ath9k-devel

Am 04.06.2016 um 21:44 schrieb bruce m beach:
>>> I'm looking for some kind of simple request in the ath9k_htc driver, through
>>> the usb ep0, like a memory read on the card, where a urb is sent with
>>> the resulting chain of events. The simpler the better. The simplest.
> 
>> For EP0 on drivers site:
>> static int ath9k_hif_usb_download_fw(struct hif_device_usb *hif_dev)
>> {
>> int transfer, err;
>> const void *data = hif_dev->fw_data;
>> size_t len = hif_dev->fw_size;
>> u32 addr = AR9271_FIRMWARE;
>> u8 *buf = kzalloc(4096, GFP_KERNEL);
>> u32 firm_offset;
>> ...
> 
>   What about the code for setting and resetting leds ???
> 
> Bruce

It is EP3/EP4 and it is not working without firmware.
Here is one example how you can add new command to firmware:
https://github.com/olerem/open-ath9k-htc-firmware/commit/c73c159303e30a28e2d3dc05ba0d2d15504e5fad


And for kernel driver:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8badb50cfab6d433622dbfd5a90b6adf27333107


PS: Grr... today i send message from wrong email. Sorry for the spam



-- 
Regards,
Oleksij

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 213 bytes
Desc: OpenPGP digital signature
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20160604/7f9800c4/attachment.pgp 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ath9k-devel] ath9k_htc firmware
@ 2016-06-03 17:59 bruce m beach
  0 siblings, 0 replies; 5+ messages in thread
From: bruce m beach @ 2016-06-03 17:59 UTC (permalink / raw)
  To: ath9k-devel

Hello All

 I am still working on cleaning up ath9k_htc firmware build tree for about 6
months now ( and looks like I'll be doing this for all eternity**2 ) and am
not clear myself what I'm looking for right now.

I'm looking for some kind of simple request in the ath9k_htc driver, through
the usb ep0, like a memory read on the card, where a urb is sent with
the resulting chain of events. The simpler the better. The simplest.

Bruce

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-06-04 20:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAArymCnfQaa29D2EXGzwOrp0yvXES+Qq1X-HbSUxC6gig8pH_A@mail.gmail.com>
     [not found] ` <57526D1D.9000305@gmx.net>
2016-06-04  5:58   ` [ath9k-devel] Fwd: Re: ath9k_htc firmware Oleksij Rempel
2016-06-04 19:44   ` [ath9k-devel] " bruce m beach
2016-06-04 20:25     ` Oleksij Rempel
2016-06-04 20:27     ` Oleksij Rempel
2016-06-03 17:59 bruce m beach

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).