summaryrefslogtreecommitdiffstats
path: root/sys/boot/ia64/ski/skimd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/ia64/ski/skimd.c')
-rw-r--r--sys/boot/ia64/ski/skimd.c32
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);
}
OpenPOWER on IntegriCloud