Overlap in PCI memory ranges

Coleman Kane cokane at FreeBSD.org
Thu Dec 6 16:58:22 PST 2007


Hello all,

I've got a problem with overlapping PCI memory ranges between my SATA
controller and my High-Def Audio controller:

atapci1: <ATI IXP600 UDMA133 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x5040-0x504f irq 16 at device 20.1
on pci0
pcm0: <ATI SB600 High Definition Audio Controller> mem
0xd0608000-0xd060bfff irq 16 at device 20.2 on pci0

I am curious if anybody knows of any way to overwrite the boot-up memory
range in the PCI configuration. I have tried:
pciconf -w pci0:0:20:2 16 0xd0614004

after inpecting that the above PCI reg's value before this is
0xd0608004. It seems that if I try writing the config register to
anything between d0608000 and d0614000, the register gets reverted back
to 0xd0608004. If I go higher than 0xd0614004, then it gets reverted to
that number.

I am not very familiar with PCI configuration (or other facilities
FreeBSD uses to assign resources to PCI devices), so I'd like to know if
anybody can help me sort this problem out which is preventing AHCI and
HDA-Audio from working...

--
Coleman Kane



More information about the freebsd-hackers mailing list