Use TOM2 for highest sysmem setting for northbound memory routing (DMA). This fixes 4GB memory issues.

Signed-off-by: Marc Jones <marcj303@gmail.com>
Acked-by: Kerry she <kerry.she@amd.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6488 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Marc Jones 2011-04-12 01:12:46 +00:00 committed by Kerry She
parent 5005bb06c1
commit 484281b90f
1 changed files with 7 additions and 5 deletions

View File

@ -661,13 +661,15 @@ static void rs780_internal_gfx_enable(device_t dev)
printk(BIOS_DEBUG, "rs780_internal_gfx_enable dev = 0x%p, nb_dev = 0x%p.\n", dev, nb_dev); printk(BIOS_DEBUG, "rs780_internal_gfx_enable dev = 0x%p, nb_dev = 0x%p.\n", dev, nb_dev);
sysmem = rdmsr(0xc001001a);
printk(BIOS_DEBUG, "sysmem = %x_%x\n", sysmem.hi, sysmem.lo);
/* The system top memory in 780. */ /* The system top memory in 780. */
sysmem = rdmsr(0xc001001a);
printk(BIOS_DEBUG, "Sysmem TOM = %x_%x\n", sysmem.hi, sysmem.lo);
pci_write_config32(nb_dev, 0x90, sysmem.lo); pci_write_config32(nb_dev, 0x90, sysmem.lo);
htiu_write_index(nb_dev, 0x30, 0);
htiu_write_index(nb_dev, 0x31, 0); sysmem = rdmsr(0xc001001D);
printk(BIOS_DEBUG, "Sysmem TOM2 = %x_%x\n", sysmem.hi, sysmem.lo);
htiu_write_index(nb_dev, 0x31, sysmem.hi);
htiu_write_index(nb_dev, 0x30, sysmem.lo | 1);
/* Disable external GFX and enable internal GFX. */ /* Disable external GFX and enable internal GFX. */
l_dword = pci_read_config32(nb_dev, 0x8c); l_dword = pci_read_config32(nb_dev, 0x8c);