Freebios2 recovery progress... pci64 mem optimization
YhLu
YhLu at tyan.com
Thu Oct 21 17:36:01 CEST 2004
Eric,
In northbridge.c
Another typo error
/* If so place the one with the most stringent
alignment first */
if (mem2->align > mem1->align) {
struct resource *tmp;
tmp = mem1;
mem1 = mem2;
mem2 = mem1;
}
/* Now place the memory as high up as it will go */
mem2->base = resource_max(mem2);
mem1->limit = mem2->base - 1;
mem1->base = resource_max(mem1);
---->
/* If so place the one with the most stringent alignment
first */
if (mem2->align > mem1->align) {
struct resource *tmp;
tmp = mem1;
mem1 = mem2;
mem2 = tmp;
}
/* Now place the memory as high up as it will go */
mem2->base = resource_max(mem2);
mem1->limit = mem2->base - 1;
mem1->base = resource_max(mem1);
Another question is
Should do align big allocation at first or align small first.
It seems you should do align big allocation.
Align big first
base1: 0xd0000000 limit1: 0xfebfffff size: 0x18800000 align: 28
base2: 0xec000000 limit2: 0xfebfffff size: 0x06b00000 align: 26
base1: 0xd8000000 limit1: 0xdfffffff size: 0x06b00000 align: 26
base2: 0xe0000000 limit2: 0xfebfffff size: 0x18800000 align: 28
PCI_DOMAIN: 0000 00 <- [0x0000001000 - 0x0000005fff] io
PCI_DOMAIN: 0000 01 <- [0x00e0000000 - 0x00f87fffff] prefmem
PCI_DOMAIN: 0000 02 <- [0x00d8000000 - 0x00deafffff] mem
Align small first
base1: 0xd0000000 limit1: 0xfebfffff size: 0x18800000 align: 28
base2: 0xec000000 limit2: 0xfebfffff size: 0x06b00000 align: 26
base1: 0xd0000000 limit1: 0xf7ffffff size: 0x18800000 align: 28
base2: 0xf8000000 limit2: 0xfebfffff size: 0x06b00000 align: 26
PCI_DOMAIN: 0000 00 <- [0x0000001000 - 0x0000005fff] io
PCI_DOMAIN: 0000 01 <- [0x00d0000000 - 0x00e87fffff] prefmem
PCI_DOMAIN: 0000 02 <- [0x00f8000000 - 0x00feafffff] mem
More information about the coreboot
mailing list