mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
smbios: provide type 4 RISC-V SMBIOS Processor ID
For RISC-V CPUs the SMBIOS Processor ID field contains the Machine Vendor ID from CSR mvendorid. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
6ebf9136ec
commit
545e0e42b9
1 changed files with 12 additions and 0 deletions
|
@ -11,6 +11,7 @@
|
|||
#include <errno.h>
|
||||
#include <log.h>
|
||||
#include <asm/global_data.h>
|
||||
#include <asm/sbi.h>
|
||||
#include <dm/device-internal.h>
|
||||
#include <dm/lists.h>
|
||||
#include <linux/bitops.h>
|
||||
|
@ -94,13 +95,24 @@ static int riscv_cpu_bind(struct udevice *dev)
|
|||
struct cpu_plat *plat = dev_get_parent_plat(dev);
|
||||
struct driver *drv;
|
||||
int ret;
|
||||
long mvendorid;
|
||||
|
||||
/* save the hart id */
|
||||
plat->cpu_id = dev_read_addr(dev);
|
||||
/* provide data for SMBIOS */
|
||||
if (IS_ENABLED(CONFIG_64BIT))
|
||||
plat->family = 0x201;
|
||||
else
|
||||
plat->family = 0x200;
|
||||
if (CONFIG_IS_ENABLED(RISCV_SMODE)) {
|
||||
/*
|
||||
* For RISC-V CPUs the SMBIOS Processor ID field contains
|
||||
* the Machine Vendor ID from CSR mvendorid.
|
||||
*/
|
||||
ret = sbi_get_mvendorid(&mvendorid);
|
||||
if (!ret)
|
||||
plat->id[0] = mvendorid;
|
||||
}
|
||||
/* first examine the property in current cpu node */
|
||||
ret = dev_read_u32(dev, "timebase-frequency", &plat->timebase_freq);
|
||||
/* if not found, then look at the parent /cpus node */
|
||||
|
|
Loading…
Add table
Reference in a new issue