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