[coreboot] [PATCH] k8 uma and high tables
Stefan Reinauer
stepan at coresystems.de
Sat Oct 24 15:20:00 CEST 2009
Myles Watson wrote:
>
>
> +#if CONFIG_GFXUMA == 1
> + printk_debug("node %d :
> uma_memory_base/1024=0x%08x, mmio_basek=0x%08x, basek=0x%08x,
> limitk=0x%08x\n", i, uma_memory_base >> 10, mmio_basek, basek,
> limitk);
> + if ((uma_memory_base >> 10) < mmio_basek)
> + printk_alert("node %d: UMA memory starts
> below mmio_basek\n", i);
>
> Isn't this always true? It seems like if uma_memory_base >
> (mmio_basek - uma_memory_size) it's an error.
Can this happen? I have no idea,.. Carl-Daniel came up with the equation
and it worked great for me on the KT690
> As a side note, I think that calculation should be done here, and I
> don't think it should depend on how much RAM is installed, but should
> be user configurable.
I think it depends on the installed RAM because there is a hole below 4G
for PCI devices etc.
> Then we can unify GFXUMA and VGA_MEM_MB -> UMA_MEM_MB. Then
> uma_memory_base can go away too, since it will be mmio_base - VGA_MEM_MB.
unless uma memory can live above 4G on some chipsets...?
>
>
> +#else
> // printk_debug("node %d : mmio_basek=%08x,
> basek=%08x, limitk=%08x\n", i, mmio_basek, basek, limitk); //yhlu
> +#endif
>
> /* See if I need to split the region to accomodate
> pci memory space */
> if ( (basek < 4*1024*1024 ) && (limitk >
> mmio_basek) ) {
> @@ -1015,7 +1024,11 @@
> #if CONFIG_WRITE_HIGH_TABLES==1
> if (i==0 &&
> high_tables_base==0) {
> /* Leave some space for
> ACPI, PIRQ and MP tables */
> +#if CONFIG_GFXUMA == 1
> + high_tables_base =
> ((uma_memory_base >> 10) - HIGH_TABLES_SIZE) *
>
> 1024;
>
> high_tables_base = uma_memory_base - (HIGH_TABLES_SIZE * 1024);
d'uh, yes. Can you commit?
>
>
> +#else
> high_tables_base =
> (mmio_basek - HIGH_TABLES_SIZE) * 1024;
>
>
>
> @@ -1051,7 +1064,11 @@
> i, mmio_basek, basek, limitk);
> if (i==0 && high_tables_base==0)
> /* Leave some space for ACPI, PIRQ and MP tables */
> +#if CONFIG_GFXUMA == 1
> + high_tables_base = ((uma_memory_base >>
> 10) - HIGH_TABLES_SIZE) * 1024;
>
> same thing.
Thanks for catching this.
More information about the coreboot
mailing list