payloads/coreinfo: Use fixed-width integers for cpuid
This function executes the cpuid instruction, which takes a 32 bit input value (idx), and then stores output in eax, ebx, ecx, and edx, which are all 32 bit registers. Update the prototype to use fixed-width integers, and update all usage calls appropriately. Change-Id: I15876fa35628d3a505864fb49be4fdab1fd19f4a Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33862 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
This commit is contained in:
parent
598af2e2c2
commit
37bec0b397
|
@ -27,8 +27,7 @@ struct coreinfo_module {
|
||||||
int (*handle) (int);
|
int (*handle) (int);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern void docpuid(int, unsigned long *, unsigned long *, unsigned long *,
|
extern void docpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
||||||
unsigned long *);
|
|
||||||
|
|
||||||
void print_module_title(WINDOW *win, const char *title);
|
void print_module_title(WINDOW *win, const char *title);
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ static const char *amd_cap_extended_ecx_flags[] = {
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static unsigned long vendor;
|
static uint32_t vendor;
|
||||||
static unsigned int cpu_khz;
|
static unsigned int cpu_khz;
|
||||||
|
|
||||||
static void decode_flags(WINDOW *win, unsigned long reg, const char **flags,
|
static void decode_flags(WINDOW *win, unsigned long reg, const char **flags,
|
||||||
|
@ -114,7 +114,7 @@ static void decode_flags(WINDOW *win, unsigned long reg, const char **flags,
|
||||||
|
|
||||||
static void get_features(WINDOW *win, int *row)
|
static void get_features(WINDOW *win, int *row)
|
||||||
{
|
{
|
||||||
unsigned long eax, ebx, ecx, edx;
|
uint32_t eax, ebx, ecx, edx;
|
||||||
int lrow = *row;
|
int lrow = *row;
|
||||||
|
|
||||||
wmove(win, lrow++, 1);
|
wmove(win, lrow++, 1);
|
||||||
|
@ -150,12 +150,12 @@ static void get_features(WINDOW *win, int *row)
|
||||||
static void do_name(WINDOW *win, int row)
|
static void do_name(WINDOW *win, int row)
|
||||||
{
|
{
|
||||||
char name[49], *p;
|
char name[49], *p;
|
||||||
unsigned long eax, ebx, ecx, edx;
|
uint32_t eax, ebx, ecx, edx;
|
||||||
int i, t;
|
int t;
|
||||||
|
|
||||||
p = name;
|
p = name;
|
||||||
|
|
||||||
for (i = 0x80000002; i <= 0x80000004; i++) {
|
for (uint32_t i = 0x80000002; i <= 0x80000004; i++) {
|
||||||
docpuid(i, &eax, &ebx, &ecx, &edx);
|
docpuid(i, &eax, &ebx, &ecx, &edx);
|
||||||
|
|
||||||
if (eax == 0)
|
if (eax == 0)
|
||||||
|
@ -176,7 +176,7 @@ static void do_name(WINDOW *win, int row)
|
||||||
|
|
||||||
static int cpuinfo_module_redraw(WINDOW *win)
|
static int cpuinfo_module_redraw(WINDOW *win)
|
||||||
{
|
{
|
||||||
unsigned long eax, ebx, ecx, edx;
|
uint32_t eax, ebx, ecx, edx;
|
||||||
unsigned int brand;
|
unsigned int brand;
|
||||||
char *vstr;
|
char *vstr;
|
||||||
int row = 2;
|
int row = 2;
|
||||||
|
|
Loading…
Reference in New Issue