Merge lp:~lfaraone/ubuntu/maverick/memtest86+/4.10-1ubuntu1 into lp:ubuntu/maverick/memtest86+
- Maverick (10.10)
- 4.10-1ubuntu1
- Merge into maverick
Proposed by
Luke Faraone
Status: | Merged |
---|---|
Merge reported by: | Benjamin Drung |
Merged at revision: | not available |
Proposed branch: | lp:~lfaraone/ubuntu/maverick/memtest86+/4.10-1ubuntu1 |
Merge into: | lp:ubuntu/maverick/memtest86+ |
Diff against target: |
1868 lines (+1227/-88) 34 files modified
Makefile (+6/-1) README (+1/-1) changelog (+9/-17) controller.c (+269/-3) debian/README.Debian (+12/-6) debian/changelog (+59/-0) debian/config (+9/-0) debian/control (+6/-5) debian/copyright (+3/-2) debian/grub (+34/-12) debian/lintian-overrides (+3/-0) debian/po/POTFILES.in (+1/-0) debian/po/de.po (+37/-0) debian/po/es.po (+58/-0) debian/po/fr.po (+38/-0) debian/po/ja.po (+35/-0) debian/po/pt.po (+37/-0) debian/po/ru.po (+37/-0) debian/po/sv.po (+37/-0) debian/po/templates.pot (+32/-0) debian/postinst (+9/-12) debian/rules (+9/-1) debian/templates (+7/-0) head.S (+74/-1) init.c (+56/-11) lib.c (+3/-3) main.c (+11/-4) makeiso.sh (+3/-3) memsize.c (+1/-1) memtest.lds (+1/-1) mt86+_loader.asm (+2/-2) multiboot.c (+49/-0) multiboot.h (+259/-0) test.h (+20/-2) |
To merge this branch: | bzr merge lp:~lfaraone/ubuntu/maverick/memtest86+/4.10-1ubuntu1 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Sponsors | Pending | ||
Review via email: mp+28594@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'Makefile' | |||
2 | --- Makefile 2009-11-09 17:09:57 +0000 | |||
3 | +++ Makefile 2010-06-27 17:51:29 +0000 | |||
4 | @@ -13,9 +13,14 @@ | |||
5 | 13 | 13 | ||
6 | 14 | CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector | 14 | CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector |
7 | 15 | 15 | ||
8 | 16 | # This reverts a change introduced with recent binutils (post | ||
9 | 17 | # http://sourceware.org/bugzilla/show_bug.cgi?id=10569). Needed to | ||
10 | 18 | # ensure Multiboot header is within the limit offset. | ||
11 | 19 | LD += -z max-page-size=0x1000 | ||
12 | 20 | |||
13 | 16 | OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \ | 21 | OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \ |
14 | 17 | config.o linuxbios.o memsize.o pci.o controller.o random.o spd.o \ | 22 | config.o linuxbios.o memsize.o pci.o controller.o random.o spd.o \ |
16 | 18 | error.o dmi.o cpuid.o | 23 | error.o dmi.o cpuid.o multiboot.o |
17 | 19 | 24 | ||
18 | 20 | all: memtest.bin memtest | 25 | all: memtest.bin memtest |
19 | 21 | 26 | ||
20 | 22 | 27 | ||
21 | === modified file 'README' | |||
22 | --- README 2009-09-29 23:40:15 +0000 | |||
23 | +++ README 2010-06-27 17:51:29 +0000 | |||
24 | @@ -1,4 +1,4 @@ | |||
26 | 1 | Memtest86++ v4.00 | 1 | Memtest86++ v4.10 |
27 | 2 | ==================== | 2 | ==================== |
28 | 3 | 3 | ||
29 | 4 | Table of Contents | 4 | Table of Contents |
30 | 5 | 5 | ||
31 | === modified file 'changelog' | |||
32 | --- changelog 2009-11-09 17:09:57 +0000 | |||
33 | +++ changelog 2010-06-27 17:51:29 +0000 | |||
34 | @@ -1,19 +1,11 @@ | |||
36 | 1 | Memtest86+ V4.00 changelog | 1 | Memtest86+ V4.10 changelog |
37 | 2 | -------------------------- | 2 | -------------------------- |
38 | 3 | 3 | ||
55 | 4 | - Major Architectural changes | 4 | - Added support for Core i7 Extreme CPU (32nm) |
56 | 5 | - First pass twice faster (reduced iterations) | 5 | - Added support for Core i5/i3 (32 nm) |
57 | 6 | - Detect DDR2/3 brands and part numbers | 6 | - Added support for Pentium Gxxxx (32 mn) |
58 | 7 | - Corrected detection for Intel "Lynnfield" CPU | 7 | - Added support for Westmere-based Xeon |
59 | 8 | - Added detection for Intel "Clarkdale" CPU | 8 | - Added preliminary support for Intel Sandy Bridge |
60 | 9 | - Added detection for Intel "Gulftown" CPU | 9 | - Added support for AMD 6-cores CPU |
61 | 10 | - Corrected detection for AMD 45nm K10 CPU | 10 | - Added detection for Intel 3200/3210 |
62 | 11 | - Added detection for AMD "Magny-Cours" CPU | 11 | - Many bug fixes |
47 | 12 | - Solved crash with AMD Geode LX | ||
48 | 13 | - Added detection for Intel XMP Memory | ||
49 | 14 | - Added for CPU w/ 0.5/1.5/3/6/12/16/18/24MB L3 | ||
50 | 15 | - Added "clean" DMI detection for DDR3/FBDIMM2 | ||
51 | 16 | - Better detection of Integrated Memory Ctrl | ||
52 | 17 | - Complies with SMBIOS 2.6.1 specs | ||
53 | 18 | - Fixed compilation issues with gcc 4.2+ | ||
54 | 19 | - Many others bug fixes | ||
63 | 20 | 12 | ||
64 | === modified file 'controller.c' | |||
65 | --- controller.c 2009-11-09 17:09:57 +0000 | |||
66 | +++ controller.c 2010-06-27 17:51:29 +0000 | |||
67 | @@ -16,6 +16,7 @@ | |||
68 | 16 | #include "spd.h" | 16 | #include "spd.h" |
69 | 17 | #include "test.h" | 17 | #include "test.h" |
70 | 18 | 18 | ||
71 | 19 | |||
72 | 19 | int col, col2; | 20 | int col, col2; |
73 | 20 | int nhm_bus = 0x3F; | 21 | int nhm_bus = 0x3F; |
74 | 21 | 22 | ||
75 | @@ -160,6 +161,8 @@ | |||
76 | 160 | col2 += 1; | 161 | col2 += 1; |
77 | 161 | } | 162 | } |
78 | 162 | 163 | ||
79 | 164 | |||
80 | 165 | |||
81 | 163 | static void poll_fsb_nothing(void) | 166 | static void poll_fsb_nothing(void) |
82 | 164 | { | 167 | { |
83 | 165 | /* Code to run for no specific fsb detection */ | 168 | /* Code to run for no specific fsb detection */ |
84 | @@ -187,6 +190,23 @@ | |||
85 | 187 | return; | 190 | return; |
86 | 188 | } | 191 | } |
87 | 189 | 192 | ||
88 | 193 | static void setup_wmr(void) | ||
89 | 194 | { | ||
90 | 195 | |||
91 | 196 | // Activate MMR I/O | ||
92 | 197 | ulong dev0; | ||
93 | 198 | ctrl.cap = ECC_CORRECT; | ||
94 | 199 | |||
95 | 200 | pci_conf_read( 0, 0, 0, 0x48, 4, &dev0); | ||
96 | 201 | if (!(dev0 & 0x1)) { | ||
97 | 202 | pci_conf_write( 0, 0, 0, 0x48, 1, dev0 | 1); | ||
98 | 203 | } | ||
99 | 204 | |||
100 | 205 | ctrl.mode = ECC_NONE; | ||
101 | 206 | |||
102 | 207 | } | ||
103 | 208 | |||
104 | 209 | |||
105 | 190 | static void setup_nhm(void) | 210 | static void setup_nhm(void) |
106 | 191 | { | 211 | { |
107 | 192 | static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F}; | 212 | static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F}; |
108 | @@ -204,7 +224,7 @@ | |||
109 | 204 | pci_conf_read( possible_nhm_bus[i], 3, 4, 0x02, 2, &did); | 224 | pci_conf_read( possible_nhm_bus[i], 3, 4, 0x02, 2, &did); |
110 | 205 | vid &= 0xFFFF; | 225 | vid &= 0xFFFF; |
111 | 206 | did &= 0xFF00; | 226 | did &= 0xFF00; |
113 | 207 | if(vid == 0x8086 && did == 0x2C00) { | 227 | if(vid == 0x8086 && did >= 0x2C00) { |
114 | 208 | nhm_bus = possible_nhm_bus[i]; | 228 | nhm_bus = possible_nhm_bus[i]; |
115 | 209 | } | 229 | } |
116 | 210 | } | 230 | } |
117 | @@ -223,6 +243,41 @@ | |||
118 | 223 | 243 | ||
119 | 224 | } | 244 | } |
120 | 225 | 245 | ||
121 | 246 | static void setup_nhm32(void) | ||
122 | 247 | { | ||
123 | 248 | static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F}; | ||
124 | 249 | unsigned long did, vid, mc_control, mc_ssrcontrol; | ||
125 | 250 | int i; | ||
126 | 251 | |||
127 | 252 | //Nehalem supports Scrubbing */ | ||
128 | 253 | ctrl.cap = ECC_SCRUB; | ||
129 | 254 | ctrl.mode = ECC_NONE; | ||
130 | 255 | |||
131 | 256 | /* First, locate the PCI bus where the MCH is located */ | ||
132 | 257 | |||
133 | 258 | for(i = 0; i < sizeof(possible_nhm_bus); i++) { | ||
134 | 259 | pci_conf_read( possible_nhm_bus[i], 3, 4, 0x00, 2, &vid); | ||
135 | 260 | pci_conf_read( possible_nhm_bus[i], 3, 4, 0x02, 2, &did); | ||
136 | 261 | vid &= 0xFFFF; | ||
137 | 262 | did &= 0xFF00; | ||
138 | 263 | if(vid == 0x8086 && did >= 0x2C00) { | ||
139 | 264 | nhm_bus = possible_nhm_bus[i]; | ||
140 | 265 | } | ||
141 | 266 | } | ||
142 | 267 | |||
143 | 268 | /* Now, we have the last IMC bus number in nhm_bus */ | ||
144 | 269 | /* Check for ECC & Scrub */ | ||
145 | 270 | pci_conf_read(nhm_bus, 3, 0, 0x48, 2, &mc_control); | ||
146 | 271 | if((mc_control >> 1) & 1) { | ||
147 | 272 | ctrl.mode = ECC_CORRECT; | ||
148 | 273 | pci_conf_read(nhm_bus, 3, 2, 0x48, 2, &mc_ssrcontrol); | ||
149 | 274 | if(mc_ssrcontrol & 1) { | ||
150 | 275 | ctrl.mode = ECC_SCRUB; | ||
151 | 276 | } | ||
152 | 277 | } | ||
153 | 278 | |||
154 | 279 | } | ||
155 | 280 | |||
156 | 226 | static void setup_amd64(void) | 281 | static void setup_amd64(void) |
157 | 227 | { | 282 | { |
158 | 228 | 283 | ||
159 | @@ -1175,6 +1230,58 @@ | |||
160 | 1175 | return coef; | 1230 | return coef; |
161 | 1176 | } | 1231 | } |
162 | 1177 | 1232 | ||
163 | 1233 | |||
164 | 1234 | void getIntelPNS(void) | ||
165 | 1235 | { | ||
166 | 1236 | int i,j; | ||
167 | 1237 | long psn_eax, psn_ebx, psn_ecx, psn_edx; | ||
168 | 1238 | long char_hex; | ||
169 | 1239 | long ocpuid = 0x80000002; | ||
170 | 1240 | |||
171 | 1241 | for(j = 0; j < 4; j++) | ||
172 | 1242 | { | ||
173 | 1243 | |||
174 | 1244 | asm __volatile__( | ||
175 | 1245 | "pushl %%ebx\n\t" \ | ||
176 | 1246 | "cpuid\n\t" \ | ||
177 | 1247 | "movl %%ebx, %1\n\t" \ | ||
178 | 1248 | "popl %%ebx\n\t" \ | ||
179 | 1249 | : "=a" (psn_eax), "=r" (psn_ebx), "=c" (psn_ecx), "=d" (psn_edx) | ||
180 | 1250 | : "a" (ocpuid) | ||
181 | 1251 | : "cc" | ||
182 | 1252 | ); | ||
183 | 1253 | |||
184 | 1254 | |||
185 | 1255 | for(i = 0; i < 4; i++) | ||
186 | 1256 | { | ||
187 | 1257 | char_hex = (psn_eax >> (i*8)) & 0xff; | ||
188 | 1258 | cprint(LINE_CPU+5, col + i, convert_hex_to_char(char_hex)); | ||
189 | 1259 | |||
190 | 1260 | char_hex = (psn_ebx >> (i*8)) & 0xff; | ||
191 | 1261 | cprint(LINE_CPU+5, col + i + 4, convert_hex_to_char(char_hex)); | ||
192 | 1262 | |||
193 | 1263 | if(psn_ecx != 0x20202020) | ||
194 | 1264 | { | ||
195 | 1265 | char_hex = (psn_ecx >> (i*8)) & 0xff; | ||
196 | 1266 | cprint(LINE_CPU+5, col + i + 8, convert_hex_to_char(char_hex)); | ||
197 | 1267 | |||
198 | 1268 | char_hex = (psn_edx >> (i*8)) & 0xff; | ||
199 | 1269 | cprint(LINE_CPU+5, col + i + 12, convert_hex_to_char(char_hex)); | ||
200 | 1270 | } | ||
201 | 1271 | else | ||
202 | 1272 | { | ||
203 | 1273 | char_hex = (psn_edx >> (i*8)) & 0xff; | ||
204 | 1274 | cprint(LINE_CPU+5, col + i + 8, convert_hex_to_char(char_hex)); | ||
205 | 1275 | } | ||
206 | 1276 | } | ||
207 | 1277 | (psn_ecx != 0x20202020)?(col += 16):(col +=12); | ||
208 | 1278 | if(psn_edx == 0x20202020) { col -= 4; } | ||
209 | 1279 | ocpuid++; | ||
210 | 1280 | } | ||
211 | 1281 | |||
212 | 1282 | col -= 16; | ||
213 | 1283 | } | ||
214 | 1284 | |||
215 | 1178 | static void poll_fsb_amd64(void) { | 1285 | static void poll_fsb_amd64(void) { |
216 | 1179 | 1286 | ||
217 | 1180 | unsigned int mcgsrl; | 1287 | unsigned int mcgsrl; |
218 | @@ -2092,6 +2199,98 @@ | |||
219 | 2092 | 2199 | ||
220 | 2093 | } | 2200 | } |
221 | 2094 | 2201 | ||
222 | 2202 | static void poll_fsb_nhm32(void) { | ||
223 | 2203 | |||
224 | 2204 | double dramclock, dramratio, fsb; | ||
225 | 2205 | unsigned long mc_dimm_clk_ratio, qpi_pll_status; | ||
226 | 2206 | float coef = getNHMmultiplier(); | ||
227 | 2207 | float qpi_speed; | ||
228 | 2208 | |||
229 | 2209 | fsb = ((extclock /1000) / coef); | ||
230 | 2210 | |||
231 | 2211 | /* Print FSB */ | ||
232 | 2212 | cprint(LINE_CPU+5, col +1, "/ BCLK : "); | ||
233 | 2213 | col += 10; | ||
234 | 2214 | dprint(LINE_CPU+5, col, fsb, 3,0); | ||
235 | 2215 | col += 3; | ||
236 | 2216 | cprint(LINE_CPU+5, col +1, "MHz"); | ||
237 | 2217 | col += 4; | ||
238 | 2218 | |||
239 | 2219 | /* Print QPI Speed (if ECC not supported) */ | ||
240 | 2220 | if(ctrl.mode == ECC_NONE && cpu_id.model == 12) { | ||
241 | 2221 | pci_conf_read(nhm_bus, 2, 1, 0x50, 2, &qpi_pll_status); | ||
242 | 2222 | qpi_speed = (qpi_pll_status & 0x7F) * ((extclock / 1000) / coef) * 2; | ||
243 | 2223 | cprint(LINE_CPU+5, col +1, "/ QPI : "); | ||
244 | 2224 | col += 9; | ||
245 | 2225 | dprint(LINE_CPU+5, col, qpi_speed/1000, 1,0); | ||
246 | 2226 | col += 1; | ||
247 | 2227 | cprint(LINE_CPU+5, col, "."); | ||
248 | 2228 | col += 1; | ||
249 | 2229 | qpi_speed = ((qpi_speed / 1000) - (int)(qpi_speed / 1000)) * 10; | ||
250 | 2230 | dprint(LINE_CPU+5, col, qpi_speed, 1,0); | ||
251 | 2231 | col += 1; | ||
252 | 2232 | cprint(LINE_CPU+5, col +1, "GT/s"); | ||
253 | 2233 | col += 5; | ||
254 | 2234 | } | ||
255 | 2235 | |||
256 | 2236 | /* Get the clock ratio */ | ||
257 | 2237 | |||
258 | 2238 | pci_conf_read(nhm_bus, 3, 4, 0x50, 2, &mc_dimm_clk_ratio); | ||
259 | 2239 | dramratio = (mc_dimm_clk_ratio & 0x1F); | ||
260 | 2240 | |||
261 | 2241 | // Compute RAM Frequency | ||
262 | 2242 | fsb = ((extclock / 1000) / coef); | ||
263 | 2243 | dramclock = fsb * dramratio / 2; | ||
264 | 2244 | |||
265 | 2245 | // Print DRAM Freq | ||
266 | 2246 | print_fsb_info(dramclock, "RAM : ", "DDR3-"); | ||
267 | 2247 | |||
268 | 2248 | } | ||
269 | 2249 | |||
270 | 2250 | static void poll_fsb_wmr(void) { | ||
271 | 2251 | |||
272 | 2252 | double dramclock, dramratio, fsb; | ||
273 | 2253 | unsigned long dev0, mchcfg; | ||
274 | 2254 | float coef = getNHMmultiplier(); | ||
275 | 2255 | long *ptr; | ||
276 | 2256 | |||
277 | 2257 | fsb = ((extclock / 1000) / coef); | ||
278 | 2258 | |||
279 | 2259 | if(ctrl.mode == ECC_NONE) | ||
280 | 2260 | { | ||
281 | 2261 | col = 0; | ||
282 | 2262 | cprint(LINE_CPU+5, col, "IMC : "); col += 6; | ||
283 | 2263 | getIntelPNS(); | ||
284 | 2264 | //cprint(LINE_CPU+5, col, "(ECC : Disabled)"); | ||
285 | 2265 | //col += 16; | ||
286 | 2266 | } | ||
287 | 2267 | |||
288 | 2268 | /* Print FSB */ | ||
289 | 2269 | cprint(LINE_CPU+5, col +1, "/ BCLK : "); | ||
290 | 2270 | col += 10; | ||
291 | 2271 | dprint(LINE_CPU+5, col, fsb, 3,0); | ||
292 | 2272 | col += 3; | ||
293 | 2273 | cprint(LINE_CPU+5, col +1, "MHz"); | ||
294 | 2274 | col += 4; | ||
295 | 2275 | |||
296 | 2276 | /* Find dramratio */ | ||
297 | 2277 | pci_conf_read( 0, 0, 0, 0x48, 4, &dev0); | ||
298 | 2278 | dev0 &= 0xFFFFC000; | ||
299 | 2279 | ptr=(long*)(dev0+0x2C20); | ||
300 | 2280 | mchcfg = *ptr & 0xFFFF; | ||
301 | 2281 | dramratio = 1; | ||
302 | 2282 | |||
303 | 2283 | /* Get the clock ratio */ | ||
304 | 2284 | dramratio = 0.25 * (float)(*ptr & 0x1F); | ||
305 | 2285 | |||
306 | 2286 | // Compute RAM Frequency | ||
307 | 2287 | dramclock = fsb * dramratio; | ||
308 | 2288 | |||
309 | 2289 | // Print DRAM Freq | ||
310 | 2290 | print_fsb_info(dramclock, "RAM : ", "DDR3-"); | ||
311 | 2291 | |||
312 | 2292 | } | ||
313 | 2293 | |||
314 | 2095 | /* ------------------ Here the code for Timings detection ------------------ */ | 2294 | /* ------------------ Here the code for Timings detection ------------------ */ |
315 | 2096 | /* ------------------------------------------------------------------------- */ | 2295 | /* ------------------------------------------------------------------------- */ |
316 | 2097 | 2296 | ||
317 | @@ -2484,6 +2683,71 @@ | |||
318 | 2484 | 2683 | ||
319 | 2485 | } | 2684 | } |
320 | 2486 | 2685 | ||
321 | 2686 | static void poll_timings_wmr(void) { | ||
322 | 2687 | |||
323 | 2688 | float cas; | ||
324 | 2689 | int rcd, rp, ras; | ||
325 | 2690 | ulong dev0, c0ckectrl, c1ckectrl, offset; | ||
326 | 2691 | ulong ODT_Control_Register, Precharge_Register, ACT_Register, Read_Register, MRC_Register; | ||
327 | 2692 | long *ptr; | ||
328 | 2693 | |||
329 | 2694 | //Now, read MMR Base Address | ||
330 | 2695 | pci_conf_read( 0, 0, 0, 0x48, 4, &dev0); | ||
331 | 2696 | dev0 &= 0xFFFFC000; | ||
332 | 2697 | |||
333 | 2698 | ptr = (long*)(dev0+0x260); | ||
334 | 2699 | c0ckectrl = *ptr & 0xFFFFFFFF; | ||
335 | 2700 | |||
336 | 2701 | ptr = (long*)(dev0+0x660); | ||
337 | 2702 | c1ckectrl = *ptr & 0xFFFFFFFF; | ||
338 | 2703 | |||
339 | 2704 | // If DIMM 0 not populated, check DIMM 1 | ||
340 | 2705 | ((c0ckectrl) >> 20 & 0xF)?(offset = 0):(offset = 0x400); | ||
341 | 2706 | |||
342 | 2707 | ptr = (long*)(dev0+offset+0x265); | ||
343 | 2708 | ODT_Control_Register = *ptr & 0xFFFFFFFF; | ||
344 | 2709 | |||
345 | 2710 | ptr = (long*)(dev0+offset+0x25D); | ||
346 | 2711 | Precharge_Register = *ptr & 0xFFFFFFFF; | ||
347 | 2712 | |||
348 | 2713 | ptr = (long*)(dev0+offset+0x252); | ||
349 | 2714 | ACT_Register = *ptr & 0xFFFFFFFF; | ||
350 | 2715 | |||
351 | 2716 | ptr = (long*)(dev0+offset+0x258); | ||
352 | 2717 | Read_Register = *ptr & 0xFFFFFFFF; | ||
353 | 2718 | |||
354 | 2719 | ptr = (long*)(dev0+offset+0x240); | ||
355 | 2720 | MRC_Register = *ptr & 0xFFFFFFFF; | ||
356 | 2721 | |||
357 | 2722 | // CAS Latency (tCAS) | ||
358 | 2723 | if(MRC_Register & 0xF) { | ||
359 | 2724 | cas = (MRC_Register & 0xF) + 3.0f; | ||
360 | 2725 | } else { | ||
361 | 2726 | cas = ((ODT_Control_Register >> 8)& 0x3F) - 5.0f; | ||
362 | 2727 | } | ||
363 | 2728 | |||
364 | 2729 | // RAS-To-CAS (tRCD) | ||
365 | 2730 | rcd = (Read_Register >> 17) & 0xF; | ||
366 | 2731 | |||
367 | 2732 | // RAS Precharge (tRP) | ||
368 | 2733 | rp = (ACT_Register >> 13) & 0xF; | ||
369 | 2734 | |||
370 | 2735 | // RAS Active to precharge (tRAS) | ||
371 | 2736 | ras = Precharge_Register & 0x3F; | ||
372 | 2737 | |||
373 | 2738 | print_timings_info(cas, rcd, rp, ras); | ||
374 | 2739 | |||
375 | 2740 | cprint(LINE_CPU+6, col2+1, "/"); col2 +=2; | ||
376 | 2741 | |||
377 | 2742 | if ((c0ckectrl >> 20 & 0xF) && (c1ckectrl >> 20 & 0xF)) { | ||
378 | 2743 | cprint(LINE_CPU+6, col2+1, "Dual Channel"); | ||
379 | 2744 | } else { | ||
380 | 2745 | cprint(LINE_CPU+6, col2+1, "Single Channel"); | ||
381 | 2746 | } | ||
382 | 2747 | |||
383 | 2748 | } | ||
384 | 2749 | |||
385 | 2750 | |||
386 | 2487 | static void poll_timings_5400(void) { | 2751 | static void poll_timings_5400(void) { |
387 | 2488 | 2752 | ||
388 | 2489 | // Thanks for CDH optis | 2753 | // Thanks for CDH optis |
389 | @@ -2938,7 +3202,7 @@ | |||
390 | 2938 | fvc_bn = 4; | 3202 | fvc_bn = 4; |
391 | 2939 | } else if(mc_control & 2) { | 3203 | } else if(mc_control & 2) { |
392 | 2940 | fvc_bn = 5; | 3204 | fvc_bn = 5; |
394 | 2941 | } else if(mc_control & 7) { | 3205 | } else if(mc_control & 4) { |
395 | 2942 | fvc_bn = 6; | 3206 | fvc_bn = 6; |
396 | 2943 | } | 3207 | } |
397 | 2944 | 3208 | ||
398 | @@ -3098,6 +3362,7 @@ | |||
399 | 3098 | { 0x8086, 0x29C0, "Intel P35/G33", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3362 | { 0x8086, 0x29C0, "Intel P35/G33", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
400 | 3099 | { 0x8086, 0x29D0, "Intel Q33", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3363 | { 0x8086, 0x29D0, "Intel Q33", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
401 | 3100 | { 0x8086, 0x29E0, "Intel X38/X48", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3364 | { 0x8086, 0x29E0, "Intel X38/X48", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
402 | 3365 | { 0x8086, 0x29F0, "Intel 3200/3210", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | ||
403 | 3101 | { 0x8086, 0x2E10, "Intel Q45/Q43", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3366 | { 0x8086, 0x2E10, "Intel Q45/Q43", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
404 | 3102 | { 0x8086, 0x2E20, "Intel P45/G45", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3367 | { 0x8086, 0x2E20, "Intel P45/G45", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
405 | 3103 | { 0x8086, 0x2E30, "Intel G41", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, | 3368 | { 0x8086, 0x2E30, "Intel G41", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing}, |
406 | @@ -3113,7 +3378,8 @@ | |||
407 | 3113 | 3378 | ||
408 | 3114 | /* Integrated Memory Controllers */ | 3379 | /* Integrated Memory Controllers */ |
409 | 3115 | { 0xFFFF, 0x0001, "Core IMC", 0, poll_fsb_nhm, poll_timings_nhm, setup_nhm, poll_nothing}, | 3380 | { 0xFFFF, 0x0001, "Core IMC", 0, poll_fsb_nhm, poll_timings_nhm, setup_nhm, poll_nothing}, |
411 | 3116 | { 0xFFFF, 0x0002, "Core IMC2", 0, poll_fsb_nhm, poll_timings_nothing, setup_nhm, poll_nothing}, | 3381 | { 0xFFFF, 0x0002, "Core IMC 32nm", 0, poll_fsb_nhm32, poll_timings_nhm, setup_nhm32, poll_nothing}, |
412 | 3382 | { 0xFFFF, 0x0003, "Core IMC 32nm", 0, poll_fsb_wmr, poll_timings_wmr, setup_wmr, poll_nothing}, | ||
413 | 3117 | { 0xFFFF, 0x0100, "AMD K8 IMC", 0, poll_fsb_amd64, poll_timings_amd64, setup_amd64, poll_amd64 }, | 3383 | { 0xFFFF, 0x0100, "AMD K8 IMC", 0, poll_fsb_amd64, poll_timings_amd64, setup_amd64, poll_amd64 }, |
414 | 3118 | { 0xFFFF, 0x0101, "AMD K10 IMC", 0, poll_fsb_k10, poll_timings_k10, setup_k10, poll_nothing } | 3384 | { 0xFFFF, 0x0101, "AMD K10 IMC", 0, poll_fsb_k10, poll_timings_k10, setup_k10, poll_nothing } |
415 | 3119 | 3385 | ||
416 | 3120 | 3386 | ||
417 | === modified file 'debian/README.Debian' | |||
418 | --- debian/README.Debian 2008-11-13 10:37:16 +0000 | |||
419 | +++ debian/README.Debian 2010-06-27 17:51:29 +0000 | |||
420 | @@ -1,12 +1,18 @@ | |||
421 | 1 | memtest86+ for Debian | 1 | memtest86+ for Debian |
422 | 2 | --------------------- | 2 | --------------------- |
423 | 3 | 3 | ||
430 | 4 | Binary image is /boot/memtest86+.bin | 4 | Two binary images are provided: |
431 | 5 | 5 | ||
432 | 6 | It is automatically registered against grub2. For other bootloaders | 6 | - A legacy /boot/memtest86+.bin that uses Linux zImage boot |
433 | 7 | you'll need to do some manual setup (see examples/grub-menu.lst for | 7 | protocol. |
434 | 8 | GRUB Legacy or examples/lilo.conf for LILO), or to make a boot-floppy, | 8 | |
435 | 9 | and reboot on this image. | 9 | - A Multiboot /boot/memtest86+_multiboot.bin image that follows the |
436 | 10 | Multiboot specification. | ||
437 | 11 | |||
438 | 12 | memtest86+_multiboot.bin is automatically registered against grub2. For | ||
439 | 13 | other bootloaders you'll need to do some manual setup (see | ||
440 | 14 | examples/grub-menu.lst for GRUB Legacy or examples/lilo.conf for LILO), | ||
441 | 15 | or to make a boot-floppy, and reboot on this image. | ||
442 | 10 | 16 | ||
443 | 11 | The make-memtest86+-boot-floppy utility will help you to create a | 17 | The make-memtest86+-boot-floppy utility will help you to create a |
444 | 12 | boot floppy or floppy image using GRUB Legacy. | 18 | boot floppy or floppy image using GRUB Legacy. |
445 | 13 | 19 | ||
446 | === modified file 'debian/changelog' | |||
447 | --- debian/changelog 2010-03-23 09:33:34 +0000 | |||
448 | +++ debian/changelog 2010-06-27 17:51:29 +0000 | |||
449 | @@ -1,3 +1,62 @@ | |||
450 | 1 | memtest86+ (4.10-1ubuntu1) maverick; urgency=low | ||
451 | 2 | |||
452 | 3 | * Merge from Debian unstable. (LP: #599070) Remaining changes: | ||
453 | 4 | - Only run update-grub in the postrm on remove/purge. | ||
454 | 5 | - Update maintainer field. | ||
455 | 6 | |||
456 | 7 | -- Luke Faraone <luke@faraone.cc> Sun, 27 Jun 2010 12:54:15 -0400 | ||
457 | 8 | |||
458 | 9 | memtest86+ (4.10-1) unstable; urgency=low | ||
459 | 10 | |||
460 | 11 | * The "not yet source format 3.0" release. | ||
461 | 12 | * New upstream release (Closes: #586727). | ||
462 | 13 | * supports 64 e820 lines (Closes: #567165). | ||
463 | 14 | * Acknowledge NMUs (Closes: #565642). | ||
464 | 15 | * Don't emit grub2 menu items if /boot is on a loop-mounted device | ||
465 | 16 | (Ubuntu, Closes: 574788). | ||
466 | 17 | * Cache results of prepare_grub_to_access_device to speed up update-grub | ||
467 | 18 | runs (Ubuntu, Closes: #570987). | ||
468 | 19 | * Fix typo in package description (Robert Tomsick, Closes: #580147). | ||
469 | 20 | * Suggest "grub-pc | grub-legacy" instead of old "grub2 | grub" (Closes: | ||
470 | 21 | #568624). | ||
471 | 22 | * Include es.po for po-debconf (Francisco Javier Cuadrado, Closes: | ||
472 | 23 | #580953). | ||
473 | 24 | * Provide boot entries for non-multiboot image, and tag the multiboot | ||
474 | 25 | ones as experimental (mitigates #570499). | ||
475 | 26 | * Install elf image again (was silently dropped in -2.2). | ||
476 | 27 | * Bumped Standards-Version to 3.8.4, no change. | ||
477 | 28 | |||
478 | 29 | -- Yann Dirson <dirson@debian.org> Sun, 27 Jun 2010 15:16:43 +0200 | ||
479 | 30 | |||
480 | 31 | memtest86+ (4.00-2.3) unstable; urgency=low | ||
481 | 32 | |||
482 | 33 | * Non-maintainer upload. | ||
483 | 34 | * Check for grub.cfg in postinst. Closes: #550337 | ||
484 | 35 | |||
485 | 36 | -- Michal Suchanek <hramrach@centrum.cz> Fri, 04 Jun 2010 13:50:53 +0200 | ||
486 | 37 | |||
487 | 38 | memtest86+ (4.00-2.2) unstable; urgency=low | ||
488 | 39 | |||
489 | 40 | * Non-maintainer upload. | ||
490 | 41 | * Build an image with Multiboot support. (Closes: #250864) | ||
491 | 42 | * Update de.po, fr.po, ja.po, pt.po, ru.po and sv.po. | ||
492 | 43 | (Closes: #563019, #563288, #564291, #564430, #564470, #565169) | ||
493 | 44 | * Fix in copyright line in debian/copyright to make lintian happy. | ||
494 | 45 | |||
495 | 46 | -- Robert Millan <rmh.debian@aybabtu.com> Sun, 17 Jan 2010 17:06:16 +0100 | ||
496 | 47 | |||
497 | 48 | memtest86+ (4.00-2.1) unstable; urgency=low | ||
498 | 49 | |||
499 | 50 | * Non-maintainer upload. | ||
500 | 51 | * Replace manual propt with debconf (Closes: #553292). | ||
501 | 52 | * Fix ".: 4: Can't open /usr/lib/grub/grub-mkconfig_lib" by checking | ||
502 | 53 | both grub files and also changing the linux/linux16 grub command based | ||
503 | 54 | on which version we find (Closes: #550096) | ||
504 | 55 | * Update suggests to a recent version of grub2 | ||
505 | 56 | * Add a lintian override for statically-linked-binary (which is expected) | ||
506 | 57 | |||
507 | 58 | -- Iustin Pop <iusty@k1024.org> Sun, 06 Dec 2009 12:20:39 +0100 | ||
508 | 59 | |||
509 | 1 | memtest86+ (4.00-2ubuntu3) lucid; urgency=low | 60 | memtest86+ (4.00-2ubuntu3) lucid; urgency=low |
510 | 2 | 61 | ||
511 | 3 | * Only run update-grub in the postrm on remove/purge. | 62 | * Only run update-grub in the postrm on remove/purge. |
512 | 4 | 63 | ||
513 | === added file 'debian/config' | |||
514 | --- debian/config 1970-01-01 00:00:00 +0000 | |||
515 | +++ debian/config 2010-06-27 17:51:29 +0000 | |||
516 | @@ -0,0 +1,9 @@ | |||
517 | 1 | #!/bin/sh | ||
518 | 2 | |||
519 | 3 | set -e | ||
520 | 4 | |||
521 | 5 | . /usr/share/debconf/confmodule | ||
522 | 6 | db_input medium shared/memtest86-run-lilo || true | ||
523 | 7 | db_go || true | ||
524 | 8 | |||
525 | 9 | #DEBHELPER# | ||
526 | 0 | 10 | ||
527 | === modified file 'debian/control' | |||
528 | --- debian/control 2009-03-26 11:45:00 +0000 | |||
529 | +++ debian/control 2010-06-27 17:51:29 +0000 | |||
530 | @@ -1,16 +1,17 @@ | |||
531 | 1 | Source: memtest86+ | 1 | Source: memtest86+ |
532 | 2 | Section: misc | 2 | Section: misc |
533 | 3 | Priority: optional | 3 | Priority: optional |
535 | 4 | Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com> | 4 | Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> |
536 | 5 | XSBC-Original-Maintainer: Yann Dirson <dirson@debian.org> | 5 | XSBC-Original-Maintainer: Yann Dirson <dirson@debian.org> |
538 | 6 | Build-Depends: debhelper (>> 5.0.0), dh-buildinfo, gcc-multilib [amd64 kfreebsd-amd64] | 6 | Build-Depends: debhelper (>> 5.0.0), dh-buildinfo, gcc-multilib [amd64 kfreebsd-amd64], |
539 | 7 | po-debconf | ||
540 | 7 | Homepage: http://www.memtest.org/ | 8 | Homepage: http://www.memtest.org/ |
542 | 8 | Standards-Version: 3.8.0 | 9 | Standards-Version: 3.8.4 |
543 | 9 | 10 | ||
544 | 10 | Package: memtest86+ | 11 | Package: memtest86+ |
545 | 11 | Architecture: i386 amd64 kfreebsd-i386 kfreebsd-amd64 lpia hurd-i386 | 12 | Architecture: i386 amd64 kfreebsd-i386 kfreebsd-amd64 lpia hurd-i386 |
546 | 12 | Depends: ${misc:Depends} | 13 | Depends: ${misc:Depends} |
548 | 13 | Suggests: hwtools, memtester, kernel-patch-badram, memtest86, grub2 (>=1.95+20070515-1) | grub (>= 0.95+cvs20040624), mtools | 14 | Suggests: hwtools, memtester, kernel-patch-badram, memtest86, grub-pc | grub-legacy, mtools |
549 | 14 | Description: thorough real-mode memory tester | 15 | Description: thorough real-mode memory tester |
550 | 15 | Memtest86+ scans your RAM for errors. | 16 | Memtest86+ scans your RAM for errors. |
551 | 16 | . | 17 | . |
552 | @@ -20,7 +21,7 @@ | |||
553 | 20 | but this one won't be able to test your whole RAM. | 21 | but this one won't be able to test your whole RAM. |
554 | 21 | . | 22 | . |
555 | 22 | It can output a list of bad RAM regions usable by the BadRAM kernel | 23 | It can output a list of bad RAM regions usable by the BadRAM kernel |
557 | 23 | patch, so that you can still use you old RAM with one or two bad bits. | 24 | patch, so that you can still use your old RAM with one or two bad bits. |
558 | 24 | . | 25 | . |
559 | 25 | Memtest86+ is based on memtest86 3.0, and adds support for recent | 26 | Memtest86+ is based on memtest86 3.0, and adds support for recent |
560 | 26 | hardware, as well as a number of general-purpose improvements, | 27 | hardware, as well as a number of general-purpose improvements, |
561 | 27 | 28 | ||
562 | === modified file 'debian/copyright' | |||
563 | --- debian/copyright 2009-03-26 11:45:00 +0000 | |||
564 | +++ debian/copyright 2010-06-27 17:51:29 +0000 | |||
565 | @@ -2,8 +2,9 @@ | |||
566 | 2 | 2 | ||
567 | 3 | It was downloaded from http://www.memtest.org/ | 3 | It was downloaded from http://www.memtest.org/ |
568 | 4 | 4 | ||
571 | 5 | Upstream Author: Samuel Demeulemeester <memtest@memtest.org>, based on | 5 | Copyright (C) 2004,2005,2007,2009 by Samuel Demeulemeester |
572 | 6 | memtest86 by Chris Brady <cbrady@sgi.com>, and various contributors. | 6 | <memtest@memtest.org>, based on memtest86 by Chris Brady |
573 | 7 | <cbrady@sgi.com>, and various contributors. | ||
574 | 7 | 8 | ||
575 | 8 | License: | 9 | License: |
576 | 9 | 10 | ||
577 | 10 | 11 | ||
578 | === modified file 'debian/grub' | |||
579 | --- debian/grub 2010-02-22 16:06:06 +0000 | |||
580 | +++ debian/grub 2010-06-27 17:51:29 +0000 | |||
581 | @@ -1,37 +1,59 @@ | |||
582 | 1 | #!/bin/sh | 1 | #!/bin/sh |
583 | 2 | set -e | 2 | set -e |
584 | 3 | 3 | ||
589 | 4 | # older versions of grub2 do not have this yet (LP: #459080) | 4 | if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then |
590 | 5 | if [ ! -e /usr/lib/grub/grub-mkconfig_lib ]; then | 5 | . /usr/lib/grub/grub-mkconfig_lib |
591 | 6 | echo "no grub-mkconfig_lib, exiting" | 6 | LX=linux16 |
592 | 7 | exit 0 | 7 | elif [ -f /usr/lib/grub/update-grub_lib ]; then |
593 | 8 | . /usr/lib/grub/update-grub_lib | ||
594 | 9 | LX=linux | ||
595 | 10 | else | ||
596 | 11 | # no grub file, so we notify and exit gracefully | ||
597 | 12 | echo "Cannot find grub config file, exiting." >&2 | ||
598 | 13 | exit 0 | ||
599 | 8 | fi | 14 | fi |
600 | 9 | 15 | ||
601 | 10 | . /usr/lib/grub/grub-mkconfig_lib | ||
602 | 11 | |||
603 | 12 | # We can't cope with loop-mounted devices here. | 16 | # We can't cope with loop-mounted devices here. |
604 | 13 | case ${GRUB_DEVICE_BOOT} in | 17 | case ${GRUB_DEVICE_BOOT} in |
608 | 14 | /dev/loop/*|/dev/loop[0-9]) | 18 | /dev/loop/*|/dev/loop[0-9]) exit 0 ;; |
606 | 15 | exit 0 | ||
607 | 16 | ;; | ||
609 | 17 | esac | 19 | esac |
610 | 18 | 20 | ||
611 | 21 | prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" | ||
612 | 22 | |||
613 | 19 | if test -e /boot/memtest86+.bin ; then | 23 | if test -e /boot/memtest86+.bin ; then |
614 | 20 | MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" ) | 24 | MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" ) |
615 | 21 | echo "Found memtest86+ image: $MEMTESTPATH" >&2 | 25 | echo "Found memtest86+ image: $MEMTESTPATH" >&2 |
616 | 22 | cat << EOF | 26 | cat << EOF |
617 | 23 | menuentry "Memory test (memtest86+)" { | 27 | menuentry "Memory test (memtest86+)" { |
618 | 24 | EOF | 28 | EOF |
619 | 25 | prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" | ||
620 | 26 | printf '%s\n' "${prepare_boot_cache}" | 29 | printf '%s\n' "${prepare_boot_cache}" |
621 | 27 | cat << EOF | 30 | cat << EOF |
623 | 28 | linux16 $MEMTESTPATH | 31 | $LX $MEMTESTPATH |
624 | 29 | } | 32 | } |
625 | 30 | menuentry "Memory test (memtest86+, serial console 115200)" { | 33 | menuentry "Memory test (memtest86+, serial console 115200)" { |
626 | 31 | EOF | 34 | EOF |
627 | 32 | printf '%s\n' "${prepare_boot_cache}" | 35 | printf '%s\n' "${prepare_boot_cache}" |
628 | 33 | cat << EOF | 36 | cat << EOF |
630 | 34 | linux16 $MEMTESTPATH console=ttyS0,115200n8 | 37 | $LX $MEMTESTPATH console=ttyS0,115200n8 |
631 | 38 | } | ||
632 | 39 | EOF | ||
633 | 40 | fi | ||
634 | 41 | |||
635 | 42 | if test -e /boot/memtest86+_multiboot.bin ; then | ||
636 | 43 | MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+_multiboot.bin" ) | ||
637 | 44 | echo "Found memtest86+ multiboot image: $MEMTESTPATH" >&2 | ||
638 | 45 | cat << EOF | ||
639 | 46 | menuentry "Memory test (memtest86+, experimental multiboot)" { | ||
640 | 47 | EOF | ||
641 | 48 | printf '%s\n' "${prepare_boot_cache}" | ||
642 | 49 | cat << EOF | ||
643 | 50 | multiboot $MEMTESTPATH | ||
644 | 51 | } | ||
645 | 52 | menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" { | ||
646 | 53 | EOF | ||
647 | 54 | printf '%s\n' "${prepare_boot_cache}" | ||
648 | 55 | cat << EOF | ||
649 | 56 | multiboot $MEMTESTPATH console=ttyS0,115200n8 | ||
650 | 35 | } | 57 | } |
651 | 36 | EOF | 58 | EOF |
652 | 37 | fi | 59 | fi |
653 | 38 | 60 | ||
654 | === added file 'debian/lintian-overrides' | |||
655 | --- debian/lintian-overrides 1970-01-01 00:00:00 +0000 | |||
656 | +++ debian/lintian-overrides 2010-06-27 17:51:29 +0000 | |||
657 | @@ -0,0 +1,3 @@ | |||
658 | 1 | # This file is intended to be statically-linked | ||
659 | 2 | memtest86+: statically-linked-binary ./usr/lib/memtest86+/memtest86+.elf | ||
660 | 3 | memtest86+: shared-lib-without-dependency-information ./boot/memtest86+_multiboot.bin | ||
661 | 0 | 4 | ||
662 | === added directory 'debian/po' | |||
663 | === added file 'debian/po/POTFILES.in' | |||
664 | --- debian/po/POTFILES.in 1970-01-01 00:00:00 +0000 | |||
665 | +++ debian/po/POTFILES.in 2010-06-27 17:51:29 +0000 | |||
666 | @@ -0,0 +1,1 @@ | |||
667 | 1 | [type: gettext/rfc822deb] templates | ||
668 | 0 | 2 | ||
669 | === added file 'debian/po/de.po' | |||
670 | --- debian/po/de.po 1970-01-01 00:00:00 +0000 | |||
671 | +++ debian/po/de.po 2010-06-27 17:51:29 +0000 | |||
672 | @@ -0,0 +1,37 @@ | |||
673 | 1 | # Translation of po-debconf template to German | ||
674 | 2 | # This file is distributed under the same license as the memtest86+ package. | ||
675 | 3 | # | ||
676 | 4 | # Thomas Mueller <thomas.mueller@tmit.eu>, 2010. | ||
677 | 5 | msgid "" | ||
678 | 6 | msgstr "" | ||
679 | 7 | "Project-Id-Version: memtest86+ 4.00\n" | ||
680 | 8 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
681 | 9 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
682 | 10 | "PO-Revision-Date: 2010-01-01 19:47+0100\n" | ||
683 | 11 | "Last-Translator: Thomas Mueller <thomas.mueller@tmit.eu>\n" | ||
684 | 12 | "Language-Team: German <debian-l10n-german@lists.debian.org>\n" | ||
685 | 13 | "Language: de\n" | ||
686 | 14 | "MIME-Version: 1.0\n" | ||
687 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | ||
688 | 16 | "Content-Transfer-Encoding: 8bit\n" | ||
689 | 17 | "X-Generator: Lokalize 1.0\n" | ||
690 | 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" | ||
691 | 19 | |||
692 | 20 | #. Type: boolean | ||
693 | 21 | #. Description | ||
694 | 22 | #: ../templates:1001 | ||
695 | 23 | msgid "Run lilo automatically after upgrade (if found)?" | ||
696 | 24 | msgstr "" | ||
697 | 25 | "Soll lilo nach dem Upgrade automatisch ausgeführt werden (falls vorhanden)?" | ||
698 | 26 | |||
699 | 27 | #. Type: boolean | ||
700 | 28 | #. Description | ||
701 | 29 | #: ../templates:1001 | ||
702 | 30 | msgid "" | ||
703 | 31 | "If lilo is installed and its configuration file contains the memtest86/" | ||
704 | 32 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
705 | 33 | "image." | ||
706 | 34 | msgstr "" | ||
707 | 35 | "Falls lilo installiert ist und dessen Konfigurationsdatei das memtest86/" | ||
708 | 36 | "memtest86+-Image enthält, dann sollte es erneut ausgeführt werden, damit das " | ||
709 | 37 | "Booten des neuen Images möglich ist." | ||
710 | 0 | 38 | ||
711 | === added file 'debian/po/es.po' | |||
712 | --- debian/po/es.po 1970-01-01 00:00:00 +0000 | |||
713 | +++ debian/po/es.po 2010-06-27 17:51:29 +0000 | |||
714 | @@ -0,0 +1,58 @@ | |||
715 | 1 | # memtest86+ po-debconf translation to Spanish | ||
716 | 2 | # Copyright (C) 2010 Software in the Public Interest | ||
717 | 3 | # This file is distributed under the same license as the memtest86+ package. | ||
718 | 4 | # | ||
719 | 5 | # Changes: | ||
720 | 6 | # - Initial translation | ||
721 | 7 | # Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2010 | ||
722 | 8 | # | ||
723 | 9 | # Traductores, si no conocen el formato PO, merece la pena leer la | ||
724 | 10 | # documentación de gettext, especialmente las secciones dedicadas a este | ||
725 | 11 | # formato, por ejemplo ejecutando: | ||
726 | 12 | # info -n '(gettext)PO Files' | ||
727 | 13 | # info -n '(gettext)Header Entry' | ||
728 | 14 | # | ||
729 | 15 | # Equipo de traducción al español, por favor lean antes de traducir | ||
730 | 16 | # los siguientes documentos: | ||
731 | 17 | # | ||
732 | 18 | # - El proyecto de traducción de Debian al español | ||
733 | 19 | # http://www.debian.org/intl/spanish/ | ||
734 | 20 | # especialmente las notas y normas de traducción en | ||
735 | 21 | # http://www.debian.org/intl/spanish/notas | ||
736 | 22 | # | ||
737 | 23 | # - La guía de traducción de po's de debconf: | ||
738 | 24 | # /usr/share/doc/po-debconf/README-trans | ||
739 | 25 | # o http://www.debian.org/intl/l10n/po-debconf/README-trans | ||
740 | 26 | # | ||
741 | 27 | msgid "" | ||
742 | 28 | msgstr "" | ||
743 | 29 | "Project-Id-Version: memtest86+ 4.00-2.2\n" | ||
744 | 30 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
745 | 31 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
746 | 32 | "PO-Revision-Date: 2010-04-28 10:10+0200\n" | ||
747 | 33 | "Last-Translator: Francisco Javier Cuadrado <fcocuadrado@gmail.com>\n" | ||
748 | 34 | "Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n" | ||
749 | 35 | "Language: \n" | ||
750 | 36 | "MIME-Version: 1.0\n" | ||
751 | 37 | "Content-Type: text/plain; charset=UTF-8\n" | ||
752 | 38 | "Content-Transfer-Encoding: 8bit\n" | ||
753 | 39 | |||
754 | 40 | #. Type: boolean | ||
755 | 41 | #. Description | ||
756 | 42 | #: ../templates:1001 | ||
757 | 43 | msgid "Run lilo automatically after upgrade (if found)?" | ||
758 | 44 | msgstr "" | ||
759 | 45 | "¿Desea ejecutar automáticamente lilo después de la actualización (si se " | ||
760 | 46 | "encuentra)?" | ||
761 | 47 | |||
762 | 48 | #. Type: boolean | ||
763 | 49 | #. Description | ||
764 | 50 | #: ../templates:1001 | ||
765 | 51 | msgid "" | ||
766 | 52 | "If lilo is installed and its configuration file contains the memtest86/" | ||
767 | 53 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
768 | 54 | "image." | ||
769 | 55 | msgstr "" | ||
770 | 56 | "Si lilo está instalado y su archivo de configuración contiene la imagen de " | ||
771 | 57 | "«memtest86»/«memtest86+» vuelva a ejecutar lilo para que pueda arrancar la " | ||
772 | 58 | "nueva imagen." | ||
773 | 0 | 59 | ||
774 | === added file 'debian/po/fr.po' | |||
775 | --- debian/po/fr.po 1970-01-01 00:00:00 +0000 | |||
776 | +++ debian/po/fr.po 2010-06-27 17:51:29 +0000 | |||
777 | @@ -0,0 +1,38 @@ | |||
778 | 1 | # Translation of memtest86 debconf templates to French | ||
779 | 2 | # Copyright (C) 2010 Debian French l10n team <debian-l10n-french@lists.debian.org> | ||
780 | 3 | # This file is distributed under the same license as the memtest86 package. | ||
781 | 4 | # | ||
782 | 5 | # Translators: | ||
783 | 6 | # Christian Perrier <bubulle@debian.org>, 2010. | ||
784 | 7 | msgid "" | ||
785 | 8 | msgstr "" | ||
786 | 9 | "Project-Id-Version: \n" | ||
787 | 10 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
788 | 11 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
789 | 12 | "PO-Revision-Date: 2010-01-02 18:44+0100\n" | ||
790 | 13 | "Last-Translator: Christian Perrier <bubulle@debian.org>\n" | ||
791 | 14 | "Language-Team: French <debian-l10n-french@lists.debian.org>\n" | ||
792 | 15 | "Language: fr\n" | ||
793 | 16 | "MIME-Version: 1.0\n" | ||
794 | 17 | "Content-Type: text/plain; charset=UTF-8\n" | ||
795 | 18 | "Content-Transfer-Encoding: 8bit\n" | ||
796 | 19 | "X-Generator: Lokalize 1.0\n" | ||
797 | 20 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" | ||
798 | 21 | |||
799 | 22 | #. Type: boolean | ||
800 | 23 | #. Description | ||
801 | 24 | #: ../templates:1001 | ||
802 | 25 | msgid "Run lilo automatically after upgrade (if found)?" | ||
803 | 26 | msgstr "Faut-il exécuter lilo automatiquement après la mise à jour ?" | ||
804 | 27 | |||
805 | 28 | #. Type: boolean | ||
806 | 29 | #. Description | ||
807 | 30 | #: ../templates:1001 | ||
808 | 31 | msgid "" | ||
809 | 32 | "If lilo is installed and its configuration file contains the memtest86/" | ||
810 | 33 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
811 | 34 | "image." | ||
812 | 35 | msgstr "" | ||
813 | 36 | "Si LILO est installé et que son fichier de configuration fait référence à " | ||
814 | 37 | "une image de lancement de memtest86 ou memtest86+, il doit être ré-exécuté " | ||
815 | 38 | "afin de pouvoir utiliser la nouvelle image." | ||
816 | 0 | 39 | ||
817 | === added file 'debian/po/ja.po' | |||
818 | --- debian/po/ja.po 1970-01-01 00:00:00 +0000 | |||
819 | +++ debian/po/ja.po 2010-06-27 17:51:29 +0000 | |||
820 | @@ -0,0 +1,35 @@ | |||
821 | 1 | # memtest86+ po-debconf translation (Japanese) | ||
822 | 2 | # Copyright (C) 2009 Yann Dirson <dirson@debian.org> | ||
823 | 3 | # This file is distributed under the same license as the memtest86+ package. | ||
824 | 4 | # Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2009. | ||
825 | 5 | # | ||
826 | 6 | msgid "" | ||
827 | 7 | msgstr "" | ||
828 | 8 | "Project-Id-Version: memtest86+ 4.00-2.1\n" | ||
829 | 9 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
830 | 10 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
831 | 11 | "PO-Revision-Date: 2009-12-27 13:52+0900\n" | ||
832 | 12 | "Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n" | ||
833 | 13 | "Language-Team: Japanese <debian-japanese@lists.debian.org>\n" | ||
834 | 14 | "Language: ja\n" | ||
835 | 15 | "MIME-Version: 1.0\n" | ||
836 | 16 | "Content-Type: text/plain; charset=UTF-8\n" | ||
837 | 17 | "Content-Transfer-Encoding: 8bit\n" | ||
838 | 18 | |||
839 | 19 | #. Type: boolean | ||
840 | 20 | #. Description | ||
841 | 21 | #: ../templates:1001 | ||
842 | 22 | msgid "Run lilo automatically after upgrade (if found)?" | ||
843 | 23 | msgstr "(もしあれば) lilo をアップグレード後に自動的に実行しますか?" | ||
844 | 24 | |||
845 | 25 | #. Type: boolean | ||
846 | 26 | #. Description | ||
847 | 27 | #: ../templates:1001 | ||
848 | 28 | msgid "" | ||
849 | 29 | "If lilo is installed and its configuration file contains the memtest86/" | ||
850 | 30 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
851 | 31 | "image." | ||
852 | 32 | msgstr "" | ||
853 | 33 | "lilo がインストールされていて、その設定ファイルが memtest86/memtest86+ のイ" | ||
854 | 34 | "メージを指定している場合は、新しいイメージを起動できるようにするために lilo " | ||
855 | 35 | "の再実行が必要です。" | ||
856 | 0 | 36 | ||
857 | === added file 'debian/po/pt.po' | |||
858 | --- debian/po/pt.po 1970-01-01 00:00:00 +0000 | |||
859 | +++ debian/po/pt.po 2010-06-27 17:51:29 +0000 | |||
860 | @@ -0,0 +1,37 @@ | |||
861 | 1 | # Translation of memtest86+ debconf messages to Portuguese | ||
862 | 2 | # Copyright (C) 2009 the memtest86+ copyright holder | ||
863 | 3 | # This file is distributed under the same license as the memtest86+ package. | ||
864 | 4 | # | ||
865 | 5 | # Américo Monteiro <a_monteiro@netcabo.pt>, 2009. | ||
866 | 6 | msgid "" | ||
867 | 7 | msgstr "" | ||
868 | 8 | "Project-Id-Version: memtest86+ 4.00-2.1\n" | ||
869 | 9 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
870 | 10 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
871 | 11 | "PO-Revision-Date: 2009-12-28 20:18+0000\n" | ||
872 | 12 | "Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n" | ||
873 | 13 | "Language-Team: Portuguese <traduz@debianpt.org>\n" | ||
874 | 14 | "Language: pt\n" | ||
875 | 15 | "MIME-Version: 1.0\n" | ||
876 | 16 | "Content-Type: text/plain; charset=UTF-8\n" | ||
877 | 17 | "Content-Transfer-Encoding: 8bit\n" | ||
878 | 18 | "X-Generator: Lokalize 1.0\n" | ||
879 | 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||
880 | 20 | |||
881 | 21 | #. Type: boolean | ||
882 | 22 | #. Description | ||
883 | 23 | #: ../templates:1001 | ||
884 | 24 | msgid "Run lilo automatically after upgrade (if found)?" | ||
885 | 25 | msgstr "Correr o lilo automaticamente (se encontrado) após a actualização?" | ||
886 | 26 | |||
887 | 27 | #. Type: boolean | ||
888 | 28 | #. Description | ||
889 | 29 | #: ../templates:1001 | ||
890 | 30 | msgid "" | ||
891 | 31 | "If lilo is installed and its configuration file contains the memtest86/" | ||
892 | 32 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
893 | 33 | "image." | ||
894 | 34 | msgstr "" | ||
895 | 35 | "Se o lilo estiver instalado e o seu ficheiro de configuração conter a imagem " | ||
896 | 36 | "memtest86/memtest86+, então deve ser re-executado de modo a permitir o " | ||
897 | 37 | "arranque pela nova imagem." | ||
898 | 0 | 38 | ||
899 | === added file 'debian/po/ru.po' | |||
900 | --- debian/po/ru.po 1970-01-01 00:00:00 +0000 | |||
901 | +++ debian/po/ru.po 2010-06-27 17:51:29 +0000 | |||
902 | @@ -0,0 +1,37 @@ | |||
903 | 1 | # translation of memtest86+_4.00-2.1_ru.po to Russian | ||
904 | 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | ||
905 | 3 | # This file is distributed under the same license as the PACKAGE package. | ||
906 | 4 | # | ||
907 | 5 | # Yuri Kozlov <yuray@komyakino.ru>, 2010. | ||
908 | 6 | msgid "" | ||
909 | 7 | msgstr "" | ||
910 | 8 | "Project-Id-Version: memtest86+ 4.00-2.1\n" | ||
911 | 9 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
912 | 10 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
913 | 11 | "PO-Revision-Date: 2010-01-13 19:22+0300\n" | ||
914 | 12 | "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" | ||
915 | 13 | "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n" | ||
916 | 14 | "Language: ru\n" | ||
917 | 15 | "MIME-Version: 1.0\n" | ||
918 | 16 | "Content-Type: text/plain; charset=UTF-8\n" | ||
919 | 17 | "Content-Transfer-Encoding: 8bit\n" | ||
920 | 18 | "X-Generator: KBabel 1.11.4\n" | ||
921 | 19 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" | ||
922 | 20 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" | ||
923 | 21 | |||
924 | 22 | #. Type: boolean | ||
925 | 23 | #. Description | ||
926 | 24 | #: ../templates:1001 | ||
927 | 25 | msgid "Run lilo automatically after upgrade (if found)?" | ||
928 | 26 | msgstr "Запускать lilo автоматически после обновления (если установлен)?" | ||
929 | 27 | |||
930 | 28 | #. Type: boolean | ||
931 | 29 | #. Description | ||
932 | 30 | #: ../templates:1001 | ||
933 | 31 | msgid "" | ||
934 | 32 | "If lilo is installed and its configuration file contains the memtest86/" | ||
935 | 33 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
936 | 34 | "image." | ||
937 | 35 | msgstr "" | ||
938 | 36 | "Если пакет lilo установлен и его файл настройки содержит образ memtest86/" | ||
939 | 37 | "memtest86+, то его нужно перезапустить, чтобы стал загружаться новый образ." | ||
940 | 0 | 38 | ||
941 | === added file 'debian/po/sv.po' | |||
942 | --- debian/po/sv.po 1970-01-01 00:00:00 +0000 | |||
943 | +++ debian/po/sv.po 2010-06-27 17:51:29 +0000 | |||
944 | @@ -0,0 +1,37 @@ | |||
945 | 1 | # Translation of memtest86+ debconf template to Swedish | ||
946 | 2 | # Copyright (C) 2010 Martin Bagge <brother@bsnet.se> | ||
947 | 3 | # This file is distributed under the same license as the memtest86+ package. | ||
948 | 4 | # | ||
949 | 5 | # Martin Bagge <brother@bsnet.se>, 2010 | ||
950 | 6 | msgid "" | ||
951 | 7 | msgstr "" | ||
952 | 8 | "Project-Id-Version: PACKAGE VERSION\n" | ||
953 | 9 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
954 | 10 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
955 | 11 | "PO-Revision-Date: 2010-01-09 19:01+0100\n" | ||
956 | 12 | "Last-Translator: Martin Bagge <brother@bsnet.se>\n" | ||
957 | 13 | "Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n" | ||
958 | 14 | "Language: sv\n" | ||
959 | 15 | "MIME-Version: 1.0\n" | ||
960 | 16 | "Content-Type: text/plain; charset=utf-8\n" | ||
961 | 17 | "Content-Transfer-Encoding: 8bit\n" | ||
962 | 18 | "X-Poedit-Language: Swedish\n" | ||
963 | 19 | "X-Poedit-Country: Sweden\n" | ||
964 | 20 | |||
965 | 21 | #. Type: boolean | ||
966 | 22 | #. Description | ||
967 | 23 | #: ../templates:1001 | ||
968 | 24 | msgid "Run lilo automatically after upgrade (if found)?" | ||
969 | 25 | msgstr "Ska lilo (om det finns) köras automatiskt efter uppgradering?" | ||
970 | 26 | |||
971 | 27 | #. Type: boolean | ||
972 | 28 | #. Description | ||
973 | 29 | #: ../templates:1001 | ||
974 | 30 | msgid "" | ||
975 | 31 | "If lilo is installed and its configuration file contains the memtest86/" | ||
976 | 32 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
977 | 33 | "image." | ||
978 | 34 | msgstr "" | ||
979 | 35 | "Om lilo är installerat och dess inställningar innehållet avbildningen av " | ||
980 | 36 | "memtest86/memtest86+ ska den köras för att systemet ska kunna startas på den " | ||
981 | 37 | "nya avbildningen." | ||
982 | 0 | 38 | ||
983 | === added file 'debian/po/templates.pot' | |||
984 | --- debian/po/templates.pot 1970-01-01 00:00:00 +0000 | |||
985 | +++ debian/po/templates.pot 2010-06-27 17:51:29 +0000 | |||
986 | @@ -0,0 +1,32 @@ | |||
987 | 1 | # SOME DESCRIPTIVE TITLE. | ||
988 | 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER | ||
989 | 3 | # This file is distributed under the same license as the PACKAGE package. | ||
990 | 4 | # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. | ||
991 | 5 | # | ||
992 | 6 | #, fuzzy | ||
993 | 7 | msgid "" | ||
994 | 8 | msgstr "" | ||
995 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | ||
996 | 10 | "Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n" | ||
997 | 11 | "POT-Creation-Date: 2009-12-02 22:23+0100\n" | ||
998 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | ||
999 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | ||
1000 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | ||
1001 | 15 | "MIME-Version: 1.0\n" | ||
1002 | 16 | "Content-Type: text/plain; charset=CHARSET\n" | ||
1003 | 17 | "Content-Transfer-Encoding: 8bit\n" | ||
1004 | 18 | |||
1005 | 19 | #. Type: boolean | ||
1006 | 20 | #. Description | ||
1007 | 21 | #: ../templates:1001 | ||
1008 | 22 | msgid "Run lilo automatically after upgrade (if found)?" | ||
1009 | 23 | msgstr "" | ||
1010 | 24 | |||
1011 | 25 | #. Type: boolean | ||
1012 | 26 | #. Description | ||
1013 | 27 | #: ../templates:1001 | ||
1014 | 28 | msgid "" | ||
1015 | 29 | "If lilo is installed and its configuration file contains the memtest86/" | ||
1016 | 30 | "memtest86+ image, then it should be re-run in order to allow booting the new " | ||
1017 | 31 | "image." | ||
1018 | 32 | msgstr "" | ||
1019 | 0 | 33 | ||
1020 | === modified file 'debian/postinst' | |||
1021 | --- debian/postinst 2009-06-24 16:55:39 +0000 | |||
1022 | +++ debian/postinst 2010-06-27 17:51:29 +0000 | |||
1023 | @@ -1,23 +1,20 @@ | |||
1024 | 1 | #!/bin/sh | 1 | #!/bin/sh |
1025 | 2 | set -e | 2 | set -e |
1026 | 3 | 3 | ||
1031 | 4 | # offer to run LILO | 4 | . /usr/share/debconf/confmodule |
1032 | 5 | # (adapted from snippet by chr.ohm@gmx.net) | 5 | |
1033 | 6 | if [ -x /sbin/lilo ] && [ -r /etc/lilo.conf ] && | 6 | if [ "$1" = configure ]; then |
1034 | 7 | [ "${DEBIAN_FRONTEND}" != "noninteractive" ] && | 7 | db_get shared/memtest86-run-lilo |
1035 | 8 | if [ "$RET" = true ] && | ||
1036 | 9 | [ -x /sbin/lilo ] && [ -r /etc/lilo.conf ] && | ||
1037 | 8 | grep "image.*=.*/boot/memtest86+.bin" /etc/lilo.conf >/dev/null | 10 | grep "image.*=.*/boot/memtest86+.bin" /etc/lilo.conf >/dev/null |
1038 | 9 | then | ||
1039 | 10 | echo "You seem to have an entry for memtest86+ in /etc/lilo.conf." | ||
1040 | 11 | printf "Run lilo now [y/N]? " | ||
1041 | 12 | read c | ||
1042 | 13 | if [ "$c" = "y" ] || [ "$c" = "Y" ] | ||
1043 | 14 | then | 11 | then |
1044 | 15 | lilo | 12 | lilo |
1045 | 16 | fi | 13 | fi |
1046 | 17 | fi | ||
1047 | 18 | 14 | ||
1050 | 19 | if [ "$1" = "configure" ] && [ -x "`which update-grub2 2>/dev/null`" ] && [ -e /boot/grub/grub.cfg ]; then | 15 | if [ -e /boot/grub/grub.cfg ] && [ -x "`which update-grub2 2>/dev/null`" ] ; then |
1051 | 20 | update-grub2 | 16 | update-grub2 |
1052 | 17 | fi | ||
1053 | 21 | fi | 18 | fi |
1054 | 22 | 19 | ||
1055 | 23 | #DEBHELPER# | 20 | #DEBHELPER# |
1056 | 24 | 21 | ||
1057 | === modified file 'debian/rules' | |||
1058 | --- debian/rules 2009-03-26 11:45:00 +0000 | |||
1059 | +++ debian/rules 2010-06-27 17:51:29 +0000 | |||
1060 | @@ -23,6 +23,9 @@ | |||
1061 | 23 | 23 | ||
1062 | 24 | [ ! -f Makefile ] || $(MAKE) clean | 24 | [ ! -f Makefile ] || $(MAKE) clean |
1063 | 25 | 25 | ||
1064 | 26 | # make sure PO files are always up-to-date | ||
1065 | 27 | debconf-updatepo | ||
1066 | 28 | |||
1067 | 26 | dh_clean | 29 | dh_clean |
1068 | 27 | 30 | ||
1069 | 28 | install: build | 31 | install: build |
1070 | @@ -35,8 +38,13 @@ | |||
1071 | 35 | install -m755 debian/make-$(PACKAGE)-boot-floppy debian/$(PACKAGE)/usr/bin/ | 38 | install -m755 debian/make-$(PACKAGE)-boot-floppy debian/$(PACKAGE)/usr/bin/ |
1072 | 36 | install -D -m644 memtest.bin debian/$(PACKAGE)/boot/$(PACKAGE).bin | 39 | install -D -m644 memtest.bin debian/$(PACKAGE)/boot/$(PACKAGE).bin |
1073 | 37 | install -D -m644 memtest debian/$(PACKAGE)/usr/lib/$(PACKAGE)/$(PACKAGE).elf | 40 | install -D -m644 memtest debian/$(PACKAGE)/usr/lib/$(PACKAGE)/$(PACKAGE).elf |
1074 | 41 | install -D -m644 -s memtest_shared debian/$(PACKAGE)/boot/$(PACKAGE)_multiboot.bin | ||
1075 | 38 | install -D -m755 debian/grub debian/$(PACKAGE)/etc/grub.d/20_$(PACKAGE) | 42 | install -D -m755 debian/grub debian/$(PACKAGE)/etc/grub.d/20_$(PACKAGE) |
1076 | 39 | dh_installman debian/make-$(PACKAGE)-boot-floppy.1 | 43 | dh_installman debian/make-$(PACKAGE)-boot-floppy.1 |
1077 | 44 | #install the lintian override | ||
1078 | 45 | install -d debian/$(PACKAGE)/usr/share/lintian/overrides | ||
1079 | 46 | install -m644 debian/lintian-overrides \ | ||
1080 | 47 | debian/$(PACKAGE)/usr/share/lintian/overrides/$(PACKAGE) | ||
1081 | 40 | 48 | ||
1082 | 41 | # Build architecture-independent files here. | 49 | # Build architecture-independent files here. |
1083 | 42 | binary-indep: build install | 50 | binary-indep: build install |
1084 | @@ -46,7 +54,7 @@ | |||
1085 | 46 | binary-arch: build install | 54 | binary-arch: build install |
1086 | 47 | dh_testdir | 55 | dh_testdir |
1087 | 48 | dh_testroot | 56 | dh_testroot |
1089 | 49 | # dh_installdebconf | 57 | dh_installdebconf |
1090 | 50 | dh_installdocs README | 58 | dh_installdocs README |
1091 | 51 | dh_buildinfo | 59 | dh_buildinfo |
1092 | 52 | dh_installexamples debian/lilo.conf debian/grub-menu.lst | 60 | dh_installexamples debian/lilo.conf debian/grub-menu.lst |
1093 | 53 | 61 | ||
1094 | === added file 'debian/templates' | |||
1095 | --- debian/templates 1970-01-01 00:00:00 +0000 | |||
1096 | +++ debian/templates 2010-06-27 17:51:29 +0000 | |||
1097 | @@ -0,0 +1,7 @@ | |||
1098 | 1 | Template: shared/memtest86-run-lilo | ||
1099 | 2 | Type: boolean | ||
1100 | 3 | Default: false | ||
1101 | 4 | _Description: Run lilo automatically after upgrade (if found)? | ||
1102 | 5 | If lilo is installed and its configuration file contains the | ||
1103 | 6 | memtest86/memtest86+ image, then it should be re-run in order to | ||
1104 | 7 | allow booting the new image. | ||
1105 | 0 | 8 | ||
1106 | === modified file 'head.S' | |||
1107 | --- head.S 2009-03-01 16:50:40 +0000 | |||
1108 | +++ head.S 2010-06-27 17:51:29 +0000 | |||
1109 | @@ -13,9 +13,11 @@ | |||
1110 | 13 | 13 | ||
1111 | 14 | .text | 14 | .text |
1112 | 15 | #define __ASSEMBLY__ | 15 | #define __ASSEMBLY__ |
1113 | 16 | #define ASM_FILE | ||
1114 | 16 | #include "defs.h" | 17 | #include "defs.h" |
1115 | 17 | #include "config.h" | 18 | #include "config.h" |
1116 | 18 | #include "test.h" | 19 | #include "test.h" |
1117 | 20 | #include "multiboot.h" | ||
1118 | 19 | 21 | ||
1119 | 20 | /* | 22 | /* |
1120 | 21 | * References to members of the boot_cpu_data structure. | 23 | * References to members of the boot_cpu_data structure. |
1121 | @@ -31,6 +33,22 @@ | |||
1122 | 31 | #define X86_PWRCAP 40 | 33 | #define X86_PWRCAP 40 |
1123 | 32 | #define X86_EXT 44 | 34 | #define X86_EXT 44 |
1124 | 33 | #define X86_FFL 48 | 35 | #define X86_FFL 48 |
1125 | 36 | #define X86_DCACHE0_EAX 52 | ||
1126 | 37 | #define X86_DCACHE0_EBX 56 | ||
1127 | 38 | #define X86_DCACHE0_ECX 60 | ||
1128 | 39 | #define X86_DCACHE0_EDX 64 | ||
1129 | 40 | #define X86_DCACHE1_EAX 68 | ||
1130 | 41 | #define X86_DCACHE1_EBX 72 | ||
1131 | 42 | #define X86_DCACHE1_ECX 76 | ||
1132 | 43 | #define X86_DCACHE1_EDX 80 | ||
1133 | 44 | #define X86_DCACHE2_EAX 84 | ||
1134 | 45 | #define X86_DCACHE2_EBX 88 | ||
1135 | 46 | #define X86_DCACHE2_ECX 92 | ||
1136 | 47 | #define X86_DCACHE2_EDX 96 | ||
1137 | 48 | #define X86_DCACHE3_EAX 100 | ||
1138 | 49 | #define X86_DCACHE3_EBX 104 | ||
1139 | 50 | #define X86_DCACHE3_ECX 108 | ||
1140 | 51 | #define X86_DCACHE3_EDX 112 | ||
1141 | 34 | 52 | ||
1142 | 35 | .code32 | 53 | .code32 |
1143 | 36 | .globl startup_32 | 54 | .globl startup_32 |
1144 | @@ -38,6 +56,13 @@ | |||
1145 | 38 | cld | 56 | cld |
1146 | 39 | cli | 57 | cli |
1147 | 40 | 58 | ||
1148 | 59 | /* Store MBI pointer */ | ||
1149 | 60 | xorl %ecx, %ecx | ||
1150 | 61 | cmpl $MULTIBOOT_BOOTLOADER_MAGIC, %eax | ||
1151 | 62 | jne 0f | ||
1152 | 63 | movl %ebx, %ecx | ||
1153 | 64 | 0: | ||
1154 | 65 | |||
1155 | 41 | /* Ensure I have a stack pointer */ | 66 | /* Ensure I have a stack pointer */ |
1156 | 42 | testl %esp, %esp | 67 | testl %esp, %esp |
1157 | 43 | jnz 0f | 68 | jnz 0f |
1158 | @@ -50,6 +75,20 @@ | |||
1159 | 50 | 0: popl %ebx | 75 | 0: popl %ebx |
1160 | 51 | addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx | 76 | addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx |
1161 | 52 | 77 | ||
1162 | 78 | /* Move MBI pointer to a safe place */ | ||
1163 | 79 | testl %ecx, %ecx | ||
1164 | 80 | je 0f | ||
1165 | 81 | movl %ecx, mbiptr@GOTOFF(%ebx) | ||
1166 | 82 | 0: | ||
1167 | 83 | |||
1168 | 84 | jmp 0f | ||
1169 | 85 | /* Multiboot header */ | ||
1170 | 86 | .align 4 | ||
1171 | 87 | .long MULTIBOOT_HEADER_MAGIC | ||
1172 | 88 | .long 0 | ||
1173 | 89 | .long -MULTIBOOT_HEADER_MAGIC | ||
1174 | 90 | 0: | ||
1175 | 91 | |||
1176 | 53 | /* Pick the appropriate stack address */ | 92 | /* Pick the appropriate stack address */ |
1177 | 54 | leal stack_top@GOTOFF(%ebx), %esp | 93 | leal stack_top@GOTOFF(%ebx), %esp |
1178 | 55 | 94 | ||
1179 | @@ -373,6 +412,37 @@ | |||
1180 | 373 | movl %ebx, X86_CACHE+4(%esi) | 412 | movl %ebx, X86_CACHE+4(%esi) |
1181 | 374 | movl %ecx, X86_CACHE+8(%esi) | 413 | movl %ecx, X86_CACHE+8(%esi) |
1182 | 375 | movl %edx, X86_CACHE+12(%esi) | 414 | movl %edx, X86_CACHE+12(%esi) |
1183 | 415 | # Grab deterministic cache information (for 32nm Intel CPU) | ||
1184 | 416 | cmpw $0x0000,%dx | ||
1185 | 417 | jne id_done | ||
1186 | 418 | movl $4, %eax | ||
1187 | 419 | movl $0, %ecx | ||
1188 | 420 | cpuid | ||
1189 | 421 | movl %eax, X86_DCACHE0_EAX(%esi) | ||
1190 | 422 | movl %ebx, X86_DCACHE0_EBX(%esi) | ||
1191 | 423 | movl %ecx, X86_DCACHE0_ECX(%esi) | ||
1192 | 424 | movl %edx, X86_DCACHE0_EDX(%esi) | ||
1193 | 425 | movl $4, %eax | ||
1194 | 426 | movl $1, %ecx | ||
1195 | 427 | cpuid | ||
1196 | 428 | movl %eax, X86_DCACHE1_EAX(%esi) | ||
1197 | 429 | movl %ebx, X86_DCACHE1_EBX(%esi) | ||
1198 | 430 | movl %ecx, X86_DCACHE1_ECX(%esi) | ||
1199 | 431 | movl %edx, X86_DCACHE1_EDX(%esi) | ||
1200 | 432 | movl $4, %eax | ||
1201 | 433 | movl $2, %ecx | ||
1202 | 434 | cpuid | ||
1203 | 435 | movl %eax, X86_DCACHE2_EAX(%esi) | ||
1204 | 436 | movl %ebx, X86_DCACHE2_EBX(%esi) | ||
1205 | 437 | movl %ecx, X86_DCACHE2_ECX(%esi) | ||
1206 | 438 | movl %edx, X86_DCACHE2_EDX(%esi) | ||
1207 | 439 | movl $4, %eax | ||
1208 | 440 | movl $3, %ecx | ||
1209 | 441 | cpuid | ||
1210 | 442 | movl %eax, X86_DCACHE3_EAX(%esi) | ||
1211 | 443 | movl %ebx, X86_DCACHE3_EBX(%esi) | ||
1212 | 444 | movl %ecx, X86_DCACHE3_ECX(%esi) | ||
1213 | 445 | movl %edx, X86_DCACHE3_EDX(%esi) | ||
1214 | 376 | jmp id_done | 446 | jmp id_done |
1215 | 377 | 447 | ||
1216 | 378 | not_intel: | 448 | not_intel: |
1217 | @@ -956,6 +1026,9 @@ | |||
1218 | 956 | movl $1, %eax | 1026 | movl $1, %eax |
1219 | 957 | ret | 1027 | ret |
1220 | 958 | 1028 | ||
1221 | 1029 | .globl mbiptr | ||
1222 | 1030 | mbiptr: | ||
1223 | 1031 | .long 0 | ||
1224 | 959 | realptr: | 1032 | realptr: |
1225 | 960 | .word real - RSTART | 1033 | .word real - RSTART |
1226 | 961 | .word 0x0000 | 1034 | .word 0x0000 |
1227 | @@ -980,6 +1053,6 @@ | |||
1228 | 980 | .bss | 1053 | .bss |
1229 | 981 | .balign 16 | 1054 | .balign 16 |
1230 | 982 | stack: | 1055 | stack: |
1232 | 983 | . = . + 4096 | 1056 | . = . + 8192 |
1233 | 984 | stack_top: | 1057 | stack_top: |
1234 | 985 | .previous | 1058 | .previous |
1235 | 986 | 1059 | ||
1236 | === modified file 'init.c' | |||
1237 | --- init.c 2009-11-09 17:09:57 +0000 | |||
1238 | +++ init.c 2010-06-27 17:51:29 +0000 | |||
1239 | @@ -3,7 +3,7 @@ | |||
1240 | 3 | * Released under version 2 of the Gnu Public License. | 3 | * Released under version 2 of the Gnu Public License. |
1241 | 4 | * By Chris Brady, cbrady@sgi.com | 4 | * By Chris Brady, cbrady@sgi.com |
1242 | 5 | * ---------------------------------------------------- | 5 | * ---------------------------------------------------- |
1244 | 6 | * MemTest86+ V4.00 Specific code (GPL V2.0) | 6 | * MemTest86+ V4.10 Specific code (GPL V2.0) |
1245 | 7 | * By Samuel DEMEULEMEESTER, sdemeule@memtest.org | 7 | * By Samuel DEMEULEMEESTER, sdemeule@memtest.org |
1246 | 8 | * http://www.canardpc.com - http://www.memtest.org | 8 | * http://www.canardpc.com - http://www.memtest.org |
1247 | 9 | */ | 9 | */ |
1248 | @@ -15,6 +15,7 @@ | |||
1249 | 15 | #include "pci.h" | 15 | #include "pci.h" |
1250 | 16 | #include "io.h" | 16 | #include "io.h" |
1251 | 17 | #include "spd.h" | 17 | #include "spd.h" |
1252 | 18 | #include "multiboot.h" | ||
1253 | 18 | 19 | ||
1254 | 19 | #define rdmsr(msr,val1,val2) \ | 20 | #define rdmsr(msr,val1,val2) \ |
1255 | 20 | __asm__ __volatile__("rdmsr" \ | 21 | __asm__ __volatile__("rdmsr" \ |
1256 | @@ -65,7 +66,7 @@ | |||
1257 | 65 | for(i=0, pp=(char *)(SCREEN_ADR+1); i<TITLE_WIDTH; i++, pp+=2) { | 66 | for(i=0, pp=(char *)(SCREEN_ADR+1); i<TITLE_WIDTH; i++, pp+=2) { |
1258 | 66 | *pp = 0x20; | 67 | *pp = 0x20; |
1259 | 67 | } | 68 | } |
1261 | 68 | cprint(0, 0, " Memtest86 v4.00 "); | 69 | cprint(0, 0, " Memtest86 v4.10 "); |
1262 | 69 | 70 | ||
1263 | 70 | for(i=0, pp=(char *)(SCREEN_ADR+1); i<2; i++, pp+=30) { | 71 | for(i=0, pp=(char *)(SCREEN_ADR+1); i<2; i++, pp+=30) { |
1264 | 71 | *pp = 0xA4; | 72 | *pp = 0xA4; |
1265 | @@ -98,7 +99,10 @@ | |||
1266 | 98 | /* Determine the memory map */ | 99 | /* Determine the memory map */ |
1267 | 99 | if ((firmware == FIRMWARE_UNKNOWN) && | 100 | if ((firmware == FIRMWARE_UNKNOWN) && |
1268 | 100 | (memsz_mode != SZ_MODE_PROBE)) { | 101 | (memsz_mode != SZ_MODE_PROBE)) { |
1270 | 101 | if (query_linuxbios()) { | 102 | if (query_multiboot()) { |
1271 | 103 | firmware = FIRMWARE_MULTIBOOT; | ||
1272 | 104 | } | ||
1273 | 105 | else if (query_linuxbios()) { | ||
1274 | 102 | firmware = FIRMWARE_LINUXBIOS; | 106 | firmware = FIRMWARE_LINUXBIOS; |
1275 | 103 | } | 107 | } |
1276 | 104 | else if (query_pcbios()) { | 108 | else if (query_pcbios()) { |
1277 | @@ -777,6 +781,41 @@ | |||
1278 | 777 | break; | 781 | break; |
1279 | 778 | } | 782 | } |
1280 | 779 | } | 783 | } |
1281 | 784 | |||
1282 | 785 | // If no cache found, check if deterministic cache info are available | ||
1283 | 786 | if(l1_cache == 0 && ((cpu_id.dcache0_eax >> 5) & 7) == 1) | ||
1284 | 787 | { | ||
1285 | 788 | |||
1286 | 789 | long dcache[] = { cpu_id.dcache0_eax, cpu_id.dcache0_ebx, cpu_id.dcache0_ecx, cpu_id.dcache0_edx, | ||
1287 | 790 | cpu_id.dcache1_eax, cpu_id.dcache1_ebx, cpu_id.dcache1_ecx, cpu_id.dcache1_edx, | ||
1288 | 791 | cpu_id.dcache2_eax, cpu_id.dcache2_ebx, cpu_id.dcache2_ecx, cpu_id.dcache2_edx, | ||
1289 | 792 | cpu_id.dcache3_eax, cpu_id.dcache3_ebx, cpu_id.dcache3_ecx, cpu_id.dcache3_edx | ||
1290 | 793 | }; | ||
1291 | 794 | |||
1292 | 795 | for(i=0; i<4; i++) | ||
1293 | 796 | { | ||
1294 | 797 | switch((dcache[i*4] >> 5) & 7) | ||
1295 | 798 | { | ||
1296 | 799 | case 1: | ||
1297 | 800 | // We don't want L1 I-Cache, only L1 D-Cache | ||
1298 | 801 | if((dcache[i*4] & 3) != 2) | ||
1299 | 802 | { | ||
1300 | 803 | l1_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1); | ||
1301 | 804 | l1_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024; | ||
1302 | 805 | } | ||
1303 | 806 | break; | ||
1304 | 807 | case 2: | ||
1305 | 808 | l2_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1); | ||
1306 | 809 | l2_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024; | ||
1307 | 810 | break; | ||
1308 | 811 | case 3: | ||
1309 | 812 | l3_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1); | ||
1310 | 813 | l3_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024; | ||
1311 | 814 | break; | ||
1312 | 815 | } | ||
1313 | 816 | } | ||
1314 | 817 | } | ||
1315 | 818 | |||
1316 | 780 | 819 | ||
1317 | 781 | switch(cpu_id.type) { | 820 | switch(cpu_id.type) { |
1318 | 782 | case 5: | 821 | case 5: |
1319 | @@ -818,7 +857,7 @@ | |||
1320 | 818 | if(((cpu_id.ext >> 16) & 0xF) > 1) { | 857 | if(((cpu_id.ext >> 16) & 0xF) > 1) { |
1321 | 819 | cprint(LINE_CPU, 0, "Intel Core i3/i5"); | 858 | cprint(LINE_CPU, 0, "Intel Core i3/i5"); |
1322 | 820 | tsc_invariable = 1; | 859 | tsc_invariable = 1; |
1324 | 821 | imc_type = 0x0002; | 860 | imc_type = 0x0003; |
1325 | 822 | off = 16; | 861 | off = 16; |
1326 | 823 | } else { | 862 | } else { |
1327 | 824 | cprint(LINE_CPU, 0, "Intel EP80579"); | 863 | cprint(LINE_CPU, 0, "Intel EP80579"); |
1328 | @@ -876,10 +915,16 @@ | |||
1329 | 876 | break; | 915 | break; |
1330 | 877 | case 10: | 916 | case 10: |
1331 | 878 | if (((cpu_id.ext >> 16) & 0xF) != 0) { | 917 | if (((cpu_id.ext >> 16) & 0xF) != 0) { |
1336 | 879 | tsc_invariable = 1; | 918 | tsc_invariable = 1; |
1337 | 880 | imc_type = 0x0001; | 919 | if(((cpu_id.ext >> 16) & 0xF) > 1) { |
1338 | 881 | cprint(LINE_CPU, 0, "Intel Core i7"); | 920 | cprint(LINE_CPU, 0, "Intel SNB"); |
1339 | 882 | off = 13; | 921 | imc_type = 0x0003; |
1340 | 922 | off = 9; | ||
1341 | 923 | } else { | ||
1342 | 924 | imc_type = 0x0001; | ||
1343 | 925 | cprint(LINE_CPU, 0, "Intel Core i7"); | ||
1344 | 926 | off = 13; | ||
1345 | 927 | } | ||
1346 | 883 | } else { | 928 | } else { |
1347 | 884 | cprint(LINE_CPU, 0, "Pentium III Xeon"); | 929 | cprint(LINE_CPU, 0, "Pentium III Xeon"); |
1348 | 885 | off = 16; | 930 | off = 16; |
1349 | @@ -887,10 +932,10 @@ | |||
1350 | 887 | break; | 932 | break; |
1351 | 888 | case 12: | 933 | case 12: |
1352 | 889 | if (((cpu_id.ext >> 16) & 0xF) > 1) { | 934 | if (((cpu_id.ext >> 16) & 0xF) > 1) { |
1354 | 890 | cprint(LINE_CPU, 0, "Intel Core i9"); | 935 | cprint(LINE_CPU, 0, "Core i7 (32nm)"); |
1355 | 891 | tsc_invariable = 1; | 936 | tsc_invariable = 1; |
1356 | 892 | imc_type = 0x0002; | 937 | imc_type = 0x0002; |
1358 | 893 | off = 13; | 938 | off = 14; |
1359 | 894 | } else { | 939 | } else { |
1360 | 895 | l1_cache = 24; | 940 | l1_cache = 24; |
1361 | 896 | cprint(LINE_CPU, 0, "Atom (0.045)"); | 941 | cprint(LINE_CPU, 0, "Atom (0.045)"); |
1362 | @@ -1369,7 +1414,7 @@ | |||
1363 | 1369 | "lodsl\n\t" \ | 1414 | "lodsl\n\t" \ |
1364 | 1370 | "loop L2\n\t" \ | 1415 | "loop L2\n\t" \ |
1365 | 1371 | :: "g" (src), "g" (wlen) | 1416 | :: "g" (src), "g" (wlen) |
1367 | 1372 | : "esi", "ecx" | 1417 | : "esi", "ecx", "eax" |
1368 | 1373 | ); | 1418 | ); |
1369 | 1374 | } | 1419 | } |
1370 | 1375 | asm __volatile__ ("rdtsc":"=a" (end_low),"=d" (end_high)); | 1420 | asm __volatile__ ("rdtsc":"=a" (end_low),"=d" (end_high)); |
1371 | 1376 | 1421 | ||
1372 | === modified file 'lib.c' | |||
1373 | --- lib.c 2009-09-29 23:40:15 +0000 | |||
1374 | +++ lib.c 2010-06-27 17:51:29 +0000 | |||
1375 | @@ -24,7 +24,7 @@ | |||
1376 | 24 | #error Bad SERIAL_TTY. Only ttyS0 and ttyS1 are supported. | 24 | #error Bad SERIAL_TTY. Only ttyS0 and ttyS1 are supported. |
1377 | 25 | #endif | 25 | #endif |
1378 | 26 | short serial_tty = SERIAL_TTY; | 26 | short serial_tty = SERIAL_TTY; |
1380 | 27 | const short serial_base_ports[] = {0x3f8, 0x2f8}; | 27 | const short serial_base_ports[] = {0x3f8, 0x2f8, 0x3e8, 0x2e8}; |
1381 | 28 | 28 | ||
1382 | 29 | #if ((115200%SERIAL_BAUD_RATE) != 0) | 29 | #if ((115200%SERIAL_BAUD_RATE) != 0) |
1383 | 30 | #error Bad default baud rate | 30 | #error Bad default baud rate |
1384 | @@ -1053,8 +1053,8 @@ | |||
1385 | 1053 | if (option == param) | 1053 | if (option == param) |
1386 | 1054 | return; /* there were no digits */ | 1054 | return; /* there were no digits */ |
1387 | 1055 | 1055 | ||
1390 | 1056 | if (tty > 1) | 1056 | if (tty > 3) |
1391 | 1057 | return; /* only ttyS0 and ttyS1 supported */ | 1057 | return; /* only ttyS0 to ttyS3 supported */ |
1392 | 1058 | 1058 | ||
1393 | 1059 | if (*option == '\0' || *option == ' ') | 1059 | if (*option == '\0' || *option == ' ') |
1394 | 1060 | goto save_tty; /* no options given, just ttyS? */ | 1060 | goto save_tty; /* no options given, just ttyS? */ |
1395 | 1061 | 1061 | ||
1396 | === modified file 'main.c' | |||
1397 | --- main.c 2009-09-29 23:40:15 +0000 | |||
1398 | +++ main.c 2010-06-27 17:51:29 +0000 | |||
1399 | @@ -11,9 +11,12 @@ | |||
1400 | 11 | #include "test.h" | 11 | #include "test.h" |
1401 | 12 | #include "defs.h" | 12 | #include "defs.h" |
1402 | 13 | #include "config.h" | 13 | #include "config.h" |
1403 | 14 | #include "multiboot.h" | ||
1404 | 14 | #undef TEST_TIMES | 15 | #undef TEST_TIMES |
1405 | 15 | #define DEFTESTS 9 | 16 | #define DEFTESTS 9 |
1406 | 16 | 17 | ||
1407 | 18 | extern struct multiboot_info *mbiptr; | ||
1408 | 19 | |||
1409 | 17 | extern void bzero(); | 20 | extern void bzero(); |
1410 | 18 | 21 | ||
1411 | 19 | const struct tseq tseq[] = { | 22 | const struct tseq tseq[] = { |
1412 | @@ -151,11 +154,15 @@ | |||
1413 | 151 | if (cmdline_parsed) | 154 | if (cmdline_parsed) |
1414 | 152 | return; | 155 | return; |
1415 | 153 | 156 | ||
1418 | 154 | if (*OLD_CL_MAGIC_ADDR != OLD_CL_MAGIC) | 157 | if (mbiptr && (mbiptr->flags & MULTIBOOT_INFO_CMDLINE)) { |
1419 | 155 | return; | 158 | cmdline = (void *) mbiptr->cmdline; |
1420 | 159 | } else { | ||
1421 | 160 | if (*OLD_CL_MAGIC_ADDR != OLD_CL_MAGIC) | ||
1422 | 161 | return; | ||
1423 | 156 | 162 | ||
1426 | 157 | unsigned short offset = *OLD_CL_OFFSET_ADDR; | 163 | unsigned short offset = *OLD_CL_OFFSET_ADDR; |
1427 | 158 | cmdline = MK_PTR(INITSEG, offset); | 164 | cmdline = MK_PTR(INITSEG, offset); |
1428 | 165 | } | ||
1429 | 159 | 166 | ||
1430 | 160 | /* skip leading spaces */ | 167 | /* skip leading spaces */ |
1431 | 161 | while (*cmdline == ' ') | 168 | while (*cmdline == ' ') |
1432 | 162 | 169 | ||
1433 | === modified file 'makeiso.sh' | |||
1434 | --- makeiso.sh 2009-09-29 23:40:15 +0000 | |||
1435 | +++ makeiso.sh 2010-06-27 17:51:29 +0000 | |||
1436 | @@ -37,9 +37,9 @@ | |||
1437 | 37 | echo -e "There is nothing to do here\r\r\nMemtest86+ is located on the bootsector of this CD\r\r\n" > README.TXT | 37 | echo -e "There is nothing to do here\r\r\nMemtest86+ is located on the bootsector of this CD\r\r\n" > README.TXT |
1438 | 38 | echo -e "Just boot from this CD and Memtest86+ will launch" >> README.TXT | 38 | echo -e "Just boot from this CD and Memtest86+ will launch" >> README.TXT |
1439 | 39 | 39 | ||
1442 | 40 | mkisofs -A "MKISOFS 1.1.2" -p "Memtest86+ 4.00" -publisher "Samuel D. <sdemeule@memtest.org>" -b boot/memtest.img -c boot/boot.catalog -V "MT201" -o memtest.iso . | 40 | mkisofs -A "MKISOFS 1.1.2" -p "Memtest86+ 4.10" -publisher "Samuel D. <sdemeule@memtest.org>" -b boot/memtest.img -c boot/boot.catalog -V "MT410" -o memtest.iso . |
1443 | 41 | mv memtest.iso ../mt400.iso | 41 | mv memtest.iso ../mt410.iso |
1444 | 42 | cd .. | 42 | cd .. |
1445 | 43 | rm -rf cd | 43 | rm -rf cd |
1446 | 44 | 44 | ||
1448 | 45 | echo "Done! Memtest86+ 4.00 ISO is mt400.iso" | 45 | echo "Done! Memtest86+ 4.10 ISO is mt410.iso" |
1449 | 46 | 46 | ||
1450 | === modified file 'memsize.c' | |||
1451 | --- memsize.c 2009-09-29 23:40:15 +0000 | |||
1452 | +++ memsize.c 2010-06-27 17:51:29 +0000 | |||
1453 | @@ -75,7 +75,7 @@ | |||
1454 | 75 | 75 | ||
1455 | 76 | static void memsize_bios() | 76 | static void memsize_bios() |
1456 | 77 | { | 77 | { |
1458 | 78 | if (firmware == FIRMWARE_PCBIOS) { | 78 | if (firmware == FIRMWARE_PCBIOS || firmware == FIRMWARE_MULTIBOOT) { |
1459 | 79 | memsize_820(); | 79 | memsize_820(); |
1460 | 80 | } | 80 | } |
1461 | 81 | else if (firmware == FIRMWARE_LINUXBIOS) { | 81 | else if (firmware == FIRMWARE_LINUXBIOS) { |
1462 | 82 | 82 | ||
1463 | === removed file 'memtest.exe' | |||
1464 | 83 | Binary files memtest.exe 2009-09-29 23:40:15 +0000 and memtest.exe 1970-01-01 00:00:00 +0000 differ | 83 | Binary files memtest.exe 2009-09-29 23:40:15 +0000 and memtest.exe 1970-01-01 00:00:00 +0000 differ |
1465 | === modified file 'memtest.lds' | |||
1466 | --- memtest.lds 2005-04-04 15:19:44 +0000 | |||
1467 | +++ memtest.lds 2010-06-27 17:51:29 +0000 | |||
1468 | @@ -3,7 +3,7 @@ | |||
1469 | 3 | 3 | ||
1470 | 4 | ENTRY(_start); | 4 | ENTRY(_start); |
1471 | 5 | SECTIONS { | 5 | SECTIONS { |
1473 | 6 | . = 0x10000; | 6 | . = 0x5000; |
1474 | 7 | _start = . ; | 7 | _start = . ; |
1475 | 8 | .data : { | 8 | .data : { |
1476 | 9 | *(.data) | 9 | *(.data) |
1477 | 10 | 10 | ||
1478 | === modified file 'mt86+_loader' | |||
1479 | 11 | Binary files mt86+_loader 2009-11-09 17:09:57 +0000 and mt86+_loader 2010-06-27 17:51:29 +0000 differ | 11 | Binary files mt86+_loader 2009-11-09 17:09:57 +0000 and mt86+_loader 2010-06-27 17:51:29 +0000 differ |
1480 | === modified file 'mt86+_loader.asm' | |||
1481 | --- mt86+_loader.asm 2009-11-09 17:09:57 +0000 | |||
1482 | +++ mt86+_loader.asm 2010-06-27 17:51:29 +0000 | |||
1483 | @@ -12,8 +12,8 @@ | |||
1484 | 12 | ; The good thing is that you get a single file which can be | 12 | ; The good thing is that you get a single file which can be |
1485 | 13 | ; compressed, for example with http://upx.sf.net/ (UPX). | 13 | ; compressed, for example with http://upx.sf.net/ (UPX). |
1486 | 14 | 14 | ||
1489 | 15 | %define fullsize (160280 + buffer - exeh) | 15 | %define fullsize (165080 + buffer - exeh) |
1490 | 16 | ; 160280 is the size of memtest86+ V4.00, adjust as needed! | 16 | ; 165080 is the size of memtest86+ V4.00, adjust as needed! |
1491 | 17 | 17 | ||
1492 | 18 | %define stacksize 2048 | 18 | %define stacksize 2048 |
1493 | 19 | %define stackpara ((stacksize + 15) / 16) | 19 | %define stackpara ((stacksize + 15) / 16) |
1494 | 20 | 20 | ||
1495 | === added file 'multiboot.c' | |||
1496 | --- multiboot.c 1970-01-01 00:00:00 +0000 | |||
1497 | +++ multiboot.c 2010-06-27 17:51:29 +0000 | |||
1498 | @@ -0,0 +1,49 @@ | |||
1499 | 1 | /* multiboot.c | ||
1500 | 2 | * | ||
1501 | 3 | * Copyright (C) 2008,2009 Robert Millan | ||
1502 | 4 | * | ||
1503 | 5 | * Loosely based on linuxbios.c, which is: | ||
1504 | 6 | * | ||
1505 | 7 | * Released under version 2 of the Gnu Public License. | ||
1506 | 8 | * By Eric Biederman | ||
1507 | 9 | */ | ||
1508 | 10 | |||
1509 | 11 | #include "multiboot.h" | ||
1510 | 12 | #include "test.h" | ||
1511 | 13 | |||
1512 | 14 | extern struct multiboot_info *mbiptr; | ||
1513 | 15 | |||
1514 | 16 | int query_multiboot(void) | ||
1515 | 17 | { | ||
1516 | 18 | struct multiboot_mmap_entry *mem; | ||
1517 | 19 | int i; | ||
1518 | 20 | |||
1519 | 21 | if (!mbiptr) { | ||
1520 | 22 | return 0; | ||
1521 | 23 | } | ||
1522 | 24 | if (!mbiptr->mmap_addr) { | ||
1523 | 25 | return 1; | ||
1524 | 26 | } | ||
1525 | 27 | if ((mbiptr->flags & MULTIBOOT_INFO_MEM_MAP) == 0) { | ||
1526 | 28 | return 1; | ||
1527 | 29 | } | ||
1528 | 30 | |||
1529 | 31 | mem = (struct multiboot_mmap_entry *) mbiptr->mmap_addr; | ||
1530 | 32 | mem_info.e820_nr = 0; | ||
1531 | 33 | |||
1532 | 34 | for (i = 0; i < E820MAX; i++) { | ||
1533 | 35 | if ((multiboot_uint32_t) mem >= (mbiptr->mmap_addr + mbiptr->mmap_length)) { | ||
1534 | 36 | break; | ||
1535 | 37 | } | ||
1536 | 38 | |||
1537 | 39 | mem_info.e820[mem_info.e820_nr].addr = mem->addr; | ||
1538 | 40 | mem_info.e820[mem_info.e820_nr].size = mem->len; | ||
1539 | 41 | /* Multiboot spec defines available / reserved types to match with E820. */ | ||
1540 | 42 | mem_info.e820[mem_info.e820_nr].type = mem->type; | ||
1541 | 43 | mem_info.e820_nr++; | ||
1542 | 44 | |||
1543 | 45 | mem = (struct multiboot_mmap_entry *) ((multiboot_uint32_t) mem + mem->size + sizeof (mem->size)); | ||
1544 | 46 | } | ||
1545 | 47 | |||
1546 | 48 | return 1; | ||
1547 | 49 | } | ||
1548 | 0 | 50 | ||
1549 | === added file 'multiboot.h' | |||
1550 | --- multiboot.h 1970-01-01 00:00:00 +0000 | |||
1551 | +++ multiboot.h 2010-06-27 17:51:29 +0000 | |||
1552 | @@ -0,0 +1,259 @@ | |||
1553 | 1 | /* multiboot.h - Multiboot header file. */ | ||
1554 | 2 | /* Copyright (C) 1999,2003,2007,2008,2009,2010 Free Software Foundation, Inc. | ||
1555 | 3 | * | ||
1556 | 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
1557 | 5 | * of this software and associated documentation files (the "Software"), to | ||
1558 | 6 | * deal in the Software without restriction, including without limitation the | ||
1559 | 7 | * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
1560 | 8 | * sell copies of the Software, and to permit persons to whom the Software is | ||
1561 | 9 | * furnished to do so, subject to the following conditions: | ||
1562 | 10 | * | ||
1563 | 11 | * The above copyright notice and this permission notice shall be included in | ||
1564 | 12 | * all copies or substantial portions of the Software. | ||
1565 | 13 | * | ||
1566 | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
1567 | 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
1568 | 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ANY | ||
1569 | 17 | * DEVELOPER OR DISTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
1570 | 18 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR | ||
1571 | 19 | * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
1572 | 20 | */ | ||
1573 | 21 | |||
1574 | 22 | #ifndef MULTIBOOT_HEADER | ||
1575 | 23 | #define MULTIBOOT_HEADER 1 | ||
1576 | 24 | |||
1577 | 25 | /* How many bytes from the start of the file we search for the header. */ | ||
1578 | 26 | #define MULTIBOOT_SEARCH 8192 | ||
1579 | 27 | |||
1580 | 28 | /* The magic field should contain this. */ | ||
1581 | 29 | #define MULTIBOOT_HEADER_MAGIC 0x1BADB002 | ||
1582 | 30 | |||
1583 | 31 | /* This should be in %eax. */ | ||
1584 | 32 | #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 | ||
1585 | 33 | |||
1586 | 34 | /* Alignment of multiboot modules. */ | ||
1587 | 35 | #define MULTIBOOT_MOD_ALIGN 0x00001000 | ||
1588 | 36 | |||
1589 | 37 | /* Alignment of the multiboot info structure. */ | ||
1590 | 38 | #define MULTIBOOT_INFO_ALIGN 0x00000004 | ||
1591 | 39 | |||
1592 | 40 | /* Flags set in the 'flags' member of the multiboot header. */ | ||
1593 | 41 | |||
1594 | 42 | /* Align all boot modules on i386 page (4KB) boundaries. */ | ||
1595 | 43 | #define MULTIBOOT_PAGE_ALIGN 0x00000001 | ||
1596 | 44 | |||
1597 | 45 | /* Must pass memory information to OS. */ | ||
1598 | 46 | #define MULTIBOOT_MEMORY_INFO 0x00000002 | ||
1599 | 47 | |||
1600 | 48 | /* Must pass video information to OS. */ | ||
1601 | 49 | #define MULTIBOOT_VIDEO_MODE 0x00000004 | ||
1602 | 50 | |||
1603 | 51 | /* This flag indicates the use of the address fields in the header. */ | ||
1604 | 52 | #define MULTIBOOT_AOUT_KLUDGE 0x00010000 | ||
1605 | 53 | |||
1606 | 54 | /* Flags to be set in the 'flags' member of the multiboot info structure. */ | ||
1607 | 55 | |||
1608 | 56 | /* is there basic lower/upper memory information? */ | ||
1609 | 57 | #define MULTIBOOT_INFO_MEMORY 0x00000001 | ||
1610 | 58 | /* is there a boot device set? */ | ||
1611 | 59 | #define MULTIBOOT_INFO_BOOTDEV 0x00000002 | ||
1612 | 60 | /* is the command-line defined? */ | ||
1613 | 61 | #define MULTIBOOT_INFO_CMDLINE 0x00000004 | ||
1614 | 62 | /* are there modules to do something with? */ | ||
1615 | 63 | #define MULTIBOOT_INFO_MODS 0x00000008 | ||
1616 | 64 | |||
1617 | 65 | /* These next two are mutually exclusive */ | ||
1618 | 66 | |||
1619 | 67 | /* is there a symbol table loaded? */ | ||
1620 | 68 | #define MULTIBOOT_INFO_AOUT_SYMS 0x00000010 | ||
1621 | 69 | /* is there an ELF section header table? */ | ||
1622 | 70 | #define MULTIBOOT_INFO_ELF_SHDR 0X00000020 | ||
1623 | 71 | |||
1624 | 72 | /* is there a full memory map? */ | ||
1625 | 73 | #define MULTIBOOT_INFO_MEM_MAP 0x00000040 | ||
1626 | 74 | |||
1627 | 75 | /* Is there drive info? */ | ||
1628 | 76 | #define MULTIBOOT_INFO_DRIVE_INFO 0x00000080 | ||
1629 | 77 | |||
1630 | 78 | /* Is there a config table? */ | ||
1631 | 79 | #define MULTIBOOT_INFO_CONFIG_TABLE 0x00000100 | ||
1632 | 80 | |||
1633 | 81 | /* Is there a boot loader name? */ | ||
1634 | 82 | #define MULTIBOOT_INFO_BOOT_LOADER_NAME 0x00000200 | ||
1635 | 83 | |||
1636 | 84 | /* Is there a APM table? */ | ||
1637 | 85 | #define MULTIBOOT_INFO_APM_TABLE 0x00000400 | ||
1638 | 86 | |||
1639 | 87 | /* Is there video information? */ | ||
1640 | 88 | #define MULTIBOOT_INFO_VBE_INFO 0x00000800 | ||
1641 | 89 | #define MULTIBOOT_INFO_FRAMEBUFFER_INFO 0x00001000 | ||
1642 | 90 | |||
1643 | 91 | #ifndef ASM_FILE | ||
1644 | 92 | |||
1645 | 93 | typedef unsigned char multiboot_uint8_t; | ||
1646 | 94 | typedef unsigned short multiboot_uint16_t; | ||
1647 | 95 | typedef unsigned int multiboot_uint32_t; | ||
1648 | 96 | typedef unsigned long long multiboot_uint64_t; | ||
1649 | 97 | |||
1650 | 98 | struct multiboot_header | ||
1651 | 99 | { | ||
1652 | 100 | /* Must be MULTIBOOT_MAGIC - see above. */ | ||
1653 | 101 | multiboot_uint32_t magic; | ||
1654 | 102 | |||
1655 | 103 | /* Feature flags. */ | ||
1656 | 104 | multiboot_uint32_t flags; | ||
1657 | 105 | |||
1658 | 106 | /* The above fields plus this one must equal 0 mod 2^32. */ | ||
1659 | 107 | multiboot_uint32_t checksum; | ||
1660 | 108 | |||
1661 | 109 | /* These are only valid if MULTIBOOT_AOUT_KLUDGE is set. */ | ||
1662 | 110 | multiboot_uint32_t header_addr; | ||
1663 | 111 | multiboot_uint32_t load_addr; | ||
1664 | 112 | multiboot_uint32_t load_end_addr; | ||
1665 | 113 | multiboot_uint32_t bss_end_addr; | ||
1666 | 114 | multiboot_uint32_t entry_addr; | ||
1667 | 115 | |||
1668 | 116 | /* These are only valid if MULTIBOOT_VIDEO_MODE is set. */ | ||
1669 | 117 | multiboot_uint32_t mode_type; | ||
1670 | 118 | multiboot_uint32_t width; | ||
1671 | 119 | multiboot_uint32_t height; | ||
1672 | 120 | multiboot_uint32_t depth; | ||
1673 | 121 | }; | ||
1674 | 122 | |||
1675 | 123 | /* The symbol table for a.out. */ | ||
1676 | 124 | struct multiboot_aout_symbol_table | ||
1677 | 125 | { | ||
1678 | 126 | multiboot_uint32_t tabsize; | ||
1679 | 127 | multiboot_uint32_t strsize; | ||
1680 | 128 | multiboot_uint32_t addr; | ||
1681 | 129 | multiboot_uint32_t reserved; | ||
1682 | 130 | }; | ||
1683 | 131 | typedef struct multiboot_aout_symbol_table multiboot_aout_symbol_table_t; | ||
1684 | 132 | |||
1685 | 133 | /* The section header table for ELF. */ | ||
1686 | 134 | struct multiboot_elf_section_header_table | ||
1687 | 135 | { | ||
1688 | 136 | multiboot_uint32_t num; | ||
1689 | 137 | multiboot_uint32_t size; | ||
1690 | 138 | multiboot_uint32_t addr; | ||
1691 | 139 | multiboot_uint32_t shndx; | ||
1692 | 140 | }; | ||
1693 | 141 | typedef struct multiboot_elf_section_header_table multiboot_elf_section_header_table_t; | ||
1694 | 142 | |||
1695 | 143 | struct multiboot_color | ||
1696 | 144 | { | ||
1697 | 145 | multiboot_uint8_t red; | ||
1698 | 146 | multiboot_uint8_t green; | ||
1699 | 147 | multiboot_uint8_t blue; | ||
1700 | 148 | }; | ||
1701 | 149 | |||
1702 | 150 | struct multiboot_info | ||
1703 | 151 | { | ||
1704 | 152 | /* Multiboot info version number */ | ||
1705 | 153 | multiboot_uint32_t flags; | ||
1706 | 154 | |||
1707 | 155 | /* Available memory from BIOS */ | ||
1708 | 156 | multiboot_uint32_t mem_lower; | ||
1709 | 157 | multiboot_uint32_t mem_upper; | ||
1710 | 158 | |||
1711 | 159 | /* "root" partition */ | ||
1712 | 160 | multiboot_uint32_t boot_device; | ||
1713 | 161 | |||
1714 | 162 | /* Kernel command line */ | ||
1715 | 163 | multiboot_uint32_t cmdline; | ||
1716 | 164 | |||
1717 | 165 | /* Boot-Module list */ | ||
1718 | 166 | multiboot_uint32_t mods_count; | ||
1719 | 167 | multiboot_uint32_t mods_addr; | ||
1720 | 168 | |||
1721 | 169 | union | ||
1722 | 170 | { | ||
1723 | 171 | multiboot_aout_symbol_table_t aout_sym; | ||
1724 | 172 | multiboot_elf_section_header_table_t elf_sec; | ||
1725 | 173 | } u; | ||
1726 | 174 | |||
1727 | 175 | /* Memory Mapping buffer */ | ||
1728 | 176 | multiboot_uint32_t mmap_length; | ||
1729 | 177 | multiboot_uint32_t mmap_addr; | ||
1730 | 178 | |||
1731 | 179 | /* Drive Info buffer */ | ||
1732 | 180 | multiboot_uint32_t drives_length; | ||
1733 | 181 | multiboot_uint32_t drives_addr; | ||
1734 | 182 | |||
1735 | 183 | /* ROM configuration table */ | ||
1736 | 184 | multiboot_uint32_t config_table; | ||
1737 | 185 | |||
1738 | 186 | /* Boot Loader Name */ | ||
1739 | 187 | multiboot_uint32_t boot_loader_name; | ||
1740 | 188 | |||
1741 | 189 | /* APM table */ | ||
1742 | 190 | multiboot_uint32_t apm_table; | ||
1743 | 191 | |||
1744 | 192 | /* Video */ | ||
1745 | 193 | multiboot_uint32_t vbe_control_info; | ||
1746 | 194 | multiboot_uint32_t vbe_mode_info; | ||
1747 | 195 | multiboot_uint16_t vbe_mode; | ||
1748 | 196 | multiboot_uint16_t vbe_interface_seg; | ||
1749 | 197 | multiboot_uint16_t vbe_interface_off; | ||
1750 | 198 | multiboot_uint16_t vbe_interface_len; | ||
1751 | 199 | |||
1752 | 200 | multiboot_uint64_t framebuffer_addr; | ||
1753 | 201 | multiboot_uint32_t framebuffer_pitch; | ||
1754 | 202 | multiboot_uint32_t framebuffer_width; | ||
1755 | 203 | multiboot_uint32_t framebuffer_height; | ||
1756 | 204 | multiboot_uint8_t framebuffer_bpp; | ||
1757 | 205 | #define MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED 0 | ||
1758 | 206 | #define MULTIBOOT_FRAMEBUFFER_TYPE_RGB 1 | ||
1759 | 207 | #define MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT 2 | ||
1760 | 208 | multiboot_uint8_t framebuffer_type; | ||
1761 | 209 | union | ||
1762 | 210 | { | ||
1763 | 211 | /* Indexed color. */ | ||
1764 | 212 | struct | ||
1765 | 213 | { | ||
1766 | 214 | struct multiboot_color *framebuffer_palette_addr; | ||
1767 | 215 | multiboot_uint16_t framebuffer_palette_num_colors; | ||
1768 | 216 | }; | ||
1769 | 217 | |||
1770 | 218 | /* Direct RGB color. */ | ||
1771 | 219 | struct | ||
1772 | 220 | { | ||
1773 | 221 | multiboot_uint8_t framebuffer_red_field_position; | ||
1774 | 222 | multiboot_uint8_t framebuffer_red_mask_size; | ||
1775 | 223 | multiboot_uint8_t framebuffer_green_field_position; | ||
1776 | 224 | multiboot_uint8_t framebuffer_green_mask_size; | ||
1777 | 225 | multiboot_uint8_t framebuffer_blue_field_position; | ||
1778 | 226 | multiboot_uint8_t framebuffer_blue_mask_size; | ||
1779 | 227 | }; | ||
1780 | 228 | }; | ||
1781 | 229 | }; | ||
1782 | 230 | typedef struct multiboot_info multiboot_info_t; | ||
1783 | 231 | |||
1784 | 232 | struct multiboot_mmap_entry | ||
1785 | 233 | { | ||
1786 | 234 | multiboot_uint32_t size; | ||
1787 | 235 | multiboot_uint64_t addr; | ||
1788 | 236 | multiboot_uint64_t len; | ||
1789 | 237 | #define MULTIBOOT_MEMORY_AVAILABLE 1 | ||
1790 | 238 | #define MULTIBOOT_MEMORY_RESERVED 2 | ||
1791 | 239 | multiboot_uint32_t type; | ||
1792 | 240 | } __attribute__((packed)); | ||
1793 | 241 | typedef struct multiboot_mmap_entry multiboot_memory_map_t; | ||
1794 | 242 | |||
1795 | 243 | struct multiboot_mod_list | ||
1796 | 244 | { | ||
1797 | 245 | /* the memory used goes from bytes 'mod_start' to 'mod_end-1' inclusive */ | ||
1798 | 246 | multiboot_uint32_t mod_start; | ||
1799 | 247 | multiboot_uint32_t mod_end; | ||
1800 | 248 | |||
1801 | 249 | /* Module command line */ | ||
1802 | 250 | multiboot_uint32_t cmdline; | ||
1803 | 251 | |||
1804 | 252 | /* padding to take it to 16 bytes (must be zero) */ | ||
1805 | 253 | multiboot_uint32_t pad; | ||
1806 | 254 | }; | ||
1807 | 255 | typedef struct multiboot_mod_list multiboot_module_t; | ||
1808 | 256 | |||
1809 | 257 | #endif /* ! ASM_FILE */ | ||
1810 | 258 | |||
1811 | 259 | #endif /* ! MULTIBOOT_HEADER */ | ||
1812 | 0 | 260 | ||
1813 | === modified file 'precomp.bin' | |||
1814 | 1 | Binary files precomp.bin 2009-11-09 17:09:57 +0000 and precomp.bin 2010-06-27 17:51:29 +0000 differ | 261 | Binary files precomp.bin 2009-11-09 17:09:57 +0000 and precomp.bin 2010-06-27 17:51:29 +0000 differ |
1815 | === modified file 'test.h' | |||
1816 | --- test.h 2009-09-29 23:40:15 +0000 | |||
1817 | +++ test.h 2010-06-27 17:51:29 +0000 | |||
1818 | @@ -14,9 +14,9 @@ | |||
1819 | 14 | #define E801 0x04 | 14 | #define E801 0x04 |
1820 | 15 | #define E820NR 0x08 /* # entries in E820MAP */ | 15 | #define E820NR 0x08 /* # entries in E820MAP */ |
1821 | 16 | #define E820MAP 0x0c /* our map */ | 16 | #define E820MAP 0x0c /* our map */ |
1823 | 17 | #define E820MAX 32 /* number of entries in E820MAP */ | 17 | #define E820MAX 64 /* number of entries in E820MAP */ |
1824 | 18 | #define E820ENTRY_SIZE 20 | 18 | #define E820ENTRY_SIZE 20 |
1826 | 19 | #define MEMINFO_SIZE 0x28c | 19 | #define MEMINFO_SIZE (E820MAP + E820MAX * E820ENTRY_SIZE) |
1827 | 20 | #define MAX_DMI_MEMDEVS 16 | 20 | #define MAX_DMI_MEMDEVS 16 |
1828 | 21 | 21 | ||
1829 | 22 | #ifndef __ASSEMBLY__ | 22 | #ifndef __ASSEMBLY__ |
1830 | @@ -106,6 +106,7 @@ | |||
1831 | 106 | void *memmove(void *dest, const void *src, ulong n); | 106 | void *memmove(void *dest, const void *src, ulong n); |
1832 | 107 | int query_linuxbios(void); | 107 | int query_linuxbios(void); |
1833 | 108 | int query_pcbios(void); | 108 | int query_pcbios(void); |
1834 | 109 | int query_multiboot(void); | ||
1835 | 109 | int insertaddress(ulong); | 110 | int insertaddress(ulong); |
1836 | 110 | void printpatn(void); | 111 | void printpatn(void); |
1837 | 111 | void printpatn(void); | 112 | void printpatn(void); |
1838 | @@ -269,6 +270,22 @@ | |||
1839 | 269 | long pwrcap; | 270 | long pwrcap; |
1840 | 270 | long ext; | 271 | long ext; |
1841 | 271 | long feature_flag; | 272 | long feature_flag; |
1842 | 273 | long dcache0_eax; | ||
1843 | 274 | long dcache0_ebx; | ||
1844 | 275 | long dcache0_ecx; | ||
1845 | 276 | long dcache0_edx; | ||
1846 | 277 | long dcache1_eax; | ||
1847 | 278 | long dcache1_ebx; | ||
1848 | 279 | long dcache1_ecx; | ||
1849 | 280 | long dcache1_edx; | ||
1850 | 281 | long dcache2_eax; | ||
1851 | 282 | long dcache2_ebx; | ||
1852 | 283 | long dcache2_ecx; | ||
1853 | 284 | long dcache2_edx; | ||
1854 | 285 | long dcache3_eax; | ||
1855 | 286 | long dcache3_ebx; | ||
1856 | 287 | long dcache3_ecx; | ||
1857 | 288 | long dcache3_edx; | ||
1858 | 272 | }; | 289 | }; |
1859 | 273 | 290 | ||
1860 | 274 | struct xadr { | 291 | struct xadr { |
1861 | @@ -335,6 +352,7 @@ | |||
1862 | 335 | #define FIRMWARE_UNKNOWN 0 | 352 | #define FIRMWARE_UNKNOWN 0 |
1863 | 336 | #define FIRMWARE_PCBIOS 1 | 353 | #define FIRMWARE_PCBIOS 1 |
1864 | 337 | #define FIRMWARE_LINUXBIOS 2 | 354 | #define FIRMWARE_LINUXBIOS 2 |
1865 | 355 | #define FIRMWARE_MULTIBOOT 3 | ||
1866 | 338 | 356 | ||
1867 | 339 | extern struct vars * const v; | 357 | extern struct vars * const v; |
1868 | 340 | extern unsigned char _start[], _end[], startup_32[]; | 358 | extern unsigned char _start[], _end[], startup_32[]; |