mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 23:50:53 +07:00
powerpc/qe: set IReady in QE Microcode Upload
QE Microcode Initialization using qe_upload_microcode() does not work on P1021 if the IRAM-Ready register is not set after the microcode upload. Add a definition for the "I-RAM Ready" register and sets it upon microcode upload completion. Signed-off-by: Ioannis Kokkoris <ioannis.kokoris@siemens-enterprise.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
1f0e90ad7a
commit
e65650e6c3
@ -26,7 +26,9 @@
|
||||
struct qe_iram {
|
||||
__be32 iadd; /* I-RAM Address Register */
|
||||
__be32 idata; /* I-RAM Data Register */
|
||||
u8 res0[0x78];
|
||||
u8 res0[0x04];
|
||||
__be32 iready; /* I-RAM Ready Register */
|
||||
u8 res1[0x70];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/* QE Interrupt Controller */
|
||||
|
@ -499,6 +499,7 @@ enum comm_dir {
|
||||
/* I-RAM */
|
||||
#define QE_IRAM_IADD_AIE 0x80000000 /* Auto Increment Enable */
|
||||
#define QE_IRAM_IADD_BADDR 0x00080000 /* Base Address */
|
||||
#define QE_IRAM_READY 0x80000000 /* Ready */
|
||||
|
||||
/* UPC */
|
||||
#define UPGCR_PROTOCOL 0x80000000 /* protocol ul2 or pl2 */
|
||||
|
@ -395,6 +395,9 @@ static void qe_upload_microcode(const void *base,
|
||||
|
||||
for (i = 0; i < be32_to_cpu(ucode->count); i++)
|
||||
out_be32(&qe_immr->iram.idata, be32_to_cpu(code[i]));
|
||||
|
||||
/* Set I-RAM Ready Register */
|
||||
out_be32(&qe_immr->iram.iready, be32_to_cpu(QE_IRAM_READY));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user