Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d771b14 authored by Helge Deller's avatar Helge Deller
Browse files

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: default avatarHelge Deller <deller@gmx.de>
parent 77089c52
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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;