OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-mips64/] [sn/] [mapped_kernel.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * File created by Kanoj Sarcar 06/06/00.
3
 * Copyright 2000 Silicon Graphics, Inc.
4
 */
5
#ifndef __ASM_SN_MAPPED_KERNEL_H
6
#define __ASM_SN_MAPPED_KERNEL_H
7
 
8
/*
9
 * Note on how mapped kernels work: the text and data section is
10
 * compiled at cksseg segment (LOADADDR = 0xc001c000), and the
11
 * init/setup/data section gets a 16M virtual address bump in the
12
 * ld.script file (so that tlblo0 and tlblo1 maps the sections).
13
 * The vmlinux.64 section addresses are put in the xkseg range
14
 * using the change-addresses makefile option. Use elfdump -of
15
 * on IRIX to see where the sections go. The Origin loader loads
16
 * the two sections contiguously in physical memory. The loader
17
 * sets the entry point into kernel_entry using a xkphys address,
18
 * but instead of using 0xa800000001160000, it uses the address
19
 * 0xa800000000160000, which is where it physically loaded that
20
 * code. So no jumps can be done before we have switched to using
21
 * cksseg addresses.
22
 */
23
#include <linux/config.h>
24
#include <asm/addrspace.h>
25
 
26
#ifdef CONFIG_MAPPED_KERNEL
27
 
28
#define MAPPED_ADDR_RO_TO_PHYS(x)       (x - CKSSEG)
29
#define MAPPED_ADDR_RW_TO_PHYS(x)       (x - CKSSEG - 16777216)
30
 
31
#define MAPPED_KERN_RO_PHYSBASE(n) \
32
                        (PLAT_NODE_DATA(n)->kern_vars.kv_ro_baseaddr)
33
#define MAPPED_KERN_RW_PHYSBASE(n) \
34
                        (PLAT_NODE_DATA(n)->kern_vars.kv_rw_baseaddr)
35
 
36
#define MAPPED_KERN_RO_TO_PHYS(x) \
37
                                ((unsigned long)MAPPED_ADDR_RO_TO_PHYS(x) | \
38
                                MAPPED_KERN_RO_PHYSBASE(get_compact_nodeid()))
39
#define MAPPED_KERN_RW_TO_PHYS(x) \
40
                                ((unsigned long)MAPPED_ADDR_RW_TO_PHYS(x) | \
41
                                MAPPED_KERN_RW_PHYSBASE(get_compact_nodeid()))
42
#define MAPPED_OFFSET                   16777216
43
 
44
#else /* CONFIG_MAPPED_KERNEL */
45
 
46
#define MAPPED_KERN_RO_TO_PHYS(x)       (x - CKSEG0)
47
#define MAPPED_KERN_RW_TO_PHYS(x)       (x - CKSEG0)
48
#define MAPPED_OFFSET                   0
49
 
50
#endif /* CONFIG_MAPPED_KERNEL */
51
 
52
#define MAPPED_KERN_RO_TO_K0(x) PHYS_TO_K0(MAPPED_KERN_RO_TO_PHYS(x))
53
#define MAPPED_KERN_RW_TO_K0(x) PHYS_TO_K0(MAPPED_KERN_RW_TO_PHYS(x))
54
 
55
#endif /* __ASM_SN_MAPPED_KERNEL_H  */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.