diff options
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/aarch64/aarch64/machdep.c | 11 | ||||
-rw-r--r-- | sys/arch/amd64/isa/i8042.c | 2 | ||||
-rw-r--r-- | sys/arch/amd64/isa/mc1468.c | 2 | ||||
-rw-r--r-- | sys/arch/amd64/isa/spkr.c | 2 |
4 files changed, 14 insertions, 3 deletions
diff --git a/sys/arch/aarch64/aarch64/machdep.c b/sys/arch/aarch64/aarch64/machdep.c index 33d7c42..9a96cbb 100644 --- a/sys/arch/aarch64/aarch64/machdep.c +++ b/sys/arch/aarch64/aarch64/machdep.c @@ -31,6 +31,7 @@ #include <sys/panic.h> #include <machine/cpu.h> #include <machine/sync.h> +#include <machine/board.h> struct cpu_info g_bsp_ci = {0}; @@ -98,3 +99,13 @@ cpu_startup(struct cpu_info *ci) __ASMV("msr tpidr_el1, %0" :: "r" (ci)); md_cpu_init(); } + +void +md_get_board(struct board_info *res) +{ + uint64_t midr_el1; + + __ASMV("mrs %0, midr_el1" : "=r" (midr_el1)); + res->partno = (midr_el1 >> 4) & 0xFFF; + res->implementer = (midr_el1 >> 24) & 0xFF; +} diff --git a/sys/arch/amd64/isa/i8042.c b/sys/arch/amd64/isa/i8042.c index eb8960c..69d9f92 100644 --- a/sys/arch/amd64/isa/i8042.c +++ b/sys/arch/amd64/isa/i8042.c @@ -435,4 +435,4 @@ i8042_init(void) return 0; } -DRIVER_EXPORT(i8042_init); +DRIVER_EXPORT(i8042_init, "i8042"); diff --git a/sys/arch/amd64/isa/mc1468.c b/sys/arch/amd64/isa/mc1468.c index bbaa3d1..1f3ae1d 100644 --- a/sys/arch/amd64/isa/mc1468.c +++ b/sys/arch/amd64/isa/mc1468.c @@ -278,4 +278,4 @@ static struct cdevsw mc1468_cdevsw = { .write = mc1468_dev_write, }; -DRIVER_EXPORT(mc1468_init); +DRIVER_EXPORT(mc1468_init, "mc1468"); diff --git a/sys/arch/amd64/isa/spkr.c b/sys/arch/amd64/isa/spkr.c index b2f63b0..c96e5f9 100644 --- a/sys/arch/amd64/isa/spkr.c +++ b/sys/arch/amd64/isa/spkr.c @@ -119,4 +119,4 @@ static struct cdevsw beep_cdevsw = { .write = dev_write }; -DRIVER_EXPORT(beep_init); +DRIVER_EXPORT(beep_init, "pcspkr"); |