/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/falcon/ |
H A D | base.c | 28 nvkm_falcon_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_load_imem() argument 31 if (secure && !falcon->secret) { in nvkm_falcon_load_imem() 32 nvkm_warn(falcon->user, in nvkm_falcon_load_imem() 33 "writing with secure tag on a non-secure falcon!\n"); in nvkm_falcon_load_imem() 37 falcon->func->load_imem(falcon, data, start, size, tag, port, in nvkm_falcon_load_imem() 42 nvkm_falcon_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_load_dmem() argument 45 mutex_lock(&falcon->dmem_mutex); in nvkm_falcon_load_dmem() 47 falcon->func->load_dmem(falcon, dat in nvkm_falcon_load_dmem() 53 nvkm_falcon_read_dmem(struct nvkm_falcon *falcon, u32 start, u32 size, u8 port, void *data) nvkm_falcon_read_dmem() argument 64 nvkm_falcon_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *inst) nvkm_falcon_bind_context() argument 76 nvkm_falcon_set_start_addr(struct nvkm_falcon *falcon, u32 start_addr) nvkm_falcon_set_start_addr() argument 82 nvkm_falcon_start(struct nvkm_falcon *falcon) nvkm_falcon_start() argument 88 nvkm_falcon_enable(struct nvkm_falcon *falcon) nvkm_falcon_enable() argument 105 nvkm_falcon_disable(struct nvkm_falcon *falcon) nvkm_falcon_disable() argument 120 nvkm_falcon_reset(struct nvkm_falcon *falcon) nvkm_falcon_reset() argument 131 nvkm_falcon_wait_for_halt(struct nvkm_falcon *falcon, u32 ms) nvkm_falcon_wait_for_halt() argument 137 nvkm_falcon_clear_interrupt(struct nvkm_falcon *falcon, u32 mask) nvkm_falcon_clear_interrupt() argument 143 nvkm_falcon_oneinit(struct nvkm_falcon *falcon) nvkm_falcon_oneinit() argument 174 nvkm_falcon_put(struct nvkm_falcon *falcon, const struct nvkm_subdev *user) nvkm_falcon_put() argument 188 nvkm_falcon_get(struct nvkm_falcon *falcon, const struct nvkm_subdev *user) nvkm_falcon_get() argument 209 nvkm_falcon_dtor(struct nvkm_falcon *falcon) nvkm_falcon_dtor() argument 214 nvkm_falcon_ctor(const struct nvkm_falcon_func *func, struct nvkm_subdev *subdev, const char *name, u32 addr, struct nvkm_falcon *falcon) nvkm_falcon_ctor() argument [all...] |
H A D | v1.c | 29 nvkm_falcon_v1_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_imem() argument 39 nvkm_falcon_wr32(falcon, 0x180 + (port * 16), reg); in nvkm_falcon_v1_load_imem() 43 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 44 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), ((u32 *)data)[i]); in nvkm_falcon_v1_load_imem() 56 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 57 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), in nvkm_falcon_v1_load_imem() 64 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), 0); in nvkm_falcon_v1_load_imem() 68 nvkm_falcon_v1_load_emem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_emem() argument 76 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), start | (0x1 << 24)); in nvkm_falcon_v1_load_emem() 78 nvkm_falcon_wr32(falcon, in nvkm_falcon_v1_load_emem() 93 nvkm_falcon_v1_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, u32 size, u8 port) nvkm_falcon_v1_load_dmem() argument 124 nvkm_falcon_v1_read_emem(struct nvkm_falcon *falcon, u32 start, u32 size, u8 port, void *data) nvkm_falcon_v1_read_emem() argument 151 nvkm_falcon_v1_read_dmem(struct nvkm_falcon *falcon, u32 start, u32 size, u8 port, void *data) nvkm_falcon_v1_read_dmem() argument 183 nvkm_falcon_v1_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *ctx) nvkm_falcon_v1_bind_context() argument 225 nvkm_falcon_v1_set_start_addr(struct nvkm_falcon *falcon, u32 start_addr) nvkm_falcon_v1_set_start_addr() argument 231 nvkm_falcon_v1_start(struct nvkm_falcon *falcon) nvkm_falcon_v1_start() argument 242 nvkm_falcon_v1_wait_for_halt(struct nvkm_falcon *falcon, u32 ms) nvkm_falcon_v1_wait_for_halt() argument 255 nvkm_falcon_v1_clear_interrupt(struct nvkm_falcon *falcon, u32 mask) nvkm_falcon_v1_clear_interrupt() argument 271 falcon_v1_wait_idle(struct nvkm_falcon *falcon) falcon_v1_wait_idle() argument 284 nvkm_falcon_v1_enable(struct nvkm_falcon *falcon) nvkm_falcon_v1_enable() argument 306 nvkm_falcon_v1_disable(struct nvkm_falcon *falcon) nvkm_falcon_v1_disable() argument 331 struct nvkm_falcon *falcon; nvkm_falcon_v1_new() local [all...] |
H A D | msgq.c | 29 msgq->position = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_open() 35 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_close() local 38 nvkm_falcon_wr32(falcon, msgq->tail_reg, msgq->position); in nvkm_falcon_msgq_close() 46 u32 head = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->head_reg); in nvkm_falcon_msgq_empty() 47 u32 tail = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_empty() 54 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_pop() local 57 head = nvkm_falcon_rd32(falcon, msgq->head_reg); in nvkm_falcon_msgq_pop() 71 nvkm_falcon_read_dmem(falcon, tai in nvkm_falcon_msgq_pop() 157 struct nvkm_falcon *falcon = msgq->qmgr->falcon; nvkm_falcon_msgq_recv_initmsg() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/falcon/ |
H A D | gm200.c | 29 gm200_flcn_tracepc(struct nvkm_falcon *falcon) in gm200_flcn_tracepc() argument 31 u32 sctl = nvkm_falcon_rd32(falcon, 0x240); in gm200_flcn_tracepc() 32 u32 tidx = nvkm_falcon_rd32(falcon, 0x148); in gm200_flcn_tracepc() 35 FLCN_ERR(falcon, "TRACEPC SCTL %08x TIDX %08x", sctl, tidx); in gm200_flcn_tracepc() 37 nvkm_falcon_wr32(falcon, 0x148, sp); in gm200_flcn_tracepc() 38 ip = nvkm_falcon_rd32(falcon, 0x14c); in gm200_flcn_tracepc() 39 FLCN_ERR(falcon, "TRACEPC: %08x", ip); in gm200_flcn_tracepc() 44 gm200_flcn_pio_dmem_rd(struct nvkm_falcon *falcon, u8 port, const u8 *img, int len) in gm200_flcn_pio_dmem_rd() argument 47 *(u32 *)img = nvkm_falcon_rd32(falcon, 0x1c4 + (port * 8)); in gm200_flcn_pio_dmem_rd() 54 u32 data = nvkm_falcon_rd32(falcon, in gm200_flcn_pio_dmem_rd() 64 gm200_flcn_pio_dmem_rd_init(struct nvkm_falcon *falcon, u8 port, u32 dmem_base) gm200_flcn_pio_dmem_rd_init() argument 70 gm200_flcn_pio_dmem_wr(struct nvkm_falcon *falcon, u8 port, const u8 *img, int len, u16 tag) gm200_flcn_pio_dmem_wr() argument 82 gm200_flcn_pio_dmem_wr_init(struct nvkm_falcon *falcon, u8 port, bool sec, u32 dmem_base) gm200_flcn_pio_dmem_wr_init() argument 98 gm200_flcn_pio_imem_wr_init(struct nvkm_falcon *falcon, u8 port, bool sec, u32 imem_base) gm200_flcn_pio_imem_wr_init() argument 104 gm200_flcn_pio_imem_wr(struct nvkm_falcon *falcon, u8 port, const u8 *img, int len, u16 tag) gm200_flcn_pio_imem_wr() argument 123 gm200_flcn_bind_stat(struct nvkm_falcon *falcon, bool intr) gm200_flcn_bind_stat() argument 132 gm200_flcn_bind_inst(struct nvkm_falcon *falcon, int target, u64 addr) gm200_flcn_bind_inst() argument 141 gm200_flcn_reset_wait_mem_scrubbing(struct nvkm_falcon *falcon) gm200_flcn_reset_wait_mem_scrubbing() argument 155 gm200_flcn_enable(struct nvkm_falcon *falcon) gm200_flcn_enable() argument 184 gm200_flcn_disable(struct nvkm_falcon *falcon) gm200_flcn_disable() argument 220 struct nvkm_falcon *falcon = fw->falcon; gm200_flcn_fw_boot() local 251 struct nvkm_falcon *falcon = fw->falcon; gm200_flcn_fw_load() local 333 struct nvkm_falcon *falcon = fw->falcon; gm200_flcn_fw_signature() local [all...] |
H A D | base.c | 29 nvkm_falcon_dma(struct nvkm_falcon *falcon, enum nvkm_falcon_mem *mem_type, u32 *mem_base) in nvkm_falcon_dma() argument 32 case IMEM: return falcon->func->imem_dma; in nvkm_falcon_dma() 33 case DMEM: return falcon->func->dmem_dma; in nvkm_falcon_dma() 40 nvkm_falcon_dma_wr(struct nvkm_falcon *falcon, const u8 *img, u64 dma_addr, u32 dma_base, in nvkm_falcon_dma_wr() argument 43 const struct nvkm_falcon_func_dma *dma = nvkm_falcon_dma(falcon, &mem_type, &mem_base); in nvkm_falcon_dma_wr() 58 FLCN_DBG(falcon, "%s %08x <- %08x bytes at %08x (%010llx %08x)", in nvkm_falcon_dma_wr() 63 ret = dma->init(falcon, dma_addr, dmalen, mem_type, sec, &cmd); in nvkm_falcon_dma_wr() 71 dma->xfer(falcon, dst, src - dma_start, cmd); in nvkm_falcon_dma_wr() 73 if (img && nvkm_printk_ok(falcon->owner, falcon in nvkm_falcon_dma_wr() 105 nvkm_falcon_pio(struct nvkm_falcon *falcon, enum nvkm_falcon_mem *mem_type, u32 *mem_base) nvkm_falcon_pio() argument 124 nvkm_falcon_pio_rd(struct nvkm_falcon *falcon, u8 port, enum nvkm_falcon_mem mem_type, u32 mem_base, const u8 *img, u32 img_base, int len) nvkm_falcon_pio_rd() argument 159 nvkm_falcon_pio_wr(struct nvkm_falcon *falcon, const u8 *img, u32 img_base, u8 port, enum nvkm_falcon_mem mem_type, u32 mem_base, int len, u16 tag, bool sec) nvkm_falcon_pio_wr() argument 196 nvkm_falcon_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, u32 size, u16 tag, u8 port, bool secure) nvkm_falcon_load_imem() argument 210 nvkm_falcon_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, u32 size, u8 port) nvkm_falcon_load_dmem() argument 221 nvkm_falcon_start(struct nvkm_falcon *falcon) nvkm_falcon_start() argument 227 nvkm_falcon_reset(struct nvkm_falcon *falcon) nvkm_falcon_reset() argument 239 nvkm_falcon_oneinit(struct nvkm_falcon *falcon) nvkm_falcon_oneinit() argument 270 nvkm_falcon_put(struct nvkm_falcon *falcon, struct nvkm_subdev *user) nvkm_falcon_put() argument 284 nvkm_falcon_get(struct nvkm_falcon *falcon, struct nvkm_subdev *user) nvkm_falcon_get() argument 305 nvkm_falcon_dtor(struct nvkm_falcon *falcon) nvkm_falcon_dtor() argument 310 nvkm_falcon_ctor(const struct nvkm_falcon_func *func, struct nvkm_subdev *subdev, const char *name, u32 addr, struct nvkm_falcon *falcon) nvkm_falcon_ctor() argument [all...] |
H A D | ga102.c | 28 ga102_flcn_dma_done(struct nvkm_falcon *falcon) in ga102_flcn_dma_done() argument 30 return !!(nvkm_falcon_rd32(falcon, 0x118) & 0x00000002); in ga102_flcn_dma_done() 34 ga102_flcn_dma_xfer(struct nvkm_falcon *falcon, u32 mem_base, u32 dma_base, u32 cmd) in ga102_flcn_dma_xfer() argument 36 nvkm_falcon_wr32(falcon, 0x114, mem_base); in ga102_flcn_dma_xfer() 37 nvkm_falcon_wr32(falcon, 0x11c, dma_base); in ga102_flcn_dma_xfer() 38 nvkm_falcon_wr32(falcon, 0x118, cmd); in ga102_flcn_dma_xfer() 42 ga102_flcn_dma_init(struct nvkm_falcon *falcon, u64 dma_addr, int xfer_len, in ga102_flcn_dma_init() argument 51 nvkm_falcon_wr32(falcon, 0x110, dma_addr >> 8); in ga102_flcn_dma_init() 52 nvkm_falcon_wr32(falcon, 0x128, 0x00000000); in ga102_flcn_dma_init() 64 ga102_flcn_reset_wait_mem_scrubbing(struct nvkm_falcon *falcon) in ga102_flcn_reset_wait_mem_scrubbing() argument 78 ga102_flcn_reset_prep(struct nvkm_falcon *falcon) ga102_flcn_reset_prep() argument 92 ga102_flcn_select(struct nvkm_falcon *falcon) ga102_flcn_select() argument 109 struct nvkm_falcon *falcon = fw->falcon; ga102_flcn_fw_boot() local 122 struct nvkm_falcon *falcon = fw->falcon; ga102_flcn_fw_load() local [all...] |
H A D | gp102.c | 25 gp102_flcn_pio_emem_rd(struct nvkm_falcon *falcon, u8 port, const u8 *img, int len) in gp102_flcn_pio_emem_rd() argument 28 *(u32 *)img = nvkm_falcon_rd32(falcon, 0xac4 + (port * 8)); in gp102_flcn_pio_emem_rd() 35 gp102_flcn_pio_emem_rd_init(struct nvkm_falcon *falcon, u8 port, u32 dmem_base) in gp102_flcn_pio_emem_rd_init() argument 37 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), BIT(25) | dmem_base); in gp102_flcn_pio_emem_rd_init() 41 gp102_flcn_pio_emem_wr(struct nvkm_falcon *falcon, u8 port, const u8 *img, int len, u16 tag) in gp102_flcn_pio_emem_wr() argument 44 nvkm_falcon_wr32(falcon, 0xac4 + (port * 8), *(u32 *)img); in gp102_flcn_pio_emem_wr() 51 gp102_flcn_pio_emem_wr_init(struct nvkm_falcon *falcon, u8 port, bool sec, u32 emem_base) in gp102_flcn_pio_emem_wr_init() argument 53 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), BIT(24) | emem_base); in gp102_flcn_pio_emem_wr_init() 67 gp102_flcn_reset_eng(struct nvkm_falcon *falcon) in gp102_flcn_reset_eng() argument 71 if (falcon in gp102_flcn_reset_eng() [all...] |
H A D | v1.c | 29 nvkm_falcon_v1_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_imem() argument 39 nvkm_falcon_wr32(falcon, 0x180 + (port * 16), reg); in nvkm_falcon_v1_load_imem() 43 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 44 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), ((u32 *)data)[i]); in nvkm_falcon_v1_load_imem() 56 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 57 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), in nvkm_falcon_v1_load_imem() 64 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), 0); in nvkm_falcon_v1_load_imem() 68 nvkm_falcon_v1_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_dmem() argument 76 nvkm_falcon_wr32(falcon, 0x1c0 + (port * 8), start | (0x1 << 24)); in nvkm_falcon_v1_load_dmem() 78 nvkm_falcon_wr32(falcon, in nvkm_falcon_v1_load_dmem() 93 nvkm_falcon_v1_start(struct nvkm_falcon *falcon) nvkm_falcon_v1_start() argument [all...] |
H A D | msgq.c | 29 msgq->position = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_open() 35 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_close() local 38 nvkm_falcon_wr32(falcon, msgq->tail_reg, msgq->position); in nvkm_falcon_msgq_close() 46 u32 head = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->head_reg); in nvkm_falcon_msgq_empty() 47 u32 tail = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_empty() 54 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_pop() local 57 head = nvkm_falcon_rd32(falcon, msgq->head_reg); in nvkm_falcon_msgq_pop() 71 nvkm_falcon_pio_rd(falcon, in nvkm_falcon_msgq_pop() 157 struct nvkm_falcon *falcon = msgq->qmgr->falcon; nvkm_falcon_msgq_recv_initmsg() local [all...] |
H A D | ga100.c | 27 struct nvkm_falcon *falcon = fw->falcon; in ga100_flcn_fw_signature() local 28 struct nvkm_device *device = falcon->owner->device; in ga100_flcn_fw_signature() 32 FLCN_DBG(falcon, "brom: %08x %08x", fw->engine_id, fw->ucode_id); in ga100_flcn_fw_signature() 33 FLCN_DBG(falcon, "fuse_version: %d", fw->fuse_ver); in ga100_flcn_fw_signature() 48 FLCN_DBG(falcon, "reg_fuse_version: %08x", reg_fuse_version); in ga100_flcn_fw_signature() 51 FLCN_DBG(falcon, "reg_fuse_version: %d", reg_fuse_version); in ga100_flcn_fw_signature()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/tegra/ |
H A D | falcon.c | 12 #include "falcon.h" 20 static void falcon_writel(struct falcon *falcon, u32 value, u32 offset) in falcon_writel() argument 22 writel(value, falcon->regs + offset); in falcon_writel() 25 int falcon_wait_idle(struct falcon *falcon) in falcon_wait_idle() argument 29 return readl_poll_timeout(falcon->regs + FALCON_IDLESTATE, value, in falcon_wait_idle() 33 static int falcon_dma_wait_idle(struct falcon *falcon) in falcon_dma_wait_idle() argument 37 return readl_poll_timeout(falcon in falcon_dma_wait_idle() 41 falcon_copy_chunk(struct falcon *falcon, phys_addr_t base, unsigned long offset, enum falcon_memory target) falcon_copy_chunk() argument 66 falcon_copy_firmware_image(struct falcon *falcon, const struct firmware *firmware) falcon_copy_firmware_image() argument 77 falcon_parse_firmware_image(struct falcon *falcon) falcon_parse_firmware_image() argument 112 falcon_read_firmware(struct falcon *falcon, const char *name) falcon_read_firmware() argument 126 falcon_load_firmware(struct falcon *falcon) falcon_load_firmware() argument 147 falcon_init(struct falcon *falcon) falcon_init() argument 154 falcon_exit(struct falcon *falcon) falcon_exit() argument 160 falcon_boot(struct falcon *falcon) falcon_boot() argument 227 falcon_execute_method(struct falcon *falcon, u32 method, u32 data) falcon_execute_method() argument [all...] |
H A D | falcon.h | 99 struct falcon { struct 100 /* Set by falcon client */ 107 int falcon_init(struct falcon *falcon); 108 void falcon_exit(struct falcon *falcon); 109 int falcon_read_firmware(struct falcon *falcon, const char *firmware_name); 110 int falcon_load_firmware(struct falcon *falcon); [all...] |
H A D | vic.c | 20 #include "falcon.h" 30 struct falcon falcon; member 88 err = falcon_boot(&vic->falcon); in vic_boot() 92 hdr = vic->falcon.firmware.virt; in vic_boot() 97 hdr = vic->falcon.firmware.virt + in vic_boot() 101 falcon_execute_method(&vic->falcon, VIC_SET_FCE_UCODE_SIZE, in vic_boot() 104 &vic->falcon, VIC_SET_FCE_UCODE_OFFSET, in vic_boot() 105 (vic->falcon.firmware.iova + fce_bin_data_offset) >> 8); in vic_boot() 108 err = falcon_wait_idle(&vic->falcon); in vic_boot() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/tegra/ |
H A D | falcon.c | 12 #include "falcon.h" 20 static void falcon_writel(struct falcon *falcon, u32 value, u32 offset) in falcon_writel() argument 22 writel(value, falcon->regs + offset); in falcon_writel() 25 int falcon_wait_idle(struct falcon *falcon) in falcon_wait_idle() argument 29 return readl_poll_timeout(falcon->regs + FALCON_IDLESTATE, value, in falcon_wait_idle() 33 static int falcon_dma_wait_idle(struct falcon *falcon) in falcon_dma_wait_idle() argument 37 return readl_poll_timeout(falcon in falcon_dma_wait_idle() 41 falcon_copy_chunk(struct falcon *falcon, phys_addr_t base, unsigned long offset, enum falcon_memory target) falcon_copy_chunk() argument 58 falcon_copy_firmware_image(struct falcon *falcon, const struct firmware *firmware) falcon_copy_firmware_image() argument 69 falcon_parse_firmware_image(struct falcon *falcon) falcon_parse_firmware_image() argument 104 falcon_read_firmware(struct falcon *falcon, const char *name) falcon_read_firmware() argument 118 falcon_load_firmware(struct falcon *falcon) falcon_load_firmware() argument 139 falcon_init(struct falcon *falcon) falcon_init() argument 146 falcon_exit(struct falcon *falcon) falcon_exit() argument 152 falcon_boot(struct falcon *falcon) falcon_boot() argument 218 falcon_execute_method(struct falcon *falcon, u32 method, u32 data) falcon_execute_method() argument [all...] |
H A D | falcon.h | 98 struct falcon { struct 99 /* Set by falcon client */ 106 int falcon_init(struct falcon *falcon); 107 void falcon_exit(struct falcon *falcon); 108 int falcon_read_firmware(struct falcon *falcon, const char *firmware_name); 109 int falcon_load_firmware(struct falcon *falcon); [all...] |
H A D | vic.c | 22 #include "falcon.h" 32 struct falcon falcon; member 133 err = falcon_boot(&vic->falcon); in vic_boot() 137 hdr = vic->falcon.firmware.virt; in vic_boot() 139 hdr = vic->falcon.firmware.virt + in vic_boot() 143 falcon_execute_method(&vic->falcon, VIC_SET_APPLICATION_ID, 1); in vic_boot() 144 falcon_execute_method(&vic->falcon, VIC_SET_FCE_UCODE_SIZE, in vic_boot() 146 falcon_execute_method(&vic->falcon, VIC_SET_FCE_UCODE_OFFSET, in vic_boot() 147 (vic->falcon in vic_boot() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/ |
H A D | falcon.c | 22 #include <engine/falcon.h> 32 struct nvkm_falcon *falcon = nvkm_falcon(oclass->engine); in nvkm_falcon_oclass_get() local 35 while (falcon->func->sclass[c].oclass) { in nvkm_falcon_oclass_get() 37 oclass->base = falcon->func->sclass[index]; in nvkm_falcon_oclass_get() 61 struct nvkm_falcon *falcon = nvkm_falcon(engine); in nvkm_falcon_intr() local 62 struct nvkm_subdev *subdev = &falcon->engine.subdev; in nvkm_falcon_intr() 64 const u32 base = falcon->addr; in nvkm_falcon_intr() 74 if (falcon->func->intr) { in nvkm_falcon_intr() 75 falcon->func->intr(falcon, cha in nvkm_falcon_intr() 98 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_fini() local 131 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_oneinit() local 162 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_init() local 342 struct nvkm_falcon *falcon; nvkm_falcon_new_() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/ |
H A D | falcon.c | 22 #include <engine/falcon.h> 32 struct nvkm_falcon *falcon = nvkm_falcon(oclass->engine); in nvkm_falcon_oclass_get() local 35 while (falcon->func->sclass[c].oclass) { in nvkm_falcon_oclass_get() 37 oclass->base = falcon->func->sclass[index]; in nvkm_falcon_oclass_get() 61 struct nvkm_falcon *falcon = nvkm_falcon(engine); in nvkm_falcon_intr() local 62 struct nvkm_subdev *subdev = &falcon->engine.subdev; in nvkm_falcon_intr() 64 const u32 base = falcon->addr; in nvkm_falcon_intr() 74 if (falcon->func->intr) { in nvkm_falcon_intr() 75 falcon->func->intr(falcon, cha in nvkm_falcon_intr() 98 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_fini() local 131 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_oneinit() local 162 struct nvkm_falcon *falcon = nvkm_falcon(engine); nvkm_falcon_init() local 342 struct nvkm_falcon *falcon; nvkm_falcon_new_() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/sec2/ |
H A D | gp102.c | 49 "falcon %d [%s]: %08x\n", in gp102_sec2_acr_bootstrap_falcon_callback() 59 gp102_sec2_acr_bootstrap_falcon(struct nvkm_falcon *falcon, in gp102_sec2_acr_bootstrap_falcon() argument 62 struct nvkm_sec2 *sec2 = container_of(falcon, typeof(*sec2), falcon); in gp102_sec2_acr_bootstrap_falcon() 78 gp102_sec2_acr_boot(struct nvkm_falcon *falcon) in gp102_sec2_acr_boot() argument 81 nvkm_falcon_load_dmem(falcon, &args, in gp102_sec2_acr_boot() 82 falcon->func->emem_addr, sizeof(args), 0); in gp102_sec2_acr_boot() 83 nvkm_falcon_start(falcon); in gp102_sec2_acr_boot() 114 .argv = lsfw->falcon->func->emem_addr, in gp102_sec2_acr_bld_write() 167 struct nvkm_falcon *falcon in gp102_sec2_intr() local 184 gp102_sec2_flcn_enable(struct nvkm_falcon *falcon) gp102_sec2_flcn_enable() argument 193 gp102_sec2_flcn_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *ctx) gp102_sec2_flcn_bind_context() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/ |
H A D | gm200.c | 27 gm200_pmu_flcn_bind_stat(struct nvkm_falcon *falcon, bool intr) in gm200_pmu_flcn_bind_stat() argument 29 nvkm_falcon_wr32(falcon, 0x200, 0x0000030e); in gm200_pmu_flcn_bind_stat() 30 return (nvkm_falcon_rd32(falcon, 0x20c) & 0x00007000) >> 12; in gm200_pmu_flcn_bind_stat() 34 gm200_pmu_flcn_bind_inst(struct nvkm_falcon *falcon, int target, u64 addr) in gm200_pmu_flcn_bind_inst() argument 36 nvkm_falcon_wr32(falcon, 0xe00, 4); /* DMAIDX_UCODE */ in gm200_pmu_flcn_bind_inst() 37 nvkm_falcon_wr32(falcon, 0xe04, 0); /* DMAIDX_VIRT */ in gm200_pmu_flcn_bind_inst() 38 nvkm_falcon_wr32(falcon, 0xe08, 4); /* DMAIDX_PHYS_VID */ in gm200_pmu_flcn_bind_inst() 39 nvkm_falcon_wr32(falcon, 0xe0c, 5); /* DMAIDX_PHYS_SYS_COH */ in gm200_pmu_flcn_bind_inst() 40 nvkm_falcon_wr32(falcon, 0xe10, 6); /* DMAIDX_PHYS_SYS_NCOH */ in gm200_pmu_flcn_bind_inst() 41 nvkm_falcon_mask(falcon, in gm200_pmu_flcn_bind_inst() [all...] |
H A D | gk20a.c | 98 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_get_dev_status() local 100 status->busy = nvkm_falcon_rd32(falcon, 0x508 + (BUSY_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 101 status->total= nvkm_falcon_rd32(falcon, 0x508 + (CLK_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 107 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_reset_dev_status() local 109 nvkm_falcon_wr32(falcon, 0x508 + (BUSY_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 110 nvkm_falcon_wr32(falcon, 0x508 + (CLK_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 163 nvkm_falcon_put(&pmu->falcon, &pmu->subdev); in gk20a_pmu_fini() 172 struct nvkm_falcon *falcon in gk20a_pmu_init() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
H A D | gp102.c | 38 struct nvkm_falcon *falcon = &device->nvdec[0]->falcon; in gp102_fb_vpr_scrub() local 47 nvkm_falcon_get(falcon, subdev); in gp102_fb_vpr_scrub() 56 if (falcon->debug) { in gp102_fb_vpr_scrub() 66 nvkm_falcon_reset(falcon); in gp102_fb_vpr_scrub() 67 nvkm_falcon_bind_context(falcon, NULL); in gp102_fb_vpr_scrub() 69 nvkm_falcon_load_imem(falcon, scrub_data, lhdr->non_sec_code_off, in gp102_fb_vpr_scrub() 72 nvkm_falcon_load_imem(falcon, scrub_data + lhdr->apps[0], in gp102_fb_vpr_scrub() 76 nvkm_falcon_load_dmem(falcon, scrub_data + lhdr->data_dma_base, 0, in gp102_fb_vpr_scrub() 79 nvkm_falcon_set_start_addr(falcon, in gp102_fb_vpr_scrub() [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/sec2/ |
H A D | base.c | 44 struct nvkm_falcon *falcon = &sec2->falcon; in nvkm_sec2_fini() local 61 if (nvkm_falcon_rd32(falcon, 0x100) & 0x00000010) in nvkm_sec2_fini() 69 falcon->func->disable(falcon); in nvkm_sec2_fini() 70 nvkm_falcon_put(falcon, subdev); in nvkm_sec2_fini() 79 struct nvkm_falcon *falcon = &sec2->falcon; in nvkm_sec2_init() local 82 ret = nvkm_falcon_get(falcon, subdev); in nvkm_sec2_init() 86 nvkm_falcon_wr32(falcon, in nvkm_sec2_init() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/ |
H A D | gk20a.c | 98 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_get_dev_status() local 100 status->busy = nvkm_falcon_rd32(falcon, 0x508 + (BUSY_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 101 status->total= nvkm_falcon_rd32(falcon, 0x508 + (CLK_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 107 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_reset_dev_status() local 109 nvkm_falcon_wr32(falcon, 0x508 + (BUSY_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 110 nvkm_falcon_wr32(falcon, 0x508 + (CLK_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 163 nvkm_falcon_put(&pmu->falcon, &pmu->subdev); in gk20a_pmu_fini() 172 struct nvkm_falcon *falcon in gk20a_pmu_init() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/include/nvkm/engine/ |
H A D | falcon.h | 57 * falcon registers. 93 int (*enable)(struct nvkm_falcon *falcon); 94 void (*disable)(struct nvkm_falcon *falcon); 107 nvkm_falcon_rd32(struct nvkm_falcon *falcon, u32 addr) in nvkm_falcon_rd32() argument 109 return nvkm_rd32(falcon->owner->device, falcon->addr + addr); in nvkm_falcon_rd32() 113 nvkm_falcon_wr32(struct nvkm_falcon *falcon, u32 addr, u32 data) in nvkm_falcon_wr32() argument 115 nvkm_wr32(falcon->owner->device, falcon->addr + addr, data); in nvkm_falcon_wr32() 119 nvkm_falcon_mask(struct nvkm_falcon *falcon, u3 argument [all...] |