aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/mm/init.c
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2017-05-11 22:24:15 +0200
committerHelge Deller <deller@gmx.de>2017-05-12 09:14:15 +0200
commitc9c2877d08d9aa0ca0a5c227ac795fbb76269300 (patch)
treebb8c33d2619840e10d29c4e5caed49e8267bf4ba /arch/parisc/mm/init.c
parentparisc: Enhance detection of synchronous cr16 clocksources (diff)
downloadlinux-dev-c9c2877d08d9aa0ca0a5c227ac795fbb76269300.tar.xz
linux-dev-c9c2877d08d9aa0ca0a5c227ac795fbb76269300.zip
parisc: Add Page Deallocation Table (PDT) support
The firmare in most parisc machines maintains a Page Deallocation Table (PDT) which holds a list of physical memory addresses where hardware detected memory errors (single bit and double bit errors). This patch adds the missing PDC firmware calls and the logic to read the PDT from firmware, report all current PDT entries and exclude the reported bad memory from being used by Linux. Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to '')
-rw-r--r--arch/parisc/mm/init.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 66f3a6345105..1ca9a2b4239f 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -381,6 +381,9 @@ static void __init setup_bootmem(void)
request_resource(res, &data_resource);
}
request_resource(&sysram_resources[0], &pdcdata_resource);
+
+ /* Initialize Page Deallocation Table (PDT) and check for bad memory. */
+ pdc_pdt_init();
}
static int __init parisc_text_address(unsigned long vaddr)