drm/radeon: update firmware loading for hawaii
This just updates the firmware loading functions to look for the appropriate firmware files for hawaii. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Родитель
fc821b70b0
Коммит
d47756556d
|
@ -41,6 +41,14 @@ MODULE_FIRMWARE("radeon/BONAIRE_mc.bin");
|
|||
MODULE_FIRMWARE("radeon/BONAIRE_rlc.bin");
|
||||
MODULE_FIRMWARE("radeon/BONAIRE_sdma.bin");
|
||||
MODULE_FIRMWARE("radeon/BONAIRE_smc.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_pfp.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_me.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_ce.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_mec.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_mc.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_rlc.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_sdma.bin");
|
||||
MODULE_FIRMWARE("radeon/HAWAII_smc.bin");
|
||||
MODULE_FIRMWARE("radeon/KAVERI_pfp.bin");
|
||||
MODULE_FIRMWARE("radeon/KAVERI_me.bin");
|
||||
MODULE_FIRMWARE("radeon/KAVERI_ce.bin");
|
||||
|
@ -1628,6 +1636,35 @@ static const u32 bonaire_io_mc_regs[BONAIRE_IO_MC_REGS_SIZE][2] =
|
|||
{0x0000009f, 0x00b48000}
|
||||
};
|
||||
|
||||
#define HAWAII_IO_MC_REGS_SIZE 22
|
||||
|
||||
static const u32 hawaii_io_mc_regs[HAWAII_IO_MC_REGS_SIZE][2] =
|
||||
{
|
||||
{0x0000007d, 0x40000000},
|
||||
{0x0000007e, 0x40180304},
|
||||
{0x0000007f, 0x0000ff00},
|
||||
{0x00000081, 0x00000000},
|
||||
{0x00000083, 0x00000800},
|
||||
{0x00000086, 0x00000000},
|
||||
{0x00000087, 0x00000100},
|
||||
{0x00000088, 0x00020100},
|
||||
{0x00000089, 0x00000000},
|
||||
{0x0000008b, 0x00040000},
|
||||
{0x0000008c, 0x00000100},
|
||||
{0x0000008e, 0xff010000},
|
||||
{0x00000090, 0xffffefff},
|
||||
{0x00000091, 0xfff3efff},
|
||||
{0x00000092, 0xfff3efbf},
|
||||
{0x00000093, 0xf7ffffff},
|
||||
{0x00000094, 0xffffff7f},
|
||||
{0x00000095, 0x00000fff},
|
||||
{0x00000096, 0x00116fff},
|
||||
{0x00000097, 0x60010000},
|
||||
{0x00000098, 0x10010000},
|
||||
{0x0000009f, 0x00c79000}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* cik_srbm_select - select specific register instances
|
||||
*
|
||||
|
@ -1672,11 +1709,17 @@ static int ci_mc_load_microcode(struct radeon_device *rdev)
|
|||
|
||||
switch (rdev->family) {
|
||||
case CHIP_BONAIRE:
|
||||
default:
|
||||
io_mc_regs = (u32 *)&bonaire_io_mc_regs;
|
||||
ucode_size = CIK_MC_UCODE_SIZE;
|
||||
regs_size = BONAIRE_IO_MC_REGS_SIZE;
|
||||
break;
|
||||
case CHIP_HAWAII:
|
||||
io_mc_regs = (u32 *)&hawaii_io_mc_regs;
|
||||
ucode_size = HAWAII_MC_UCODE_SIZE;
|
||||
regs_size = HAWAII_IO_MC_REGS_SIZE;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
running = RREG32(MC_SEQ_SUP_CNTL) & RUN_MASK;
|
||||
|
@ -1738,8 +1781,8 @@ static int cik_init_microcode(struct radeon_device *rdev)
|
|||
{
|
||||
const char *chip_name;
|
||||
size_t pfp_req_size, me_req_size, ce_req_size,
|
||||
mec_req_size, rlc_req_size, mc_req_size,
|
||||
sdma_req_size, smc_req_size;
|
||||
mec_req_size, rlc_req_size, mc_req_size = 0,
|
||||
sdma_req_size, smc_req_size = 0;
|
||||
char fw_name[30];
|
||||
int err;
|
||||
|
||||
|
@ -1757,6 +1800,17 @@ static int cik_init_microcode(struct radeon_device *rdev)
|
|||
sdma_req_size = CIK_SDMA_UCODE_SIZE * 4;
|
||||
smc_req_size = ALIGN(BONAIRE_SMC_UCODE_SIZE, 4);
|
||||
break;
|
||||
case CHIP_HAWAII:
|
||||
chip_name = "HAWAII";
|
||||
pfp_req_size = CIK_PFP_UCODE_SIZE * 4;
|
||||
me_req_size = CIK_ME_UCODE_SIZE * 4;
|
||||
ce_req_size = CIK_CE_UCODE_SIZE * 4;
|
||||
mec_req_size = CIK_MEC_UCODE_SIZE * 4;
|
||||
rlc_req_size = BONAIRE_RLC_UCODE_SIZE * 4;
|
||||
mc_req_size = HAWAII_MC_UCODE_SIZE * 4;
|
||||
sdma_req_size = CIK_SDMA_UCODE_SIZE * 4;
|
||||
smc_req_size = ALIGN(HAWAII_SMC_UCODE_SIZE, 4);
|
||||
break;
|
||||
case CHIP_KAVERI:
|
||||
chip_name = "KAVERI";
|
||||
pfp_req_size = CIK_PFP_UCODE_SIZE * 4;
|
||||
|
@ -5505,6 +5559,7 @@ static int cik_rlc_resume(struct radeon_device *rdev)
|
|||
|
||||
switch (rdev->family) {
|
||||
case CHIP_BONAIRE:
|
||||
case CHIP_HAWAII:
|
||||
default:
|
||||
size = BONAIRE_RLC_UCODE_SIZE;
|
||||
break;
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#define SI_MC_UCODE_SIZE 7769
|
||||
#define OLAND_MC_UCODE_SIZE 7863
|
||||
#define CIK_MC_UCODE_SIZE 7866
|
||||
#define HAWAII_MC_UCODE_SIZE 7933
|
||||
|
||||
/* SDMA */
|
||||
#define CIK_SDMA_UCODE_SIZE 1050
|
||||
|
@ -143,4 +144,7 @@
|
|||
#define BONAIRE_SMC_UCODE_START 0x20000
|
||||
#define BONAIRE_SMC_UCODE_SIZE 0x1FDEC
|
||||
|
||||
#define HAWAII_SMC_UCODE_START 0x20000
|
||||
#define HAWAII_SMC_UCODE_SIZE 0x1FDEC
|
||||
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче