Lines Matching refs:hsf

223 gm200_acr_hsfw_bld(struct nvkm_acr *acr, struct nvkm_acr_hsf *hsf)  in gm200_acr_hsfw_bld()  argument
227 .code_dma_base = hsf->vma->addr, in gm200_acr_hsfw_bld()
228 .non_sec_code_off = hsf->non_sec_addr, in gm200_acr_hsfw_bld()
229 .non_sec_code_size = hsf->non_sec_size, in gm200_acr_hsfw_bld()
230 .sec_code_off = hsf->sec_addr, in gm200_acr_hsfw_bld()
231 .sec_code_size = hsf->sec_size, in gm200_acr_hsfw_bld()
233 .data_dma_base = hsf->vma->addr + hsf->data_addr, in gm200_acr_hsfw_bld()
234 .data_size = hsf->data_size, in gm200_acr_hsfw_bld()
239 nvkm_falcon_load_dmem(hsf->falcon, &hsdesc, 0, sizeof(hsdesc), 0); in gm200_acr_hsfw_bld()
243 gm200_acr_hsfw_boot(struct nvkm_acr *acr, struct nvkm_acr_hsf *hsf, in gm200_acr_hsfw_boot() argument
248 struct nvkm_falcon *falcon = hsf->falcon; in gm200_acr_hsfw_boot()
257 nvkm_falcon_load_imem(falcon, hsf->imem, in gm200_acr_hsfw_boot()
258 falcon->code.limit - hsf->imem_size, in gm200_acr_hsfw_boot()
259 hsf->imem_size, in gm200_acr_hsfw_boot()
260 hsf->imem_tag, in gm200_acr_hsfw_boot()
264 hsf->func->bld(acr, hsf); in gm200_acr_hsfw_boot()
270 nvkm_falcon_set_start_addr(falcon, hsf->imem_tag << 8); in gm200_acr_hsfw_boot()
293 struct nvkm_acr_hsf *hsf; in gm200_acr_hsfw_load() local
319 if (!(hsf = kzalloc(sizeof(*hsf), GFP_KERNEL))) in gm200_acr_hsfw_load()
321 hsf->func = hsfw->func; in gm200_acr_hsfw_load()
322 hsf->name = hsfw->name; in gm200_acr_hsfw_load()
323 list_add_tail(&hsf->head, &acr->hsf); in gm200_acr_hsfw_load()
325 hsf->imem_size = hsfw->imem_size; in gm200_acr_hsfw_load()
326 hsf->imem_tag = hsfw->imem_tag; in gm200_acr_hsfw_load()
327 hsf->imem = kmemdup(hsfw->imem, hsfw->imem_size, GFP_KERNEL); in gm200_acr_hsfw_load()
328 if (!hsf->imem) in gm200_acr_hsfw_load()
331 hsf->non_sec_addr = hsfw->non_sec_addr; in gm200_acr_hsfw_load()
332 hsf->non_sec_size = hsfw->non_sec_size; in gm200_acr_hsfw_load()
333 hsf->sec_addr = hsfw->sec_addr; in gm200_acr_hsfw_load()
334 hsf->sec_size = hsfw->sec_size; in gm200_acr_hsfw_load()
335 hsf->data_addr = hsfw->data_addr; in gm200_acr_hsfw_load()
336 hsf->data_size = hsfw->data_size; in gm200_acr_hsfw_load()
340 hsfw->image_size, 0x1000, false, &hsf->ucode); in gm200_acr_hsfw_load()
344 nvkm_kmap(hsf->ucode); in gm200_acr_hsfw_load()
345 nvkm_wobj(hsf->ucode, 0, hsfw->image, hsfw->image_size); in gm200_acr_hsfw_load()
346 nvkm_done(hsf->ucode); in gm200_acr_hsfw_load()
348 ret = nvkm_vmm_get(acr->vmm, 12, nvkm_memory_size(hsf->ucode), in gm200_acr_hsfw_load()
349 &hsf->vma); in gm200_acr_hsfw_load()
353 ret = nvkm_memory_map(hsf->ucode, 0, acr->vmm, hsf->vma, NULL, 0); in gm200_acr_hsfw_load()
357 hsf->falcon = falcon; in gm200_acr_hsfw_load()
362 gm200_acr_unload_boot(struct nvkm_acr *acr, struct nvkm_acr_hsf *hsf) in gm200_acr_unload_boot() argument
364 return gm200_acr_hsfw_boot(acr, hsf, 0, 0x1d); in gm200_acr_unload_boot()
392 gm200_acr_load_boot(struct nvkm_acr *acr, struct nvkm_acr_hsf *hsf) in gm200_acr_load_boot() argument
394 return gm200_acr_hsfw_boot(acr, hsf, 0x10, 0); in gm200_acr_load_boot()