diff options
author | Helge Deller <deller@gmx.de> | 2017-05-11 23:24:15 +0300 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2017-05-12 10:14:15 +0300 |
commit | c9c2877d08d9aa0ca0a5c227ac795fbb76269300 (patch) | |
tree | bb8c33d2619840e10d29c4e5caed49e8267bf4ba /arch/parisc/kernel/inventory.c | |
parent | c8c3735997a3aa184fa81742bb6c4062a26af2f3 (diff) | |
download | linux-c9c2877d08d9aa0ca0a5c227ac795fbb76269300.tar.xz |
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 'arch/parisc/kernel/inventory.c')
-rw-r--r-- | arch/parisc/kernel/inventory.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/parisc/kernel/inventory.c b/arch/parisc/kernel/inventory.c index c9789d9c73b4..b0fe19ac4d78 100644 --- a/arch/parisc/kernel/inventory.c +++ b/arch/parisc/kernel/inventory.c @@ -40,6 +40,11 @@ int pdc_type __read_mostly = PDC_TYPE_ILLEGAL; +/* cell number and location (PAT firmware only) */ +unsigned long parisc_cell_num __read_mostly; +unsigned long parisc_cell_loc __read_mostly; + + void __init setup_pdc(void) { long status; @@ -78,6 +83,10 @@ void __init setup_pdc(void) if (status == PDC_OK) { pdc_type = PDC_TYPE_PAT; pr_cont("64 bit PAT.\n"); + parisc_cell_num = cell_info.cell_num; + parisc_cell_loc = cell_info.cell_loc; + pr_info("PAT: Running on cell %lu and location %lu.\n", + parisc_cell_num, parisc_cell_loc); return; } #endif |