AMD Fam 15tn: Use all memory on systems with more than 4 GB

Take a Parmer board with 4G memory as an example.

Use 'cat /proc/meminfo' to check memory, it reads 'MemTotal 3327540kB'.
Parmer uses 512M as video memory when it has 4G.
3327540+512*1024 = 3851828(kB), so some memory is lost.

When Parmer has 4G memory, TOM2 low is 0x1F000000, TOM2 high is
0x00000001. But in e820 table or coreboot table, the last item is

    6: 0000000100000000 - 0000000118000000 = 1 RAM

This is not correct, it should be

    6: 0000000100000000 - 000000011f000000 = 1 RAM

This patch changes the memory layout when TOM2 is set.

Change-Id: I4e2d163ae8fe1e65ddc384b520a5112ca067b1d1
Signed-off-by: Siyuan Wang <SiYuan.Wang@amd.com>
Signed-off-by: Siyuan Wang <wangsiyuanbuaa@gmail.com>
Reviewed-on: http://review.coreboot.org/3366
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Siyuan Wang 2013-06-04 19:56:22 +08:00 committed by Ronald G. Minnich
parent 5b0420a87b
commit 29840e234c
1 changed files with 2 additions and 1 deletions

View File

@ -811,8 +811,9 @@ static void domain_set_resources(device_t dev)
sizek = 0;
}
else {
uint64_t topmem2 = bsp_topmem2();
basek = 4*1024*1024;
sizek -= (4*1024*1024 - mmio_basek);
sizek = topmem2/1024 - basek;
}
}