Skip to content

Commit

Permalink
Update FW to 24.1.1, add missing FW for RV1 and RN
Browse files Browse the repository at this point in the history
Signed-off-by: Visual Ehrmanntraut <[email protected]>
  • Loading branch information
VisualEhrmanntraut committed Mar 26, 2024
1 parent 9cd18ac commit de33ccb
Show file tree
Hide file tree
Showing 24 changed files with 35 additions and 16 deletions.
Binary file modified NootedRed/Firmware/atidmcub_instruction_dcn21.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/ativvaxy_nv.dat
Binary file not shown.
Binary file modified NootedRed/Firmware/ativvaxy_rv.dat
Binary file not shown.
Binary file added NootedRed/Firmware/dmcu_eram_dcn21.bin
Binary file not shown.
Binary file added NootedRed/Firmware/dmcu_intvectors_dcn21.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_1_ce_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_1_me_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_1_mec_jt_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_1_mec_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_1_pfp_ucode.bin
Binary file not shown.
Binary file added NootedRed/Firmware/gc_9_1_rlc_rv1_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_2_ce_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_2_me_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_2_mec_jt_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_2_mec_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_2_pfp_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_3_ce_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_3_me_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_3_mec_jt_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_3_mec_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/gc_9_3_pfp_ucode.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/psp_asd.bin
Binary file not shown.
Binary file modified NootedRed/Firmware/psp_hdcp.bin
Binary file not shown.
51 changes: 35 additions & 16 deletions NootedRed/HWLibs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ CAILResult X5000HWLibs::pspSecurityFeatureCapsSet12(void *ctx) {
securityCaps &= ~static_cast<UInt8>(1);
auto &tOSVer = getMember<UInt32>(ctx, fieldBase + 0x8);
if ((tOSVer & 0xFFFF0000) == 0x110000 && (tOSVer & 0xFF) > 0x2A) {
auto policyVer = NRed::callback->readReg32(MP_BASE + 0x9B);
auto policyVer = NRed::callback->readReg32(MP_BASE + mmMP0_SMN_C2PMSG_91);
SYSLOG_COND((policyVer & 0xFF000000) != 0xB000000, "HWLibs", "Invalid security policy version: 0x%X",
policyVer);
if ((policyVer & 0xFFFF0000) == 0xB090000 && (policyVer & 0xFE) > 0x35) { securityCaps |= 1; }
Expand Down Expand Up @@ -402,7 +402,7 @@ CAILResult X5000HWLibs::psp12Reset(void *, UInt32 resetMode) {
}

CAILResult X5000HWLibs::wrapPspCmdKmSubmit(void *ctx, void *cmd, void *param3, void *param4) {
char filename[128] = {0};
char filename[64] = {0};
size_t off;
switch (getKernelVersion()) {
case KernelVersion::Catalina:
Expand Down Expand Up @@ -448,54 +448,73 @@ CAILResult X5000HWLibs::wrapPspCmdKmSubmit(void *ctx, void *cmd, void *param3, v
auto *prefix = NRed::getGCPrefix();
switch (getMember<AMDUCodeID>(cmd, 0x10)) {
case kUCodeCE:
snprintf(filename, 128, "%sce_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%sce_ucode.bin", prefix);
break;
case kUCodePFP:
snprintf(filename, 128, "%spfp_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%spfp_ucode.bin", prefix);
break;
case kUCodeME:
snprintf(filename, 128, "%sme_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%sme_ucode.bin", prefix);
break;
case kUCodeMEC1JT:
snprintf(filename, 128, "%smec_jt_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%smec_jt_ucode.bin", prefix);
break;
case kUCodeMEC2JT:
if (NRed::callback->chipType >= ChipType::Renoir) { return kCAILResultSuccess; }
snprintf(filename, 128, "%smec_jt_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%smec_jt_ucode.bin", prefix);
break;
case kUCodeMEC1:
snprintf(filename, 128, "%smec_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%smec_ucode.bin", prefix);
break;
case kUCodeMEC2:
if (NRed::callback->chipType >= ChipType::Renoir) { return kCAILResultSuccess; }
snprintf(filename, 128, "%smec_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%smec_ucode.bin", prefix);
break;
case kUCodeRLC:
snprintf(filename, 128, "%srlc_ucode.bin", prefix);
//! RV1_ForceFakeCGPG workaround in AMD Adrenaline drivers
if (NRed::callback->chipType == ChipType::Raven ||
(NRed::callback->deviceId == 0x15D8 &&
((NRed::callback->pciRevision >= 0xC8 && NRed::callback->pciRevision <= 0xCC) ||
(NRed::callback->pciRevision >= 0xD8 && NRed::callback->pciRevision <= 0xDD)))) {
snprintf(filename, sizeof(filename), "%srlc_rv1_ucode.bin", prefix);
} else {
snprintf(filename, sizeof(filename), "%srlc_ucode.bin", prefix);
}
break;
case kUCodeSDMA0:
strncpy(filename, "sdma_4_1_ucode.bin", 19);
break;
case kUCodeDMCUERAM:
strncpy(filename, "dmcu_eram_dcn10.bin", 20);
if (NRed::callback->chipType < ChipType::Renoir) {
strncpy(filename, "dmcu_eram_dcn10.bin", 20);
} else {
strncpy(filename, "dmcu_eram_dcn21.bin", 20);
}
break;
case kUCodeDMCUISR:
strncpy(filename, "dmcu_intvectors_dcn10.bin", 26);
if (NRed::callback->chipType < ChipType::Renoir) {
strncpy(filename, "dmcu_intvectors_dcn10.bin", 26);
} else {
strncpy(filename, "dmcu_intvectors_dcn21.bin", 26);
}
break;
case kUCodeRLCV:
//! No RLC V on Renoir
if (NRed::callback->chipType >= ChipType::Renoir) { return kCAILResultSuccess; }
snprintf(filename, 128, "%srlcv_ucode.bin", prefix);
snprintf(filename, sizeof(filename), "%srlcv_ucode.bin", prefix);
break;
case kUCodeRLCSRListGPM:
snprintf(filename, 128, "%srlc_srlist_gpm_mem.bin", prefix);
snprintf(filename, sizeof(filename), "%srlc_srlist_gpm_mem.bin", prefix);
break;
case kUCodeRLCSRListSRM:
snprintf(filename, 128, "%srlc_srlist_srm_mem.bin", prefix);
snprintf(filename, sizeof(filename), "%srlc_srlist_srm_mem.bin", prefix);
break;
case kUCodeRLCSRListCntl:
snprintf(filename, 128, "%srlc_srlist_cntl.bin", prefix);
snprintf(filename, sizeof(filename), "%srlc_srlist_cntl.bin", prefix);
break;
case kUCodeDMCUB:
SYSLOG_COND(NRed::callback->chipType < ChipType::Renoir, "HWLibs",
"Driver loaded DMCU version B firmware on a Raven-based chip, this can't be good!");
strncpy(filename, "atidmcub_instruction_dcn21.bin", 31);
break;
default:
Expand Down

0 comments on commit de33ccb

Please sign in to comment.