Blame view

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