Status from 68k_Services to TCC -------------------------------------- Rev. 19-JUL-1994 The Status Block for transfering 68k_Services status information to the TCC is located in memory on the MVME-135 card at addresses: 68k_Services ---> TCC --------------------- Address range in the MVME-135 onboard memroy Status Block Description (in HEX Byte Address) --------------------------- ------------------------- 68k_Services Status to TCC 0006 7980 - 0006 7A7F Within this 64 longword status block there are a number of sections. The data in these different sections is only "up-dated" during specific phases of 68k_Service's various operations. The sections in the 68k_Services to TCC Status Block are listed below. 1. Interrupt Processing Status Section ----------------------------------- The 1st through the 8th longwords in this status block are used to report to TCC the status of 68k_Services as it processes the Load_Code and the Load_Parameters interrupts. The information in these longwords is only "up-dated" during processing of the Load_Code and Load_Parameters interrupts. At this time only the 1st through 3rd longwords in this section are defined; the rest are reserved. 2. Status of DSP's as Seen by 68k_Services Section ----------------------------------------------- The 9th through the 20th longwords in this status block are used to report to TCC the status of the 12 DSP's as seen by 68k_Services. This information is "up-dated" during processing of the Load_Parameters interrupt and any time that 68k_Services performs an error recovery procedure for the DSP's. 3. Error Recovery Cause and Counters Section ----------------------------------------- The 21st through the 32nd longwords in this status block report information to TCC about how often and why 68k_Services has had to perform an error recovery procedure. This information is "up-dated" any time that 68k_Services performs an error recovery procedure. The counters in this section are set to zero during the processing of a Load_Parameters interrupt. At this time only the 21st through 25th longwords in this section are defined; the rest are reserved. 4. Normal Operation Counters Section --------------------------------- The 33rd through the 48th longwords in this status block are used to report to TCC a number of counters that indicate what type and at what rate L15CT is performing its various operations. These counter are cleared to zero during the processing of the Load_Parameters interrupt. These counters are then "up-dated" any time that 68k_Services is running (i.e. not held quiescent by a Load_Code interrupt. At this time only the 33rd through 41st longwords in this section are defined; the rest are reserved. 5. Software Flags Section ---------------------- The 49th through the 64th longwords in this status block are used to report to TCC a number of software flags that are maintained by 68k_Services during its normal operation. These flags are in use and are being "up-dated" any time that 68k_Services is running in the MVME135-1 module. At this time only the 53rd through the 64th longwords in this section are defined; the 49th through the 52nd longword are reserved. Note: that on the MVME-135 a 32k byte range of its on board RAM is used to look like the Shared Dual-Port RAM on the Hydra-II. Thus TCC loads the Parameter Block at the bottom of this 32k byte range and the 68k_Services to TCC Status Block is near the top of this 32k byte range in exactly the same layout as on the Hydra-II cards. The address of the 68k_Services Status to TCC Status Block was picked to fit in with the addressing scheme used for the status blocks on the Hydra-II cards. The 32k byte block in the MVME-135 is in the address range: $0006 0000 through $0006 7FFF. Detailed Description of the various Sections in the 68k_Services to TCC Status Block ------------------------------------------------ Interrupt Processing Status Section ----------------------------------- The first 8 longwords in the 68k_Services Status to TCC Status Block are used to report to TCC the status of 68k_Services as in processes the Load_Code and the Load_Parameters interrupts. The information in these first 8 longwords is only "up-dated" during the processing of these two interrupts. At this time 68k_Services may write any of the following values into these first 8 longword. Note that 68k_Services reports to TCC only the FIRST problem that it finds during the processing of either of these interrupts. If 68k_Services finds a fatal problem then it goes into a dead loop which it will come out of only in response to a new Load_Code interrupt or a Load_Parameters interrupt. Value in the First Longword of the 68k_Services to TCC Status Block Meaning -------------- ------------------------------------------------------------ $6800 0000 68k_Services has received the "Load_Code_Interrupt", and it is happily parked in a do nothing loop waiting for the "Load Parameters Interrupt. All additional longwords in this section of this status block are undefined. $0000 0000 68k_Services has received the "Load Parameters Interrupt" and it has successfully completed all of the steps in its Load_Parameters routine. i.e. 68k_Services is ready to begin event processing. The 2nd through the 8th longwords in this section of this Status Block are undefined. $0000 0001 68k_Services has received the "Load Parameters Interrupt" but there is a fatal problem and 68k_Services is not able to begin event processing. 68k_Services found a problem with either the Parameter Block Memory Map Version Number, the Parameter Block Memory Map Revision Number, or else with the Crate ID in the Parameter Block . For this value in the first longword of the Status Block, then the second and third longword are defined as follows: The value in the SECOND longword of the 68k_Services to TCC Status Block is the EXPECTED value of the Universal Parameter Block Header Longword (i.e. the first longword of the Parameter Block). The value in the THIRD longword of the 68k_Services to TCC Status Block is the RECEIVED value of the Universal Parameter Block Header Longword. The 4th through the 8th longwords in this section of this Status Block are undefined. Note that the Universal Parameter Block Header Longword contains the Parameter Block Memory Map Version and Revision Numbers and the Crate ID. $0000 0002 68k_Services has received the "Load Parameters Interrupt" but there is a fatal problem and 68k_Services is not able to begin event processing. 68k_Services found a problem with the MFP ratio for one of the L15CT Terms that is defined as being used in this "load" of the L15CT. Legal values of the MFP Ratio are between $00000000 and $00FFFFFF. For this value in the first longword of the Status Block, then the second and third longwords are defined as follows: The value in the SECOND longword of the 68k_Services to TCC Status Block is the Term Number whose MFP Ratio was found to be out of range. The value in the THIRD longword of the 68k_Services to TCC Status Block is the RECEIVED value of the MFP Ratio for the Term indicated in the second longword. The 4th through the 8th longwords in this section of this Status Block are undefined. $0000 0003 68k_Services has received the "Load Parameters Interrupt" but there is a fatal problem and 68k_Services is not able to begin event processing. 68k_Services found at least one DSP that was not reporting in its "DSP Status to 68k Location" that it was at Step D0. For this value in the first longword of the 68k_Services to TCC Status Block, then the 2nd through the 8th longwords are undefined. However the 9th through the 20th longwords indicate the values in the 12 "DSP Status to 68k Locations" as read by 68k_Services. The layout of the 9th through the 20th longwords in the 68k_Services to TCC Status Block is indicated below. Status of DSP's as Seen by 68k_Services Section ----------------------------------------------- As indicated above, the section layout of the 68k_Services to TCC Status Block uses the 9th through the 20th longwords to report to TCC the the status of the 12 DSP's as seen by 68k_Services. This information is "up-dated" during the processing of the Load_Parameters interrupt and any time that 68k_Services performs an error recovery procedure. 68k_Services captures this DSP status information immediately prior to performing the error recovery procedure. Longword in 68k_Services to TCC Status Block Contents ------------ --------------------------------------------------- 9th Status DSP A2 reported to 68k_Services ! DSP's appear 10th Status DSP A3 reported to 68k_Services ! in their normal 11th Status DSP A4 reported to 68k_Services ! ETA order. 12th Status DSP A1 reported to 68k_Services 13th Status DSP B3 reported to 68k_Services 14th Status DSP B4 reported to 68k_Services 15th Status DSP B1 reported to 68k_Services 16th Status DSP C3 reported to 68k_Services 17th Status DSP C4 reported to 68k_Services 18th Status DSP C1 reported to 68k_Services 19th Status DSP C2 reported to 68k_Services 20th Status DSP B2 reported to 68k_Services Error Recovery Cause and Counters Section ----------------------------------------- This section of the 68k_Services to TCC Status Block contains information about how often and why 68k_Services has had to perform an error recovery procedure. This information is "up-dated" any time that 68k_Services performs an error recovery procedure. These counters are set to zero during processing of the Load_Parameters interrupt. Longword in 68k_Services to TCC Status Block Contents ------------ --------------------------------------------------- 21st This longword holds the value $000000D0, $000000D3, or $00000D15 to indicate which condition caused 68k_Services to take the most recent error recovery action. If this 24th longword contains all F's then no error recovery action has been taken by 68k_Services since it last received a Load_Parameters interrupt. 22nd Count of the number of times that 68k_Services has recovered the DSP's from a condition where one of the DSP's never reported that it reached Step D0 after 68k_Services had invalidated the previously valid Wakeup Word at the conclusion of processing an event. This counter is set to zero by a Load_Parameters interrupt. 23rd Count of the number of times that 68k_Services has recovered the DSP's from a condition where the Global DSP never reported that it reached Step D3 during the processing of an event. This counter is set to zero by a Load_Parameters interrupt. 24th Count of the number of times that 68k_Services has recovered the DSP's from a condition where one of the DSP's never reported that it reached Step D15 at the conclusion of processing an event. This counter is set to zero by a Load_Parameters interrupt. 25th Count of the number of times that 68k_Services has found a byte alignment problem in the headers of the Object Lists. On each MFP event 68k_Services checks that the "DSP ID" bytes in the Object List headers are correct. If there is an error then this counter is increment. No real error recovery action is taken (although a "!" is printed on the terminal screen). This counter is zeroed by the Load_Parameters interrupt. As indicated above the 26th through the 32nd longwords of this Status Block are reserved for expansion and at this time they contain undefined values. Normal Operation Counters Section --------------------------------- The 33rd through the 48th longwords in this status block are used for a number of counters that indicate what type and at what rate 68k_Services is carrying out it various operations during normal running. These counter are cleared to zero during the processing of the Load_Parameters interrupt. These counters are then "up-dated" any time that 68k_Services is running (i.e. not held quiescent by a Load_Code interrupt. Longword in 68k_Services to TCC Status Block Contents ------------ --------------------------------------------------- 33rd Counter for the number of loops of Orbit Master 34th Counter for the number of "That's Me" transfered to L2 "N". 35th Counter for the number of "That's Me" not transferd to L2 "n". 36th Counter for the number of "IBS" transfered to L2 "I". 37th Counter for the number of "IBS" not transfered to L2 "i". 38th Counter for the number of "MFP" transfered to L2 "F". 39th Counter for the number of "MFP" not transferd to L2 "f". 40th Counter for the number of "error" transfered to L2 "E". 41st Counter for the number of "error" not transferd to L2 "e". As indicated above the 42nd through the 48th longwords in this section of this Status Block are reserved for expansion and at this time they contain undefined values. Software Flags Section ---------------------- The 49th through the 64th longwords in this status block contain a number of software flags that are maintained by 68k_Services during its normal operation. These flags are in use and are being "up-dated" any time that 68k_Services is running in the MVME135-1 module. At this time the 49th through the 52nd longword are reserved for expansion and they contain undefined values. Only the 53rd through the 64th longwords in this section are defined. Longword in 68k_Services to TCC Status Block Contents ------------ --------------------------------------------------- 53rd All_DSPs_at_Step_D0 software flag 54th MFP_Event software flag 54th If_Transfer_Want_MFP_Transfer software flag 54th This_Transfer_is_MFP software flag 54th Previous_Transfer_Was_MFP software flag 54th Fresh_Load_Buf_Availb software flag 54th All_Data_In_Load_Buf software flag 60th Which_214_Is_Load_Buf software flag 61st State_of_RC_FE_Busy software flag 62nd Told_GDSP_to_Transfer software flag 63rd SRDY_Has_Been_Sent software flag 64th VBD_Is_Ready software flag A detailed description of these software flags is given in the 68K_Services description file in TrgL15CT: