Skip to content

Commit 4d352db

Browse files
author
Ben Skeggs
committed
drm/nouveau/secboot/gp102-: remove WAR for SEC2 RTOS start bug
Appears to be fixed by "flcn/gp102-: improve implementation of bind_context() on SEC2/GSP". Tested on GP10[24678] and GV100. Signed-off-by: Ben Skeggs <[email protected]>
1 parent 5210e96 commit 4d352db

File tree

1 file changed

+0
-29
lines changed

1 file changed

+0
-29
lines changed

drivers/gpu/drm/nouveau/nvkm/subdev/secboot/ls_ucode_msgqueue.c

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -164,41 +164,12 @@ acr_ls_sec2_post_run(const struct nvkm_acr *acr, const struct nvkm_secboot *sb)
164164
struct nvkm_sec2 *sec = device->sec2;
165165
/* on SEC arguments are always at the beginning of EMEM */
166166
const u32 addr_args = 0x01000000;
167-
u32 reg;
168167
int ret;
169168

170169
ret = acr_ls_msgqueue_post_run(sec->queue, sec->falcon, addr_args);
171170
if (ret)
172171
return ret;
173172

174-
/*
175-
* There is a bug where the LS firmware sometimes require to be started
176-
* twice (this happens only on SEC). Detect and workaround that
177-
* condition.
178-
*
179-
* Once started, the falcon will end up in STOPPED condition (bit 5)
180-
* if successful, or in HALT condition (bit 4) if not.
181-
*/
182-
nvkm_msec(device, 1,
183-
if ((reg = nvkm_falcon_rd32(sb->boot_falcon, 0x100) & 0x30) != 0)
184-
break;
185-
);
186-
if (reg & BIT(4)) {
187-
nvkm_debug(subdev, "applying workaround for start bug...\n");
188-
nvkm_falcon_start(sb->boot_falcon);
189-
nvkm_msec(subdev->device, 1,
190-
if ((reg = nvkm_rd32(subdev->device,
191-
sb->boot_falcon->addr + 0x100)
192-
& 0x30) != 0)
193-
break;
194-
);
195-
if (reg & BIT(4)) {
196-
nvkm_error(subdev, "%s failed to start\n",
197-
nvkm_secboot_falcon_name[acr->boot_falcon]);
198-
return -EINVAL;
199-
}
200-
}
201-
202173
nvkm_debug(&sb->subdev, "%s started\n",
203174
nvkm_secboot_falcon_name[acr->boot_falcon]);
204175

0 commit comments

Comments
 (0)