Merge lp:~lfaraone/ubuntu/maverick/memtest86+/4.10-1ubuntu1 into lp:ubuntu/maverick/memtest86+

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
Reviewer Review Type Date Requested Status
Ubuntu Sponsors Pending
Review via email: mp+28594@code.launchpad.net
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
=== modified file 'Makefile'
--- Makefile 2009-11-09 17:09:57 +0000
+++ Makefile 2010-06-27 17:51:29 +0000
@@ -13,9 +13,14 @@
1313
14CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector14CFLAGS= -Wall -march=i486 -m32 -O2 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC -fno-stack-protector
1515
16# This reverts a change introduced with recent binutils (post
17# http://sourceware.org/bugzilla/show_bug.cgi?id=10569). Needed to
18# ensure Multiboot header is within the limit offset.
19LD += -z max-page-size=0x1000
20
16OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \21OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \
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 \
18 error.o dmi.o cpuid.o23 error.o dmi.o cpuid.o multiboot.o
1924
20all: memtest.bin memtest25all: memtest.bin memtest
2126
2227
=== modified file 'README'
--- README 2009-09-29 23:40:15 +0000
+++ README 2010-06-27 17:51:29 +0000
@@ -1,4 +1,4 @@
1Memtest86++ v4.001Memtest86++ v4.10
2====================2====================
33
4Table of Contents4Table of Contents
55
=== modified file 'changelog'
--- changelog 2009-11-09 17:09:57 +0000
+++ changelog 2010-06-27 17:51:29 +0000
@@ -1,19 +1,11 @@
1Memtest86+ V4.00 changelog1Memtest86+ V4.10 changelog
2--------------------------2--------------------------
33
4 - Major Architectural changes4 - Added support for Core i7 Extreme CPU (32nm)
5 - First pass twice faster (reduced iterations)5 - Added support for Core i5/i3 (32 nm)
6 - Detect DDR2/3 brands and part numbers6 - Added support for Pentium Gxxxx (32 mn)
7 - Corrected detection for Intel "Lynnfield" CPU7 - Added support for Westmere-based Xeon
8 - Added detection for Intel "Clarkdale" CPU8 - Added preliminary support for Intel Sandy Bridge
9 - Added detection for Intel "Gulftown" CPU9 - Added support for AMD 6-cores CPU
10 - Corrected detection for AMD 45nm K10 CPU10 - Added detection for Intel 3200/3210
11 - Added detection for AMD "Magny-Cours" CPU11 - Many bug fixes
12 - Solved crash with AMD Geode LX
13 - Added detection for Intel XMP Memory
14 - Added for CPU w/ 0.5/1.5/3/6/12/16/18/24MB L3
15 - Added "clean" DMI detection for DDR3/FBDIMM2
16 - Better detection of Integrated Memory Ctrl
17 - Complies with SMBIOS 2.6.1 specs
18 - Fixed compilation issues with gcc 4.2+
19 - Many others bug fixes
2012
=== modified file 'controller.c'
--- controller.c 2009-11-09 17:09:57 +0000
+++ controller.c 2010-06-27 17:51:29 +0000
@@ -16,6 +16,7 @@
16#include "spd.h"16#include "spd.h"
17#include "test.h"17#include "test.h"
1818
19
19int col, col2;20int col, col2;
20int nhm_bus = 0x3F;21int nhm_bus = 0x3F;
21 22
@@ -160,6 +161,8 @@
160 col2 += 1;161 col2 += 1;
161}162}
162163
164
165
163static void poll_fsb_nothing(void)166static void poll_fsb_nothing(void)
164{167{
165/* Code to run for no specific fsb detection */168/* Code to run for no specific fsb detection */
@@ -187,6 +190,23 @@
187 return;190 return;
188}191}
189192
193static void setup_wmr(void)
194{
195
196 // Activate MMR I/O
197 ulong dev0;
198 ctrl.cap = ECC_CORRECT;
199
200 pci_conf_read( 0, 0, 0, 0x48, 4, &dev0);
201 if (!(dev0 & 0x1)) {
202 pci_conf_write( 0, 0, 0, 0x48, 1, dev0 | 1);
203 }
204
205 ctrl.mode = ECC_NONE;
206
207}
208
209
190static void setup_nhm(void)210static void setup_nhm(void)
191{211{
192 static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F};212 static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F};
@@ -204,7 +224,7 @@
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);
205 vid &= 0xFFFF;225 vid &= 0xFFFF;
206 did &= 0xFF00;226 did &= 0xFF00;
207 if(vid == 0x8086 && did == 0x2C00) { 227 if(vid == 0x8086 && did >= 0x2C00) {
208 nhm_bus = possible_nhm_bus[i]; 228 nhm_bus = possible_nhm_bus[i];
209 }229 }
210}230}
@@ -223,6 +243,41 @@
223 243
224}244}
225245
246static void setup_nhm32(void)
247{
248 static float possible_nhm_bus[] = {0xFF, 0x7F, 0x3F};
249 unsigned long did, vid, mc_control, mc_ssrcontrol;
250 int i;
251
252 //Nehalem supports Scrubbing */
253 ctrl.cap = ECC_SCRUB;
254 ctrl.mode = ECC_NONE;
255
256 /* First, locate the PCI bus where the MCH is located */
257
258 for(i = 0; i < sizeof(possible_nhm_bus); i++) {
259 pci_conf_read( possible_nhm_bus[i], 3, 4, 0x00, 2, &vid);
260 pci_conf_read( possible_nhm_bus[i], 3, 4, 0x02, 2, &did);
261 vid &= 0xFFFF;
262 did &= 0xFF00;
263 if(vid == 0x8086 && did >= 0x2C00) {
264 nhm_bus = possible_nhm_bus[i];
265 }
266}
267
268 /* Now, we have the last IMC bus number in nhm_bus */
269 /* Check for ECC & Scrub */
270 pci_conf_read(nhm_bus, 3, 0, 0x48, 2, &mc_control);
271 if((mc_control >> 1) & 1) {
272 ctrl.mode = ECC_CORRECT;
273 pci_conf_read(nhm_bus, 3, 2, 0x48, 2, &mc_ssrcontrol);
274 if(mc_ssrcontrol & 1) {
275 ctrl.mode = ECC_SCRUB;
276 }
277 }
278
279}
280
226static void setup_amd64(void)281static void setup_amd64(void)
227{282{
228283
@@ -1175,6 +1230,58 @@
1175 return coef;1230 return coef;
1176}1231}
11771232
1233
1234void getIntelPNS(void)
1235{
1236 int i,j;
1237 long psn_eax, psn_ebx, psn_ecx, psn_edx;
1238 long char_hex;
1239 long ocpuid = 0x80000002;
1240
1241 for(j = 0; j < 4; j++)
1242 {
1243
1244 asm __volatile__(
1245 "pushl %%ebx\n\t" \
1246 "cpuid\n\t" \
1247 "movl %%ebx, %1\n\t" \
1248 "popl %%ebx\n\t" \
1249 : "=a" (psn_eax), "=r" (psn_ebx), "=c" (psn_ecx), "=d" (psn_edx)
1250 : "a" (ocpuid)
1251 : "cc"
1252 );
1253
1254
1255 for(i = 0; i < 4; i++)
1256 {
1257 char_hex = (psn_eax >> (i*8)) & 0xff;
1258 cprint(LINE_CPU+5, col + i, convert_hex_to_char(char_hex));
1259
1260 char_hex = (psn_ebx >> (i*8)) & 0xff;
1261 cprint(LINE_CPU+5, col + i + 4, convert_hex_to_char(char_hex));
1262
1263 if(psn_ecx != 0x20202020)
1264 {
1265 char_hex = (psn_ecx >> (i*8)) & 0xff;
1266 cprint(LINE_CPU+5, col + i + 8, convert_hex_to_char(char_hex));
1267
1268 char_hex = (psn_edx >> (i*8)) & 0xff;
1269 cprint(LINE_CPU+5, col + i + 12, convert_hex_to_char(char_hex));
1270 }
1271 else
1272 {
1273 char_hex = (psn_edx >> (i*8)) & 0xff;
1274 cprint(LINE_CPU+5, col + i + 8, convert_hex_to_char(char_hex));
1275 }
1276 }
1277 (psn_ecx != 0x20202020)?(col += 16):(col +=12);
1278 if(psn_edx == 0x20202020) { col -= 4; }
1279 ocpuid++;
1280 }
1281
1282 col -= 16;
1283}
1284
1178static void poll_fsb_amd64(void) {1285static void poll_fsb_amd64(void) {
11791286
1180 unsigned int mcgsrl;1287 unsigned int mcgsrl;
@@ -2092,6 +2199,98 @@
20922199
2093}2200}
20942201
2202static void poll_fsb_nhm32(void) {
2203
2204 double dramclock, dramratio, fsb;
2205 unsigned long mc_dimm_clk_ratio, qpi_pll_status;
2206 float coef = getNHMmultiplier();
2207 float qpi_speed;
2208
2209 fsb = ((extclock /1000) / coef);
2210
2211 /* Print FSB */
2212 cprint(LINE_CPU+5, col +1, "/ BCLK : ");
2213 col += 10;
2214 dprint(LINE_CPU+5, col, fsb, 3,0);
2215 col += 3;
2216 cprint(LINE_CPU+5, col +1, "MHz");
2217 col += 4;
2218
2219 /* Print QPI Speed (if ECC not supported) */
2220 if(ctrl.mode == ECC_NONE && cpu_id.model == 12) {
2221 pci_conf_read(nhm_bus, 2, 1, 0x50, 2, &qpi_pll_status);
2222 qpi_speed = (qpi_pll_status & 0x7F) * ((extclock / 1000) / coef) * 2;
2223 cprint(LINE_CPU+5, col +1, "/ QPI : ");
2224 col += 9;
2225 dprint(LINE_CPU+5, col, qpi_speed/1000, 1,0);
2226 col += 1;
2227 cprint(LINE_CPU+5, col, ".");
2228 col += 1;
2229 qpi_speed = ((qpi_speed / 1000) - (int)(qpi_speed / 1000)) * 10;
2230 dprint(LINE_CPU+5, col, qpi_speed, 1,0);
2231 col += 1;
2232 cprint(LINE_CPU+5, col +1, "GT/s");
2233 col += 5;
2234 }
2235
2236 /* Get the clock ratio */
2237
2238 pci_conf_read(nhm_bus, 3, 4, 0x50, 2, &mc_dimm_clk_ratio);
2239 dramratio = (mc_dimm_clk_ratio & 0x1F);
2240
2241 // Compute RAM Frequency
2242 fsb = ((extclock / 1000) / coef);
2243 dramclock = fsb * dramratio / 2;
2244
2245 // Print DRAM Freq
2246 print_fsb_info(dramclock, "RAM : ", "DDR3-");
2247
2248}
2249
2250static void poll_fsb_wmr(void) {
2251
2252 double dramclock, dramratio, fsb;
2253 unsigned long dev0, mchcfg;
2254 float coef = getNHMmultiplier();
2255 long *ptr;
2256
2257 fsb = ((extclock / 1000) / coef);
2258
2259 if(ctrl.mode == ECC_NONE)
2260 {
2261 col = 0;
2262 cprint(LINE_CPU+5, col, "IMC : "); col += 6;
2263 getIntelPNS();
2264 //cprint(LINE_CPU+5, col, "(ECC : Disabled)");
2265 //col += 16;
2266 }
2267
2268 /* Print FSB */
2269 cprint(LINE_CPU+5, col +1, "/ BCLK : ");
2270 col += 10;
2271 dprint(LINE_CPU+5, col, fsb, 3,0);
2272 col += 3;
2273 cprint(LINE_CPU+5, col +1, "MHz");
2274 col += 4;
2275
2276 /* Find dramratio */
2277 pci_conf_read( 0, 0, 0, 0x48, 4, &dev0);
2278 dev0 &= 0xFFFFC000;
2279 ptr=(long*)(dev0+0x2C20);
2280 mchcfg = *ptr & 0xFFFF;
2281 dramratio = 1;
2282
2283 /* Get the clock ratio */
2284 dramratio = 0.25 * (float)(*ptr & 0x1F);
2285
2286 // Compute RAM Frequency
2287 dramclock = fsb * dramratio;
2288
2289 // Print DRAM Freq
2290 print_fsb_info(dramclock, "RAM : ", "DDR3-");
2291
2292}
2293
2095/* ------------------ Here the code for Timings detection ------------------ */2294/* ------------------ Here the code for Timings detection ------------------ */
2096/* ------------------------------------------------------------------------- */2295/* ------------------------------------------------------------------------- */
20972296
@@ -2484,6 +2683,71 @@
24842683
2485}2684}
24862685
2686static void poll_timings_wmr(void) {
2687
2688 float cas;
2689 int rcd, rp, ras;
2690 ulong dev0, c0ckectrl, c1ckectrl, offset;
2691 ulong ODT_Control_Register, Precharge_Register, ACT_Register, Read_Register, MRC_Register;
2692 long *ptr;
2693
2694 //Now, read MMR Base Address
2695 pci_conf_read( 0, 0, 0, 0x48, 4, &dev0);
2696 dev0 &= 0xFFFFC000;
2697
2698 ptr = (long*)(dev0+0x260);
2699 c0ckectrl = *ptr & 0xFFFFFFFF;
2700
2701 ptr = (long*)(dev0+0x660);
2702 c1ckectrl = *ptr & 0xFFFFFFFF;
2703
2704 // If DIMM 0 not populated, check DIMM 1
2705 ((c0ckectrl) >> 20 & 0xF)?(offset = 0):(offset = 0x400);
2706
2707 ptr = (long*)(dev0+offset+0x265);
2708 ODT_Control_Register = *ptr & 0xFFFFFFFF;
2709
2710 ptr = (long*)(dev0+offset+0x25D);
2711 Precharge_Register = *ptr & 0xFFFFFFFF;
2712
2713 ptr = (long*)(dev0+offset+0x252);
2714 ACT_Register = *ptr & 0xFFFFFFFF;
2715
2716 ptr = (long*)(dev0+offset+0x258);
2717 Read_Register = *ptr & 0xFFFFFFFF;
2718
2719 ptr = (long*)(dev0+offset+0x240);
2720 MRC_Register = *ptr & 0xFFFFFFFF;
2721
2722 // CAS Latency (tCAS)
2723 if(MRC_Register & 0xF) {
2724 cas = (MRC_Register & 0xF) + 3.0f;
2725 } else {
2726 cas = ((ODT_Control_Register >> 8)& 0x3F) - 5.0f;
2727 }
2728
2729 // RAS-To-CAS (tRCD)
2730 rcd = (Read_Register >> 17) & 0xF;
2731
2732 // RAS Precharge (tRP)
2733 rp = (ACT_Register >> 13) & 0xF;
2734
2735 // RAS Active to precharge (tRAS)
2736 ras = Precharge_Register & 0x3F;
2737
2738 print_timings_info(cas, rcd, rp, ras);
2739
2740 cprint(LINE_CPU+6, col2+1, "/"); col2 +=2;
2741
2742 if ((c0ckectrl >> 20 & 0xF) && (c1ckectrl >> 20 & 0xF)) {
2743 cprint(LINE_CPU+6, col2+1, "Dual Channel");
2744 } else {
2745 cprint(LINE_CPU+6, col2+1, "Single Channel");
2746 }
2747
2748}
2749
2750
2487static void poll_timings_5400(void) {2751static void poll_timings_5400(void) {
24882752
2489 // Thanks for CDH optis2753 // Thanks for CDH optis
@@ -2938,7 +3202,7 @@
2938 fvc_bn = 4; 3202 fvc_bn = 4;
2939 } else if(mc_control & 2) { 3203 } else if(mc_control & 2) {
2940 fvc_bn = 5; 3204 fvc_bn = 5;
2941 } else if(mc_control & 7) { 3205 } else if(mc_control & 4) {
2942 fvc_bn = 6; 3206 fvc_bn = 6;
2943 }3207 }
29443208
@@ -3098,6 +3362,7 @@
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},
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},
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},
3365 { 0x8086, 0x29F0, "Intel 3200/3210", 0, poll_fsb_i965, poll_timings_p35, setup_p35, poll_nothing},
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},
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},
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},
@@ -3113,7 +3378,8 @@
31133378
3114 /* Integrated Memory Controllers */3379 /* Integrated Memory Controllers */
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},
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},
3382 { 0xFFFF, 0x0003, "Core IMC 32nm", 0, poll_fsb_wmr, poll_timings_wmr, setup_wmr, poll_nothing},
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 },
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 }
3119 3385
31203386
=== modified file 'debian/README.Debian'
--- debian/README.Debian 2008-11-13 10:37:16 +0000
+++ debian/README.Debian 2010-06-27 17:51:29 +0000
@@ -1,12 +1,18 @@
1memtest86+ for Debian1memtest86+ for Debian
2---------------------2---------------------
33
4Binary image is /boot/memtest86+.bin4Two binary images are provided:
55
6It is automatically registered against grub2. For other bootloaders6 - A legacy /boot/memtest86+.bin that uses Linux zImage boot
7you'll need to do some manual setup (see examples/grub-menu.lst for7 protocol.
8GRUB Legacy or examples/lilo.conf for LILO), or to make a boot-floppy,8
9and reboot on this image.9 - A Multiboot /boot/memtest86+_multiboot.bin image that follows the
10 Multiboot specification.
11
12memtest86+_multiboot.bin is automatically registered against grub2. For
13other bootloaders you'll need to do some manual setup (see
14examples/grub-menu.lst for GRUB Legacy or examples/lilo.conf for LILO),
15or to make a boot-floppy, and reboot on this image.
1016
11The make-memtest86+-boot-floppy utility will help you to create a17The make-memtest86+-boot-floppy utility will help you to create a
12boot floppy or floppy image using GRUB Legacy.18boot floppy or floppy image using GRUB Legacy.
1319
=== modified file 'debian/changelog'
--- debian/changelog 2010-03-23 09:33:34 +0000
+++ debian/changelog 2010-06-27 17:51:29 +0000
@@ -1,3 +1,62 @@
1memtest86+ (4.10-1ubuntu1) maverick; urgency=low
2
3 * Merge from Debian unstable. (LP: #599070) Remaining changes:
4 - Only run update-grub in the postrm on remove/purge.
5 - Update maintainer field.
6
7 -- Luke Faraone <luke@faraone.cc> Sun, 27 Jun 2010 12:54:15 -0400
8
9memtest86+ (4.10-1) unstable; urgency=low
10
11 * The "not yet source format 3.0" release.
12 * New upstream release (Closes: #586727).
13 * supports 64 e820 lines (Closes: #567165).
14 * Acknowledge NMUs (Closes: #565642).
15 * Don't emit grub2 menu items if /boot is on a loop-mounted device
16 (Ubuntu, Closes: 574788).
17 * Cache results of prepare_grub_to_access_device to speed up update-grub
18 runs (Ubuntu, Closes: #570987).
19 * Fix typo in package description (Robert Tomsick, Closes: #580147).
20 * Suggest "grub-pc | grub-legacy" instead of old "grub2 | grub" (Closes:
21 #568624).
22 * Include es.po for po-debconf (Francisco Javier Cuadrado, Closes:
23 #580953).
24 * Provide boot entries for non-multiboot image, and tag the multiboot
25 ones as experimental (mitigates #570499).
26 * Install elf image again (was silently dropped in -2.2).
27 * Bumped Standards-Version to 3.8.4, no change.
28
29 -- Yann Dirson <dirson@debian.org> Sun, 27 Jun 2010 15:16:43 +0200
30
31memtest86+ (4.00-2.3) unstable; urgency=low
32
33 * Non-maintainer upload.
34 * Check for grub.cfg in postinst. Closes: #550337
35
36 -- Michal Suchanek <hramrach@centrum.cz> Fri, 04 Jun 2010 13:50:53 +0200
37
38memtest86+ (4.00-2.2) unstable; urgency=low
39
40 * Non-maintainer upload.
41 * Build an image with Multiboot support. (Closes: #250864)
42 * Update de.po, fr.po, ja.po, pt.po, ru.po and sv.po.
43 (Closes: #563019, #563288, #564291, #564430, #564470, #565169)
44 * Fix in copyright line in debian/copyright to make lintian happy.
45
46 -- Robert Millan <rmh.debian@aybabtu.com> Sun, 17 Jan 2010 17:06:16 +0100
47
48memtest86+ (4.00-2.1) unstable; urgency=low
49
50 * Non-maintainer upload.
51 * Replace manual propt with debconf (Closes: #553292).
52 * Fix ".: 4: Can't open /usr/lib/grub/grub-mkconfig_lib" by checking
53 both grub files and also changing the linux/linux16 grub command based
54 on which version we find (Closes: #550096)
55 * Update suggests to a recent version of grub2
56 * Add a lintian override for statically-linked-binary (which is expected)
57
58 -- Iustin Pop <iusty@k1024.org> Sun, 06 Dec 2009 12:20:39 +0100
59
1memtest86+ (4.00-2ubuntu3) lucid; urgency=low60memtest86+ (4.00-2ubuntu3) lucid; urgency=low
261
3 * Only run update-grub in the postrm on remove/purge.62 * Only run update-grub in the postrm on remove/purge.
463
=== added file 'debian/config'
--- debian/config 1970-01-01 00:00:00 +0000
+++ debian/config 2010-06-27 17:51:29 +0000
@@ -0,0 +1,9 @@
1#!/bin/sh
2
3set -e
4
5. /usr/share/debconf/confmodule
6db_input medium shared/memtest86-run-lilo || true
7db_go || true
8
9#DEBHELPER#
010
=== modified file 'debian/control'
--- debian/control 2009-03-26 11:45:00 +0000
+++ debian/control 2010-06-27 17:51:29 +0000
@@ -1,16 +1,17 @@
1Source: memtest86+1Source: memtest86+
2Section: misc2Section: misc
3Priority: optional3Priority: optional
4Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Yann Dirson <dirson@debian.org>5XSBC-Original-Maintainer: Yann Dirson <dirson@debian.org>
6Build-Depends: debhelper (>> 5.0.0), dh-buildinfo, gcc-multilib [amd64 kfreebsd-amd64]6Build-Depends: debhelper (>> 5.0.0), dh-buildinfo, gcc-multilib [amd64 kfreebsd-amd64],
7 po-debconf
7Homepage: http://www.memtest.org/8Homepage: http://www.memtest.org/
8Standards-Version: 3.8.09Standards-Version: 3.8.4
910
10Package: memtest86+11Package: memtest86+
11Architecture: i386 amd64 kfreebsd-i386 kfreebsd-amd64 lpia hurd-i38612Architecture: i386 amd64 kfreebsd-i386 kfreebsd-amd64 lpia hurd-i386
12Depends: ${misc:Depends}13Depends: ${misc:Depends}
13Suggests: hwtools, memtester, kernel-patch-badram, memtest86, grub2 (>=1.95+20070515-1) | grub (>= 0.95+cvs20040624), mtools14Suggests: hwtools, memtester, kernel-patch-badram, memtest86, grub-pc | grub-legacy, mtools
14Description: thorough real-mode memory tester15Description: thorough real-mode memory tester
15 Memtest86+ scans your RAM for errors.16 Memtest86+ scans your RAM for errors.
16 .17 .
@@ -20,7 +21,7 @@
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.
21 .22 .
22 It can output a list of bad RAM regions usable by the BadRAM kernel23 It can output a list of bad RAM regions usable by the BadRAM kernel
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.
24 .25 .
25 Memtest86+ is based on memtest86 3.0, and adds support for recent26 Memtest86+ is based on memtest86 3.0, and adds support for recent
26 hardware, as well as a number of general-purpose improvements,27 hardware, as well as a number of general-purpose improvements,
2728
=== modified file 'debian/copyright'
--- debian/copyright 2009-03-26 11:45:00 +0000
+++ debian/copyright 2010-06-27 17:51:29 +0000
@@ -2,8 +2,9 @@
22
3It was downloaded from http://www.memtest.org/3It was downloaded from http://www.memtest.org/
44
5Upstream Author: Samuel Demeulemeester <memtest@memtest.org>, based on5Copyright (C) 2004,2005,2007,2009 by Samuel Demeulemeester
6memtest86 by Chris Brady <cbrady@sgi.com>, and various contributors.6<memtest@memtest.org>, based on memtest86 by Chris Brady
7<cbrady@sgi.com>, and various contributors.
78
8License:9License:
910
1011
=== modified file 'debian/grub'
--- debian/grub 2010-02-22 16:06:06 +0000
+++ debian/grub 2010-06-27 17:51:29 +0000
@@ -1,37 +1,59 @@
1#!/bin/sh1#!/bin/sh
2set -e2set -e
33
4# older versions of grub2 do not have this yet (LP: #459080)4if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then
5if [ ! -e /usr/lib/grub/grub-mkconfig_lib ]; then5 . /usr/lib/grub/grub-mkconfig_lib
6 echo "no grub-mkconfig_lib, exiting"6 LX=linux16
7 exit 07elif [ -f /usr/lib/grub/update-grub_lib ]; then
8 . /usr/lib/grub/update-grub_lib
9 LX=linux
10else
11 # no grub file, so we notify and exit gracefully
12 echo "Cannot find grub config file, exiting." >&2
13 exit 0
8fi14fi
915
10. /usr/lib/grub/grub-mkconfig_lib
11
12# We can't cope with loop-mounted devices here.16# We can't cope with loop-mounted devices here.
13case ${GRUB_DEVICE_BOOT} in17case ${GRUB_DEVICE_BOOT} in
14 /dev/loop/*|/dev/loop[0-9])18 /dev/loop/*|/dev/loop[0-9]) exit 0 ;;
15 exit 0
16 ;;
17esac19esac
1820
21prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
22
19if test -e /boot/memtest86+.bin ; then23if test -e /boot/memtest86+.bin ; then
20 MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" )24 MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" )
21 echo "Found memtest86+ image: $MEMTESTPATH" >&225 echo "Found memtest86+ image: $MEMTESTPATH" >&2
22 cat << EOF26 cat << EOF
23menuentry "Memory test (memtest86+)" {27menuentry "Memory test (memtest86+)" {
24EOF28EOF
25 prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
26 printf '%s\n' "${prepare_boot_cache}"29 printf '%s\n' "${prepare_boot_cache}"
27 cat << EOF30 cat << EOF
28 linux16 $MEMTESTPATH31 $LX $MEMTESTPATH
29}32}
30menuentry "Memory test (memtest86+, serial console 115200)" {33menuentry "Memory test (memtest86+, serial console 115200)" {
31EOF34EOF
32 printf '%s\n' "${prepare_boot_cache}"35 printf '%s\n' "${prepare_boot_cache}"
33 cat << EOF36 cat << EOF
34 linux16 $MEMTESTPATH console=ttyS0,115200n837 $LX $MEMTESTPATH console=ttyS0,115200n8
38}
39EOF
40fi
41
42if test -e /boot/memtest86+_multiboot.bin ; then
43 MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+_multiboot.bin" )
44 echo "Found memtest86+ multiboot image: $MEMTESTPATH" >&2
45 cat << EOF
46menuentry "Memory test (memtest86+, experimental multiboot)" {
47EOF
48 printf '%s\n' "${prepare_boot_cache}"
49 cat << EOF
50 multiboot $MEMTESTPATH
51}
52menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" {
53EOF
54 printf '%s\n' "${prepare_boot_cache}"
55 cat << EOF
56 multiboot $MEMTESTPATH console=ttyS0,115200n8
35}57}
36EOF58EOF
37fi59fi
3860
=== added file 'debian/lintian-overrides'
--- debian/lintian-overrides 1970-01-01 00:00:00 +0000
+++ debian/lintian-overrides 2010-06-27 17:51:29 +0000
@@ -0,0 +1,3 @@
1# This file is intended to be statically-linked
2memtest86+: statically-linked-binary ./usr/lib/memtest86+/memtest86+.elf
3memtest86+: shared-lib-without-dependency-information ./boot/memtest86+_multiboot.bin
04
=== added directory 'debian/po'
=== added file 'debian/po/POTFILES.in'
--- debian/po/POTFILES.in 1970-01-01 00:00:00 +0000
+++ debian/po/POTFILES.in 2010-06-27 17:51:29 +0000
@@ -0,0 +1,1 @@
1[type: gettext/rfc822deb] templates
02
=== added file 'debian/po/de.po'
--- debian/po/de.po 1970-01-01 00:00:00 +0000
+++ debian/po/de.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,37 @@
1# Translation of po-debconf template to German
2# This file is distributed under the same license as the memtest86+ package.
3#
4# Thomas Mueller <thomas.mueller@tmit.eu>, 2010.
5msgid ""
6msgstr ""
7"Project-Id-Version: memtest86+ 4.00\n"
8"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
9"POT-Creation-Date: 2009-12-02 22:23+0100\n"
10"PO-Revision-Date: 2010-01-01 19:47+0100\n"
11"Last-Translator: Thomas Mueller <thomas.mueller@tmit.eu>\n"
12"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
13"Language: de\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
17"X-Generator: Lokalize 1.0\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19
20#. Type: boolean
21#. Description
22#: ../templates:1001
23msgid "Run lilo automatically after upgrade (if found)?"
24msgstr ""
25"Soll lilo nach dem Upgrade automatisch ausgeführt werden (falls vorhanden)?"
26
27#. Type: boolean
28#. Description
29#: ../templates:1001
30msgid ""
31"If lilo is installed and its configuration file contains the memtest86/"
32"memtest86+ image, then it should be re-run in order to allow booting the new "
33"image."
34msgstr ""
35"Falls lilo installiert ist und dessen Konfigurationsdatei das memtest86/"
36"memtest86+-Image enthält, dann sollte es erneut ausgeführt werden, damit das "
37"Booten des neuen Images möglich ist."
038
=== added file 'debian/po/es.po'
--- debian/po/es.po 1970-01-01 00:00:00 +0000
+++ debian/po/es.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,58 @@
1# memtest86+ po-debconf translation to Spanish
2# Copyright (C) 2010 Software in the Public Interest
3# This file is distributed under the same license as the memtest86+ package.
4#
5# Changes:
6# - Initial translation
7# Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2010
8#
9# Traductores, si no conocen el formato PO, merece la pena leer la
10# documentación de gettext, especialmente las secciones dedicadas a este
11# formato, por ejemplo ejecutando:
12# info -n '(gettext)PO Files'
13# info -n '(gettext)Header Entry'
14#
15# Equipo de traducción al español, por favor lean antes de traducir
16# los siguientes documentos:
17#
18# - El proyecto de traducción de Debian al español
19# http://www.debian.org/intl/spanish/
20# especialmente las notas y normas de traducción en
21# http://www.debian.org/intl/spanish/notas
22#
23# - La guía de traducción de po's de debconf:
24# /usr/share/doc/po-debconf/README-trans
25# o http://www.debian.org/intl/l10n/po-debconf/README-trans
26#
27msgid ""
28msgstr ""
29"Project-Id-Version: memtest86+ 4.00-2.2\n"
30"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
31"POT-Creation-Date: 2009-12-02 22:23+0100\n"
32"PO-Revision-Date: 2010-04-28 10:10+0200\n"
33"Last-Translator: Francisco Javier Cuadrado <fcocuadrado@gmail.com>\n"
34"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
35"Language: \n"
36"MIME-Version: 1.0\n"
37"Content-Type: text/plain; charset=UTF-8\n"
38"Content-Transfer-Encoding: 8bit\n"
39
40#. Type: boolean
41#. Description
42#: ../templates:1001
43msgid "Run lilo automatically after upgrade (if found)?"
44msgstr ""
45"¿Desea ejecutar automáticamente lilo después de la actualización (si se "
46"encuentra)?"
47
48#. Type: boolean
49#. Description
50#: ../templates:1001
51msgid ""
52"If lilo is installed and its configuration file contains the memtest86/"
53"memtest86+ image, then it should be re-run in order to allow booting the new "
54"image."
55msgstr ""
56"Si lilo está instalado y su archivo de configuración contiene la imagen de "
57"«memtest86»/«memtest86+» vuelva a ejecutar lilo para que pueda arrancar la "
58"nueva imagen."
059
=== added file 'debian/po/fr.po'
--- debian/po/fr.po 1970-01-01 00:00:00 +0000
+++ debian/po/fr.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,38 @@
1# Translation of memtest86 debconf templates to French
2# Copyright (C) 2010 Debian French l10n team <debian-l10n-french@lists.debian.org>
3# This file is distributed under the same license as the memtest86 package.
4#
5# Translators:
6# Christian Perrier <bubulle@debian.org>, 2010.
7msgid ""
8msgstr ""
9"Project-Id-Version: \n"
10"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
11"POT-Creation-Date: 2009-12-02 22:23+0100\n"
12"PO-Revision-Date: 2010-01-02 18:44+0100\n"
13"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
14"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
15"Language: fr\n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
19"X-Generator: Lokalize 1.0\n"
20"Plural-Forms: nplurals=2; plural=(n > 1);\n"
21
22#. Type: boolean
23#. Description
24#: ../templates:1001
25msgid "Run lilo automatically after upgrade (if found)?"
26msgstr "Faut-il exécuter lilo automatiquement après la mise à jour ?"
27
28#. Type: boolean
29#. Description
30#: ../templates:1001
31msgid ""
32"If lilo is installed and its configuration file contains the memtest86/"
33"memtest86+ image, then it should be re-run in order to allow booting the new "
34"image."
35msgstr ""
36"Si LILO est installé et que son fichier de configuration fait référence à "
37"une image de lancement de memtest86 ou memtest86+, il doit être ré-exécuté "
38"afin de pouvoir utiliser la nouvelle image."
039
=== added file 'debian/po/ja.po'
--- debian/po/ja.po 1970-01-01 00:00:00 +0000
+++ debian/po/ja.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,35 @@
1# memtest86+ po-debconf translation (Japanese)
2# Copyright (C) 2009 Yann Dirson <dirson@debian.org>
3# This file is distributed under the same license as the memtest86+ package.
4# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2009.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: memtest86+ 4.00-2.1\n"
9"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
10"POT-Creation-Date: 2009-12-02 22:23+0100\n"
11"PO-Revision-Date: 2009-12-27 13:52+0900\n"
12"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
13"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
14"Language: ja\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18
19#. Type: boolean
20#. Description
21#: ../templates:1001
22msgid "Run lilo automatically after upgrade (if found)?"
23msgstr "(もしあれば) lilo をアップグレード後に自動的に実行しますか?"
24
25#. Type: boolean
26#. Description
27#: ../templates:1001
28msgid ""
29"If lilo is installed and its configuration file contains the memtest86/"
30"memtest86+ image, then it should be re-run in order to allow booting the new "
31"image."
32msgstr ""
33"lilo がインストールされていて、その設定ファイルが memtest86/memtest86+ のイ"
34"メージを指定している場合は、新しいイメージを起動できるようにするために lilo "
35"の再実行が必要です。"
036
=== added file 'debian/po/pt.po'
--- debian/po/pt.po 1970-01-01 00:00:00 +0000
+++ debian/po/pt.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,37 @@
1# Translation of memtest86+ debconf messages to Portuguese
2# Copyright (C) 2009 the memtest86+ copyright holder
3# This file is distributed under the same license as the memtest86+ package.
4#
5# Américo Monteiro <a_monteiro@netcabo.pt>, 2009.
6msgid ""
7msgstr ""
8"Project-Id-Version: memtest86+ 4.00-2.1\n"
9"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
10"POT-Creation-Date: 2009-12-02 22:23+0100\n"
11"PO-Revision-Date: 2009-12-28 20:18+0000\n"
12"Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
13"Language-Team: Portuguese <traduz@debianpt.org>\n"
14"Language: pt\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"X-Generator: Lokalize 1.0\n"
19"Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
21#. Type: boolean
22#. Description
23#: ../templates:1001
24msgid "Run lilo automatically after upgrade (if found)?"
25msgstr "Correr o lilo automaticamente (se encontrado) após a actualização?"
26
27#. Type: boolean
28#. Description
29#: ../templates:1001
30msgid ""
31"If lilo is installed and its configuration file contains the memtest86/"
32"memtest86+ image, then it should be re-run in order to allow booting the new "
33"image."
34msgstr ""
35"Se o lilo estiver instalado e o seu ficheiro de configuração conter a imagem "
36"memtest86/memtest86+, então deve ser re-executado de modo a permitir o "
37"arranque pela nova imagem."
038
=== added file 'debian/po/ru.po'
--- debian/po/ru.po 1970-01-01 00:00:00 +0000
+++ debian/po/ru.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,37 @@
1# translation of memtest86+_4.00-2.1_ru.po to Russian
2# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3# This file is distributed under the same license as the PACKAGE package.
4#
5# Yuri Kozlov <yuray@komyakino.ru>, 2010.
6msgid ""
7msgstr ""
8"Project-Id-Version: memtest86+ 4.00-2.1\n"
9"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
10"POT-Creation-Date: 2009-12-02 22:23+0100\n"
11"PO-Revision-Date: 2010-01-13 19:22+0300\n"
12"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
13"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"X-Generator: KBabel 1.11.4\n"
19"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
20"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
21
22#. Type: boolean
23#. Description
24#: ../templates:1001
25msgid "Run lilo automatically after upgrade (if found)?"
26msgstr "Запускать lilo автоматически после обновления (если установлен)?"
27
28#. Type: boolean
29#. Description
30#: ../templates:1001
31msgid ""
32"If lilo is installed and its configuration file contains the memtest86/"
33"memtest86+ image, then it should be re-run in order to allow booting the new "
34"image."
35msgstr ""
36"Если пакет lilo установлен и его файл настройки содержит образ memtest86/"
37"memtest86+, то его нужно перезапустить, чтобы стал загружаться новый образ."
038
=== added file 'debian/po/sv.po'
--- debian/po/sv.po 1970-01-01 00:00:00 +0000
+++ debian/po/sv.po 2010-06-27 17:51:29 +0000
@@ -0,0 +1,37 @@
1# Translation of memtest86+ debconf template to Swedish
2# Copyright (C) 2010 Martin Bagge <brother@bsnet.se>
3# This file is distributed under the same license as the memtest86+ package.
4#
5# Martin Bagge <brother@bsnet.se>, 2010
6msgid ""
7msgstr ""
8"Project-Id-Version: PACKAGE VERSION\n"
9"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
10"POT-Creation-Date: 2009-12-02 22:23+0100\n"
11"PO-Revision-Date: 2010-01-09 19:01+0100\n"
12"Last-Translator: Martin Bagge <brother@bsnet.se>\n"
13"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
14"Language: sv\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=utf-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"X-Poedit-Language: Swedish\n"
19"X-Poedit-Country: Sweden\n"
20
21#. Type: boolean
22#. Description
23#: ../templates:1001
24msgid "Run lilo automatically after upgrade (if found)?"
25msgstr "Ska lilo (om det finns) köras automatiskt efter uppgradering?"
26
27#. Type: boolean
28#. Description
29#: ../templates:1001
30msgid ""
31"If lilo is installed and its configuration file contains the memtest86/"
32"memtest86+ image, then it should be re-run in order to allow booting the new "
33"image."
34msgstr ""
35"Om lilo är installerat och dess inställningar innehållet avbildningen av "
36"memtest86/memtest86+ ska den köras för att systemet ska kunna startas på den "
37"nya avbildningen."
038
=== added file 'debian/po/templates.pot'
--- debian/po/templates.pot 1970-01-01 00:00:00 +0000
+++ debian/po/templates.pot 2010-06-27 17:51:29 +0000
@@ -0,0 +1,32 @@
1# SOME DESCRIPTIVE TITLE.
2# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3# This file is distributed under the same license as the PACKAGE package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5#
6#, fuzzy
7msgid ""
8msgstr ""
9"Project-Id-Version: PACKAGE VERSION\n"
10"Report-Msgid-Bugs-To: memtest86+@packages.debian.org\n"
11"POT-Creation-Date: 2009-12-02 22:23+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=CHARSET\n"
17"Content-Transfer-Encoding: 8bit\n"
18
19#. Type: boolean
20#. Description
21#: ../templates:1001
22msgid "Run lilo automatically after upgrade (if found)?"
23msgstr ""
24
25#. Type: boolean
26#. Description
27#: ../templates:1001
28msgid ""
29"If lilo is installed and its configuration file contains the memtest86/"
30"memtest86+ image, then it should be re-run in order to allow booting the new "
31"image."
32msgstr ""
033
=== modified file 'debian/postinst'
--- debian/postinst 2009-06-24 16:55:39 +0000
+++ debian/postinst 2010-06-27 17:51:29 +0000
@@ -1,23 +1,20 @@
1#!/bin/sh1#!/bin/sh
2set -e2set -e
33
4# offer to run LILO4. /usr/share/debconf/confmodule
5# (adapted from snippet by chr.ohm@gmx.net)5
6if [ -x /sbin/lilo ] && [ -r /etc/lilo.conf ] && 6if [ "$1" = configure ]; then
7 [ "${DEBIAN_FRONTEND}" != "noninteractive" ] &&7 db_get shared/memtest86-run-lilo
8 if [ "$RET" = true ] &&
9 [ -x /sbin/lilo ] && [ -r /etc/lilo.conf ] &&
8 grep "image.*=.*/boot/memtest86+.bin" /etc/lilo.conf >/dev/null10 grep "image.*=.*/boot/memtest86+.bin" /etc/lilo.conf >/dev/null
9then
10 echo "You seem to have an entry for memtest86+ in /etc/lilo.conf."
11 printf "Run lilo now [y/N]? "
12 read c
13 if [ "$c" = "y" ] || [ "$c" = "Y" ]
14 then11 then
15 lilo12 lilo
16 fi13 fi
17fi
1814
19if [ "$1" = "configure" ] && [ -x "`which update-grub2 2>/dev/null`" ] && [ -e /boot/grub/grub.cfg ]; then15 if [ -e /boot/grub/grub.cfg ] && [ -x "`which update-grub2 2>/dev/null`" ] ; then
20 update-grub216 update-grub2
17 fi
21fi18fi
2219
23#DEBHELPER#20#DEBHELPER#
2421
=== modified file 'debian/rules'
--- debian/rules 2009-03-26 11:45:00 +0000
+++ debian/rules 2010-06-27 17:51:29 +0000
@@ -23,6 +23,9 @@
2323
24 [ ! -f Makefile ] || $(MAKE) clean24 [ ! -f Makefile ] || $(MAKE) clean
2525
26 # make sure PO files are always up-to-date
27 debconf-updatepo
28
26 dh_clean29 dh_clean
2730
28install: build31install: build
@@ -35,8 +38,13 @@
35 install -m755 debian/make-$(PACKAGE)-boot-floppy debian/$(PACKAGE)/usr/bin/38 install -m755 debian/make-$(PACKAGE)-boot-floppy debian/$(PACKAGE)/usr/bin/
36 install -D -m644 memtest.bin debian/$(PACKAGE)/boot/$(PACKAGE).bin39 install -D -m644 memtest.bin debian/$(PACKAGE)/boot/$(PACKAGE).bin
37 install -D -m644 memtest debian/$(PACKAGE)/usr/lib/$(PACKAGE)/$(PACKAGE).elf40 install -D -m644 memtest debian/$(PACKAGE)/usr/lib/$(PACKAGE)/$(PACKAGE).elf
41 install -D -m644 -s memtest_shared debian/$(PACKAGE)/boot/$(PACKAGE)_multiboot.bin
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)
39 dh_installman debian/make-$(PACKAGE)-boot-floppy.143 dh_installman debian/make-$(PACKAGE)-boot-floppy.1
44 #install the lintian override
45 install -d debian/$(PACKAGE)/usr/share/lintian/overrides
46 install -m644 debian/lintian-overrides \
47 debian/$(PACKAGE)/usr/share/lintian/overrides/$(PACKAGE)
4048
41# Build architecture-independent files here.49# Build architecture-independent files here.
42binary-indep: build install50binary-indep: build install
@@ -46,7 +54,7 @@
46binary-arch: build install54binary-arch: build install
47 dh_testdir55 dh_testdir
48 dh_testroot56 dh_testroot
49# dh_installdebconf57 dh_installdebconf
50 dh_installdocs README58 dh_installdocs README
51 dh_buildinfo59 dh_buildinfo
52 dh_installexamples debian/lilo.conf debian/grub-menu.lst60 dh_installexamples debian/lilo.conf debian/grub-menu.lst
5361
=== added file 'debian/templates'
--- debian/templates 1970-01-01 00:00:00 +0000
+++ debian/templates 2010-06-27 17:51:29 +0000
@@ -0,0 +1,7 @@
1Template: shared/memtest86-run-lilo
2Type: boolean
3Default: false
4_Description: Run lilo automatically after upgrade (if found)?
5 If lilo is installed and its configuration file contains the
6 memtest86/memtest86+ image, then it should be re-run in order to
7 allow booting the new image.
08
=== modified file 'head.S'
--- head.S 2009-03-01 16:50:40 +0000
+++ head.S 2010-06-27 17:51:29 +0000
@@ -13,9 +13,11 @@
1313
14.text14.text
15#define __ASSEMBLY__15#define __ASSEMBLY__
16#define ASM_FILE
16#include "defs.h"17#include "defs.h"
17#include "config.h"18#include "config.h"
18#include "test.h"19#include "test.h"
20#include "multiboot.h"
1921
20/*22/*
21 * References to members of the boot_cpu_data structure.23 * References to members of the boot_cpu_data structure.
@@ -31,6 +33,22 @@
31#define X86_PWRCAP 4033#define X86_PWRCAP 40
32#define X86_EXT 4434#define X86_EXT 44
33#define X86_FFL 4835#define X86_FFL 48
36#define X86_DCACHE0_EAX 52
37#define X86_DCACHE0_EBX 56
38#define X86_DCACHE0_ECX 60
39#define X86_DCACHE0_EDX 64
40#define X86_DCACHE1_EAX 68
41#define X86_DCACHE1_EBX 72
42#define X86_DCACHE1_ECX 76
43#define X86_DCACHE1_EDX 80
44#define X86_DCACHE2_EAX 84
45#define X86_DCACHE2_EBX 88
46#define X86_DCACHE2_ECX 92
47#define X86_DCACHE2_EDX 96
48#define X86_DCACHE3_EAX 100
49#define X86_DCACHE3_EBX 104
50#define X86_DCACHE3_ECX 108
51#define X86_DCACHE3_EDX 112
3452
35 .code3253 .code32
36 .globl startup_3254 .globl startup_32
@@ -38,6 +56,13 @@
38 cld56 cld
39 cli57 cli
4058
59 /* Store MBI pointer */
60 xorl %ecx, %ecx
61 cmpl $MULTIBOOT_BOOTLOADER_MAGIC, %eax
62 jne 0f
63 movl %ebx, %ecx
640:
65
41 /* Ensure I have a stack pointer */66 /* Ensure I have a stack pointer */
42 testl %esp, %esp67 testl %esp, %esp
43 jnz 0f68 jnz 0f
@@ -50,6 +75,20 @@
500: popl %ebx750: popl %ebx
51 addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx76 addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx
5277
78 /* Move MBI pointer to a safe place */
79 testl %ecx, %ecx
80 je 0f
81 movl %ecx, mbiptr@GOTOFF(%ebx)
820:
83
84 jmp 0f
85 /* Multiboot header */
86.align 4
87 .long MULTIBOOT_HEADER_MAGIC
88 .long 0
89 .long -MULTIBOOT_HEADER_MAGIC
900:
91
53 /* Pick the appropriate stack address */92 /* Pick the appropriate stack address */
54 leal stack_top@GOTOFF(%ebx), %esp93 leal stack_top@GOTOFF(%ebx), %esp
5594
@@ -373,6 +412,37 @@
373 movl %ebx, X86_CACHE+4(%esi)412 movl %ebx, X86_CACHE+4(%esi)
374 movl %ecx, X86_CACHE+8(%esi)413 movl %ecx, X86_CACHE+8(%esi)
375 movl %edx, X86_CACHE+12(%esi)414 movl %edx, X86_CACHE+12(%esi)
415# Grab deterministic cache information (for 32nm Intel CPU)
416 cmpw $0x0000,%dx
417 jne id_done
418 movl $4, %eax
419 movl $0, %ecx
420 cpuid
421 movl %eax, X86_DCACHE0_EAX(%esi)
422 movl %ebx, X86_DCACHE0_EBX(%esi)
423 movl %ecx, X86_DCACHE0_ECX(%esi)
424 movl %edx, X86_DCACHE0_EDX(%esi)
425 movl $4, %eax
426 movl $1, %ecx
427 cpuid
428 movl %eax, X86_DCACHE1_EAX(%esi)
429 movl %ebx, X86_DCACHE1_EBX(%esi)
430 movl %ecx, X86_DCACHE1_ECX(%esi)
431 movl %edx, X86_DCACHE1_EDX(%esi)
432 movl $4, %eax
433 movl $2, %ecx
434 cpuid
435 movl %eax, X86_DCACHE2_EAX(%esi)
436 movl %ebx, X86_DCACHE2_EBX(%esi)
437 movl %ecx, X86_DCACHE2_ECX(%esi)
438 movl %edx, X86_DCACHE2_EDX(%esi)
439 movl $4, %eax
440 movl $3, %ecx
441 cpuid
442 movl %eax, X86_DCACHE3_EAX(%esi)
443 movl %ebx, X86_DCACHE3_EBX(%esi)
444 movl %ecx, X86_DCACHE3_ECX(%esi)
445 movl %edx, X86_DCACHE3_EDX(%esi)
376 jmp id_done446 jmp id_done
377447
378not_intel:448not_intel:
@@ -956,6 +1026,9 @@
956 movl $1, %eax1026 movl $1, %eax
957 ret1027 ret
9581028
1029.globl mbiptr
1030mbiptr:
1031 .long 0
959realptr:1032realptr:
960 .word real - RSTART1033 .word real - RSTART
961 .word 0x00001034 .word 0x0000
@@ -980,6 +1053,6 @@
980.bss1053.bss
981.balign 161054.balign 16
982stack:1055stack:
983 . = . + 40961056 . = . + 8192
984stack_top:1057stack_top:
985.previous1058.previous
9861059
=== modified file 'init.c'
--- init.c 2009-11-09 17:09:57 +0000
+++ init.c 2010-06-27 17:51:29 +0000
@@ -3,7 +3,7 @@
3 * Released under version 2 of the Gnu Public License.3 * Released under version 2 of the Gnu Public License.
4 * By Chris Brady, cbrady@sgi.com4 * By Chris Brady, cbrady@sgi.com
5 * ----------------------------------------------------5 * ----------------------------------------------------
6 * MemTest86+ V4.00 Specific code (GPL V2.0)6 * MemTest86+ V4.10 Specific code (GPL V2.0)
7 * By Samuel DEMEULEMEESTER, sdemeule@memtest.org7 * By Samuel DEMEULEMEESTER, sdemeule@memtest.org
8 * http://www.canardpc.com - http://www.memtest.org8 * http://www.canardpc.com - http://www.memtest.org
9 */9 */
@@ -15,6 +15,7 @@
15#include "pci.h"15#include "pci.h"
16#include "io.h"16#include "io.h"
17#include "spd.h"17#include "spd.h"
18#include "multiboot.h"
1819
19#define rdmsr(msr,val1,val2) \20#define rdmsr(msr,val1,val2) \
20 __asm__ __volatile__("rdmsr" \21 __asm__ __volatile__("rdmsr" \
@@ -65,7 +66,7 @@
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) {
66 *pp = 0x20;67 *pp = 0x20;
67 }68 }
68 cprint(0, 0, " Memtest86 v4.00 ");69 cprint(0, 0, " Memtest86 v4.10 ");
6970
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) {
71 *pp = 0xA4;72 *pp = 0xA4;
@@ -98,7 +99,10 @@
98 /* Determine the memory map */99 /* Determine the memory map */
99 if ((firmware == FIRMWARE_UNKNOWN) &&100 if ((firmware == FIRMWARE_UNKNOWN) &&
100 (memsz_mode != SZ_MODE_PROBE)) {101 (memsz_mode != SZ_MODE_PROBE)) {
101 if (query_linuxbios()) {102 if (query_multiboot()) {
103 firmware = FIRMWARE_MULTIBOOT;
104 }
105 else if (query_linuxbios()) {
102 firmware = FIRMWARE_LINUXBIOS;106 firmware = FIRMWARE_LINUXBIOS;
103 }107 }
104 else if (query_pcbios()) {108 else if (query_pcbios()) {
@@ -777,6 +781,41 @@
777 break; 781 break;
778 }782 }
779 }783 }
784
785 // If no cache found, check if deterministic cache info are available
786 if(l1_cache == 0 && ((cpu_id.dcache0_eax >> 5) & 7) == 1)
787 {
788
789 long dcache[] = { cpu_id.dcache0_eax, cpu_id.dcache0_ebx, cpu_id.dcache0_ecx, cpu_id.dcache0_edx,
790 cpu_id.dcache1_eax, cpu_id.dcache1_ebx, cpu_id.dcache1_ecx, cpu_id.dcache1_edx,
791 cpu_id.dcache2_eax, cpu_id.dcache2_ebx, cpu_id.dcache2_ecx, cpu_id.dcache2_edx,
792 cpu_id.dcache3_eax, cpu_id.dcache3_ebx, cpu_id.dcache3_ecx, cpu_id.dcache3_edx
793 };
794
795 for(i=0; i<4; i++)
796 {
797 switch((dcache[i*4] >> 5) & 7)
798 {
799 case 1:
800 // We don't want L1 I-Cache, only L1 D-Cache
801 if((dcache[i*4] & 3) != 2)
802 {
803 l1_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1);
804 l1_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024;
805 }
806 break;
807 case 2:
808 l2_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1);
809 l2_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024;
810 break;
811 case 3:
812 l3_cache = (((dcache[i*4+1] >> 22) & 0x3FF) + 1) * (((dcache[i*4+1] >> 12) & 0x3FF) + 1);
813 l3_cache *= ((dcache[i*4+1] & 0xFFF) + 1) * (dcache[i*4+2] + 1) / 1024;
814 break;
815 }
816 }
817 }
818
780819
781 switch(cpu_id.type) {820 switch(cpu_id.type) {
782 case 5:821 case 5:
@@ -818,7 +857,7 @@
818 if(((cpu_id.ext >> 16) & 0xF) > 1) {857 if(((cpu_id.ext >> 16) & 0xF) > 1) {
819 cprint(LINE_CPU, 0, "Intel Core i3/i5");858 cprint(LINE_CPU, 0, "Intel Core i3/i5");
820 tsc_invariable = 1;859 tsc_invariable = 1;
821 imc_type = 0x0002;860 imc_type = 0x0003;
822 off = 16;861 off = 16;
823 } else {862 } else {
824 cprint(LINE_CPU, 0, "Intel EP80579");863 cprint(LINE_CPU, 0, "Intel EP80579");
@@ -876,10 +915,16 @@
876 break;915 break;
877 case 10:916 case 10:
878 if (((cpu_id.ext >> 16) & 0xF) != 0) {917 if (((cpu_id.ext >> 16) & 0xF) != 0) {
879 tsc_invariable = 1;918 tsc_invariable = 1;
880 imc_type = 0x0001;919 if(((cpu_id.ext >> 16) & 0xF) > 1) {
881 cprint(LINE_CPU, 0, "Intel Core i7");920 cprint(LINE_CPU, 0, "Intel SNB");
882 off = 13;921 imc_type = 0x0003;
922 off = 9;
923 } else {
924 imc_type = 0x0001;
925 cprint(LINE_CPU, 0, "Intel Core i7");
926 off = 13;
927 }
883 } else {928 } else {
884 cprint(LINE_CPU, 0, "Pentium III Xeon");929 cprint(LINE_CPU, 0, "Pentium III Xeon");
885 off = 16;930 off = 16;
@@ -887,10 +932,10 @@
887 break;932 break;
888 case 12:933 case 12:
889 if (((cpu_id.ext >> 16) & 0xF) > 1) { 934 if (((cpu_id.ext >> 16) & 0xF) > 1) {
890 cprint(LINE_CPU, 0, "Intel Core i9");935 cprint(LINE_CPU, 0, "Core i7 (32nm)");
891 tsc_invariable = 1;936 tsc_invariable = 1;
892 imc_type = 0x0002;937 imc_type = 0x0002;
893 off = 13;938 off = 14;
894 } else {939 } else {
895 l1_cache = 24;940 l1_cache = 24;
896 cprint(LINE_CPU, 0, "Atom (0.045)");941 cprint(LINE_CPU, 0, "Atom (0.045)");
@@ -1369,7 +1414,7 @@
1369 "lodsl\n\t" \1414 "lodsl\n\t" \
1370 "loop L2\n\t" \1415 "loop L2\n\t" \
1371 :: "g" (src), "g" (wlen)1416 :: "g" (src), "g" (wlen)
1372 : "esi", "ecx"1417 : "esi", "ecx", "eax"
1373 );1418 );
1374 }1419 }
1375 asm __volatile__ ("rdtsc":"=a" (end_low),"=d" (end_high));1420 asm __volatile__ ("rdtsc":"=a" (end_low),"=d" (end_high));
13761421
=== modified file 'lib.c'
--- lib.c 2009-09-29 23:40:15 +0000
+++ lib.c 2010-06-27 17:51:29 +0000
@@ -24,7 +24,7 @@
24#error Bad SERIAL_TTY. Only ttyS0 and ttyS1 are supported.24#error Bad SERIAL_TTY. Only ttyS0 and ttyS1 are supported.
25#endif25#endif
26short serial_tty = SERIAL_TTY;26short serial_tty = SERIAL_TTY;
27const short serial_base_ports[] = {0x3f8, 0x2f8};27const short serial_base_ports[] = {0x3f8, 0x2f8, 0x3e8, 0x2e8};
2828
29#if ((115200%SERIAL_BAUD_RATE) != 0)29#if ((115200%SERIAL_BAUD_RATE) != 0)
30#error Bad default baud rate30#error Bad default baud rate
@@ -1053,8 +1053,8 @@
1053 if (option == param)1053 if (option == param)
1054 return; /* there were no digits */1054 return; /* there were no digits */
10551055
1056 if (tty > 1)1056 if (tty > 3)
1057 return; /* only ttyS0 and ttyS1 supported */1057 return; /* only ttyS0 to ttyS3 supported */
10581058
1059 if (*option == '\0' || *option == ' ')1059 if (*option == '\0' || *option == ' ')
1060 goto save_tty; /* no options given, just ttyS? */1060 goto save_tty; /* no options given, just ttyS? */
10611061
=== modified file 'main.c'
--- main.c 2009-09-29 23:40:15 +0000
+++ main.c 2010-06-27 17:51:29 +0000
@@ -11,9 +11,12 @@
11#include "test.h"11#include "test.h"
12#include "defs.h"12#include "defs.h"
13#include "config.h"13#include "config.h"
14#include "multiboot.h"
14#undef TEST_TIMES15#undef TEST_TIMES
15#define DEFTESTS 916#define DEFTESTS 9
1617
18extern struct multiboot_info *mbiptr;
19
17extern void bzero();20extern void bzero();
1821
19const struct tseq tseq[] = {22const struct tseq tseq[] = {
@@ -151,11 +154,15 @@
151 if (cmdline_parsed)154 if (cmdline_parsed)
152 return;155 return;
153156
154 if (*OLD_CL_MAGIC_ADDR != OLD_CL_MAGIC)157 if (mbiptr && (mbiptr->flags & MULTIBOOT_INFO_CMDLINE)) {
155 return;158 cmdline = (void *) mbiptr->cmdline;
159 } else {
160 if (*OLD_CL_MAGIC_ADDR != OLD_CL_MAGIC)
161 return;
156162
157 unsigned short offset = *OLD_CL_OFFSET_ADDR;163 unsigned short offset = *OLD_CL_OFFSET_ADDR;
158 cmdline = MK_PTR(INITSEG, offset);164 cmdline = MK_PTR(INITSEG, offset);
165 }
159166
160 /* skip leading spaces */167 /* skip leading spaces */
161 while (*cmdline == ' ')168 while (*cmdline == ' ')
162169
=== modified file 'makeiso.sh'
--- makeiso.sh 2009-09-29 23:40:15 +0000
+++ makeiso.sh 2010-06-27 17:51:29 +0000
@@ -37,9 +37,9 @@
37echo -e "There is nothing to do here\r\r\nMemtest86+ is located on the bootsector of this CD\r\r\n" > README.TXT37echo -e "There is nothing to do here\r\r\nMemtest86+ is located on the bootsector of this CD\r\r\n" > README.TXT
38echo -e "Just boot from this CD and Memtest86+ will launch" >> README.TXT38echo -e "Just boot from this CD and Memtest86+ will launch" >> README.TXT
3939
40mkisofs -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 .40mkisofs -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 .
41mv memtest.iso ../mt400.iso41mv memtest.iso ../mt410.iso
42cd ..42cd ..
43rm -rf cd43rm -rf cd
4444
45echo "Done! Memtest86+ 4.00 ISO is mt400.iso"45echo "Done! Memtest86+ 4.10 ISO is mt410.iso"
4646
=== modified file 'memsize.c'
--- memsize.c 2009-09-29 23:40:15 +0000
+++ memsize.c 2010-06-27 17:51:29 +0000
@@ -75,7 +75,7 @@
7575
76static void memsize_bios()76static void memsize_bios()
77{77{
78 if (firmware == FIRMWARE_PCBIOS) {78 if (firmware == FIRMWARE_PCBIOS || firmware == FIRMWARE_MULTIBOOT) {
79 memsize_820();79 memsize_820();
80 }80 }
81 else if (firmware == FIRMWARE_LINUXBIOS) {81 else if (firmware == FIRMWARE_LINUXBIOS) {
8282
=== removed file 'memtest.exe'
83Binary files memtest.exe 2009-09-29 23:40:15 +0000 and memtest.exe 1970-01-01 00:00:00 +0000 differ83Binary files memtest.exe 2009-09-29 23:40:15 +0000 and memtest.exe 1970-01-01 00:00:00 +0000 differ
=== modified file 'memtest.lds'
--- memtest.lds 2005-04-04 15:19:44 +0000
+++ memtest.lds 2010-06-27 17:51:29 +0000
@@ -3,7 +3,7 @@
33
4ENTRY(_start); 4ENTRY(_start);
5SECTIONS {5SECTIONS {
6 . = 0x10000;6 . = 0x5000;
7 _start = . ;7 _start = . ;
8 .data : {8 .data : {
9 *(.data)9 *(.data)
1010
=== modified file 'mt86+_loader'
11Binary files mt86+_loader 2009-11-09 17:09:57 +0000 and mt86+_loader 2010-06-27 17:51:29 +0000 differ11Binary files mt86+_loader 2009-11-09 17:09:57 +0000 and mt86+_loader 2010-06-27 17:51:29 +0000 differ
=== modified file 'mt86+_loader.asm'
--- mt86+_loader.asm 2009-11-09 17:09:57 +0000
+++ mt86+_loader.asm 2010-06-27 17:51:29 +0000
@@ -12,8 +12,8 @@
12; The good thing is that you get a single file which can be12; The good thing is that you get a single file which can be
13; compressed, for example with http://upx.sf.net/ (UPX).13; compressed, for example with http://upx.sf.net/ (UPX).
1414
15%define fullsize (160280 + buffer - exeh)15%define fullsize (165080 + buffer - exeh)
16 ; 160280 is the size of memtest86+ V4.00, adjust as needed!16 ; 165080 is the size of memtest86+ V4.00, adjust as needed!
1717
18%define stacksize 204818%define stacksize 2048
19%define stackpara ((stacksize + 15) / 16)19%define stackpara ((stacksize + 15) / 16)
2020
=== added file 'multiboot.c'
--- multiboot.c 1970-01-01 00:00:00 +0000
+++ multiboot.c 2010-06-27 17:51:29 +0000
@@ -0,0 +1,49 @@
1/* multiboot.c
2 *
3 * Copyright (C) 2008,2009 Robert Millan
4 *
5 * Loosely based on linuxbios.c, which is:
6 *
7 * Released under version 2 of the Gnu Public License.
8 * By Eric Biederman
9 */
10
11#include "multiboot.h"
12#include "test.h"
13
14extern struct multiboot_info *mbiptr;
15
16int query_multiboot(void)
17{
18 struct multiboot_mmap_entry *mem;
19 int i;
20
21 if (!mbiptr) {
22 return 0;
23 }
24 if (!mbiptr->mmap_addr) {
25 return 1;
26 }
27 if ((mbiptr->flags & MULTIBOOT_INFO_MEM_MAP) == 0) {
28 return 1;
29 }
30
31 mem = (struct multiboot_mmap_entry *) mbiptr->mmap_addr;
32 mem_info.e820_nr = 0;
33
34 for (i = 0; i < E820MAX; i++) {
35 if ((multiboot_uint32_t) mem >= (mbiptr->mmap_addr + mbiptr->mmap_length)) {
36 break;
37 }
38
39 mem_info.e820[mem_info.e820_nr].addr = mem->addr;
40 mem_info.e820[mem_info.e820_nr].size = mem->len;
41 /* Multiboot spec defines available / reserved types to match with E820. */
42 mem_info.e820[mem_info.e820_nr].type = mem->type;
43 mem_info.e820_nr++;
44
45 mem = (struct multiboot_mmap_entry *) ((multiboot_uint32_t) mem + mem->size + sizeof (mem->size));
46 }
47
48 return 1;
49}
050
=== added file 'multiboot.h'
--- multiboot.h 1970-01-01 00:00:00 +0000
+++ multiboot.h 2010-06-27 17:51:29 +0000
@@ -0,0 +1,259 @@
1/* multiboot.h - Multiboot header file. */
2/* Copyright (C) 1999,2003,2007,2008,2009,2010 Free Software Foundation, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to
6 * deal in the Software without restriction, including without limitation the
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 * sell copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ANY
17 * DEVELOPER OR DISTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
19 * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 */
21
22#ifndef MULTIBOOT_HEADER
23#define MULTIBOOT_HEADER 1
24
25/* How many bytes from the start of the file we search for the header. */
26#define MULTIBOOT_SEARCH 8192
27
28/* The magic field should contain this. */
29#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
30
31/* This should be in %eax. */
32#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002
33
34/* Alignment of multiboot modules. */
35#define MULTIBOOT_MOD_ALIGN 0x00001000
36
37/* Alignment of the multiboot info structure. */
38#define MULTIBOOT_INFO_ALIGN 0x00000004
39
40/* Flags set in the 'flags' member of the multiboot header. */
41
42/* Align all boot modules on i386 page (4KB) boundaries. */
43#define MULTIBOOT_PAGE_ALIGN 0x00000001
44
45/* Must pass memory information to OS. */
46#define MULTIBOOT_MEMORY_INFO 0x00000002
47
48/* Must pass video information to OS. */
49#define MULTIBOOT_VIDEO_MODE 0x00000004
50
51/* This flag indicates the use of the address fields in the header. */
52#define MULTIBOOT_AOUT_KLUDGE 0x00010000
53
54/* Flags to be set in the 'flags' member of the multiboot info structure. */
55
56/* is there basic lower/upper memory information? */
57#define MULTIBOOT_INFO_MEMORY 0x00000001
58/* is there a boot device set? */
59#define MULTIBOOT_INFO_BOOTDEV 0x00000002
60/* is the command-line defined? */
61#define MULTIBOOT_INFO_CMDLINE 0x00000004
62/* are there modules to do something with? */
63#define MULTIBOOT_INFO_MODS 0x00000008
64
65/* These next two are mutually exclusive */
66
67/* is there a symbol table loaded? */
68#define MULTIBOOT_INFO_AOUT_SYMS 0x00000010
69/* is there an ELF section header table? */
70#define MULTIBOOT_INFO_ELF_SHDR 0X00000020
71
72/* is there a full memory map? */
73#define MULTIBOOT_INFO_MEM_MAP 0x00000040
74
75/* Is there drive info? */
76#define MULTIBOOT_INFO_DRIVE_INFO 0x00000080
77
78/* Is there a config table? */
79#define MULTIBOOT_INFO_CONFIG_TABLE 0x00000100
80
81/* Is there a boot loader name? */
82#define MULTIBOOT_INFO_BOOT_LOADER_NAME 0x00000200
83
84/* Is there a APM table? */
85#define MULTIBOOT_INFO_APM_TABLE 0x00000400
86
87/* Is there video information? */
88#define MULTIBOOT_INFO_VBE_INFO 0x00000800
89#define MULTIBOOT_INFO_FRAMEBUFFER_INFO 0x00001000
90
91#ifndef ASM_FILE
92
93typedef unsigned char multiboot_uint8_t;
94typedef unsigned short multiboot_uint16_t;
95typedef unsigned int multiboot_uint32_t;
96typedef unsigned long long multiboot_uint64_t;
97
98struct multiboot_header
99{
100 /* Must be MULTIBOOT_MAGIC - see above. */
101 multiboot_uint32_t magic;
102
103 /* Feature flags. */
104 multiboot_uint32_t flags;
105
106 /* The above fields plus this one must equal 0 mod 2^32. */
107 multiboot_uint32_t checksum;
108
109 /* These are only valid if MULTIBOOT_AOUT_KLUDGE is set. */
110 multiboot_uint32_t header_addr;
111 multiboot_uint32_t load_addr;
112 multiboot_uint32_t load_end_addr;
113 multiboot_uint32_t bss_end_addr;
114 multiboot_uint32_t entry_addr;
115
116 /* These are only valid if MULTIBOOT_VIDEO_MODE is set. */
117 multiboot_uint32_t mode_type;
118 multiboot_uint32_t width;
119 multiboot_uint32_t height;
120 multiboot_uint32_t depth;
121};
122
123/* The symbol table for a.out. */
124struct multiboot_aout_symbol_table
125{
126 multiboot_uint32_t tabsize;
127 multiboot_uint32_t strsize;
128 multiboot_uint32_t addr;
129 multiboot_uint32_t reserved;
130};
131typedef struct multiboot_aout_symbol_table multiboot_aout_symbol_table_t;
132
133/* The section header table for ELF. */
134struct multiboot_elf_section_header_table
135{
136 multiboot_uint32_t num;
137 multiboot_uint32_t size;
138 multiboot_uint32_t addr;
139 multiboot_uint32_t shndx;
140};
141typedef struct multiboot_elf_section_header_table multiboot_elf_section_header_table_t;
142
143struct multiboot_color
144{
145 multiboot_uint8_t red;
146 multiboot_uint8_t green;
147 multiboot_uint8_t blue;
148};
149
150struct multiboot_info
151{
152 /* Multiboot info version number */
153 multiboot_uint32_t flags;
154
155 /* Available memory from BIOS */
156 multiboot_uint32_t mem_lower;
157 multiboot_uint32_t mem_upper;
158
159 /* "root" partition */
160 multiboot_uint32_t boot_device;
161
162 /* Kernel command line */
163 multiboot_uint32_t cmdline;
164
165 /* Boot-Module list */
166 multiboot_uint32_t mods_count;
167 multiboot_uint32_t mods_addr;
168
169 union
170 {
171 multiboot_aout_symbol_table_t aout_sym;
172 multiboot_elf_section_header_table_t elf_sec;
173 } u;
174
175 /* Memory Mapping buffer */
176 multiboot_uint32_t mmap_length;
177 multiboot_uint32_t mmap_addr;
178
179 /* Drive Info buffer */
180 multiboot_uint32_t drives_length;
181 multiboot_uint32_t drives_addr;
182
183 /* ROM configuration table */
184 multiboot_uint32_t config_table;
185
186 /* Boot Loader Name */
187 multiboot_uint32_t boot_loader_name;
188
189 /* APM table */
190 multiboot_uint32_t apm_table;
191
192 /* Video */
193 multiboot_uint32_t vbe_control_info;
194 multiboot_uint32_t vbe_mode_info;
195 multiboot_uint16_t vbe_mode;
196 multiboot_uint16_t vbe_interface_seg;
197 multiboot_uint16_t vbe_interface_off;
198 multiboot_uint16_t vbe_interface_len;
199
200 multiboot_uint64_t framebuffer_addr;
201 multiboot_uint32_t framebuffer_pitch;
202 multiboot_uint32_t framebuffer_width;
203 multiboot_uint32_t framebuffer_height;
204 multiboot_uint8_t framebuffer_bpp;
205#define MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED 0
206#define MULTIBOOT_FRAMEBUFFER_TYPE_RGB 1
207#define MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT 2
208 multiboot_uint8_t framebuffer_type;
209 union
210 {
211 /* Indexed color. */
212 struct
213 {
214 struct multiboot_color *framebuffer_palette_addr;
215 multiboot_uint16_t framebuffer_palette_num_colors;
216 };
217
218 /* Direct RGB color. */
219 struct
220 {
221 multiboot_uint8_t framebuffer_red_field_position;
222 multiboot_uint8_t framebuffer_red_mask_size;
223 multiboot_uint8_t framebuffer_green_field_position;
224 multiboot_uint8_t framebuffer_green_mask_size;
225 multiboot_uint8_t framebuffer_blue_field_position;
226 multiboot_uint8_t framebuffer_blue_mask_size;
227 };
228 };
229};
230typedef struct multiboot_info multiboot_info_t;
231
232struct multiboot_mmap_entry
233{
234 multiboot_uint32_t size;
235 multiboot_uint64_t addr;
236 multiboot_uint64_t len;
237#define MULTIBOOT_MEMORY_AVAILABLE 1
238#define MULTIBOOT_MEMORY_RESERVED 2
239 multiboot_uint32_t type;
240} __attribute__((packed));
241typedef struct multiboot_mmap_entry multiboot_memory_map_t;
242
243struct multiboot_mod_list
244{
245 /* the memory used goes from bytes 'mod_start' to 'mod_end-1' inclusive */
246 multiboot_uint32_t mod_start;
247 multiboot_uint32_t mod_end;
248
249 /* Module command line */
250 multiboot_uint32_t cmdline;
251
252 /* padding to take it to 16 bytes (must be zero) */
253 multiboot_uint32_t pad;
254};
255typedef struct multiboot_mod_list multiboot_module_t;
256
257#endif /* ! ASM_FILE */
258
259#endif /* ! MULTIBOOT_HEADER */
0260
=== modified file 'precomp.bin'
1Binary files precomp.bin 2009-11-09 17:09:57 +0000 and precomp.bin 2010-06-27 17:51:29 +0000 differ261Binary files precomp.bin 2009-11-09 17:09:57 +0000 and precomp.bin 2010-06-27 17:51:29 +0000 differ
=== modified file 'test.h'
--- test.h 2009-09-29 23:40:15 +0000
+++ test.h 2010-06-27 17:51:29 +0000
@@ -14,9 +14,9 @@
14#define E801 0x0414#define E801 0x04
15#define E820NR 0x08 /* # entries in E820MAP */15#define E820NR 0x08 /* # entries in E820MAP */
16#define E820MAP 0x0c /* our map */16#define E820MAP 0x0c /* our map */
17#define E820MAX 32 /* number of entries in E820MAP */17#define E820MAX 64 /* number of entries in E820MAP */
18#define E820ENTRY_SIZE 2018#define E820ENTRY_SIZE 20
19#define MEMINFO_SIZE 0x28c19#define MEMINFO_SIZE (E820MAP + E820MAX * E820ENTRY_SIZE)
20#define MAX_DMI_MEMDEVS 1620#define MAX_DMI_MEMDEVS 16
2121
22#ifndef __ASSEMBLY__22#ifndef __ASSEMBLY__
@@ -106,6 +106,7 @@
106void *memmove(void *dest, const void *src, ulong n);106void *memmove(void *dest, const void *src, ulong n);
107int query_linuxbios(void);107int query_linuxbios(void);
108int query_pcbios(void);108int query_pcbios(void);
109int query_multiboot(void);
109int insertaddress(ulong);110int insertaddress(ulong);
110void printpatn(void);111void printpatn(void);
111void printpatn(void);112void printpatn(void);
@@ -269,6 +270,22 @@
269 long pwrcap;270 long pwrcap;
270 long ext;271 long ext;
271 long feature_flag;272 long feature_flag;
273 long dcache0_eax;
274 long dcache0_ebx;
275 long dcache0_ecx;
276 long dcache0_edx;
277 long dcache1_eax;
278 long dcache1_ebx;
279 long dcache1_ecx;
280 long dcache1_edx;
281 long dcache2_eax;
282 long dcache2_ebx;
283 long dcache2_ecx;
284 long dcache2_edx;
285 long dcache3_eax;
286 long dcache3_ebx;
287 long dcache3_ecx;
288 long dcache3_edx;
272};289};
273290
274struct xadr {291struct xadr {
@@ -335,6 +352,7 @@
335#define FIRMWARE_UNKNOWN 0352#define FIRMWARE_UNKNOWN 0
336#define FIRMWARE_PCBIOS 1353#define FIRMWARE_PCBIOS 1
337#define FIRMWARE_LINUXBIOS 2354#define FIRMWARE_LINUXBIOS 2
355#define FIRMWARE_MULTIBOOT 3
338356
339extern struct vars * const v;357extern struct vars * const v;
340extern unsigned char _start[], _end[], startup_32[];358extern unsigned char _start[], _end[], startup_32[];

Subscribers

People subscribed via source and target branches

to all changes: