mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
For older systems with ACPI which don't have a pci <-> pci bridge,
allocate unallocated memory resources from the top 32MB of the address space rather than the top 2GB. While the latter works on some chipsets, it fails badly on others. 32MB is more conservative and matches what cheap harware from this era is hardwired to pass.
This commit is contained in:
parent
0b3a486f21
commit
5cee9db399
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=136189
@ -305,16 +305,16 @@ acpi_pcib_acpi_alloc_resource(device_t dev, device_t child, int type, int *rid,
|
||||
u_long start, u_long end, u_long count, u_int flags)
|
||||
{
|
||||
/*
|
||||
* If no memory preference is given, use upper 2GB slot most
|
||||
* If no memory preference is given, use upper 32MB slot most
|
||||
* bioses use for their memory window. Typically other bridges
|
||||
* before us get in the way to assert their preferences on memory.
|
||||
* Hardcoding like this sucks, so a more MD/MI way needs to be
|
||||
* found to do it. This is typically only used on older laptops
|
||||
* that don't have pci busses behind pci bridge, so assuming < 2GB
|
||||
* that don't have pci busses behind pci bridge, so assuming > 32MB
|
||||
* is liekly OK.
|
||||
*/
|
||||
if (type == SYS_RES_MEMORY && start == 0UL && end == ~0UL)
|
||||
start = 0x80000000;
|
||||
start = 0xfe000000;
|
||||
return (bus_generic_alloc_resource(dev, child, type, rid, start, end,
|
||||
count, flags));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user