I wrote:
> /proc/ioports
> =============
>
> 0000-001f : dma1
> 0020-003f : pic1
> 0040-005f : timer
> 0060-006f : keyboard
> 0080-009f : dma page reg
> 00a0-00bf : pic2
> 00c0-00df : dma2
> 00f0-00ff : npu
> 0170-0177 : ide1
> 01f0-01f7 : ide0
> 02f8-02ff : serial(auto)
> 0376-0376 : ide1
> 03bc-03be : lp
> 03c0-03df : vga+
> 03f0-03f5 : floppy
> 03f6-03f6 : ide0
> 03f7-03f7 : floppy DIR
> 03f8-03ff : serial(auto)
> 5080-5087 : IDE DMA
> 5088-508f : IDE DMA
I added some test printing to via-rhine.c, and it failed during the
check_region call.
I compared this part of the code with the code in tulip.c and
these lines gave a clue:
/* Remove I/O space marker in bit 0. */
pci_ioaddr &= ~3;
so setting the two least significant bits to zero during the
check_region call fixed the
problem.
The network card starts at 5000, but pciaddr is 5001, so if the card
need 128 bytes it
would overlap with the first IDE DMA (see the list above).
Hope this is useful information for somebody...
Mogens
-- Mogens Kjaer, Carlsberg Laboratory, Dept. of Chemistry Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark Phone: +45 33 27 53 25, Fax: +45 33 27 47 08 Email: mk@crc.dk Homepage: http://www.crc.dk
This archive was generated by hypermail 2b29 : Wed Jan 12 2000 - 12:00:22 EST