diff --git a/Makefile.umbrella.tmk b/Makefile.umbrella.tmk index 2df6c5513..5faea97ce 100644 --- a/Makefile.umbrella.tmk +++ b/Makefile.umbrella.tmk @@ -65,7 +65,7 @@ endif NV_REPOSITORY_COMPONENTS += userspace/units/list NV_REPOSITORY_COMPONENTS += userspace/units/enabled NV_REPOSITORY_COMPONENTS += userspace/units/falcon -NV_REPOSITORY_COMPONENTS += userspace/units/falcon/falcon +NV_REPOSITORY_COMPONENTS += userspace/units/falcon/falcon_tests endif # Local Variables: diff --git a/userspace/Makefile.sources b/userspace/Makefile.sources index db89c066b..0a2b6539c 100644 --- a/userspace/Makefile.sources +++ b/userspace/Makefile.sources @@ -70,7 +70,7 @@ UNITS := \ $(UNIT_SRC)/list \ $(UNIT_SRC)/enabled \ $(UNIT_SRC)/falcon \ - $(UNIT_SRC)/falcon/falcon + $(UNIT_SRC)/falcon/falcon_tests ifeq ($(CONFIG_NVGPU_HAL_NON_FUSA),1) UNITS += $(UNIT_SRC)/fuse diff --git a/userspace/units/falcon/falcon/Makefile b/userspace/units/falcon/falcon_tests/Makefile similarity index 100% rename from userspace/units/falcon/falcon/Makefile rename to userspace/units/falcon/falcon_tests/Makefile diff --git a/userspace/units/falcon/falcon/Makefile.interface.tmk b/userspace/units/falcon/falcon_tests/Makefile.interface.tmk similarity index 100% rename from userspace/units/falcon/falcon/Makefile.interface.tmk rename to userspace/units/falcon/falcon_tests/Makefile.interface.tmk diff --git a/userspace/units/falcon/falcon/Makefile.tmk b/userspace/units/falcon/falcon_tests/Makefile.tmk similarity index 100% rename from userspace/units/falcon/falcon/Makefile.tmk rename to userspace/units/falcon/falcon_tests/Makefile.tmk diff --git a/userspace/units/falcon/falcon/falcon.c b/userspace/units/falcon/falcon_tests/falcon.c similarity index 100% rename from userspace/units/falcon/falcon/falcon.c rename to userspace/units/falcon/falcon_tests/falcon.c diff --git a/userspace/units/falcon/falcon_utf.c b/userspace/units/falcon/falcon_utf.c index 5bdea2d23..a0ed883b0 100644 --- a/userspace/units/falcon/falcon_utf.c +++ b/userspace/units/falcon/falcon_utf.c @@ -307,3 +307,16 @@ void nvgpu_utf_falcon_free(struct gk20a *g, u32 flcn_id) nvgpu_falcon_sw_free(g, flcn_id); utf_flcn->flcn = NULL; } + +void nvgpu_utf_falcon_set_dmactl(struct gk20a *g, u32 flcn_id, u32 reg_data) +{ + struct utf_falcon *utf_flcn; + u32 flcn_base; + + utf_flcn = &utf_falcons[flcn_id]; + + flcn_base = utf_flcn->flcn->flcn_base; + + nvgpu_posix_io_writel_reg_space(g, + flcn_base + falcon_falcon_dmactl_r(), reg_data); +} diff --git a/userspace/units/falcon/falcon_utf.h b/userspace/units/falcon/falcon_utf.h index 6e60c90b7..0b2721d58 100644 --- a/userspace/units/falcon/falcon_utf.h +++ b/userspace/units/falcon/falcon_utf.h @@ -26,7 +26,7 @@ #include #include -#define UTF_FALCON_MAX_REG_OFFSET 0x300 +#define UTF_FALCON_MAX_REG_OFFSET 0x400 #define UTF_FALCON_IMEM_DMEM_SIZE (127 * 1024) struct gk20a; @@ -40,6 +40,7 @@ struct utf_falcon { void nvgpu_utf_falcon_register_io(struct gk20a *g); int nvgpu_utf_falcon_init(struct unit_module *m, struct gk20a *g, u32 flcn_id); +void nvgpu_utf_falcon_set_dmactl(struct gk20a *g, u32 flcn_id, u32 reg_data); void nvgpu_utf_falcon_free(struct gk20a *g, u32 flcn_id); #endif diff --git a/userspace/units/falcon/libfalcon_utf.export b/userspace/units/falcon/libfalcon_utf.export index ad71779c5..53554f557 100644 --- a/userspace/units/falcon/libfalcon_utf.export +++ b/userspace/units/falcon/libfalcon_utf.export @@ -23,3 +23,4 @@ nvgpu_utf_falcon_free nvgpu_utf_falcon_init nvgpu_utf_falcon_register_io +nvgpu_utf_falcon_set_dmactl