|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 5891 (0x1703) Types: TextFile Names: »stackdump«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦3b20aab50⟧ »EurOpenD3/network/snmp/kip-snmp.91.tar.Z« └─⟦b503a39fe⟧ └─⟦this⟧ »kip/doc/stackdump«
Return-Path: <normac!tim@russell.stanford.edu> Received: from russell.stanford.edu by safe.stanford.edu with Sendmail; Thu, 16 Oct 86 23:28:39 pdt Received: by russell.stanford.edu with Sendmail; Thu, 16 Oct 86 23:36:38 pdt Date: Thu, 16 Oct 86 23:36:38 pdt From: normac!tim@russell.stanford.edu To: croft@russell.stanford.edu Subject: stack packets explained Actual-Sender: Tim McCreery Bill- Sorry it took me so long to send you this. I looked around but either I can't find what I had done previously or else I deleted it: probably the latter in a space-saving move. Here is a typical continuously dumping stack packet: [B ] S: 220 D: 255 T: 679 dT: 679 (0001) L: 64 FF DC 4B 00 3D 44 73 74 6B 00 00 05 1A 00 06 ED ..K.=Dstk....... A0 20 00 00 00 03 08 00 06 EB AA 4E B9 00 00 04 . .........N.... F2 4E B9 00 00 04 F2 4E B9 00 00 04 F2 4E B9 00 .N.....N.....N.. 00 04 F2 4E B9 00 00 04 F2 4E B9 00 00 04 F2 4E ...N.....N.....N Here are the details: FF DC 4B | 00 3D | 44 | 73 74 6B | 00 00 05 1A | 00 06 ED <--- 01 ----> <- 02 --> <03> <---- 04 ----> <------ 05 -------> <------ 06 -- A0 | 20 00 | 00 00 03 08 | 00 06 EB AA | 4E B9 | 00 00 04 --> <- 07 --> <------ 08 -------> <------ 09 -------> <- 10 --> <------ 11 -- F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00 --> <- 10 --> <------ 11 -------> <- 10 --> <------ 11 -------> <- 10 --> <-- 00 04 F2 | 4E B9 | 00 00 04 F2 | 4E B9 | 00 00 04 F2 | 4E - 11 -------> <- 10 --> <------ 11 -------> <- 10 --> <------ 11 -------> etc. 01 - lap header: 0x4B = 'K' is Kinetics lap type. 02 - data count (plus DDP hop count if this was a long DDP). 03 - type of Kinetics lap packet: 0x44 = 'D' is the diagnostic type. 04 - ASCII "stk" for stack packet. **** All addresses that refer to PROM locations or RAM locations used by the PROM are dependent on the revision level of the PROM. The following addresses are based on the PROM known by the checksum 7E8B which should be all units now shipped and should include all units in the field which have been upgraded. **** 05 - 0x51A is first true stack address: from the PROM, this is the return address after the call to the stack packet routine. The call is from the routine "nultrap" which is the default exception handler used for every type of exception/interrupt except specifically the AppleTalk/8530 and the Ethernet chip and whatever else might be specifically replaced. 06 - From the PROM, 0x6EDA0 is a return address in the exception vectors after the "jsr nultrap" which is also used to indicate which exception/interrupt occurred. Here is the magic formula: The vectors start at 0x6EC7A. Each vector is 6 bytes, the length of the "jsr nultrap". 0x6EDA0 - 0x6EC7A = 0x126 = 294. (294. - 6) / 6 = 48. Exception vector 48. is the Ethernet interrupt service. I have included a table at the end of this mail which tells all in terms of which vectors are used for what. *** At this point, the remainder of the stack is interpreted according to type of exception that occurs. Consult the Motorola 68000 manual for details. *** 07 - 0x2000 is the processor status at the time of the Ethernet interrupt. 08 - 0x308 is the interrupted instruction location in the PROM. In this case, it is during warm restart initialization, right after we have lowered priority (and before we have set the real Ethernet ineterrupt routine address into the vector). 09 - In the PROM's RAM area, 0x6EBAA is the address of a temporary scratch area used for during various PROM routines. 10 - This turns out to be beyond the bottom of the stack which also happens to be where the vectors begin. This is a "jsr" instruction. 11 - 0x4F2 is the address of the "nultrap" routine. Exception Table for PROM 7E8B ===================================== 6EC8C | 2: Bus error 6EC92 | 3: Address error 6EC98 | 4: Illegal instruction 6EC9E | 5: Zero divide 6ECA4 | 6: CHK instruction 6ECAA | 7: TRAPV instruction 6ECB0 | 8: Privilege violation 6ECB6 | 9: Trace 6ECBC | 10: Line 1010 emulator 6ECC2 | 11: Line 1111 emulator 6ECC8 | 12: Unused 6ECCE | 13: Unused 6ECD4 | 14: Unused 6ECDA | 15: Unused 6ECE0 | 16: Level 2 dispatcher 6ECE6 | 17: Unused 6ECEC | 18: Unused 6ECF2 | 19: Unused 6ECF8 | 20: Unused 6ECFE | 21: Unused 6ED04 | 22: Unused 6ED0A | 23: Unused 6ED10 | 24: Spurious Interrupt 6ED16 | 25: Level 1 Interrupt Autovector 6ED1C | 26: Level 2 Interrupt Autovector 6ED22 | 27: Level 3 Interrupt Autovector 6ED28 | 28: Level 4 Interrupt Autovector 6ED2E | 29: Level 5 Interrupt Autovector 6ED34 | 30: Level 6 Interrupt Autovector 6ED3A | 31: Level 7 Interrupt Autovector 6ED40 | 32: TRAP 00 Instruction Vectors 6ED46 | 33: TRAP 01 Instruction Vectors 6ED4C | 34: TRAP 02 Instruction Vectors 6ED52 | 35: TRAP 03 Instruction Vectors 6ED58 | 36: TRAP 04 Instruction Vectors 6ED5E | 37: TRAP 05 Instruction Vectors 6ED64 | 38: TRAP 06 Instruction Vectors 6ED6A | 39: TRAP 07 Instruction Vectors 6ED70 | 40: TRAP 08 Instruction Vectors 6ED76 | 41: TRAP 09 Instruction Vectors 6ED7C | 42: TRAP 10 Instruction Vectors 6ED82 | 43: TRAP 11 Instruction Vectors 6ED88 | 44: TRAP 12 Instruction Vectors 6ED8E | 45: TRAP 13 Instruction Vectors 6ED94 | 46: TRAP 14 Instruction Vectors 6ED9A | 47: TRAP 15 Instruction Vectors 6EDA0 | 48: Ethernet service 6EDA6 | 49: Deadman timer service 6EDAC | 50: Timeout service 6EDB2 | 51: Applebus service 6EDB8 | 52: Q-bus host service 6EDBE | 53: Multibus host service 6EDC4 | 54: Unused 6EDCA | 55: Unused 6EDD0 | 56: Unused 6EDD6 | 57: Unused 6EDDC | 58: Unused 6EDE2 | 59: Unused 6EDE8 | 60: Unused 6EDEE | 61: Unused 6EDF4 | 62: Unused 6EDFA | 63: Unused