Writing a driver for a card reader controller - how?

John Baldwin jhb at freebsd.org
Mon Nov 28 17:04:05 GMT 2005

On Thursday 24 November 2005 01:26 pm, M. Warner Losh wrote:
> In message: <20051124111241.GB75190 at mygiea.ham01.thiemo.net>
>             Thiemo Nordenholz <listmember at thiemo.net> writes:
> : Hi Warner,
> :
> : > to be set.  Can you send me a pointer to the winbond datasheet you are
> : > using?  IIRC, this chip has an odd API since it appears to be derived
> :
> : As I have to wait for some spare time before trying to use the hints I
> : have received here, for now I can only answer that question - I found a
> : datasheet at
> : http://www.winbond.com/e-winbondhtm/partner/PDFresult.asp?Pname=863 which
> : is what I try to work with. (That page sends a file "PDFresult.asp",
> : which is actually a PDF.)
> I've read through this pdf.  As far as I can find, it just talks about
> how to setup the base address for each of the sets of registers
> without actually talking about the sets of registers themselves.  Nor
> can I find in the document a pointer to the different register sets.
> Do you have one of those as well?  It looks fairly easy to program
> this device's base addresses or inquire what they are.  It is done in
> much the same way that super I/O chips are programmed.

For an ACPI device you want to use _PRS and _SRS.  _PRS will give you a list 
of candidate resource sets, possibly in groups via DPF tags.  You then build 
a resource and do an _SRS to set it.  The problem is that our ACPI bus isn't 
smart enough to allocate resources for a device when bus_alloc_resource() is 
called to choose available resources when a device is not configured.  This 
is similar to how you fixed the PCI bus recently to allocate resources for 
BARs that weren't already allocated by the BIOS.

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org

More information about the freebsd-hackers mailing list