cpu: Provide a way to get the physical-address size

This concept exists on x86. Declare it as a generic function so that the
value can be accessed by UPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2025-01-10 17:00:04 -07:00 committed by Tom Rini
parent 7ba7c1dd86
commit 8b89d90146
3 changed files with 15 additions and 9 deletions

View file

@ -284,15 +284,6 @@ u32 cpu_get_family_model(void);
*/
u32 cpu_get_stepping(void);
/**
* cpu_phys_address_size() - Get the physical address size in bits
*
* This is 32 for older CPUs but newer ones may support 36.
*
* Return: address size (typically 32 or 36)
*/
int cpu_phys_address_size(void);
void board_final_init(void);
void board_final_cleanup(void);

View file

@ -5,6 +5,7 @@
* Copyright 2021 Google LLC
*/
#include <cpu.h>
#include <efi.h>
#include <init.h>
#include <asm/cpu.h>

View file

@ -179,4 +179,18 @@ struct udevice *cpu_get_current_dev(void);
* @return 0 if OK, -ve on error
*/
int cpu_release_core(const struct udevice *dev, phys_addr_t addr);
/**
* cpu_phys_address_size() - Get the physical-address size for the CPU
*
* x86 CPUs have a setting which indicates how many bits of address space are
* available on the CPU. This is 32 for older CPUs but newer ones may support 36
* or more.
*
* For non-x86 CPUs the result may simply be 32 for 32-bit CPUS or 64 for 64-bit
*
* Return: address size (typically 32 or 36)
*/
int cpu_phys_address_size(void);
#endif