GFP_DMA not good enough for problem hardware

Giuliano Procida (myxie@debian.org)
Mon, 18 Oct 1999 09:28:08 +0100


I have a device driver (atm/ambassador.c) which works on i386 but not
on alpha (it may well not work on other platforms as well, but I have
not had any reports). The problem is as follows:

The NIC contains a small boot loader in ROM which the driver uses to
upload the real microcode image. Communication is through registers
and a block of host memory. Unfortunately, the boot loader has a
restricted window on the host's (PCI bus) RAM, namely 0-1Gb; on Alpha,
the stack and heap seem to be (just) above 1Gb in bus addresses.

Allocating the communication block with GFP_DMA seems to makes no
difference on some alpha sub-architectures (including the one I am
testing with - Avanti). In any case, the driver may well fail on i386
machines with 4Gb of RAM.

I'm sure other driver writers have hit similar problems before. What
can I do to fix this?

Many thanks for any advice,
Giuliano Procida.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/