Changing how PCI-PCI bridges do resource allocation
Alexander Motin
mav at FreeBSD.org
Tue Apr 26 06:53:29 UTC 2011
On 26.04.2011 00:21, John Baldwin wrote:
> On Monday, April 25, 2011 3:09:47 pm John Baldwin wrote:
>> On Wednesday, April 20, 2011 4:38:30 am Alexander Motin wrote:
>>> On 19.04.2011 21:50, John Baldwin wrote:
>>>> I've already had at least one testing report that this fixes the issues with
>>>> some machines' BIOS clearing the I/O windows on some PCI-PCI bridges when ACPI
>>>> is enabled as this code re-discovers the original windows and programs them
>>>> correctly. More testing would be good however.
>>>
>>> I would like this helped my Acer TM6292 which also has alike problems
>>> with missing PCIe bridge resources, but unluckily it doesn't.
>>>
>>> Here is verbose dmesg when my system uses this dirty hack:
>>> http://people.freebsd.org/~mav/tm6292_pcie.patch
>>> to restore bridges resources to the pre-ACPI state:
>>> http://people.freebsd.org/~mav/dmesg.boot.hacks
>>>
>>> Here is respective `pciconf -lvcb` output:
>>> http://people.freebsd.org/~mav/pciconf.hacks
>>>
>>> Here is dmesg with patches, but without NEW_PCIB:
>>> http://people.freebsd.org/~mav/dmesg.boot.olbpcib
>>>
>>> Here is dmesg with patches with NEW_PCIB:
>>> http://people.freebsd.org/~mav/dmesg.boot.newpcib
>>
>> Ah, your problem is we pick bad ranges when we alloc fresh resources for your
>> bridges. I am working on making that better for ACPI, but for now you can try
>> setting hw.acpi.host_mem_start to a value like '0xf0000000' in loader.conf.
>>
>> Although, it looks like it is not being honored currently. Try adding a printf
>> in acpi_pcib_alloc_resource() in sys/dev/acpica/acpi_pcib_acpi.c to log the
>> type, start, and end of each resource range.
>
> Actually, try this patch. Then I think you can use the host_mem_start tunable:
I've tried it. With this patch host_mem_start tunable seems like makes
effect. Numbers look closer, but bge0 and iwn0 beyond the bridges are
still not working.
Here is dmesg with the patch:
http://people.freebsd.org/~mav/newpcib/dmesg.wpatch
, with the tunable set:
http://people.freebsd.org/~mav/newpcib/dmesg.wpatch.tunable
and with additional printf (but without snd_hda to fit the log size):
http://people.freebsd.org/~mav/newpcib/dmesg.wpatch.tunable.debug
It it helps, here is `devinfo -vr` outputs. Original (hacked):
http://people.freebsd.org/~mav/newpcib/devinfo.orig
, with the patch:
http://people.freebsd.org/~mav/newpcib/devinfo.wpatch
and with the tunable set:
http://people.freebsd.org/~mav/newpcib/devinfo.wpatch.tunable
--
Alexander Motin
More information about the freebsd-arch
mailing list