mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 16:11:38 +00:00
parisc: Add PDCE_CHECK instruction to HPMC handler
According to the programming note at page 1-31 of the PA 1.1 Firmware Architecture document, one should use the PDC_INSTR firmware function to get the instruction that invokes a PDCE_CHECK in the HPMC handler. This patch follows this note and sets the instruction which has been a nop up until now. Testing on a C3000 and C8000 showed that this firmware call isn't implemented on those machines, so maybe it's only needed on older ones. Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
77089c5274
commit
8d771b143f
@ -817,7 +817,7 @@ void __init initialize_ivt(const void *iva)
|
||||
u32 check = 0;
|
||||
u32 *ivap;
|
||||
u32 *hpmcp;
|
||||
u32 length;
|
||||
u32 length, instr;
|
||||
|
||||
if (strcmp((const char *)iva, "cows can fly"))
|
||||
panic("IVT invalid");
|
||||
@ -827,6 +827,14 @@ void __init initialize_ivt(const void *iva)
|
||||
for (i = 0; i < 8; i++)
|
||||
*ivap++ = 0;
|
||||
|
||||
/*
|
||||
* Use PDC_INSTR firmware function to get instruction that invokes
|
||||
* PDCE_CHECK in HPMC handler. See programming note at page 1-31 of
|
||||
* the PA 1.1 Firmware Architecture document.
|
||||
*/
|
||||
if (pdc_instr(&instr) == PDC_OK)
|
||||
ivap[0] = instr;
|
||||
|
||||
/* Compute Checksum for HPMC handler */
|
||||
length = os_hpmc_size;
|
||||
ivap[7] = length;
|
||||
|
Loading…
Reference in New Issue
Block a user