From 83e28e54eb20f6a1fb005761274e939e1adb568d Mon Sep 17 00:00:00 2001 From: Divya Singhatwaria Date: Wed, 17 Jul 2019 14:11:31 +0530 Subject: [PATCH] gpu: nvgpu: Add function to set falcon dmactl register Add nvgpu_utf_falcon_set_dmactl() function in falcon UTF to set the falcon dmactl register with desired value required for pmu reset test Also, update the register size for falcon from 0x300 to 0x400 for including pmu reset register. Rename userspace/units/facon/falcon folder to userspace/units/facon/falcon_tests JIRA NVGPU-2159 Change-Id: I0b22cff4699af6947e87019751aa85508dfdb185 Signed-off-by: Divya Singhatwaria Reviewed-on: https://git-master.nvidia.com/r/2155124 Reviewed-by: Sagar Kamble GVS: Gerrit_Virtual_Submit Reviewed-by: Vaibhav Kachore Reviewed-by: mobile promotions Tested-by: mobile promotions --- Makefile.umbrella.tmk | 2 +- userspace/Makefile.sources | 2 +- .../units/falcon/{falcon => falcon_tests}/Makefile | 0 .../{falcon => falcon_tests}/Makefile.interface.tmk | 0 .../falcon/{falcon => falcon_tests}/Makefile.tmk | 0 .../units/falcon/{falcon => falcon_tests}/falcon.c | 0 userspace/units/falcon/falcon_utf.c | 13 +++++++++++++ userspace/units/falcon/falcon_utf.h | 3 ++- userspace/units/falcon/libfalcon_utf.export | 1 + 9 files changed, 18 insertions(+), 3 deletions(-) rename userspace/units/falcon/{falcon => falcon_tests}/Makefile (100%) rename userspace/units/falcon/{falcon => falcon_tests}/Makefile.interface.tmk (100%) rename userspace/units/falcon/{falcon => falcon_tests}/Makefile.tmk (100%) rename userspace/units/falcon/{falcon => falcon_tests}/falcon.c (100%) 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