Commit Graph

1129 Commits

Author SHA1 Message Date
Mahesh Kumar
d8e47b9904 oot: Add bpmp-abi header to nvidia-oot
BPMP ABI latest header is not yet available in the upstream. but few of
the structs from the header are used by the display driver.
Bpmp_abi header will be upstream with the next BPMP upstream delivery.
To unblock oot work, this patch adds bpmp-abi.h file in nvidia-oot repo.

Note: This header must be removed once jammy-src gets the latest header
update.

Bug 3866724

Signed-off-by: Mahesh Kumar <mahkumar@nvidia.com>
Change-Id: Ieb1f610612674d3dbf427d27aa20887c671983cd
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2804280
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
2022-11-14 02:47:33 -08:00
Laxman Dewangan
e4f3b51112 device-tree: Use TEGRA_TOP for hardware DT source
Use the TEGRA_TOP environment variable for getting the
path of hardware DT source. If it is not available then
use the TOP.

If TEGRA_TOP and TOP is not exported then report compilation
error.

Bug 3860258

Change-Id: I5c31f8861f795cec3b3bddb01621e3413d044454
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2807613
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-12 16:34:35 -08:00
Laxman Dewangan
d875303e72 device-tree: Add makefile for making generic-dts
Add Makefile to make generic DTS files which are available
at hardware/nvidia/platform/*/generic-dts. These DTS are
mainline compliance.

Bug 3860258

Change-Id: I5e8218f7ee7f2ba192fe130ee983480b3c8ea413
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2804233
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
2022-11-11 09:57:43 -08:00
Akhil R
f6042cd2af arm64: tegra: Add aliases for I2C controllers
Add aliases for I2C controllers so that the hardware instance
number matches with the software.

Bug 3583581

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I75d939e0ccaf2339f951b28017b46d416d3adfac
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2806745
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-10 16:52:59 -08:00
omar nemri
31e0d65743 nvidia-oot: dts: add DT nodes for PVA
add and enable PVA and its context devices

Bug 3583639

Change-Id: I80ca263a6ecc62eab7ee5dbb4d67af463c56dd60
Signed-off-by: omar nemri <onemri@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2793135
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-10 11:51:08 -08:00
Ashish Mhetre
25074f2a0c platform: tegra: Add OOT driver for MC utilities
Add mc-utils OOT module which is used by clients to get information
regarding MC and EMC parameters.

Bug 3826001

Change-Id: Ic03405bd1f6f6ba4bb11082c0e94c67e99cfbb6d
Signed-off-by: Ashish Mhetre <amhetre@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2805684
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-10 07:07:07 -08:00
Prathamesh Shete
e6f189141d nvidia-oot: dts: add DT node for SDMMC1 instance
Add and enable SDMMC1 DT node for T234

Change-Id: Ib8be4fd8b7f0cad1d6f0fb69e86b443e3c1d470b
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2805053
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-10 07:05:32 -08:00
Manish Bhardwaj
3a2b0c6038 oot: switch hypervisor notification implementation
Using this patch we are switching to PCIe based MSI
implementation from IVC based implementation to
send notification to other endpoint of IVC.

JIRA ESLC-6885

Change-Id: Iba270ef4b0170a5a542c13a0c8efa58fd43226ab
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2804390
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com>
Reviewed-by: Sandeep Trasi <strasi@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-10 07:03:53 -08:00
Laxman Dewangan
f31946e09e device-tree: Keep legacy hardware/nvidia DTS file to legacy-dts
Move makefile which make the downstream dts from
hardware/nvidia/platform to the legacy-dts folder.

There will be another DTS build rule for making the generic-dts
files which are mainline compliant.

Bug 3860258

Change-Id: I94fea353112482274478178f9f42db9bb5292430
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2804232
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-09 11:29:15 -08:00
Laxman Dewangan
ee194b0505 device-tree: Make DTS from kernel-dts of hardware/nvidia
The folders hardware/nvidia/platform/t23x contains the platform
specific DTS and their makefiles are in kernel-dts. The DT binding
used in these DTS are deviated from upstream DT binding.
To add the DTS for platforms matching with the mainline
DT binding, it is required to compile only the legacy
DTS or new DTS.

Modify the makefile to compile DTS from kernel-dts folder
only which contains the legacy DTS.

Bug 3860258

Change-Id: I51866d18e0cd17edaf576f6632579c9999022042
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2804178
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-07 23:47:52 -08:00
Timo Alho
071c49bf11 tegra: clk: bpmp: add missing bpmp-abi.h definitions
Older kernels do not have new definitions for
BPMP_CLK_RATE_PARENT_CHANGE_DENIED and
BPMP_CLK_STATE_CHANGE_DENIED. To fix compile issues, add them directly
to clk-bpmp.c

Bug 3856746

Signed-off-by: Timo Alho <talho@nvidia.com>
Change-Id: Ibdaf0e8ccfe5feca3153a61c9e2f972136b94147
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2802621
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
2022-11-04 16:28:03 -07:00
Prathamesh Shete
af9627ed14 nvidia-oot: dts: pinmux: Add pinmux DT node for T234
Add and enable pinmux DT node for T234.

The tegra-audio-pinmux-testsuite.sh fails with error
saying "Pinmux sysfs path not found".
Above failure is seen as pinmux driver is not enabled on OOT.
This change adds required pinmux DT node and enables it.

Bug 3839203

Change-Id: If465054f20ddfef2d82eb547d08e69f55f06e311
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2801702
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-02 12:21:48 -07:00
Ashish Mhetre
2af0e64649 arm64: dts: Add smmu_test node
Add DT node for smmu_test in T234 DT overlay file which is used by
iova_range_check and smmu_benchmark tests

Bug 3821422

Change-Id: I532276a8ba097447114ce0911b6dfb3059a02ea9
Signed-off-by: Ashish Mhetre <amhetre@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2801144
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-02 12:20:23 -07:00
Gerrit Code Review
227d6cb657 Merge "Merge remote-tracking branch 'origin/dev/ruppala/nvethernet' into dev-main" into dev-main 2022-11-02 12:20:04 -07:00
Rahul Bedarkar
1f45d1e993 Remove tegra-epl driver
tegra-epl driver is added in kernel-oot repo so that i2c, pcie and
other upstream drivers can use interface to report errors.

Bug 3847981

Change-Id: I9dfe5cd92eb9955a35753ce14a12dc4799258b70
Signed-off-by: Rahul Bedarkar <rabedarkar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2799410
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-02 12:17:10 -07:00
Akhil R
7ca4e62987 arm64: tegra: Remove GPCDMA driver from OOT
Remove GPCDMA from OOT and merge the Linux mainline  changes in
kernel-oot

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Change-Id: I6370d80335fba306d1e202e72f9d8da33051d60f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2792224
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-02 06:15:48 -07:00
Akhil R
a19a9be96c dmaengine: tegra: Remove GPCDMA driver from OOT
Remove GPCDMA from OOT and merge the Linux mainline changes in
kernel-oot

Change-Id: I518f7796040051b6da52efd603ea8176800a3005
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2792223
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-02 06:15:38 -07:00
Sanjay Chandrashekara
b068faea74 t23x: concord: dts: enable cpu core power gating
This patch enables cpu core power gating through cpuidle.

Bug 3583597

Change-Id: I93bff177a003a825b0297105e4c862f5b0d4c42f
Signed-off-by: Sanjay Chandrashekara <sanjayc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2799745
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 05:43:46 -07:00
Revanth Kumar Uppala
0d03d640ba Merge remote-tracking branch 'origin/dev/ruppala/nvethernet' into dev-main
Moving nvethernet driver from linux-nvidia repo to linux-nv-oot repo

Change-Id: I6ebb2f2ab54497a796d821752f8931f590d22084
Signed-off-by: Revanth Kumar Uppala <ruppala@nvidia.com>
2022-11-01 14:39:46 +05:30
Bhadram Varka
0772521bf1 nvethernet: remove save/restore register IOCTL code
Bug 3701869

Change-Id: I8b4e67aa6420a46fda7185261c8ecbac0db90f40
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2787485
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Rakesh Goyal
e7ff48aaad nvethernet: update code to use new structure
Remove not required members of ifr_data structure.
Add structure in exported header file.
Add support in code to understand new data structure.

Bug 3704251

Change-Id: I495b34edaa6ac324933508c12a3612de4a52175b
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2782590
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Rakesh Goyal
36df82d64b nvethernet: support for adding L2 filter
Support to add L2 filter uing ioctl
when  Ethernet virtulization is enabled

Bug 3659048

Change-Id: Ib990bf5fa5762f01563b1017b8d3e0c8b02320a6
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2777262
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Mahesh Patil
c896399b53 nvethernet: Fix CERT INT31-C issues in sysfs.c
Cert error reported in
https://sccovlink:8443/reports.htm#v17826/p10248/g17826g
CID 565796

Bug 3745813

Change-Id: I1edb8bb1de6f4d28f5b1a5eaf14bc33bcb5a829c
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2765590
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
8ff195acb5 nvethernet: Add support for SAK 256 with PKCS11
Bug 3784504

Change-Id: Id2f4af4e3d882f95a76b7281d7b260ca8c32c702
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2776048
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Mahesh Patil
ae8ea24a6c Port wpa_supplicant nvmacsec to nvpkcs11
Adding linux driver changes required to support macsec nvpkcs11
framework api's

Bug 3573999
Bug 3345671

Change-Id: I6181b05eea08e9c329e89384fb7f23604918632b
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2692303
Reviewed-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-by: Nagaraj Annaiah <nannaiah@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
d3509d8c5d nvethernet: fix buffer re-use usage
Issue: If OSI_RX_SWCX_REUSE flag is set in OSI then
OSD will not reallocate the buffer for that descriptor
index. It will re-use the same buffer virt/physical
addresses. If that buffer is a reserved buffer then OSI
will not process that so it will result in packet drops.

Fix: Reuse the buffer is OSI_RX_SWCX_REUSE flag is set
and the buffer is not a reserved buffer.

Bug 3727058

Change-Id: I3331604a90b2cbe902d91f2082e1fe36f830decc
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2745194
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Rakesh Goyal
62f3c4ff12 nvethernet: take exported ioctl related header out
Issue: SW needs to support IOCTL on safety builds and
these header should be exposed to user

Fix: create new header file which is exposed externally

Bug 3704251

Change-Id: Ieee52b5e9ff28cefeb2435be389e3e8df0abe6d1
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2759473
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
f667be2c63 nvethernet: fix spin lock recursion
Issue:
1) dev_queue_xmit acquired the per queue tx lock and called driver
transmit routine.
2) During the transmit - common interrupt asserted which tries to
acquire the same tx lock which resulted in lock recursion.

Fix: Move the lock acquire to tasklet context under common isr.

Bug 3773016

Change-Id: I7cfd49beb1238286d3bccd9e4b9ccc054c4f6d30
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2770227
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Nagaraj Annaiah
1ffcf6d286 nvethernet: Add IVC support atomic
Issue: completion_timeout doesn't support atomic.

Fix: Remove mutex and wait event and change to poll_timeout.

Bug 3733795

Change-Id: Ieb26623ae6191d442bb2f7e2b8c6925660882cfe
Signed-off-by: Nagaraj Annaiah <nannaiah@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2759245
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
1cb18af637 nvethernet: Update the sysfs with macsec an status
Bug 3757857

Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Change-Id: I61101fcd1d8229c5e0b8e9f85aae4cea8320ef07
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2765063
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Rakesh Goyal
d4e9ecf359 nvethernet: use default selection algorithm
Issue: EQOS supports SP as default algorithm
where MGBE should support ETS as default algorithm.

Fix: We are removing user configuration option from
application. For MGBE there are CBS or ETS(default) as only
options. For EQOS CBS and SP(default) is only options.

Bug 3735907

Change-Id: I83ff3f59129e188335d9cec239d5eb0b2fa76412
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2757410
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-11-01 14:27:08 +05:30
Narayan Reddy
99acf2912b nvethernet: add lane bringup restart callback
Issue: In the current scenrio, when the remote
interface is brought down and up. There is no way
of getting the link up again with the remote device
which in turn fails the data transfers even though
interface from other end is brought up.

Fix: When interface is gone down on the other side,
MAC receives local faults and in this scenario
no data should be sent to MAC, so disable network
queues and initiate the lane bring up process for
monitoring the link status. Once the link is up,
re enable the network queues for data transfers.

Also added support for enabling driver logs using
msglvl of ethtool

Bug 3744088
Bug 3654543
Bug 3665378

Change-Id: I16cdee74e4e3ff6cd176924575f5005f385d4c5d
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2730876
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
f502700729 nvethernet: macsec: Do not enable car in virt case
Issue: Clocks and resets would be taken care by server if enabled

Fix: Skip enabling macsec clocks and resets if virtualization is enabled

Bug 3743615

Change-Id: I0ed13d7ba52279652619b5cac406c2b2ffd503a5
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2755780
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Narayan Reddy
617b7327a9 nvethernet: remove pre_si code
remove code for handling pre_si which is unused

Bug 3701869

Change-Id: I3f8fa3e269ea205709e76c4d53d602a13099c5f0
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2747494
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Tested-by: Bhadram Varka <vbhadram@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
47185d2fc3 nvethernet: macsec API cleanup
Cleanup of OSI macsec APIs, hence made relevant changes to OSD

Bug 3709820

Change-Id: I33a77f31553d213e565a7f4ad346fe3c026fafde
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2738231
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
6104d5e348 nvethernet:macsec:Related change to OSI misra fix
Fixed MISRA 15.5 and 2.5 errors in OSI hence these are the dependednt
changes in Linux OSD

Bug 3691236

Change-Id: Ie590082025235c48abb1588550121e80b92db487
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2735586
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
c7376b2390 nvethernet: macsec suspend-resume with wol enabled
Issue: If WOL is enabled after running "./ethtool -s eth0 wol g"
command there will not be any eapol frames transaction, hence macsec
will be disabled. As macsec is disabled before suspend we are not
enabling it back once resumed. Because of this eapol frames are also
sent with sec-tag as byp_lut is not programmed.

Fix: Instead of depending on the macsec state, check if there is any
supplicant running, if there is any supplicant then enable the macsec
post resume.

Bug 3577131

Change-Id: I6018b94411034eebba34f5f0a9520907305c573e
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2694446
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
76abafe3a3 nvethernet: consume the timestamp if available in tx done
Issue: Observed Tx timestamp timeout from application since
workqueue is not getting scheduled at the driver layer to consume
the Tx timestamp from the OSI layer which resulted in tx_timeout
from APP layer.

Fix: Invoke the timestamp consume function in tx done instead
of scheduling through workqueue. Schedule the work queue only
if the timestamp is not found.

Bug 3658701

Change-Id: If97aebc1980f685e3cc34f135ace91298ee78657
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2732444
Reviewed-by: Troy Kong <troyk@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Tested-by: Troy Kong <troyk@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
cafe9a309c nvethernet:macsec: Added support to use AES_256
Bug 3673435

Change-Id: Ifeedf740f23595e887de0cb8b67dc07f901b089e
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2730247
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
0913e1b2ed nvethernet: Support macsec enablement via DT
Issue: Name of the nl_family is nv_macsec for all the interfaces
hence even if the macsec is enabled for one interface and disabled for
other interfaces, supplicant can be launched for all the interfaces.

Fix: Use the interface name for the nl_family name hence supplicant can
check if macsec is enabled in DT before initializing supplicant for that
particular interface

Bug 3673434

Change-Id: I33d62a0ab2b74f7f53abcd8e6629c1b013eede86
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2726483
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Sanath Kumar Gampa
4c8ec560fa nvethernet:macsec:Replay protection enable config
Issue: Replay protection is enabled by default though disabled from
supplicant configuration

Fix: If replay protection is enabled from supplcant use maximum
PN window

Bug 3673458

Change-Id: I5a2c3f0b6bca56831afb0e5f635dbdd8e8bc4db8
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2728326
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Rakesh Goyal
118cdcebdc nvethernet: delete old skb for tx TS
Remove SKB for which HW timestamps are not present

Bug 3647934

Change-Id: Ib3a5ca6275f74425f4fe43a87ea6696823aedd96
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2716400
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Rakesh Goyal
d38959ba90 nvethernet: add spinlock around skb link list
Issue: In race condition node delete and addition
happen at same time, which leads to corruption of
list

Fix: add spinlock to protect critical section

Bug 3580369

Change-Id: Ief5495f049ed62d4e3832855a92eb066975eb672
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2699119
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
b37ab09277 nvethernet: use OSI_SUSPEND/RESUME IOCTL's
Issue: While ethernet going into suspend all registers
of controllers saved through save_registers IOCTL and
same will be restored during resume. Register restoring
without following sequence will lead to multiple issues.

Fix: For every dynamic configuration save the input
parameters and use the same parameters through API's
to restore the controller configuration. API approach
will follow the specific sequence for programming the
controller registers.

Bug 3665476

Change-Id: Ib321937faa07eeb086e00ebfce8d0d0b8aeb1f55
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2663393
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
43b6c620b8 nvethernet: fix the typo
Fix the log to print Rx ring size instead of Tx

Bug 3489814

Change-Id: Ibba080d09714f8e8be66265571c987a447f00160
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2711927
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Om Prakash Singh
fc25e06026 nvethernet: add interface to configure debug interrupt
Add ioctl ETHER_DEBUG_INTR_CONFIG to enable and disable
debug related interrupt at runtime

Bug 3600647
Change-Id: Ie22a7decc1bd2feb90126841a8d8a0eaafa7dc66
Signed-off-by: Om Prakash Singh <omp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2703340
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Prateek Patel
ef1378ba02 drivers: ethernet: fix cert_c defect
Add sanity check on snprintf() call in ether_linux.c.

CID 490856

Bug 3512545

Change-Id: I3a68206a587fa2f56d24c85a786d6dc8f2992c31
Signed-off-by: Prateek Patel <prpatel@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2710373
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
b1309d41ea nvethernet: Support for variable Tx/Rx ring length
o Adds support for variable Tx/Rx ring length
which can be changed with ethtool.
o Using default ring size 1K for both MGBE/EQOS
if ring size values not passed from DT.

Bug 3489814

Change-Id: If90a9b2181f9fe9b4beb2ab44e27cb61026cc150
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2652964
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Hareesh Kesireddy
9717d11402 nvethernet: pass tx swcx to tx complete callback
Dma phy address, virtual address and packet length can be
obtained from tx swcx structure. Hence passing
pointer to tx swcx is sufficient. In future, if more information
from osi is needed, it can be embedded into tx swcx itself rather than
adding more arguments to osd tx complete call back.

Bug 3576506

Change-Id: I3b3aca993c52359668c41f337a79ea4d0d1854fb
Signed-off-by: Hareesh Kesireddy <hkesireddy@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2700392
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
8d2e3a6161 nvethernet: fix MC filter corruption issue
Issue:
OSD Driver maintains a local MC address list to avoid the programming
old addresses again into HW when new MC address list passed from the
network stack.
Its observed MC address index for a specific address is different once a
MC address deleted from the list. Because of this new MC address which
is passed in new list is overwriting the old MC address.

Fix:
Program the entire list every time when network stack passes it instead
of maintaining local list at driver.

Bug 3609583

Change-Id: I97cb3ea4d35641ad156d16c54c89e8593ad64459
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2702851
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30