IP perfmon base address value is determined by iomap(). This iomap
address is dependent on many factors like platform, carveout, etc.
Currently, soc hwpm user passes static perfmon addresses to execute
reg ops.
Modify hwpm_resource_aperture struct to hold absolute/static start and
end address of the aperture. These new variables will indicate absolute
register range of the aperture.
Modify reg ops ioctl to determine aperture of given phys addr based on
IP's absolute register range.
Bug 3346199
Change-Id: I73b341633d2c780ad0f126ebc609d65cdb7f6cc9
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2564539
Reviewed-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Add floorsweep_info IOCTL for userspace to query IP instance information
This IOCTL will update the floorsweep_info struct with
- status: valid - query ip_type is valid but IP instances are absent
invalid - query ip_type is invalid
exists - query ip_type is valid and IP instances are available
- ip_inst_info: 64-bit mask, where each set bit corresponds to available
IP instance.
All reserving resources depending on IP floorsweep info.
Bug 3335822
Bug 3338138
Change-Id: Ic593186fd0b25ee8c493722b60120eec3c5c4350
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2562757
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Krishna Reddy <vdumpa@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
- As regops ioctl status is an output from kernel, the status cannot be
invalid. So, remove TEGRA_SOC_HWPM_REG_OP_STATUS_INVALID define.
- Redefine regops ioctl status to make SUCCESS equivalent to value 0.
- Add TEGRA_SOC_HWPM_REG_OP_STATUS_WR_FAILED to indicate failure in
regops write command.
Bug 3335825
Change-Id: I31152f1ce2558fdf4c8829dd19fbcb9c87e20572
Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2556234
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Add a driver for programming the Tegra SOC HWPM path. SOC HWPM allows
performance monitoring of various Tegra IPs.
The profiling tests cases are configured through IOCTLs sent by a
userspace profiling app. The IOCTLs provide the following features:
- IP discovery and reservation
- Buffer management
- Whitelist query
- Register read/write ops
Bug 200702306
Bug 3305495
Change-Id: I65003b126e01bd03d856767c55aa2424bcfd11fb
Signed-off-by: Adeel Raza <araza@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-t23x/+/2515148
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>