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