1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GR 2 MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP 3 M68000 Hi-Performance Microprocessor Division 3 M68000 Hi-Performance Microprocessor Division 4 M68060 Software Package 4 M68060 Software Package 5 Production Release P1.00 -- October 10, 1994 5 Production Release P1.00 -- October 10, 1994 6 6 7 M68060 Software Package Copyright © 1993, 199 7 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. 8 8 9 THE SOFTWARE is provided on an "AS IS" basis a 9 THE SOFTWARE is provided on an "AS IS" basis and without warranty. 10 To the maximum extent permitted by applicable 10 To the maximum extent permitted by applicable law, 11 MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPR 11 MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, 12 INCLUDING IMPLIED WARRANTIES OF MERCHANTABILIT 12 INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 13 and any warranty against infringement with reg 13 and any warranty against infringement with regard to the SOFTWARE 14 (INCLUDING ANY MODIFIED VERSIONS THEREOF) and 14 (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. 15 15 16 To the maximum extent permitted by applicable 16 To the maximum extent permitted by applicable law, 17 IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY D 17 IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER 18 (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOS 18 (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 19 BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORM 19 BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) 20 ARISING OF THE USE OR INABILITY TO USE THE SOF 20 ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. 21 Motorola assumes no responsibility for the mai 21 Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. 22 22 23 You are hereby granted a copyright license to 23 You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE 24 so long as this entire notice is retained with 24 so long as this entire notice is retained without alteration in any modified and/or 25 redistributed versions, and that such modified 25 redistributed versions, and that such modified versions are clearly identified as such. 26 No licenses are granted by implication, estopp 26 No licenses are granted by implication, estoppel or otherwise under any patents 27 or trademarks of Motorola, Inc. 27 or trademarks of Motorola, Inc. 28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 68060 SOFTWARE PACKAGE (Kernel version) SIMPLE 29 68060 SOFTWARE PACKAGE (Kernel version) SIMPLE TESTS 30 ---------------------------------------------- 30 ----------------------------------------------------- 31 31 32 The files itest.sa and ftest.sa contain simple 32 The files itest.sa and ftest.sa contain simple tests to check 33 the state of the 68060ISP and 68060FPSP once t 33 the state of the 68060ISP and 68060FPSP once they have been installed. 34 34 35 Release file format: 35 Release file format: 36 -------------------- 36 -------------------- 37 The release files itest.sa and ftest.sa are es 37 The release files itest.sa and ftest.sa are essentially 38 hexadecimal images of the actual tests. This f 38 hexadecimal images of the actual tests. This format is the 39 ONLY format that will be supported. The hex im 39 ONLY format that will be supported. The hex images were created 40 by assembling the source code and then convert 40 by assembling the source code and then converting the resulting 41 binary output images into ASCII text files. Th 41 binary output images into ASCII text files. The hexadecimal 42 numbers are listed using the Motorola Assembly 42 numbers are listed using the Motorola Assembly syntax assembler 43 directive "dc.l" (define constant longword). T 43 directive "dc.l" (define constant longword). The files can be 44 converted to other assembly syntaxes by using 44 converted to other assembly syntaxes by using any word processor 45 with a global search and replace function. 45 with a global search and replace function. 46 46 47 To assist in assembling and linking these modu 47 To assist in assembling and linking these modules with other modules, 48 the installer should add symbolic labels to th 48 the installer should add symbolic labels to the top of the files. 49 This will allow the calling routines to access 49 This will allow the calling routines to access the entry points 50 of these packages. 50 of these packages. 51 51 52 The source code itest.s and ftest.s have been 52 The source code itest.s and ftest.s have been included but only 53 for documentation purposes. 53 for documentation purposes. 54 54 55 Release file structure: 55 Release file structure: 56 ----------------------- 56 ----------------------- 57 57 58 (top of module) 58 (top of module) 59 ----------------- 59 ----------------- 60 | | - 128 byte-sized sec 60 | | - 128 byte-sized section 61 (1) | Call-Out | - 4 bytes per entry 61 (1) | Call-Out | - 4 bytes per entry (user fills these in) 62 | | 62 | | 63 ----------------- 63 ----------------- 64 | | - 8 bytes per entry 64 | | - 8 bytes per entry 65 (2) | Entry Point | - user does "bsr" or 65 (2) | Entry Point | - user does "bsr" or "jsr" to this address 66 | | 66 | | 67 ----------------- 67 ----------------- 68 | | - code section 68 | | - code section 69 (3) ~ ~ 69 (3) ~ ~ 70 | | 70 | | 71 ----------------- 71 ----------------- 72 (bottom of module) 72 (bottom of module) 73 73 74 The first section of this module is the "Call- 74 The first section of this module is the "Call-out" section. This section 75 is NOT INCLUDED in {i,f}test.sa (an example "C 75 is NOT INCLUDED in {i,f}test.sa (an example "Call-out" section is provided at 76 the end of this file). The purpose of this sec 76 the end of this file). The purpose of this section is to allow the test 77 routines to reference external printing functi 77 routines to reference external printing functions that must be provided 78 by the host operating system. This section MUS 78 by the host operating system. This section MUST be exactly 128 bytes in 79 size. There are 32 fields, each 4 bytes in siz 79 size. There are 32 fields, each 4 bytes in size. Each field corresponds 80 to a function required by the test packages (t 80 to a function required by the test packages (these functions and their 81 location are listed in "68060{ISP,FPSP}-TEST c 81 location are listed in "68060{ISP,FPSP}-TEST call-outs" below). Each field 82 entry should contain the address of the corres 82 entry should contain the address of the corresponding function RELATIVE to 83 the starting address of the "call-out" section 83 the starting address of the "call-out" section. The "Call-out" section must 84 sit adjacent to the {i,f}test.sa image in memo 84 sit adjacent to the {i,f}test.sa image in memory. Since itest.sa and ftest.sa 85 are individual tests, they each require their 85 are individual tests, they each require their own "Call-out" sections. 86 86 87 The second section, the "Entry-point" section, 87 The second section, the "Entry-point" section, is used by external routines 88 to access the test routines. Since the {i,f}te 88 to access the test routines. Since the {i,f}test.sa hex files contain 89 no symbol names, this section contains functio 89 no symbol names, this section contains function entry points that are fixed 90 with respect to the top of the package. The cu 90 with respect to the top of the package. The currently defined entry-points 91 are listed in section "68060{ISP,FPSP}-TEST en 91 are listed in section "68060{ISP,FPSP}-TEST entry points" below. A calling 92 routine would simply execute a "bsr" or "jsr" 92 routine would simply execute a "bsr" or "jsr" that jumped to the selected 93 function entry-point. 93 function entry-point. 94 94 95 For example, to run the 060ISP test, write a p 95 For example, to run the 060ISP test, write a program that includes the 96 itest.sa data and execute something similar to 96 itest.sa data and execute something similar to: 97 97 98 bsr _060ISP_TEST+128+0 98 bsr _060ISP_TEST+128+0 99 99 100 (_060ISP_TEST is the starting address of the " 100 (_060ISP_TEST is the starting address of the "Call-out" section; the "Call-out" 101 section is 128 bytes long; and the 68060ISP te 101 section is 128 bytes long; and the 68060ISP test entry point is located 102 0 bytes from the top of the "Entry-point" sect 102 0 bytes from the top of the "Entry-point" section.) 103 103 104 The third section is the code section. After e 104 The third section is the code section. After entering through an "Entry-point", 105 the entry code jumps to the appropriate test c 105 the entry code jumps to the appropriate test code within the code section. 106 106 107 68060ISP-TEST Call-outs: 107 68060ISP-TEST Call-outs: 108 ------------------------ 108 ------------------------ 109 0x0: _print_string() 109 0x0: _print_string() 110 0x4: _print_number() 110 0x4: _print_number() 111 111 112 68060FPSP-TEST Call-outs: 112 68060FPSP-TEST Call-outs: 113 ------------------------- 113 ------------------------- 114 0x0: _print_string() 114 0x0: _print_string() 115 0x4: _print_number() 115 0x4: _print_number() 116 116 117 The test packages call _print_string() and _pr 117 The test packages call _print_string() and _print_number() 118 as subroutines and expect the main program to 118 as subroutines and expect the main program to print a string 119 or a number to a file or to the screen. 119 or a number to a file or to the screen. 120 In "C"-like fashion, the test program calls: 120 In "C"-like fashion, the test program calls: 121 121 122 print_string("Test passed"); 122 print_string("Test passed"); 123 123 124 or 124 or 125 125 126 print_number(20); 126 print_number(20); 127 127 128 For _print_string(), the test programs pass a 128 For _print_string(), the test programs pass a longword address 129 of the string on the stack. For _print_number( 129 of the string on the stack. For _print_number(), the test programs pass 130 a longword number to be printed. 130 a longword number to be printed. 131 131 132 For debugging purposes, after the main program 132 For debugging purposes, after the main program performs a "print" 133 for a test package, it should flush the output 133 for a test package, it should flush the output so that it's not 134 buffered. In this way, if the test program cra 134 buffered. In this way, if the test program crashes, at least the previous 135 statements printed will be seen. 135 statements printed will be seen. 136 136 137 68060ISP-TEST Entry-points: 137 68060ISP-TEST Entry-points: 138 --------------------------- 138 --------------------------- 139 0x0: integer test 139 0x0: integer test 140 140 141 68060FPSP-TEST Entry-points: 141 68060FPSP-TEST Entry-points: 142 ---------------------------- 142 ---------------------------- 143 0x00: main fp test 143 0x00: main fp test 144 0x08: FP unimplemented test 144 0x08: FP unimplemented test 145 0x10: FP enabled snan/operr/ovfl/unfl/dz/inex 145 0x10: FP enabled snan/operr/ovfl/unfl/dz/inex 146 146 147 The floating-point unit test has 3 entry point 147 The floating-point unit test has 3 entry points which will require 148 3 different calls to the package if each of th 148 3 different calls to the package if each of the three following tests 149 is desired: 149 is desired: 150 150 151 main fp test: tests (1) unimp effective addres 151 main fp test: tests (1) unimp effective address exception 152 (2) unsupported data type 152 (2) unsupported data type exceptions 153 (3) non-maskable overflow/ 153 (3) non-maskable overflow/underflow exceptions 154 154 155 FP unimplemented: tests FP unimplemented excep 155 FP unimplemented: tests FP unimplemented exception. this one is 156 separate from the previous t 156 separate from the previous tests for systems that don't 157 want FP unimplemented instru 157 want FP unimplemented instructions. 158 158 159 FP enabled: tests enabled snan/operr/ovfl/unfl 159 FP enabled: tests enabled snan/operr/ovfl/unfl/dz/inex. 160 basically, it enables each of thes 160 basically, it enables each of these exceptions and forces 161 each using an implemented FP instr 161 each using an implemented FP instruction. this process 162 exercises _fpsp_{snan,operr,ovfl,u 162 exercises _fpsp_{snan,operr,ovfl,unfl,dz,inex}() and 163 _real_{snan,operr,ovfl,unfl,dz,ine 163 _real_{snan,operr,ovfl,unfl,dz,inex}(). the test expects 164 _real_XXXX() to do nothing except 164 _real_XXXX() to do nothing except clear the exception 165 and "rte". if a system's _real_XXX 165 and "rte". if a system's _real_XXXX() handler creates an 166 alternate result, the test will pr 166 alternate result, the test will print "failed" but this 167 is acceptable. 167 is acceptable. 168 168 169 Miscellaneous: 169 Miscellaneous: 170 -------------- 170 -------------- 171 Again, itest.sa and ftest.sa are simple tests 171 Again, itest.sa and ftest.sa are simple tests and do not thoroughly 172 test all 68060SP connections. For example, the 172 test all 68060SP connections. For example, they do not test connections 173 to _real_access(), _real_trace(), _real_trap() 173 to _real_access(), _real_trace(), _real_trap(), etc. because these 174 will be system-implemented several different w 174 will be system-implemented several different ways and the test packages 175 must remain system independent. 175 must remain system independent. 176 176 177 Example test package set-up: 177 Example test package set-up: 178 ---------------------------- 178 ---------------------------- 179 _print_str: 179 _print_str: 180 . # provided by 180 . # provided by system 181 rts 181 rts 182 182 183 _print_num: 183 _print_num: 184 . # provided by 184 . # provided by system 185 rts 185 rts 186 186 187 . 187 . 188 . 188 . 189 bsr _060FPSP_TEST+128+0 189 bsr _060FPSP_TEST+128+0 190 . 190 . 191 . 191 . 192 rts 192 rts 193 193 194 # beginning of "Call-out" section; provided by 194 # beginning of "Call-out" section; provided by integrator. 195 # MUST be 128 bytes long. 195 # MUST be 128 bytes long. 196 _060FPSP_TEST: 196 _060FPSP_TEST: 197 long _print_str - _060FPSP_TEST 197 long _print_str - _060FPSP_TEST 198 long _print_num - _060FPSP_TEST 198 long _print_num - _060FPSP_TEST 199 space 120 199 space 120 200 200 201 # ftest.sa starts here; start of "Entry-point" 201 # ftest.sa starts here; start of "Entry-point" section. 202 long 0x60ff0000, 0x00002346 202 long 0x60ff0000, 0x00002346 203 long 0x60ff0000, 0x00018766 203 long 0x60ff0000, 0x00018766 204 long 0x60ff0000, 0x00023338 204 long 0x60ff0000, 0x00023338 205 long 0x24377299, 0xab2643ea 205 long 0x24377299, 0xab2643ea 206 . 206 . 207 . 207 . 208 . 208 .
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.