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>