1 /* SPDX-License-Identifier: GPL-2.0-only */
5 #include <console/console.h>
7 int primitive_memtest(uintptr_t base
, uintptr_t size
)
13 printk(BIOS_SPEW
, "Performing primitive memory test.\n");
14 printk(BIOS_SPEW
, "DRAM start: 0x%08x, DRAM size: 0x%08x", base
, size
);
15 for (i
= base
; i
< base
+ (size
- 1) - sizeof(p
); i
+= sizeof(p
)) {
16 if (i
% 0x100000 == 0) {
17 if ((i
% 0x800000) == 0)
18 printk(BIOS_SPEW
, "\n");
20 printk(BIOS_SPEW
, " ");
21 printk(BIOS_SPEW
, "0x%08x", i
);
27 printk(BIOS_SPEW
, "\n\nReading back DRAM content");
28 for (i
= base
; i
< base
+ (size
- 1) - sizeof(p
); i
+= sizeof(p
)) {
29 if (i
% 0x100000 == 0) {
30 if ((i
% 0x800000) == 0)
31 printk(BIOS_SPEW
, "\n");
33 printk(BIOS_SPEW
, " ");
34 printk(BIOS_SPEW
, "0x%08x", i
);
39 printk(BIOS_SPEW
, "\n0x%08zx: got 0x%zx\n", i
, *p
);
44 printk(BIOS_SPEW
, "\n");
45 printk(BIOS_SPEW
, "%d errors\n", bad
);