Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 07 Dec 2007 11:21:35 -0500
From:      Coleman Kane <cokane@FreeBSD.org>
To:        freebsd-hardware@freebsd.org
Subject:   Overlapping PCI Memory Locations
Message-ID:  <4759730F.6090302@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Hi,

I've got a problem where two components on my system have overlapping
PCI memory regions:

atapci0: <ATI ATA controller> port 0x9000-0x9007,0x9008-0x900b,0x9010-0x9017,0x5018-0x501b,0x5020-0x502f mem 0xd0609000-0xd06093ff irq 16 at device 18.0 on pci0

atapci0: [ITHREAD]

pcm0: <ATI SB600 High Definition Audio Controller> mem 0xd0608000-0xd060bfff irq 16 at device 20.2 on pci0

pcm0: hdac_mem_alloc: Unable to allocate memory resource



Because of this, I cannot use the sound hardware on this system. In
addition, the memory range used by atapci0 is the SATA AHCI space. The
ata-chipset.c doesn't currently identify the ATI IXP600 SATA controller
(just the paired PATA controller), so I can actually use my drives
through the PATA/IDE compatibility registers in the I/O space. However,
if I modify ata-chipset.c to add support for the IXP600 SATA controller,
I get weird results using ATA_INL(..) calls, which look like something
is interfering with the data I *should* be getting from the SATA mem space.

In addition, the pcm0 refuses to attach, as above.

Also, this is a notebook and has one of those crummy notebook BIOSes
that don't allow fiddling with this sort of stuff in BIOS. Is there any
facility in the kernel to force these to be remapped (or to perform the
mappings ourselves and ignore what BIOS tells us)?

--
Coleman Kane




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4759730F.6090302>