Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Intel 2220BG in NB6_BETA



On Sun, 18 Mar 2012 16:21:27 -0400
Thor Lancelot Simon <tls%panix.com@localhost> wrote:

> On Sun, Mar 18, 2012 at 05:24:12PM +0900, Toru Nishimura wrote:
> > I would like to help from -current user(s) who use Intel Pro
> > Wireless 2200BG.  A person who recently tried it with PPC NAS has
> > been experiencing the following trouble.
> 
> Byte order problem reading in the firmware?  The wrong-firmware-length
> message is strongly suggestive of this.

Correct. I had a look into the ipw2200-bss.fw file. Its header ist defined
as:
struct iwi_firmware_hdr {
        uint32_t        version;        /* version stamp */
        uint32_t        bsize;          /* size of boot image */
        uint32_t        usize;          /* size of ucode image */
        uint32_t        fsize;          /* size of firmware image */
} __packed;

And the image sizes in the hexdump definitely look little-endian to me:
00000000  01 00 03 00 40 19 00 00  7e 3f 00 00 e4 91 02 00  |....@...~?......|

Unfortunately if_iwi.c doesn't care for the endianess:
        if (size < sizeof(struct iwi_firmware_hdr) + hdr->bsize + hdr->usize + 
hdr->fsize) {
                aprint_error_dev(sc->sc_dev, "image '%s' too small\n",
                    sc->sc_fwname);
        [...]

A few lines later it uses the correct "le32toh(hdr->version)" for the
version, though. :)

This should be fixed!

-- 
Frank Wille


Home | Main Index | Thread Index | Old Index