|
|
1.1 ! root 1: /* Layout and contents of the HardWare Resource Parameter Block (HWRPB). ! 2: ! 3: This file is copied intact from the Linux kernel. As such, it is ! 4: covered by the GNU General Public License, v2.0. ! 5: ! 6: You should have received a copy of the GNU General Public License ! 7: along with this program; see the file COPYING. If not see ! 8: <http://www.gnu.org/licenses/>. */ ! 9: ! 10: #ifndef __ALPHA_HWRPB_H ! 11: #define __ALPHA_HWRPB_H ! 12: ! 13: #define INIT_HWRPB ((struct hwrpb_struct *) 0x10000000) ! 14: ! 15: /* ! 16: * DEC processor types for Alpha systems. Found in HWRPB. ! 17: * These values are architected. ! 18: */ ! 19: ! 20: #define EV3_CPU 1 /* EV3 */ ! 21: #define EV4_CPU 2 /* EV4 (21064) */ ! 22: #define LCA4_CPU 4 /* LCA4 (21066/21068) */ ! 23: #define EV5_CPU 5 /* EV5 (21164) */ ! 24: #define EV45_CPU 6 /* EV4.5 (21064/xxx) */ ! 25: #define EV56_CPU 7 /* EV5.6 (21164) */ ! 26: #define EV6_CPU 8 /* EV6 (21264) */ ! 27: #define PCA56_CPU 9 /* PCA56 (21164PC) */ ! 28: #define PCA57_CPU 10 /* PCA57 (notyet) */ ! 29: #define EV67_CPU 11 /* EV67 (21264A) */ ! 30: #define EV68CB_CPU 12 /* EV68CB (21264C) */ ! 31: #define EV68AL_CPU 13 /* EV68AL (21264B) */ ! 32: #define EV68CX_CPU 14 /* EV68CX (21264D) */ ! 33: #define EV7_CPU 15 /* EV7 (21364) */ ! 34: #define EV79_CPU 16 /* EV79 (21364??) */ ! 35: #define EV69_CPU 17 /* EV69 (21264/EV69A) */ ! 36: ! 37: /* ! 38: * DEC system types for Alpha systems. Found in HWRPB. ! 39: * These values are architected. ! 40: */ ! 41: ! 42: #define ST_ADU 1 /* Alpha ADU systype */ ! 43: #define ST_DEC_4000 2 /* Cobra systype */ ! 44: #define ST_DEC_7000 3 /* Ruby systype */ ! 45: #define ST_DEC_3000_500 4 /* Flamingo systype */ ! 46: #define ST_DEC_2000_300 6 /* Jensen systype */ ! 47: #define ST_DEC_3000_300 7 /* Pelican systype */ ! 48: #define ST_DEC_2100_A500 9 /* Sable systype */ ! 49: #define ST_DEC_AXPVME_64 10 /* AXPvme system type */ ! 50: #define ST_DEC_AXPPCI_33 11 /* NoName system type */ ! 51: #define ST_DEC_TLASER 12 /* Turbolaser systype */ ! 52: #define ST_DEC_2100_A50 13 /* Avanti systype */ ! 53: #define ST_DEC_MUSTANG 14 /* Mustang systype */ ! 54: #define ST_DEC_ALCOR 15 /* Alcor (EV5) systype */ ! 55: #define ST_DEC_1000 17 /* Mikasa systype */ ! 56: #define ST_DEC_EB64 18 /* EB64 systype */ ! 57: #define ST_DEC_EB66 19 /* EB66 systype */ ! 58: #define ST_DEC_EB64P 20 /* EB64+ systype */ ! 59: #define ST_DEC_BURNS 21 /* laptop systype */ ! 60: #define ST_DEC_RAWHIDE 22 /* Rawhide systype */ ! 61: #define ST_DEC_K2 23 /* K2 systype */ ! 62: #define ST_DEC_LYNX 24 /* Lynx systype */ ! 63: #define ST_DEC_XL 25 /* Alpha XL systype */ ! 64: #define ST_DEC_EB164 26 /* EB164 systype */ ! 65: #define ST_DEC_NORITAKE 27 /* Noritake systype */ ! 66: #define ST_DEC_CORTEX 28 /* Cortex systype */ ! 67: #define ST_DEC_MIATA 30 /* Miata systype */ ! 68: #define ST_DEC_XXM 31 /* XXM systype */ ! 69: #define ST_DEC_TAKARA 32 /* Takara systype */ ! 70: #define ST_DEC_YUKON 33 /* Yukon systype */ ! 71: #define ST_DEC_TSUNAMI 34 /* Tsunami systype */ ! 72: #define ST_DEC_WILDFIRE 35 /* Wildfire systype */ ! 73: #define ST_DEC_CUSCO 36 /* CUSCO systype */ ! 74: #define ST_DEC_EIGER 37 /* Eiger systype */ ! 75: #define ST_DEC_TITAN 38 /* Titan systype */ ! 76: #define ST_DEC_MARVEL 39 /* Marvel systype */ ! 77: ! 78: /* UNOFFICIAL!!! */ ! 79: #define ST_UNOFFICIAL_BIAS 100 ! 80: #define ST_DTI_RUFFIAN 101 /* RUFFIAN systype */ ! 81: ! 82: /* Alpha Processor, Inc. systems */ ! 83: #define ST_API_BIAS 200 ! 84: #define ST_API_NAUTILUS 201 /* UP1000 systype */ ! 85: ! 86: struct pcb_struct { ! 87: unsigned long ksp; ! 88: unsigned long usp; ! 89: unsigned long ptbr; ! 90: unsigned int pcc; ! 91: unsigned int asn; ! 92: unsigned long unique; ! 93: unsigned long flags; ! 94: unsigned long res1, res2; ! 95: }; ! 96: ! 97: struct percpu_struct { ! 98: unsigned long hwpcb[16]; ! 99: unsigned long flags; ! 100: unsigned long pal_mem_size; ! 101: unsigned long pal_scratch_size; ! 102: unsigned long pal_mem_pa; ! 103: unsigned long pal_scratch_pa; ! 104: unsigned long pal_revision; ! 105: unsigned long type; ! 106: unsigned long variation; ! 107: unsigned long revision; ! 108: unsigned long serial_no[2]; ! 109: unsigned long logout_area_pa; ! 110: unsigned long logout_area_len; ! 111: unsigned long halt_PCBB; ! 112: unsigned long halt_PC; ! 113: unsigned long halt_PS; ! 114: unsigned long halt_arg; ! 115: unsigned long halt_ra; ! 116: unsigned long halt_pv; ! 117: unsigned long halt_reason; ! 118: unsigned long res; ! 119: unsigned long ipc_buffer[21]; ! 120: unsigned long palcode_avail[16]; ! 121: unsigned long compatibility; ! 122: unsigned long console_data_log_pa; ! 123: unsigned long console_data_log_length; ! 124: unsigned long bcache_info; ! 125: }; ! 126: ! 127: struct procdesc_struct { ! 128: unsigned long weird_vms_stuff; ! 129: unsigned long address; ! 130: }; ! 131: ! 132: struct vf_map_struct { ! 133: void *va; ! 134: unsigned long pa; ! 135: unsigned long count; ! 136: }; ! 137: ! 138: struct crb_struct { ! 139: struct procdesc_struct * dispatch_va; ! 140: unsigned long dispatch_pa; ! 141: struct procdesc_struct * fixup_va; ! 142: unsigned long fixup_pa; ! 143: /* virtual->physical map */ ! 144: unsigned long map_entries; ! 145: unsigned long map_pages; ! 146: struct vf_map_struct map[1]; ! 147: }; ! 148: ! 149: struct memclust_struct { ! 150: unsigned long start_pfn; ! 151: unsigned long numpages; ! 152: unsigned long numtested; ! 153: unsigned long bitmap_va; ! 154: unsigned long bitmap_pa; ! 155: unsigned long bitmap_chksum; ! 156: unsigned long usage; ! 157: }; ! 158: ! 159: struct memdesc_struct { ! 160: unsigned long chksum; ! 161: unsigned long optional_pa; ! 162: unsigned long numclusters; ! 163: struct memclust_struct cluster[0]; ! 164: }; ! 165: ! 166: struct dsr_struct { ! 167: long smm; /* SMM nubber used by LMF */ ! 168: unsigned long lurt_off; /* offset to LURT table */ ! 169: unsigned long sysname_off; /* offset to sysname char count */ ! 170: }; ! 171: ! 172: struct hwrpb_struct { ! 173: unsigned long phys_addr; /* check: physical address of the hwrpb */ ! 174: unsigned long id; /* check: "HWRPB\0\0\0" */ ! 175: unsigned long revision; ! 176: unsigned long size; /* size of hwrpb */ ! 177: unsigned long cpuid; ! 178: unsigned long pagesize; /* 8192, I hope */ ! 179: unsigned long pa_bits; /* number of physical address bits */ ! 180: unsigned long max_asn; ! 181: unsigned char ssn[16]; /* system serial number: big bother is watching */ ! 182: unsigned long sys_type; ! 183: unsigned long sys_variation; ! 184: unsigned long sys_revision; ! 185: unsigned long intr_freq; /* interval clock frequency * 4096 */ ! 186: unsigned long cycle_freq; /* cycle counter frequency */ ! 187: unsigned long vptb; /* Virtual Page Table Base address */ ! 188: unsigned long res1; ! 189: unsigned long tbhb_offset; /* Translation Buffer Hint Block */ ! 190: unsigned long nr_processors; ! 191: unsigned long processor_size; ! 192: unsigned long processor_offset; ! 193: unsigned long ctb_nr; ! 194: unsigned long ctb_size; /* console terminal block size */ ! 195: unsigned long ctbt_offset; /* console terminal block table offset */ ! 196: unsigned long crb_offset; /* console callback routine block */ ! 197: unsigned long mddt_offset; /* memory data descriptor table */ ! 198: unsigned long cdb_offset; /* configuration data block (or NULL) */ ! 199: unsigned long frut_offset; /* FRU table (or NULL) */ ! 200: void (*save_terminal)(unsigned long); ! 201: unsigned long save_terminal_data; ! 202: void (*restore_terminal)(unsigned long); ! 203: unsigned long restore_terminal_data; ! 204: void (*CPU_restart)(unsigned long); ! 205: unsigned long CPU_restart_data; ! 206: unsigned long res2; ! 207: unsigned long res3; ! 208: unsigned long chksum; ! 209: unsigned long rxrdy; ! 210: unsigned long txrdy; ! 211: unsigned long dsr_offset; /* "Dynamic System Recognition Data Block Table" */ ! 212: }; ! 213: ! 214: ! 215: static inline void ! 216: hwrpb_update_checksum(struct hwrpb_struct *h) ! 217: { ! 218: unsigned long sum = 0, *l; ! 219: for (l = (unsigned long *) h; l < (unsigned long *) &h->chksum; ++l) ! 220: sum += *l; ! 221: h->chksum = sum; ! 222: } ! 223: ! 224: #endif /* __ALPHA_HWRPB_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.