northbridge/amd/amdmct: Honor MMCONF_BASE_ADDRESS
The MMIO hole start address was hardcoded on AMD Family 10h systems. Use the MMCONF_BASE_ADDRESS Kconfig setting instead. Change-Id: I204e904d96d14e99529fa5e524fd73e6ea256dc0 Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-on: http://review.coreboot.org/10427 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
efc01f0d22
commit
bbd2647b38
|
@ -31,6 +31,18 @@
|
||||||
#define NVRAM_DDR3_1066 2
|
#define NVRAM_DDR3_1066 2
|
||||||
#define NVRAM_DDR3_800 3
|
#define NVRAM_DDR3_800 3
|
||||||
|
|
||||||
|
/* The recommended maximum GFX Upper Memory Area
|
||||||
|
* size is 256M, however, to be on the safe side
|
||||||
|
* move TOM down by 512M.
|
||||||
|
*/
|
||||||
|
#define MAXIMUM_GFXUMA_SIZE 0x20000000
|
||||||
|
|
||||||
|
/* Do not allow less than 16M of DRAM in 32-bit space.
|
||||||
|
* This number is not hardware constrained and can be
|
||||||
|
* changed as needed.
|
||||||
|
*/
|
||||||
|
#define MINIMUM_DRAM_BELOW_4G 0x1000000
|
||||||
|
|
||||||
static const uint16_t ddr2_limits[4] = {400, 333, 266, 200};
|
static const uint16_t ddr2_limits[4] = {400, 333, 266, 200};
|
||||||
static const uint16_t ddr3_limits[4] = {800, 666, 533, 400};
|
static const uint16_t ddr3_limits[4] = {800, 666, 533, 400};
|
||||||
|
|
||||||
|
@ -159,17 +171,15 @@ static u16 mctGet_NVbits(u8 index)
|
||||||
//val = 1; /* enable */
|
//val = 1; /* enable */
|
||||||
break;
|
break;
|
||||||
case NV_BottomIO:
|
case NV_BottomIO:
|
||||||
#if !CONFIG_GFXUMA
|
|
||||||
val = 0xE0; /* address bits [31:24] */
|
|
||||||
#elif CONFIG_GFXUMA
|
|
||||||
val = 0xC0; /* address bits [31:24] */
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
case NV_BottomUMA:
|
case NV_BottomUMA:
|
||||||
|
/* address bits [31:24] */
|
||||||
#if !CONFIG_GFXUMA
|
#if !CONFIG_GFXUMA
|
||||||
val = 0xE0; /* address bits [31:24] */
|
val = (CONFIG_MMCONF_BASE_ADDRESS >> 24);
|
||||||
#elif CONFIG_GFXUMA
|
#elif CONFIG_GFXUMA
|
||||||
val = 0xC0; /* address bits [31:24] */
|
#if (CONFIG_MMCONF_BASE_ADDRESS < (MAXIMUM_GFXUMA_SIZE + MINIMUM_DRAM_BELOW_4G))
|
||||||
|
#error "MMCONF_BASE_ADDRESS is too small"
|
||||||
|
#endif
|
||||||
|
val = ((CONFIG_MMCONF_BASE_ADDRESS - MAXIMUM_GFXUMA_SIZE) >> 24);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case NV_ECC:
|
case NV_ECC:
|
||||||
|
|
Loading…
Reference in New Issue