summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2002-04-19 06:35:55 +0000
committermarcel <marcel@FreeBSD.org>2002-04-19 06:35:55 +0000
commit394d9d65e369665fe083d7e8e072ccc667d7175d (patch)
tree3334c00c24cbfefd489084c3afe5e6c042244dc9
parent553226e8e16639b00d61d81e0125330dbfb7eed8 (diff)
downloadFreeBSD-src-394d9d65e369665fe083d7e8e072ccc667d7175d.zip
FreeBSD-src-394d9d65e369665fe083d7e8e072ccc667d7175d.tar.gz
Remove the bootinfo kludge. We get the address of the bootinfo
block from the loader.
-rw-r--r--sys/ia64/ia64/machdep.c31
1 files changed, 3 insertions, 28 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index 95d18fa..5db1109 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -98,9 +98,7 @@ u_int64_t itc_frequency;
int cold = 1;
u_int64_t pa_bootinfo;
-u_int64_t va_bootinfo;
struct bootinfo bootinfo;
-int bootinfo_error; /* XXX temporary ad-hoc error mask to help debugging */
extern char kstack[];
struct user *proc0uarea;
@@ -397,27 +395,12 @@ ia64_init(u_int64_t arg1, u_int64_t arg2)
*/
/*
- * Gross and disgusting hack. The bootinfo is written into
- * memory at a fixed address.
- * To help transitioning to a non-fixed bootinfo block, we
- * temporarily have to make this more gross and disgusting:
- * o pa_bootinfo is the physical address of the bootinfo block
- * as passed to us by the loader (initialized in locore.s)
- * (EFI loader version 0.3 and up). We only check this value.
- * We don't actively use it yet.
- * o va_bootinfo is the hardwired virtual (RR7) address of
- * the bootinfo block (old loaders). We still use it for the
- * moment.
+ * pa_bootinfo is the physical address of the bootinfo block as
+ * passed to us by the loader and set in locore.s.
*/
- va_bootinfo = 0xe000000000508000; /* the fixed RR7 address */
- if (IA64_PHYS_TO_RR7(pa_bootinfo) != va_bootinfo)
- bootinfo_error |= 1; /* XXX loader did not set r8 */
-
- /* copy the bootinfo block */
- bootinfo = *(struct bootinfo *)va_bootinfo;
+ bootinfo = *(struct bootinfo *)(IA64_PHYS_TO_RR7(pa_bootinfo));
if (bootinfo.bi_magic != BOOTINFO_MAGIC || bootinfo.bi_version != 1) {
- bootinfo_error |= 2; /* XXX bogus block */
bzero(&bootinfo, sizeof(bootinfo));
bootinfo.bi_kernend = (vm_offset_t) round_page(_end);
}
@@ -492,14 +475,6 @@ ia64_init(u_int64_t arg1, u_int64_t arg2)
/* OUTPUT NOW ALLOWED */
- if (bootinfo_error & 1)
- printf("bootinfo: the loader did not not pass the address "
- "of the block in r8.\n");
-
- if (bootinfo_error & 2)
- printf("bootinfo: block not valid; possibly not at hardwired "
- "address.\n");
-
if (ia64_pal_base != 0) {
ia64_pal_base &= ~((1 << 28) - 1);
/*
OpenPOWER on IntegriCloud