On 06/28/2010 12:17 AM, Benoit Papillault wrote:
> Le 25/06/2010 22:08, Steve Brown a écrit :
>>
>> I see that there are some TO DO comments in the ath5k code for
>> half/quarter channels. Is this being worked on?
>>
>> If not and somebody on the list has the needed info and would be willing
>> to suffer some dumb questions, I'll try to add it.
>>
>> Steve
>
> Hi Steve,
>
> Reading ath5k, I gathered the following information :
>
> /*
>  * PHY timing register 3 [5112+]
>  */
> #define AR5K_PHY_TIMING_3               0x9814
> #define AR5K_PHY_TIMING_3_DSC_MAN       0xfffe0000
> #define AR5K_PHY_TIMING_3_DSC_MAN_S     17
> #define AR5K_PHY_TIMING_3_DSC_EXP       0x0001e000
> #define AR5K_PHY_TIMING_3_DSC_EXP_S     13
>
> This describe the mantissa (MAN) and exponent (EXP) of the clock used 
> to compute the center frequency. This value is divided by 2 for 10 MHz 
> channels.
>
> /*
>  * PHY PLL (Phase Locked Loop) control register
>  */
> #define AR5K_PHY_PLL                    0x987c
> #define AR5K_PHY_PLL_HALF_RATE          0x00000100
> #define AR5K_PHY_PLL_QUARTER_RATE       0x00000200
>
> For 802.11a (40MHz PLL), bit AR5K_PHY_PLL_HALF is set to get 10 MHz 
> channels. That's probably the most important register.
>
> /*
>  * PHY mode register [5111+]
>  */
> #define AR5K_PHY_MODE                   0x0a200                 /* 
> Register Address */
> #define AR5K_PHY_MODE_MOD               0x00000001      /* PHY 
> Modulation bit */
> #define AR5K_PHY_MODE_MOD_OFDM          0
> #define AR5K_PHY_MODE_MOD_CCK           1
> #define AR5K_PHY_MODE_FREQ              0x00000002      /* Freq mode 
> bit */
> #define AR5K_PHY_MODE_FREQ_5GHZ         0
> #define AR5K_PHY_MODE_FREQ_2GHZ         2
> #define AR5K_PHY_MODE_MOD_DYN           0x00000004      /* Enable 
> Dynamic OFDM/CCK mode [5112+] */
> #define AR5K_PHY_MODE_RAD               0x00000008      /* [5212+] */
> #define AR5K_PHY_MODE_RAD_RF5111        0
> #define AR5K_PHY_MODE_RAD_RF5112        8
> #define AR5K_PHY_MODE_XR                0x00000010      /* Enable XR 
> mode [5112+] */
> #define AR5K_PHY_MODE_HALF_RATE         0x00000020      /* Enable Half 
> rate (test) */
> #define AR5K_PHY_MODE_QUARTER_RATE      0x00000040      /* Enable 
> Quarter rat (test) */
>
> For 10 MHz channels, AR5K_PHY_MODE_HALF_RATE needs to be set.
>
> There are also some information on madwifi-free : 
> http://madwifi-project.org/browser/madwifi/trunk/ath_hal/ar5212/ar5212_reset.c
>  
>
>
> I've not played myself with those bits, but that could be a good 
> starting point for you.
>
> Regards,
> Benoit
Benoit, thanks for your comments.

In looking more closely at madwifi-free, I now see that half/quarter 
channel is implemented. In fact, setting the country code to 5001 
selects the channel mappings for my XR9 card and includes half/quarter 
channels. I verified the channel widths with a spec analyzer. 5MHz and 
10MHz widths are properly selected. Scanning is slightly broken, but it 
looks very close.

I'm sure that everything I need is there.

Steve
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to