diff --git a/sys/amd64/amd64/bios.c b/sys/amd64/amd64/bios.c index b34da4d83d0..d08f5ccd160 100644 --- a/sys/amd64/amd64/bios.c +++ b/sys/amd64/amd64/bios.c @@ -37,6 +37,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include +#include #include #define BIOS_START 0xe0000 @@ -84,7 +87,7 @@ bios_sigsearch(u_int32_t start, u_char *sig, int siglen, int paralen, int sigofs /* compare here */ if (!bcmp(sp + sigofs, sig, siglen)) { /* convert back to physical address */ - return((u_int32_t)BIOS_VADDRTOPADDR(sp)); + return((u_int32_t)(uintptr_t)BIOS_VADDRTOPADDR(sp)); } sp += paralen; } diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 4413e82f9f6..800c9b86354 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -56,6 +56,7 @@ amd64/amd64/amd64_mem.c standard #amd64/amd64/apic_vector.S standard amd64/amd64/atomic.c standard amd64/amd64/autoconf.c standard +amd64/amd64/bios.c standard amd64/amd64/busdma_machdep.c standard amd64/amd64/cpu_switch.S standard amd64/amd64/critical.c standard diff --git a/sys/dev/fb/vga.c b/sys/dev/fb/vga.c index 3af5fda458d..53b67b87bd7 100644 --- a/sys/dev/fb/vga.c +++ b/sys/dev/fb/vga.c @@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef __i386__ +#if defined(__i386__) || defined(__amd64__) #include #endif #include @@ -64,11 +64,7 @@ __FBSDID("$FreeBSD$"); /* XXX machine/pc/bios.h has got too much i386-specific stuff in it */ #ifndef BIOS_PADDRTOVADDR -#if !defined(__amd64__) #define BIOS_PADDRTOVADDR(x) (x) -#else -#define BIOS_PADDRTOVADDR(x) ((x) + KERNBASE) -#endif #endif int diff --git a/sys/isa/syscons_isa.c b/sys/isa/syscons_isa.c index a0f00c37e63..d271d0903e9 100644 --- a/sys/isa/syscons_isa.c +++ b/sys/isa/syscons_isa.c @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef __i386__ +#if defined(__i386__) || defined(__amd64__) #include #include @@ -56,7 +56,7 @@ __FBSDID("$FreeBSD$"); #define BIOS_SLKED (1 << 4) #define BIOS_ALKED 0 -#endif /* __i386__ */ +#endif #include @@ -234,7 +234,7 @@ sc_get_cons_priority(int *unit, int *flags) void sc_get_bios_values(bios_values_t *values) { -#ifdef __i386__ +#if defined(__i386__) || defined(__amd64__) u_int8_t shift; values->cursor_start = *(u_int8_t *)BIOS_PADDRTOVADDR(0x461); @@ -244,19 +244,18 @@ sc_get_bios_values(bios_values_t *values) | ((shift & BIOS_NLKED) ? NLKED : 0) | ((shift & BIOS_SLKED) ? SLKED : 0) | ((shift & BIOS_ALKED) ? ALKED : 0); - values->bell_pitch = BELL_PITCH; -#else /* !__i386__ */ +#else values->cursor_start = 0; values->cursor_end = 32; values->shift_state = 0; +#endif values->bell_pitch = BELL_PITCH; -#endif /* __i386__ */ } int sc_tone(int herz) { -#ifdef __i386__ +#if defined(__i386__) || defined(__amd64__) int pitch; if (herz) { @@ -274,7 +273,7 @@ sc_tone(int herz) outb(IO_PPI, inb(IO_PPI) & 0xFC); release_timer2(); } -#endif /* __i386__ */ +#endif return 0; }