diff options
Diffstat (limited to 'sys/boot/ia64/ski/skimd.c')
-rw-r--r-- | sys/boot/ia64/ski/skimd.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/sys/boot/ia64/ski/skimd.c b/sys/boot/ia64/ski/skimd.c index bec2ec0..8db358c 100644 --- a/sys/boot/ia64/ski/skimd.c +++ b/sys/boot/ia64/ski/skimd.c @@ -33,24 +33,31 @@ __FBSDID("$FreeBSD$"); #include "libski.h" -#define PHYS_START (4L*1024*1024*1024) -#define PHYS_SIZE (64L*1024*1024 - 4L*1024) - extern void acpi_stub_init(void); extern void efi_stub_init(struct bootinfo *); extern void sal_stub_init(void); -uint64_t -ldr_alloc(vm_offset_t va) +vm_paddr_t +ia64_platform_alloc(vm_offset_t va, vm_size_t sz __unused) { + vm_paddr_t pa; + + if (va == 0) + pa = 1024 * 1024; + else + pa = (va - IA64_PBVM_BASE) + (64 * 1024 * 1024); - if (va >= PHYS_SIZE) - return (0); - return (va + PHYS_START); + return (pa); +} + +void +ia64_platform_free(vm_offset_t va __unused, vm_paddr_t pa __unused, + vm_size_t sz __unused) +{ } int -ldr_bootinfo(struct bootinfo *bi, uint64_t *bi_addr) +ia64_platform_bootinfo(struct bootinfo *bi, struct bootinfo **res) { static struct bootinfo bootinfo; @@ -58,17 +65,16 @@ ldr_bootinfo(struct bootinfo *bi, uint64_t *bi_addr) sal_stub_init(); acpi_stub_init(); - *bi_addr = (uint64_t)(&bootinfo); - bootinfo = *bi; + *res = &bootinfo; return (0); } int -ldr_enter(const char *kernel) +ia64_platform_enter(const char *kernel) { while (*kernel == '/') kernel++; - ssc(0, (uint64_t)kernel, 0, 0, SSC_LOAD_SYMBOLS); + ssc(0, (uint64_t)kernel, 0, 0, SSC_LOAD_SYMBOLS); return (0); } |