the following patch was just integrated into master:
commit 3ad63565a54f5ea3cdd866cbc6c70c67ad2757fe
Author: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Date: Sun Aug 14 15:48:33 2016 +0530
soc/intel/skylake: Correct Cache as ram size
DCACHE_RAM_SIZE_TOTAL is set to 0x40000 and is being used to
set up CAR. Whereas DCACHE_RAM_SIZE which is set to 0x10000
is used to calculate the _car_region_end in car.ld. If the FSP CAR
requirement is greater than or even close to DCACHE_RAM_SIZE then,
the CAR region for FSP will be determined to be below the overall
CAR region boundary i.e, out of CAR memory range.
This is working with FSP 1.1 because we provide the FspCarSize
and FspCarBase explicitly in a UPD. Hence, FSP is still able to
use the upper region of CAR memory for its purpose.
However, it will be a problem in case of FSP2.0 where FSP usable CAR
is calculated using _car_region_end.
So, Remove the the use of DCACHE_RAM_SIZE_TOTAL and set
DCACHE_RAM_SIZE to correct value i.e, 0x40000(256KB)
Change-Id: Ie2cb8bb0705a37edb3414850d7659f8a3dd6958b
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Reviewed-on: https://review.coreboot.org/16236
Reviewed-by: Martin Roth <martinroth(a)google.com>
Tested-by: build bot (Jenkins)
See https://review.coreboot.org/16236 for details.
-gerrit
the following patch was just integrated into master:
commit ecd9a94213216f2f50e501e6b27ee390928e0dbf
Author: Naresh G Solanki <naresh.solanki(a)intel.com>
Date: Thu Aug 11 14:56:28 2016 +0530
soc/intel/skylake: Move bootblock specific code from skylake/romstage
There is a lot of code that is being referred to in bootblock but
resides under skylake/romstage folder. Hence move this code
into skylake/bootblock, and update the relevant header files
and Makefiles.
TEST=Build and Boot kunimitsu.
Change-Id: If94e16fe54ccb7ced9c6b480a661609bdd2dfa41
Signed-off-by: Naresh G Solanki <naresh.solanki(a)intel.com>
Reviewed-on: https://review.coreboot.org/16225
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth(a)google.com>
See https://review.coreboot.org/16225 for details.
-gerrit
Martin Roth (martinroth(a)google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16236
-gerrit
commit 0db6b6ca08d5198f027e631d159fd9688b04c9e9
Author: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Date: Sun Aug 14 15:48:33 2016 +0530
soc/intel/skylake: Correct Cache as ram size
DCACHE_RAM_SIZE_TOTAL is set to 0x40000 and is being used to
set up CAR. Whereas DCACHE_RAM_SIZE which is set to 0x10000
is used to calculate the _car_region_end in car.ld. If the FSP CAR
requirement is greater than or even close to DCACHE_RAM_SIZE then,
the CAR region for FSP will be determined to be below the overall
CAR region boundary i.e, out of CAR memory range.
This is working with FSP 1.1 because we provide the FspCarSize
and FspCarBase explicitly in a UPD. Hence, FSP is still able to
use the upper region of CAR memory for its purpose.
However, it will be a problem in case of FSP2.0 where FSP usable CAR
is calculated using _car_region_end.
So, Remove the the use of DCACHE_RAM_SIZE_TOTAL and set
DCACHE_RAM_SIZE to correct value i.e, 0x40000(256KB)
Change-Id: Ie2cb8bb0705a37edb3414850d7659f8a3dd6958b
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
---
src/soc/intel/skylake/Kconfig | 6 +-----
src/soc/intel/skylake/bootblock/cache_as_ram.S | 4 ++--
src/soc/intel/skylake/romstage/romstage.c | 2 +-
3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index 8c8b1b7..3df4bd7 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -84,7 +84,7 @@ config DCACHE_RAM_BASE
config DCACHE_RAM_SIZE
hex "Length in bytes of cache-as-RAM"
- default 0x10000
+ default 0x40000
help
The size of the cache-as-ram region required during bootblock
and/or romstage.
@@ -199,10 +199,6 @@ config NHLT_SSM4567
help
Include DSP firmware settings for ssm4567 smart amplifier.
-config DCACHE_RAM_SIZE_TOTAL
- hex
- default 0x40000
-
config SKIP_FSP_CAR
bool "Skip cache as RAM setup in FSP"
default y
diff --git a/src/soc/intel/skylake/bootblock/cache_as_ram.S b/src/soc/intel/skylake/bootblock/cache_as_ram.S
index 89a3cf0..3f8f0f0 100644
--- a/src/soc/intel/skylake/bootblock/cache_as_ram.S
+++ b/src/soc/intel/skylake/bootblock/cache_as_ram.S
@@ -116,7 +116,7 @@ clear_var_mtrr:
/* Configure the MTRR mask for the size region */
mov $MTRR_PHYS_MASK(0), %ecx
- mov $CONFIG_DCACHE_RAM_SIZE_TOTAL, %eax /* size mask */
+ mov $CONFIG_DCACHE_RAM_SIZE, %eax /* size mask */
dec %eax
not %eax
or $MTRR_PHYS_MASK_VALID, %eax
@@ -216,7 +216,7 @@ find_llc_subleaf:
wrmsr
movl $CONFIG_DCACHE_RAM_BASE, %edi
- movl $CONFIG_DCACHE_RAM_SIZE_TOTAL, %ecx
+ movl $CONFIG_DCACHE_RAM_SIZE, %ecx
shr $0x02, %ecx
movl $CACHE_INIT_VALUE, %eax
cld
diff --git a/src/soc/intel/skylake/romstage/romstage.c b/src/soc/intel/skylake/romstage/romstage.c
index fda6087..0ec2f99 100644
--- a/src/soc/intel/skylake/romstage/romstage.c
+++ b/src/soc/intel/skylake/romstage/romstage.c
@@ -93,7 +93,7 @@ void soc_memory_init_params(struct romstage_params *params,
upd->DdrFreqLimit = config->DdrFreqLimit;
if (IS_ENABLED(CONFIG_SKIP_FSP_CAR)) {
upd->FspCarBase = CONFIG_DCACHE_RAM_BASE;
- upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE_TOTAL;
+ upd->FspCarSize = CONFIG_DCACHE_RAM_SIZE;
}
}
the following patch was just integrated into master:
commit cf73c1317dd1ab62a96eb17ed6d9c8590fb4c514
Author: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Date: Thu Aug 4 20:01:12 2016 +0530
skylake: Do FspTempRamInit only for FSP1.1 & tidy up PCH early init
Prepare Skylake for FSP2.0 support.
We do not use FSP-T in FSP2.0 driver, hence guard the
FspTempRamInit call under a switch.
In addition to the current early PCH configuration
program few more register, so all in all we do the following,
* Program and enable ACPI Base.
* Program and enable PWRM Base.
* Program TCO Base.
* Program Interrupt configuration registers.
* Program LPC IO decode range.
* Program SMBUS Base address and enable it.
* Enable upper 128 bytes of CMOS.
And split the above programming into into smaller functions.
Also, as part of bootblock_pch_early_init we enable decoding
for HPET range. This is needed for FspMemoryInit to store and
retrieve a global data pointer.
And also move P2SB related definitions to a new header file.
TEST=Build and boot Kunimitsu
Change-Id: Ia201e03b745836ebb43b8d7cfc77550105c71d16
Signed-off-by: Rizwan Qureshi <rizwan.qureshi(a)intel.com>
Signed-off-by: Barnali Sarkar <barnali.sarkar(a)intel.com>
Reviewed-on: https://review.coreboot.org/16113
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth(a)google.com>
See https://review.coreboot.org/16113 for details.
-gerrit