diff options
author | Marc Jones <marcj303@gmail.com> | 2011-04-12 01:12:46 +0000 |
---|---|---|
committer | Kerry She <Kerry.She@amd.com> | 2011-04-12 01:12:46 +0000 |
commit | 484281b90f92b0ae4e226a090edecc026b37529c (patch) | |
tree | 8d87bbdaaef42e86b3c5d31ba5993f2ccd65a029 /src/southbridge/amd | |
parent | 5005bb06c17461ef75cd1fef55c24dffaa05e580 (diff) | |
download | coreboot-484281b90f92b0ae4e226a090edecc026b37529c.tar.xz |
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
Diffstat (limited to 'src/southbridge/amd')
-rw-r--r-- | src/southbridge/amd/rs780/gfx.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/southbridge/amd/rs780/gfx.c b/src/southbridge/amd/rs780/gfx.c index d7c11e4003..973e9c017f 100644 --- a/src/southbridge/amd/rs780/gfx.c +++ b/src/southbridge/amd/rs780/gfx.c @@ -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); - sysmem = rdmsr(0xc001001a); - printk(BIOS_DEBUG, "sysmem = %x_%x\n", sysmem.hi, sysmem.lo); - /* 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); - 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. */ l_dword = pci_read_config32(nb_dev, 0x8c); |