Timothy Pearson (tpearson@raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8263
-gerrit
commit eb8e178bc5eb6e91bf29ad3920abec3decb43335 Author: Timothy Pearson tpearson@raptorengineeringinc.com Date: Fri Jan 23 20:24:30 2015 -0600
Add ability to configure background scrubbing rate and ECC redirection at compile time on AMD systems
Change-Id: Icbbba0037c19bdc279813e51c72f54a10e4dc55a Signed-off-by: Timothy Pearson tpearson@raptorengineeringinc.com --- src/northbridge/amd/Kconfig | 36 ++++++++++++++++++++++++++++ src/northbridge/amd/amdmct/wrappers/mcti_d.c | 8 +++++++ 2 files changed, 44 insertions(+)
diff --git a/src/northbridge/amd/Kconfig b/src/northbridge/amd/Kconfig index e9b3796..34388b2 100644 --- a/src/northbridge/amd/Kconfig +++ b/src/northbridge/amd/Kconfig @@ -98,4 +98,40 @@ config LIMIT_HT_UP_WIDTH_16 bool "16 bits" endchoice
+config AMDMCT_ENABLE_ECC_REDIR + bool + default n + +config AMDMCT_BACKGROUND_SCRUB_RATE + hex + default 0x00 + help + This option sets the background ECC memory scub rate + + Permissible values are: + + 0x00; Disabled + 0x01; 40ns + 0x02; 80ns + 0x03; 160ns + 0x04; 320ns + 0x05; 640ns + 0x06; 1.28us + 0x07; 2.56us + 0x08; 5.12us + 0x09; 10.2us + 0x0a; 20.5us + 0x0b; 41us + 0x0c; 81.9us + 0x0d; 163.8us + 0x0e; 327.7us + 0x0f; 655.4us + 0x10; 1.31ms + 0x11; 2.62ms + 0x12; 5.24ms + 0x13; 10.49ms + 0x14; 20.97sms + 0x15; 42ms + 0x16; 84ms + endmenu diff --git a/src/northbridge/amd/amdmct/wrappers/mcti_d.c b/src/northbridge/amd/amdmct/wrappers/mcti_d.c index e127322..46873e5 100644 --- a/src/northbridge/amd/amdmct/wrappers/mcti_d.c +++ b/src/northbridge/amd/amdmct/wrappers/mcti_d.c @@ -167,10 +167,17 @@ static u16 mctGet_NVbits(u8 index) #endif break; case NV_ECCRedir: +#ifdef CONFIG_AMDMCT_ENABLE_ECC_REDIR + val = CONFIG_AMDMCT_ENABLE_ECC_REDIR; +#else val = 0; /* Disable */ //val = 1; /* Enable */ +#endif break; case NV_DramBKScrub: +#ifdef CONFIG_AMDMCT_BACKGROUND_SCRUB_RATE + val = CONFIG_AMDMCT_BACKGROUND_SCRUB_RATE; +#else val = 0x00; /* Disabled */ //val = 0x01; /* 40ns */ //val = 0x02; /* 80ns */ @@ -194,6 +201,7 @@ static u16 mctGet_NVbits(u8 index) //val = 0x14; /* 20.97sms */ //val = 0x15; /* 42ms */ //val = 0x16; /* 84ms */ +#endif break; case NV_L2BKScrub: val = 0; /* Disabled - See L2Scrub in BKDG */