mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 17:11:33 +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 check = 0;
|
||||||
u32 *ivap;
|
u32 *ivap;
|
||||||
u32 *hpmcp;
|
u32 *hpmcp;
|
||||||
u32 length;
|
u32 length, instr;
|
||||||
|
|
||||||
if (strcmp((const char *)iva, "cows can fly"))
|
if (strcmp((const char *)iva, "cows can fly"))
|
||||||
panic("IVT invalid");
|
panic("IVT invalid");
|
||||||
@ -827,6 +827,14 @@ void __init initialize_ivt(const void *iva)
|
|||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
*ivap++ = 0;
|
*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 */
|
/* Compute Checksum for HPMC handler */
|
||||||
length = os_hpmc_size;
|
length = os_hpmc_size;
|
||||||
ivap[7] = length;
|
ivap[7] = length;
|
||||||
|
Loading…
Reference in New Issue
Block a user