Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / diag / assembly / peu / PCIeCFG0Rw.s
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: PCIeCFG0Rw.s
5* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
6* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
7*
8* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9*
10* This program is free software; you can redistribute it and/or modify
11* it under the terms of the GNU General Public License as published by
12* the Free Software Foundation; version 2 of the License.
13*
14* This program is distributed in the hope that it will be useful,
15* but WITHOUT ANY WARRANTY; without even the implied warranty of
16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17* GNU General Public License for more details.
18*
19* You should have received a copy of the GNU General Public License
20* along with this program; if not, write to the Free Software
21* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*
23* For the avoidance of doubt, and except that if any non-GPL license
24* choice is available it will apply instead, Sun elects to use only
25* the General Public License version 2 (GPLv2) at this time for any
26* software where a choice of GPL license versions is made
27* available with the language indicating that GPLv2 or any later version
28* may be used, or where a choice of which version of the GPL is applied is
29* otherwise unspecified.
30*
31* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
32* CA 95054 USA or visit www.sun.com if you need additional information or
33* have any questions.
34*
35*
36* ========== Copyright Header End ============================================
37*/
38#define ENABLE_PCIE_LINK_TRAINING
39#define MAIN_PAGE_HV_ALSO
40
41#include "hboot.s"
42#include "peu_defines.h"
43
44! with the Denali endpoint, it seems that bits 8-11 must be in [1..F]
45#define CFG0_RD_ADDR mpeval(N2_PCIE_BASE_ADDR + 0x100)
46
47/************************************************************************
48 Test case code start
49 ************************************************************************/
50.text
51.global main
52main:
53 ta T_CHANGE_HPRIV
54 nop
55
56 ! select a CFG0 address in PCI address range and transmit the command to NCU
57 setx CFG0_RD_ADDR, %g1, %g2
58
59 set 0x11, %o0
60 set 0x1122, %o1
61 set 0x2233, %o2
62 set 0x3344, %o3
63 set 0x4455, %o4
64 set 0x5566, %o5
65 set 0x778899aa, %o6
66 set 0xbbccddee, %o7
67
68 ! store byte - all byte offsets within an octlet
69 stb %o0, [%g2 + 1*8 + 0]
70 stb %o1, [%g2 + 2*8 + 1]
71 stb %o2, [%g2 + 3*8 + 2]
72 stb %o3, [%g2 + 4*8 + 3]
73 stb %o4, [%g2 + 5*8 + 4]
74 stb %o5, [%g2 + 6*8 + 5]
75 stb %o6, [%g2 + 7*8 + 6]
76 stb %o7, [%g2 + 8*8 + 7]
77
78 ! store half-word - all half-word offsets within an octlet
79 sth %o0, [%g2 + 8*9 + 0]
80 sth %o1, [%g2 + 8*10 + 2]
81 sth %o2, [%g2 + 8*11 + 4]
82 sth %o3, [%g2 + 8*12 + 8]
83
84 ! store word - all word offsets within an octlet
85 stw %o4, [%g2 + 8*13 + 0]
86 stw %o5, [%g2 + 8*14 + 4]
87
88 !!! use the loads to verify the stores
89
90 ! load byte - all byte offsets within an octlet
91 ldub [%g2 + 13*8 + 0], %l0
92 ldub [%g2 + 13*8 + 1], %l1
93 ldub [%g2 + 13*8 + 2], %l2
94 ldub [%g2 + 13*8 + 3], %l3
95 ldub [%g2 + 14*8 + 4], %l4
96 ldub [%g2 + 14*8 + 5], %l5
97 ldub [%g2 + 14*8 + 6], %l6
98 ldub [%g2 + 14*8 + 7], %l7
99
100 ! load half-word - all half-word offsets within an octlet
101 lduh [%g2 + 1*8 + 0], %o0
102 lduh [%g2 + 2*8 + 0], %o1
103 lduh [%g2 + 3*8 + 2], %o2
104 lduh [%g2 + 4*8 + 2], %o3
105 lduh [%g2 + 5*8 + 4], %o4
106 lduh [%g2 + 7*8 + 6], %o5
107
108 ! Load word - all word offsets within an octlet
109 lduw [%g2 + 13*8 + 0], %o4
110 lduw [%g2 + 6*8 + 4], %o4
111 lduw [%g2 + 8*8 + 4], %o5
112
113test_passed:
114 EXIT_GOOD
115
116test_failed:
117 EXIT_BAD
118
119/************************************************************************
120 Test case data start
121************************************************************************/
122
123SECTION .DATA DATA_VA=CFG0_RD_ADDR
124attr_data {
125 Name = .DATA,
126 hypervisor,
127 compressimage
128}
129
130.data
131 .xword 0xdeadbeefdeadbeef
132
133 .xword 0x0101010101010101
134 .xword 0x0101010101010101
135 .xword 0x0101010101010101
136 .xword 0x0101010101010101
137
138 .xword 0x0202020202020202
139 .xword 0x0202020202020202
140 .xword 0x0202020202020202
141 .xword 0x0202020202020202
142
143 .xword 0x0303030303030303
144 .xword 0x0303030303030303
145 .xword 0x0303030303030303
146 .xword 0x0303030303030303
147
148 .xword 0x0404040404040404
149 .xword 0x0404040404040404
150 .xword 0x0404040404040404
151 .xword 0x0404040404040404
152
153 .xword 0xdeadbeefdeadbeef
154
155/************************************************************************/