Add following details to dla debugfs:
1. To check firmware version
- /d/nvdla*/firmware/version
2. To enable/disbale the dla firmware traces.
- /d/nvdla*/firmware/trace/enable
3. To dump the data in readable format
- /d/nvdla*/firmware/trace/text_trace
4. To dump the data in binary format
- /d/nvdla*/firmware/trace/bin_trace
5. To set the categories of events
- /d/nvdla*/firmware/trace/events/category
6. To get the help menu for setting the trace categories:
- /d/nvdla*/firmware/trace/events/help
Rename API debug_dla_dump_show -> debug_dla_tracedump_show, and
move /d/nvdla0/fw_version -> /d/nvdla*/firmware/version.
DLA-225
DLA-254
DLA-199
Change-Id: I396b31102a1995e4deffdb6e03ab7377bb0b7fc3
Signed-off-by: Amit Sharma (SW-Tegra) <amisharma@nvidia.com>
Reviewed-on: http://git-master/r/1291924
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
In IOCTL path, temporary handles are dynamically allocated which keeps
user data until it populated and used by driver for different
operations. This dynamic allocation in currently done for buffer pin,
task submit and buffer unpin.
As MISRA C guidelines, keeping minimal dynamic allocation and making
static allocation for temporary handles.
Jira DLA-283
Change-Id: I1589c6f96e674e74b4607614c035ef0a0606b7db
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1291492
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
GVS: Gerrit_Virtual_Submit
- Correct engine cmd timeout which was set to earlier to high value.
Use timeout in msec.
- Bundle data into struct and pass pointer of data to avoid sending
multiple parameters. This should help to add additional parameter in
future.
- Remove un-used MACRO defines
Change-Id: If6bd9686b4e2dd38c65ba81d9ed05cf0dedf9a8c
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1286687
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- nvhost_queue_task_pool_alloc() also allocates kcalloc based memory.
Use this memory to keep kernel copy of task and get this memory
assigned during task submission. Release memory during task cleanup
along with dma alloc.
- Memory pool free'd while freeing queue on device close.
- Using preallocated memory should help to improve performance of job
submission.
- memset for dma and kernel memory done from queue common code, so
removing memset for task descriptor memory.
- Fix releasing queue refcnt and release it after free task memory.
DLA-271
Change-Id: I711b3181e742c05e934f1c621b3dc6e5cf94b67c
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1285892
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
Falcon requires IOVA to be 256 byte aligned.
task descriptor and command memory assigned from pre allocated pool,
which may not be correctly aligned.
Roundup task descriptor size to 256 to get correctly aligned address.
Keep max command size as 256.
Check alignment of IOVA after reserving from pool.
memset reserved memory to avoid corruption in case of re-use of pool
mem.
ALIGNED_DMA macro moved to include file and used for task submit
command.
Jira DLA-266
Change-Id: Id8a63ddad357a9ba905a975b565afca04e5d6806
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1282878
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
Add following details to dla debugfs:
1. To check firmware version
- /d/nvdla*/firmware/version
2. To enable/disbale the dla firmware traces.
- /d/nvdla*/firmware/trace/enable
3. To dump the data in readable format
- /d/nvdla*/firmware/trace/text_trace
4. To dump the data in binary format
- /d/nvdla*/firmware/trace/bin_trace
5. To set the categories of events
- /d/nvdla*/firmware/trace/events/category
6. To get the help menu for setting the trace categories:
- /d/nvdla*/firmware/trace/events/help
Rename API debug_dla_dump_show -> debug_dla_tracedump_show, and
move /d/nvdla0/fw_version -> /d/nvdla*/firmware/version.
DLA-254
DLA-199
Change-Id: Ia39c3af6a8d007504e28cd382ded886c4c713105
Signed-off-by: Amit Sharma (SW-Tegra) <amisharma@nvidia.com>
Reviewed-on: http://git-master/r/1277525
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
GVS: Gerrit_Virtual_Submit
Removing the kmalloc calls from the ioctl calls.
The kernel memory needed for task is allocated in
nvhost_queue_task_pool_alloc() call and on
pva_submit_ioctl() call, the
preallocated memory is assigned for tasks
based on availability and clear them on task
completion for reusing for other tasks.
JIRA PVA-189
Change-Id: Id5834e341da01cbc3af7ecdb318b707d0651f2ba
Signed-off-by: Vinod G <vinodg@nvidia.com>
Reviewed-on: http://git-master/r/1275270
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
To avoid possible buffer overflow, add check for max number of buffers
count per task. Min buffer check count was already present.
Bug 1806862
CID 38902
Change-Id: I48ef974ed8cbc0972a758b79fc3c525aed2b8478
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1281988
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
- define and add ioctl to set queue operations like, suspend and resume.
- on validating user argument, pass command to engine to suspend and
resume.
- on receiving this command, firmware just update queue status as sent
and doesn't interrupt ongoing task or queue work.
Jira DLA-218
Change-Id: I13f5d8822d920961277884c64534daaf64d812be
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1278192
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- fill input task status notifier after filling prefence actions
- use function over macro for action updates as supporting different
types GoS, status, semaphore through single macro would be difficult
- correct max action size calculation to include task status size
Jira DLA-62
Change-Id: Ia0a57e0325667e3b36d9b6d0fb8b76d8c8a6c35d
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1275942
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- rework postaction fill to support multiple action types
- output task status notifier used to send task status to downstream
clients in CV pipeline usecases.
- this adds support for it : copy out task status user data and
pass to engine after pinning
- unpin user memory on task free
Jira DLA-62
Change-Id: I0c7be5d0652896ad5d0279c898efb4dd555b2afe
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1275540
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- input task status notifier added as preactions and if task status
of preaction matches with task status then task can proceed for
execution
- this adds support adding input status notifier: alloc memory for
task and task descriptor, copy and pin user memory, send IOVA of
status notifier user memory to engine
Jira DLA-62
Change-Id: Ibfa3ea0a15dd173fc279ac58b1ab85d2c2e77d82
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1275539
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- this adds TIMESTAMP semaphore for postactions
- TIMESTAMP semaphore is similar to default SEMAPHORE with added field
to update timestamp
Jira DLA-197
Change-Id: I2e663c7bfcf5e75727c9ac3a1c41ce333e45cf15
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274611
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- this adds semaphore/memsignal support in postfences
- while updating task descriptor, does pinning of UMD semaphore
handle and received dma_addr added as postaction
Jira DLA-161
Change-Id: I37a9cc38c30ce70cb817fb9dc682b36dc9962834
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274328
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- this adds semaphore/memsignal support in prefences
- while updating task descriptor, does pinning of UMD semaphore
handle and received dma_addr added as preaction
Jira DLA-161
Change-Id: If3695b0cca29d485c04b93a83848d50ad81dd9fd
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274302
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- command memory allocated during init, get that memory for ping command
from 'cmd mem pool' and release after send cmd complete
Jira DLA-243
Change-Id: I6738e995e1fef9c1f13a0032b9e4796c255ea6e9
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274301
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- as per safety coding guidelines and for command path submission improvement,
move memory allocation for engine cmds during device init
- allocate memory in pool, based on number of max commands supported
and max memory requirement
- for memory request, use bitmap and based on available bit, get memory
offset within pool
Jira DLA-243
Change-Id: I28c8c02b3d99b42128d1990e7f342952286e4eb3
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274300
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- task desc allocated dynamically while task submit time,
instead that, use mem from pool allocated Q init time
- this makes inline with safety coding guideline specification
requirement and helps in improving submit path performance
- use nvhost queue API's to pass task desc size, assign and release
memory
Jira DLA-204
Change-Id: I0931090fcbd2e6e27ed61ed7c014344f3ae493fc
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274299
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- there is race allocating, use and freeing debug dump memory
- allocate debug dump only once instead every poweron and free it in
remove path
- this helps in improving engine boot time
- fix poweron fails path to avoid duplicate calling of engine poweroff
- add only one return statement in function
- use nvdla debug prints instead dev_err
- add more debug message
Jira DLA-224
Change-Id: Ic6d3a236bd5cc0afd26e4fa03185a3c3cd4b11c9
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1271785
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- this adds support sync FD for postfences
- if fence type specified as sync fd, create sync fd from postfence
syncpoint and send postfence back to user
Jira DLA-132
Change-Id: I13a57fb1315e908a5b029f507436eaecb23a1e03
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274298
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- rework updating preactions to support addition for different types
of actions
- add sync fd support for preaction list update
- get added fences from fd and convert them into preactions
Jira DLA-132
Change-Id: I0977c1ee449c77db56c8cf5dfe028f2a41f2c8dd
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1274297
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- rework task submit API's to make sure that user arguments
aren't passed beyond more than one API level
- alloc memory for copying task data and fill it before referencing
- this helps to avoid, reuse of user data all over in code and user data
can be validated in place.
Jira DLA-246
Change-Id: I2805501577a422ed832f1d66cf5d44e4c02dbb25
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1269490
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- add new API to calculate task descriptor size
- split task alloc and add new API for preaction and postaction filling.
- reserve max possible memory for post and preactions
Jira DLA-236
Change-Id: Ide5c4f909f093695f441622fb7709acbe2a25e87
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1267518
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- Currently user fences and kernel fences differs in structure,
which requires updating prefences and postfences fields element wise.
- Use same fence structure both places for simplification
until they really differs
Jira DLA-236
Change-Id: Ib7071a81ced489a339203b22f8eb0afce1426053
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1266417
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
All network related information is now added to network
descriptor which is created by UMD and used by firmware.
Remove that information from task descriptor and keep
only address list in task descriptor for IOVA translation.
Jira DLA-148
Change-Id: Ie25e5297a58cd0320f8ae994c1bd1fa670306594
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1267278
Reviewed-by: Automatic_Commit_Validation_User
Removing the dynamic memory allocation done for
task in the submit call.
Allocate the fixed task memory array based on
maximum task that can be supported per queue during
nvhost_queue_alloc call.
On task submit call obtain a task memory from pool based on availability.
Free that memory when task is done.
Deallocate task pool memory on nvhost_queue_free call.
JIRA PVA-189
Change-Id: I93e89325c1c35a46bdf579dce6aae18c2bfe7183
Signed-off-by: Vinod G <vinodg@nvidia.com>
Reviewed-on: http://git-master/r/1264027
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- PREACTION_SEM_GE i.e. 0x92 blocks processing of further task until
value at given pointer becomes greater than equal to updating value
- use 0x92 (PREACTION_SEM_GE) as default action for processing syncpoint
as to make inline with fence wait
- Use MACROS from interface file
Jira DLA-198
Change-Id: Ibc5dbf171fd9a62cfd1a74341753a094d2caeddd
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1257860
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Increase firmware version as interface is changed significantly
after firmware integration from HW tree.
Also, include dla_fw_version.h directly instead of defining
version.
Jira DLA-216
Jira DLA-234
Change-Id: I63e40e4bb13d9932b9893b46724267790f6c3822
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1258114
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
New interface includes
- GoS region
- GoS action
- Task status notifier
- Added macros for pre-actions and post-actions
- New error code defined for retry
Jira DLA-216
Change-Id: Ica300d84dfd32d2987193d72352e8eb5aa3031e0
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1258599
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
GVS: Gerrit_Virtual_Submit
- nvdla dla debug has built-in support for tracing
- debug prints dumped to trace if en_trace flag is set
- to capture falcon debug prints when kernel tracing enabled and
to avoid override debug dump coming from falcon use kernel setting
for dumping data
Change-Id: I7803e1fa588b8bc068c506cb1ce7b370cb8c322f
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1260021
GVS: Gerrit_Virtual_Submit
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-by: Amit Sharma (SW-TEGRA) <amisharma@nvidia.com>
- Add debugfs to read the traces
- Add support for trace buffer reading
- Add DLA_REGION_TRACE region
- Use Trace Buffer of size 1MB
- Pass wait param to nvdla_send_cmd() for printf cmd
and correct buffer freeing logic for it.
JIRA DLA-94
Change-Id: I42c0b1cb5b3cb1d4866deb80b7636964795d6de5
Signed-off-by: Amit Sharma (SW-Tegra) <amisharma@nvidia.com>
Reviewed-on: http://git-master/r/1229942
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
Increase command timeout as in some cases command
execution may take more time, for example when we
have added debug prints in command execution path.
Change-Id: I5222f58d5cdbc79447679219970a3630e35b2a80
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/1249546
- while submitting a task get a reference for queue and release
reference on task completion.
- this is necessary to avoid freeing of queue on user instance close and
also to avoid reuse of it for by next user
Jira DLA-207
Bug 200246031
Change-Id: If441ad4171acee3550fdbebc887043a971985c88
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1244425
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- task descriptor has two fields next and sequence which helps engine
scheduler for tracking list of tasks from a given queue.
- 'next' pointer gives next task in queue
- 'sequence' number gives task number
Jira DLA-207
Change-Id: If80d38b01d0b10cea791767ec8d0a3a1787cf645
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1244424
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Tested-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit
- adds syncpoint<->MSS support for DLA
- register dla enginges with MSS interface during init
- while task submission fetches dma address from interface for a given
syncpoint
- removes temp hack added to use dma address
- remove temp slice syncpoint support added for verification without MSS
support
Jira DLA-100
Change-Id: Iff5665f1aa2fce6f3bfa594e9909ebfc96a916bf
Signed-off-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-on: http://git-master/r/1242663
Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com>
GVS: Gerrit_Virtual_Submit