summaryrefslogtreecommitdiffstats
path: root/include/asm-mips64
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@engr.sgi.com>2000-06-08 00:18:49 +0000
committerKanoj Sarcar <kanoj@engr.sgi.com>2000-06-08 00:18:49 +0000
commit62038e3f2e54b1f6c130958c75875c72b13944ef (patch)
tree3b5511ff4d92d2cbc40762eb0f9db14ef642bca1 /include/asm-mips64
parent1db92498b072a7a1a82171ea2222fd29904c6171 (diff)
Mapped kernel changes: create elf sections as close as possible to
IRIX, to get the same kind of loader behavior. Read comments in mapped_kernel.h for more details.
Diffstat (limited to 'include/asm-mips64')
-rw-r--r--include/asm-mips64/sn/mapped_kernel.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asm-mips64/sn/mapped_kernel.h b/include/asm-mips64/sn/mapped_kernel.h
index ad72d99db..07e799b96 100644
--- a/include/asm-mips64/sn/mapped_kernel.h
+++ b/include/asm-mips64/sn/mapped_kernel.h
@@ -5,6 +5,21 @@
#ifndef __ASM_SN_MAPPED_KERNEL_H
#define __ASM_SN_MAPPED_KERNEL_H
+/*
+ * Note on how mapped kernels work: the text and data section is
+ * compiled at cksseg segment (LOADADDR = 0xc001c000), and the
+ * init/setup/data section gets a 16M virtual address bump in the
+ * ld.script file (so that tlblo0 and tlblo1 maps the sections).
+ * The vmlinux.64 section addresses are put in the xkseg range
+ * using the change-addresses makefile option. Use elfdump -of
+ * on IRIX to see where the sections go. The Origin loader loads
+ * the two sections contiguously in physical memory. The loader
+ * sets the entry point into kernel_entry using a xkphys address,
+ * but instead of using 0xa800000001160000, it uses the address
+ * 0xa800000000160000, which is where it physically loaded that
+ * code. So no jumps can be done before we have switched to using
+ * cksseg addresses.
+ */
#include <linux/config.h>
#include <asm/addrspace.h>