mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
x86: Add support for more than 8 MTRRs
At present the mtrr command only support 8 MTRRs. Some SoCs have more than that. Update the implementation to support up to 10. Read the number of MTRRs dynamically instead. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -36,8 +36,8 @@
|
||||
|
||||
#define MTRR_BASE_TYPE_MASK 0x7
|
||||
|
||||
/* Number of MTRRs supported */
|
||||
#define MTRR_COUNT 8
|
||||
/* Maximum number of MTRRs supported - see also mtrr_get_var_count() */
|
||||
#define MTRR_MAX_COUNT 10
|
||||
|
||||
#define NUM_FIXED_MTRRS 11
|
||||
#define RANGES_PER_FIXED_MTRR 8
|
||||
@@ -87,7 +87,7 @@ struct mtrr {
|
||||
* @mtrr: Information about each mtrr
|
||||
*/
|
||||
struct mtrr_info {
|
||||
struct mtrr mtrr[MTRR_COUNT];
|
||||
struct mtrr mtrr[MTRR_MAX_COUNT];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -180,6 +180,15 @@ int mtrr_set_valid(int cpu_select, int reg, bool valid);
|
||||
*/
|
||||
int mtrr_set(int cpu_select, int reg, u64 base, u64 mask);
|
||||
|
||||
/**
|
||||
* mtrr_get_var_count() - Get the number of variable MTRRs
|
||||
*
|
||||
* Some CPUs have more than 8 MTRRs. This function returns the actual number
|
||||
*
|
||||
* @return number of variable MTRRs
|
||||
*/
|
||||
int mtrr_get_var_count(void);
|
||||
|
||||
#endif
|
||||
|
||||
#if ((CONFIG_XIP_ROM_SIZE & (CONFIG_XIP_ROM_SIZE - 1)) != 0)
|
||||
|
||||
Reference in New Issue
Block a user