AGESA f14: Consolidate XIP cache
Do this like fam15tn to reduce code duplication. Change-Id: I064fd27b85be7fb0c9d6918a84fc6f9b17065534 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/17563 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
f08c8a5c2d
commit
036a581b8f
|
@ -92,6 +92,12 @@ void amd_initmmio(void)
|
||||||
PciAddress.AddressValue = MAKE_SBDFO(0, 0, 0, 0, 0xE4);
|
PciAddress.AddressValue = MAKE_SBDFO(0, 0, 0, 0, 0xE4);
|
||||||
PciData = (AMD_APU_SSID << 0x10) | AMD_APU_SVID;
|
PciData = (AMD_APU_SSID << 0x10) | AMD_APU_SVID;
|
||||||
LibAmdPciWrite(AccessWidth32, PciAddress, &PciData, &StdHeader);
|
LibAmdPciWrite(AccessWidth32, PciAddress, &PciData, &StdHeader);
|
||||||
|
|
||||||
|
/* Set ROM cache onto WP to decrease post time */
|
||||||
|
MsrReg = (0x0100000000ull - CACHE_ROM_SIZE) | MTRR_TYPE_WRPROT;
|
||||||
|
LibAmdMsrWrite (0x20C, &MsrReg, &StdHeader);
|
||||||
|
MsrReg = ((1ULL << CONFIG_CPU_ADDR_BITS) - CACHE_ROM_SIZE) | MTRR_PHYS_MASK_VALID;
|
||||||
|
LibAmdMsrWrite (0x20D, &MsrReg, &StdHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
void amd_initenv(void)
|
void amd_initenv(void)
|
||||||
|
|
|
@ -40,12 +40,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/* all cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* all cores: set pstate 0 (1600 MHz) early to save a few ms of boot time
|
/* all cores: set pstate 0 (1600 MHz) early to save a few ms of boot time
|
||||||
*/
|
*/
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
|
@ -46,13 +46,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -41,13 +41,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -39,13 +39,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
amd_initmmio();
|
amd_initmmio();
|
||||||
|
|
||||||
if (!cpu_init_detectedx && boot_cpu()) {
|
if (!cpu_init_detectedx && boot_cpu()) {
|
||||||
|
|
|
@ -43,13 +43,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr(0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr(0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr(0xc0010062, 0);
|
__writemsr(0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -46,13 +46,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -47,17 +47,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
u32 val;
|
u32 val;
|
||||||
msr_t msr;
|
msr_t msr;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
msr.lo = ((0x0100000000ull - CACHE_ROM_SIZE) | 5) & 0xFFFFFFFF;
|
|
||||||
msr.hi = ((0x0100000000ull - CACHE_ROM_SIZE) | 5) >> 32;
|
|
||||||
wrmsr (MSR_MTRR_VARIABLE_BASE6, msr);
|
|
||||||
|
|
||||||
msr.lo = ((0x1000000000ull - CACHE_ROM_SIZE) | 0x800) & 0xFFFFFFFF;
|
|
||||||
msr.hi = ((0x1000000000ull - CACHE_ROM_SIZE) | 0x800) >> 32;
|
|
||||||
wrmsr (MSR_MTRR_VARIABLE_MASK6, msr);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
msr.lo = 0;
|
msr.lo = 0;
|
||||||
|
|
|
@ -62,13 +62,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -46,13 +46,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
|
@ -51,13 +51,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
/*
|
|
||||||
* All cores: allow caching of flash chip code and data
|
|
||||||
* (there are no cache-as-ram reliability concerns with family 14h)
|
|
||||||
*/
|
|
||||||
__writemsr (0x20c, (0x0100000000ull - CACHE_ROM_SIZE) | 5);
|
|
||||||
__writemsr (0x20d, (0x1000000000ull - CACHE_ROM_SIZE) | 0x800);
|
|
||||||
|
|
||||||
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
/* All cores: set pstate 0 (1600 MHz) early to save a few ms of boot time */
|
||||||
__writemsr (0xc0010062, 0);
|
__writemsr (0xc0010062, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue