![]() |
|
|||
0001 /* SPDX-License-Identifier: GPL-2.0 */ 0002 /* 0003 * Derived from IRIX <sys/SN/kldir.h>, revision 1.21. 0004 * 0005 * Copyright (C) 1992 - 1997, 1999, 2000 Silicon Graphics, Inc. 0006 * Copyright (C) 1999, 2000 by Ralf Baechle 0007 */ 0008 #ifndef _ASM_SN_SN0_KLDIR_H 0009 #define _ASM_SN_SN0_KLDIR_H 0010 0011 0012 /* 0013 * The kldir memory area resides at a fixed place in each node's memory and 0014 * provides pointers to most other IP27 memory areas. This allows us to 0015 * resize and/or relocate memory areas at a later time without breaking all 0016 * firmware and kernels that use them. Indices in the array are 0017 * permanently dedicated to areas listed below. Some memory areas (marked 0018 * below) reside at a permanently fixed location, but are included in the 0019 * directory for completeness. 0020 */ 0021 0022 /* 0023 * The upper portion of the memory map applies during boot 0024 * only and is overwritten by IRIX/SYMMON. 0025 * 0026 * MEMORY MAP PER NODE 0027 * 0028 * 0x2000000 (32M) +-----------------------------------------+ 0029 * | IO6 BUFFERS FOR FLASH ENET IOC3 | 0030 * 0x1F80000 (31.5M) +-----------------------------------------+ 0031 * | IO6 TEXT/DATA/BSS/stack | 0032 * 0x1C00000 (30M) +-----------------------------------------+ 0033 * | IO6 PROM DEBUG TEXT/DATA/BSS/stack | 0034 * 0x0800000 (28M) +-----------------------------------------+ 0035 * | IP27 PROM TEXT/DATA/BSS/stack | 0036 * 0x1B00000 (27M) +-----------------------------------------+ 0037 * | IP27 CFG | 0038 * 0x1A00000 (26M) +-----------------------------------------+ 0039 * | Graphics PROM | 0040 * 0x1800000 (24M) +-----------------------------------------+ 0041 * | 3rd Party PROM drivers | 0042 * 0x1600000 (22M) +-----------------------------------------+ 0043 * | | 0044 * | Free | 0045 * | | 0046 * +-----------------------------------------+ 0047 * | UNIX DEBUG Version | 0048 * 0x190000 (2M--) +-----------------------------------------+ 0049 * | SYMMON | 0050 * | (For UNIX Debug only) | 0051 * 0x34000 (208K) +-----------------------------------------+ 0052 * | SYMMON STACK [NUM_CPU_PER_NODE] | 0053 * | (For UNIX Debug only) | 0054 * 0x25000 (148K) +-----------------------------------------+ 0055 * | KLCONFIG - II (temp) | 0056 * | | 0057 * | ---------------------------- | 0058 * | | 0059 * | UNIX NON-DEBUG Version | 0060 * 0x19000 (100K) +-----------------------------------------+ 0061 * 0062 * 0063 * The lower portion of the memory map contains information that is 0064 * permanent and is used by the IP27PROM, IO6PROM and IRIX. 0065 * 0066 * 0x19000 (100K) +-----------------------------------------+ 0067 * | | 0068 * | PI Error Spools (32K) | 0069 * | | 0070 * 0x12000 (72K) +-----------------------------------------+ 0071 * | Unused | 0072 * 0x11c00 (71K) +-----------------------------------------+ 0073 * | CPU 1 NMI Eframe area | 0074 * 0x11a00 (70.5K) +-----------------------------------------+ 0075 * | CPU 0 NMI Eframe area | 0076 * 0x11800 (70K) +-----------------------------------------+ 0077 * | CPU 1 NMI Register save area | 0078 * 0x11600 (69.5K) +-----------------------------------------+ 0079 * | CPU 0 NMI Register save area | 0080 * 0x11400 (69K) +-----------------------------------------+ 0081 * | GDA (1k) | 0082 * 0x11000 (68K) +-----------------------------------------+ 0083 * | Early cache Exception stack | 0084 * | and/or | 0085 * | kernel/io6prom nmi registers | 0086 * 0x10800 (66k) +-----------------------------------------+ 0087 * | cache error eframe | 0088 * 0x10400 (65K) +-----------------------------------------+ 0089 * | Exception Handlers (UALIAS copy) | 0090 * 0x10000 (64K) +-----------------------------------------+ 0091 * | | 0092 * | | 0093 * | KLCONFIG - I (permanent) (48K) | 0094 * | | 0095 * | | 0096 * | | 0097 * 0x4000 (16K) +-----------------------------------------+ 0098 * | NMI Handler (Protected Page) | 0099 * 0x3000 (12K) +-----------------------------------------+ 0100 * | ARCS PVECTORS (master node only) | 0101 * 0x2c00 (11K) +-----------------------------------------+ 0102 * | ARCS TVECTORS (master node only) | 0103 * 0x2800 (10K) +-----------------------------------------+ 0104 * | LAUNCH [NUM_CPU] | 0105 * 0x2400 (9K) +-----------------------------------------+ 0106 * | Low memory directory (KLDIR) | 0107 * 0x2000 (8K) +-----------------------------------------+ 0108 * | ARCS SPB (1K) | 0109 * 0x1000 (4K) +-----------------------------------------+ 0110 * | Early cache Exception stack | 0111 * | and/or | 0112 * | kernel/io6prom nmi registers | 0113 * 0x800 (2k) +-----------------------------------------+ 0114 * | cache error eframe | 0115 * 0x400 (1K) +-----------------------------------------+ 0116 * | Exception Handlers | 0117 * 0x0 (0K) +-----------------------------------------+ 0118 */ 0119 0120 /* 0121 * This is defined here because IP27_SYMMON_STK_SIZE must be at least what 0122 * we define here. Since it's set up in the prom. We can't redefine it later 0123 * and expect more space to be allocated. The way to find out the true size 0124 * of the symmon stacks is to divide SYMMON_STK_SIZE by SYMMON_STK_STRIDE 0125 * for a particular node. 0126 */ 0127 #define SYMMON_STACK_SIZE 0x8000 0128 0129 #if defined(PROM) 0130 0131 /* 0132 * These defines are prom version dependent. No code other than the IP27 0133 * prom should attempt to use these values. 0134 */ 0135 #define IP27_LAUNCH_OFFSET 0x2400 0136 #define IP27_LAUNCH_SIZE 0x400 0137 #define IP27_LAUNCH_COUNT 2 0138 #define IP27_LAUNCH_STRIDE 0x200 0139 0140 #define IP27_KLCONFIG_OFFSET 0x4000 0141 #define IP27_KLCONFIG_SIZE 0xc000 0142 #define IP27_KLCONFIG_COUNT 1 0143 #define IP27_KLCONFIG_STRIDE 0 0144 0145 #define IP27_NMI_OFFSET 0x3000 0146 #define IP27_NMI_SIZE 0x40 0147 #define IP27_NMI_COUNT 2 0148 #define IP27_NMI_STRIDE 0x40 0149 0150 #define IP27_PI_ERROR_OFFSET 0x12000 0151 #define IP27_PI_ERROR_SIZE 0x4000 0152 #define IP27_PI_ERROR_COUNT 1 0153 #define IP27_PI_ERROR_STRIDE 0 0154 0155 #define IP27_SYMMON_STK_OFFSET 0x25000 0156 #define IP27_SYMMON_STK_SIZE 0xe000 0157 #define IP27_SYMMON_STK_COUNT 2 0158 /* IP27_SYMMON_STK_STRIDE must be >= SYMMON_STACK_SIZE */ 0159 #define IP27_SYMMON_STK_STRIDE 0x7000 0160 0161 #define IP27_FREEMEM_OFFSET 0x19000 0162 #define IP27_FREEMEM_SIZE -1 0163 #define IP27_FREEMEM_COUNT 1 0164 #define IP27_FREEMEM_STRIDE 0 0165 0166 #endif /* PROM */ 0167 /* 0168 * There will be only one of these in a partition so the IO6 must set it up. 0169 */ 0170 #define IO6_GDA_OFFSET 0x11000 0171 #define IO6_GDA_SIZE 0x400 0172 #define IO6_GDA_COUNT 1 0173 #define IO6_GDA_STRIDE 0 0174 0175 /* 0176 * save area of kernel nmi regs in the prom format 0177 */ 0178 #define IP27_NMI_KREGS_OFFSET 0x11400 0179 #define IP27_NMI_KREGS_CPU_SIZE 0x200 0180 /* 0181 * save area of kernel nmi regs in eframe format 0182 */ 0183 #define IP27_NMI_EFRAME_OFFSET 0x11800 0184 #define IP27_NMI_EFRAME_SIZE 0x200 0185 0186 #endif /* _ASM_SN_SN0_KLDIR_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |