Date: Fri, 06 Jun 2003 10:18:13 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: dirkx@webweaving.org Cc: mobile@freebsd.org Subject: Re: Prism2 firmware upload support. Message-ID: <20030606.101813.10580156.imp@bsdimp.com> In-Reply-To: <20030606123639.L801-100000@foem> References: <20030606123639.L801-100000@foem>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20030606123639.L801-100000@foem> Dirk-Willem van Gulik <dirkx@webweaving.org> writes: : Has anyone looked at the existing symbol firmware loading code in freebsd : 5.x and looked at generalizing this with some ioctl()'s for : upload/download of firmware (and propalby an extra SIOCGPRISM2INFO to give : userland enough of an idea of the primary/secondary version numbers to be : able to select/check the hex files) ? I've looked into it. Primary/secondary versions aren't as interesting as the actual product ID for determining which hex file to load. There's also a need for getting additional data out of the current firmware so it can be merged into the hex file before we burn the new firmware. There's also a number of sanity checks that need to be made to make sure that primary firmware is compatible with the secondary firmware you are loading, etc. : I've started coding some of this into the wi driver - but one thing which : worries me is how to properly activate it; i.e. how does one from an ioctl : a clean detach/probe sort of thing ? I take it that one cannot call : wi_generic_detach(), wi_generic_attach() from inside the ioctol handler ? I don't think you need to call attach/detach. I think its overkill and completely unnecessary. There's really no need at all to do this. You should take the interface down, note you are updating the firmware to preclude it coming back up, do the firmware upload, and then call wi_init again. It may make sense to set certain flags based on the new version, but I don't think much else is required. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030606.101813.10580156.imp>