1 |
2 |
alfik |
/*
|
2 |
|
|
* Copyright (c) 2014, Aleksander Osman
|
3 |
|
|
* All rights reserved.
|
4 |
|
|
*
|
5 |
|
|
* Redistribution and use in source and binary forms, with or without
|
6 |
|
|
* modification, are permitted provided that the following conditions are met:
|
7 |
|
|
*
|
8 |
|
|
* * Redistributions of source code must retain the above copyright notice, this
|
9 |
|
|
* list of conditions and the following disclaimer.
|
10 |
|
|
*
|
11 |
|
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
12 |
|
|
* this list of conditions and the following disclaimer in the documentation
|
13 |
|
|
* and/or other materials provided with the distribution.
|
14 |
|
|
*
|
15 |
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
16 |
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
17 |
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
18 |
|
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
19 |
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
20 |
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
21 |
|
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22 |
|
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
23 |
|
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
24 |
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25 |
|
|
*/
|
26 |
|
|
|
27 |
|
|
`define STARTUP_EAX 32'd0
|
28 |
|
|
`define STARTUP_EBX 32'd0
|
29 |
|
|
`define STARTUP_ECX 32'd0
|
30 |
|
|
`define STARTUP_EDX `CPUID_MODEL_FAMILY_STEPPING
|
31 |
|
|
`define STARTUP_EBP 32'd0
|
32 |
|
|
`define STARTUP_ESP 32'd0
|
33 |
|
|
`define STARTUP_ESI 32'd0
|
34 |
|
|
`define STARTUP_EDI 32'd0
|
35 |
|
|
|
36 |
|
|
`define STARTUP_CR0_PE `FALSE
|
37 |
|
|
`define STARTUP_CR0_MP `FALSE
|
38 |
|
|
`define STARTUP_CR0_EM `FALSE
|
39 |
|
|
`define STARTUP_CR0_TS `FALSE
|
40 |
|
|
`define STARTUP_CR0_NE `FALSE
|
41 |
|
|
`define STARTUP_CR0_WP `FALSE
|
42 |
|
|
`define STARTUP_CR0_AM `FALSE
|
43 |
|
|
`define STARTUP_CR0_NW `TRUE
|
44 |
|
|
`define STARTUP_CR0_CD `TRUE
|
45 |
|
|
`define STARTUP_CR0_PG `FALSE
|
46 |
|
|
|
47 |
|
|
`define STARTUP_CR3 32'd0
|
48 |
|
|
`define STARTUP_CR2 32'd0
|
49 |
|
|
|
50 |
|
|
`define STARTUP_CFLAG 1'b0
|
51 |
|
|
`define STARTUP_PFLAG 1'b0
|
52 |
|
|
`define STARTUP_AFLAG 1'b0
|
53 |
|
|
`define STARTUP_ZFLAG 1'b0
|
54 |
|
|
`define STARTUP_SFLAG 1'b0
|
55 |
|
|
`define STARTUP_OFLAG 1'b0
|
56 |
|
|
`define STARTUP_TFLAG 1'b0
|
57 |
|
|
`define STARTUP_IFLAG 1'b0
|
58 |
|
|
`define STARTUP_DFLAG 1'b0
|
59 |
|
|
`define STARTUP_IOPL 2'b0
|
60 |
|
|
`define STARTUP_NTFLAG 1'b0
|
61 |
|
|
`define STARTUP_VMFLAG 1'b0
|
62 |
|
|
`define STARTUP_ACFLAG 1'b0
|
63 |
|
|
`define STARTUP_IDFLAG 1'b0
|
64 |
|
|
`define STARTUP_RFLAG 1'b0
|
65 |
|
|
|
66 |
|
|
`define STARTUP_GDTR_BASE 32'd0
|
67 |
|
|
`define STARTUP_GDTR_LIMIT 16'hFFFF
|
68 |
|
|
`define STARTUP_IDTR_BASE 32'd0
|
69 |
|
|
`define STARTUP_IDTR_LIMIT 16'hFFFF
|
70 |
|
|
|
71 |
|
|
`define STARTUP_DR0 32'd0
|
72 |
|
|
`define STARTUP_DR1 32'd0
|
73 |
|
|
`define STARTUP_DR2 32'd0
|
74 |
|
|
`define STARTUP_DR3 32'd0
|
75 |
|
|
|
76 |
|
|
`define STARTUP_DR6_BREAKPOINTS 4'd0
|
77 |
|
|
`define STARTUP_DR6_B12 `TRUE
|
78 |
|
|
`define STARTUP_DR6_BD `FALSE
|
79 |
|
|
`define STARTUP_DR6_BS `FALSE
|
80 |
|
|
`define STARTUP_DR6_BT `FALSE
|
81 |
|
|
`define STARTUP_DR7 32'h00000400
|
82 |
|
|
|
83 |
|
|
`define STARTUP_ES 16'b0
|
84 |
|
|
`define STARTUP_DS 16'b0
|
85 |
|
|
`define STARTUP_SS 16'b0
|
86 |
|
|
`define STARTUP_FS 16'b0
|
87 |
|
|
`define STARTUP_GS 16'b0
|
88 |
|
|
`define STARTUP_CS 16'hF000
|
89 |
|
|
`define STARTUP_LDTR 16'b0
|
90 |
|
|
`define STARTUP_TR 16'b0
|
91 |
|
|
|
92 |
|
|
`define STARTUP_ES_RPL 2'd0
|
93 |
|
|
`define STARTUP_DS_RPL 2'd0
|
94 |
|
|
`define STARTUP_SS_RPL 2'd0
|
95 |
|
|
`define STARTUP_FS_RPL 2'd0
|
96 |
|
|
`define STARTUP_GS_RPL 2'd0
|
97 |
|
|
`define STARTUP_CS_RPL 2'd0
|
98 |
|
|
`define STARTUP_LDTR_RPL 2'd0
|
99 |
|
|
`define STARTUP_TR_RPL 2'd0
|
100 |
|
|
|
101 |
|
|
`define STARTUP_ES_CACHE `DEFAULT_SEG_CACHE
|
102 |
|
|
`define STARTUP_DS_CACHE `DEFAULT_SEG_CACHE
|
103 |
|
|
`define STARTUP_SS_CACHE `DEFAULT_SEG_CACHE
|
104 |
|
|
`define STARTUP_FS_CACHE `DEFAULT_SEG_CACHE
|
105 |
|
|
`define STARTUP_GS_CACHE `DEFAULT_SEG_CACHE
|
106 |
|
|
`define STARTUP_CS_CACHE `DEFAULT_CS_CACHE
|
107 |
|
|
`define STARTUP_LDTR_CACHE `DEFAULT_LDTR_CACHE
|
108 |
|
|
`define STARTUP_TR_CACHE `DEFAULT_TR_CACHE
|
109 |
|
|
|
110 |
|
|
`define STARTUP_ES_VALID 1'b1
|
111 |
|
|
`define STARTUP_DS_VALID 1'b1
|
112 |
|
|
`define STARTUP_SS_VALID 1'b1
|
113 |
|
|
`define STARTUP_FS_VALID 1'b1
|
114 |
|
|
`define STARTUP_GS_VALID 1'b1
|
115 |
|
|
`define STARTUP_CS_VALID 1'b1
|
116 |
|
|
`define STARTUP_LDTR_VALID 1'b1
|
117 |
|
|
`define STARTUP_TR_VALID 1'b1
|
118 |
|
|
|
119 |
|
|
`define STARTUP_EIP 32'h0000FFF0
|
120 |
|
|
|
121 |
|
|
`define STARTUP_PREFETCH_LIMIT 32'd16
|
122 |
|
|
`define STARTUP_PREFETCH_LINEAR 32'hFFFFFFF0
|