arch/x86/Kconfig: introduce RESERVED_PHYSICAL_ADDRESS_BITS_SUPPORT
Since also some AMD CPUs have reserved physical address bits that can't be used as normal address bits, introduce the RESERVED_PHYSICAL_ADDRESS_BITS_SUPPORT Kconfig option which gets selected by CPU_INTEL_COMMON, and use the new common option to configure if the specific SoC/CPU code implements get_reserved_phys_addr_bits or if the default of this returning 0 is used instead. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I0059e63a160e60ddee280635bba72d363deca7f7 Reviewed-on: https://review.coreboot.org/c/coreboot/+/78073 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com> Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
This commit is contained in:
		| @@ -92,6 +92,16 @@ config ARCH_X86_64_PGTBL_LOC | |||||||
| 	  The position where to place pagetables. Needs to be known at | 	  The position where to place pagetables. Needs to be known at | ||||||
| 	  compile time. Must not overlap other files in CBFS. | 	  compile time. Must not overlap other files in CBFS. | ||||||
|  |  | ||||||
|  | config RESERVED_PHYSICAL_ADDRESS_BITS_SUPPORT | ||||||
|  | 	bool | ||||||
|  | 	help | ||||||
|  | 	  On some systems, the upper physical address bits are reserved and | ||||||
|  | 	  used as a tag which is typically related to a memory encryption | ||||||
|  | 	  feature. When selecting this option, the SoC code needs to implement | ||||||
|  | 	  get_reserved_phys_addr_bits so that the common code knows how many of | ||||||
|  | 	  the most significant physical address bits are reserved and can't be | ||||||
|  | 	  used as address bits. | ||||||
|  |  | ||||||
| # This is an SMP option. It relates to starting up APs. | # This is an SMP option. It relates to starting up APs. | ||||||
| # It is usually set in mainboard/*/Kconfig. | # It is usually set in mainboard/*/Kconfig. | ||||||
| # TODO: Improve description. | # TODO: Improve description. | ||||||
|   | |||||||
| @@ -316,7 +316,7 @@ size_t get_cache_size(const struct cpu_cache_info *info); | |||||||
|  */ |  */ | ||||||
| bool fill_cpu_cache_info(uint8_t level, struct cpu_cache_info *info); | bool fill_cpu_cache_info(uint8_t level, struct cpu_cache_info *info); | ||||||
|  |  | ||||||
| #if CONFIG(CPU_INTEL_COMMON) | #if CONFIG(RESERVED_PHYSICAL_ADDRESS_BITS_SUPPORT) | ||||||
| unsigned int get_reserved_phys_addr_bits(void); | unsigned int get_reserved_phys_addr_bits(void); | ||||||
| #else | #else | ||||||
| /* Default implementation */ | /* Default implementation */ | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| config CPU_INTEL_COMMON | config CPU_INTEL_COMMON | ||||||
| 	bool | 	bool | ||||||
|  | 	select RESERVED_PHYSICAL_ADDRESS_BITS_SUPPORT | ||||||
|  |  | ||||||
| if CPU_INTEL_COMMON | if CPU_INTEL_COMMON | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user