No description
Find a file
2024-10-05 11:28:14 +02:00
android Merge keystone/android14-6.1-keystone-qcom-release.6.1.68+ (e8309f0) into qcom-6.1 2024-05-09 10:27:02 +05:30
arch Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
block Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
certs Merge keystone/android14-6.1-keystone-qcom-release.6.1.11 (b28061a) into msm-pineapple 2023-02-21 23:31:55 -08:00
crypto ANDROID: fips140 - fix integrity check by unapplying dynamic SCS 2024-03-13 14:09:58 +00:00
Documentation Merge keystone/android14-6.1-keystone-qcom-release.6.1.68+ (7cb0122) into qcom-6.1 2024-05-09 10:00:15 +05:30
drivers Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
fs Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
include Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
init Import techpack changes 2024-07-28 14:53:28 +02:00
io_uring Merge "Merge tag 'android14-6.1.68_r00' into branch 'android14-6.1'" into android14-6.1 2024-01-24 17:34:59 +00:00
ipc ipc: fix memory leak in init_mqueue_fs() 2022-12-31 13:32:01 +01:00
kernel Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
lib Import Samsung changes 2024-07-28 14:53:29 +02:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
mm Import mm changes 2024-07-28 14:53:29 +02:00
net Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
rust rust: allocator: Prevent mis-aligned allocation 2023-08-11 12:08:18 +02:00
samples Merge 6.1.60 into android14-6.1-lts 2023-11-03 16:23:47 +00:00
scripts Don't remove unwanted headers 2024-07-28 14:53:30 +02:00
security Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
sound Update kernel to AXH7 source drop (does not work yet) 2024-10-05 11:28:14 +02:00
stm_iio_configs drivers:iio:stm:imu:st_ism330is: add ST MEMS IMU ISM330IS sensor support 2023-12-18 22:02:08 +01:00
stm_iio_patches stm: move kernel 6.1.y stm patches out of WIP stage 2023-10-12 18:09:37 +02:00
techpack Import techpack changes 2024-07-28 14:53:29 +02:00
tools Merge "Merge tag 'android14-6.1.68_r00' into branch 'android14-6.1'" into android14-6.1 2024-01-24 17:34:59 +00:00
usr usr/gen_init_cpio.c: remove unnecessary -1 values from int file 2022-10-03 14:21:44 -07:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:42:46 +02:00
.clang-format inet: ping: use hlist_nulls rcu iterator during lookup 2022-12-01 12:42:46 +01:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore Merge keystone/android14-6.1-keystone-qcom-release.6.1.43 (ff4725c) into qcom-6.1 2023-12-12 21:28:51 -08:00
.mailmap 9 hotfixes. 6 for MM, 3 for other areas. Four of these patches address 2022-12-10 17:10:52 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
allyes_images.bzl build: msm_kernel_le: Add rule to generate super.img 2023-07-20 15:14:44 -07:00
Android.bp Android.bp: add soong namespace 2024-06-16 18:30:19 +02:00
Android.mk Android: Add empty Android.mk file 2024-06-16 19:22:41 +02:00
anorak.bzl defconfig: Enable PCIe and dependent configs for anorak 2024-05-16 21:09:22 +05:30
autoghgvm.bzl Merge "defconfig: Enable run-queue stats driver for autoghgvm" 2024-05-15 04:47:08 -07:00
autogvm.bzl defconfig: Enable VirtIO minidump for auto LAGVM 2024-03-21 09:36:55 +05:30
autogvm_lxc.bzl defconfig: autogvm: Compile glink_cma as a kernel module 2024-05-13 10:49:41 -07:00
avb_boot_img.bzl ANDROID: build: avb_boot_img: Use hermetic tools 2023-09-05 12:16:55 -07:00
bazel.WORKSPACE build: Add custom bazel.WORKSPACE file 2022-10-19 16:52:01 -07:00
blair.bzl arm64: defconfig: Enable QMI TS driver 2023-11-18 04:32:38 +05:30
BUILD.bazel Merge keystone/android14-6.1-keystone-qcom-release.6.1.68+ (7cb0122) into qcom-6.1 2024-05-09 10:00:15 +05:30
build.config.aarch64 ANDROID: Move NDK_TRIPLE to build.config.constants. 2023-02-14 14:13:51 -08:00
build.config.allmodconfig ANDROID: Revert "ANDROID: allmodconfig: disable WERROR" 2023-08-21 17:29:29 +01:00
build.config.allmodconfig.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.allmodconfig.arm ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.allmodconfig.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.allyesconfig build.config: Add build config support for allyesconfig 2023-01-10 15:06:25 -08:00
build.config.amlogic ANDROID: Unnest MAKE_GOALS from build configs 2023-05-02 13:37:21 +00:00
build.config.arm ANDROID: kleaf: move NDK_TRIPLE for arm to build.config.constants. 2023-05-09 22:36:11 +00:00
build.config.common ANDROID: Snap to android14-6.1-2023-06 2023-08-08 17:02:27 -07:00
build.config.constants ANDROID: clang: update to 17.0.2 2023-05-15 18:53:36 +00:00
build.config.crashdump ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.crashdump.aarch64 ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.crashdump.x86_64 ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.db845c Revert "Merge tag 'android14-6.1.75_r00' into android14-6.1" 2024-03-07 21:18:27 +00:00
build.config.gki ANDROID: GKI: Source GKI_BUILD_CONFIG_FRAGMENT after setting all variables 2022-12-27 13:52:08 -08:00
build.config.gki-debug.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki-debug.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki.aarch64 ANDROID: Delete MODULES_LIST from build configs. 2023-06-21 11:18:02 +00:00
build.config.gki.aarch64.fips140 ANDROID: remove LTO check from build.config.gki.aarch64.fips140 2024-03-04 11:19:25 +00:00
build.config.gki.riscv64 ANDROID: Delete MODULES_LIST from build configs. 2023-06-21 11:18:02 +00:00
build.config.gki.x86_64 ANDROID: Delete MODULES_LIST from build configs. 2023-06-21 11:18:02 +00:00
build.config.gki_consolidate.aarch64 ANDROID: bazel: add GKI consolidate Bazel build 2023-02-01 18:44:25 -08:00
build.config.gki_kasan ANDROID: build.config: re-disable LTO properly for KASAN 2022-03-24 12:41:35 -07:00
build.config.gki_kasan.aarch64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki_kasan.x86_64 ANDROID: drop KERNEL_DIR setting in build.config.common 2020-08-31 15:20:37 +00:00
build.config.gki_kprobes ANDROID: build.configs: migrate away from CC_LD_ARG 2021-07-02 09:49:23 +00:00
build.config.gki_kprobes.aarch64 ANDROID: Adding kprobes build configs for Cuttlefish 2021-03-01 15:29:45 +00:00
build.config.gki_kprobes.x86_64 ANDROID: Adding kprobes build configs for Cuttlefish 2021-03-01 15:29:45 +00:00
build.config.khwasan ANDROID: Add a build config fragment for KHWASan. 2021-10-13 19:44:44 +00:00
build.config.microdroid ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.microdroid.aarch64 ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.microdroid.x86_64 ANDROID: Move microdroid and crashdump defconfigs to common 2023-09-27 15:30:26 +00:00
build.config.msm.anorak build: Add bazel support for anorak 2024-04-18 12:58:59 +05:30
build.config.msm.auto build: Initial bazel support for gen4auto targets 2023-05-04 04:43:23 -07:00
build.config.msm.autoghgvm build: bazel: Add compilation support for autoghgvm 2023-12-21 17:31:48 -08:00
build.config.msm.autogvm build: Add support to build autogvm target 2023-04-06 22:24:21 -07:00
build.config.msm.blair build config: add build files for Blair 2023-04-07 11:45:28 +08:00
build.config.msm.common build.config.msm.common: Remove BRANCH modifications 2023-05-11 13:04:55 -07:00
build.config.msm.gen3auto build: Add support to build gen3auto targets 2023-04-08 23:05:14 +05:30
build.config.msm.gen4auto build: Initial bazel support for gen4auto targets 2023-05-04 04:43:23 -07:00
build.config.msm.gki build.config: Remove the generation of system_dlkm twice 2022-10-17 15:17:41 -07:00
build.config.msm.kalama build.config: Remove the generation of system_dlkm twice 2022-10-17 15:17:41 -07:00
build.config.msm.kalama.oemvm config: Add build config for kkp oemvm 2022-09-05 19:51:04 -07:00
build.config.msm.kalama.tuivm config: Add build config and defconfig for kkp 2022-09-08 02:20:39 -07:00
build.config.msm.kalama.vm config: Add build config and defconfig for kkp 2022-09-08 02:20:39 -07:00
build.config.msm.niobe build: bazel: Enable compilation for Niobe SoC 2023-09-12 15:02:39 +05:30
build.config.msm.niobe.tuivm build: config: Add build support for Niobe TUIVM 2024-04-17 12:08:29 +05:30
build.config.msm.niobe.vm build: config: Add build support for Niobe TUIVM 2024-04-17 12:08:29 +05:30
build.config.msm.pineapple build.config: Remove the generation of system_dlkm twice 2022-10-17 15:17:41 -07:00
build.config.msm.pineapple.allyes build.config.msm.pineapple.allyes: Add build config for pineapple with allyesconfigs 2023-01-12 10:53:43 -08:00
build.config.msm.pineapple.oemvm build: config: Adding build configs for pineapple oemvm 2022-09-05 18:20:59 -07:00
build.config.msm.pineapple.tuivm build: config: Adding build configs for vm and pineapple tuivm 2022-08-11 01:46:21 -07:00
build.config.msm.pineapple.vm build: Add support for CPIO cmdline support 2023-03-19 19:18:56 -07:00
build.config.msm.pitti build config: add build files for Pitti SoC 2023-08-16 15:03:20 +05:30
build.config.msm.sdmsteppeauto bazel: bazel build system for SA6155 2023-06-15 00:47:12 -07:00
build.config.msm.vm ANDROID: build: Set module signing keys in VM config 2023-03-02 09:42:17 -08:00
build.config.riscv64 ANDROID: GKI: Add 64-bit RISC-V config 2022-12-08 20:01:15 +00:00
build.config.rockchip ANDROID: GKI: Add rockchip fragment and build.config 2023-09-19 17:36:15 +00:00
build.config.rockpi4 ANDROID: db845c: Remove MAKE_GOALS from build.config 2023-05-15 07:01:39 +00:00
build.config.sxr.common build: Add bazel support for anorak 2024-04-18 12:58:59 +05:30
build.config.x86_64 ANDROID: Move NDK_TRIPLE to build.config.constants. 2023-02-14 14:13:51 -08:00
BUILD.dtc ANDROID: build: Switch to hermetic tools for DTC build 2023-08-29 10:39:29 -07:00
build.targets Merge "build: config: Add build support for Niobe TUIVM" 2024-04-22 04:54:46 -07:00
build_with_bazel.py Revert "ANDROID: build: Add --nocheck_bzl_visibility" 2023-09-09 14:00:35 -07:00
consolidate.bzl ANDROID: bazel: Switch to arch-specific GKI module list 2023-10-17 10:27:57 -07:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Remove Michal Marek from Kbuild maintainers 2022-11-16 14:53:00 +09:00
dpm_image.bzl ANDROID: build: Add define_dpm_image macro 2023-10-04 15:59:49 -07:00
files_gki_aarch64.txt Merge keystone/android14-6.1-keystone-qcom-release.6.1.68+ (7cb0122) into qcom-6.1 2024-05-09 10:00:15 +05:30
gen3auto.bzl gen3auto: Add driver modules to bazel file 2024-05-08 01:23:36 -07:00
gen4auto_lxc.bzl ANDROID: build: Fix output directory layout 2023-07-22 20:40:11 -07:00
image_opts.bzl ANDROID: build: Remove default value passed to earlycon cmdline option 2024-04-30 12:36:52 +05:30
kalama.bzl phy: qcom: Add UFS PHY driver snapshot for monaco_auto 2023-07-17 11:34:40 +05:30
kalama_oemvm.bzl ANDROID: Enable oemvm builds in Bazel 2022-12-19 09:40:20 -08:00
kalama_tuivm.bzl build: Add support for Bazel VM builds 2022-11-14 15:05:22 -08:00
Kbuild Import techpack changes 2024-07-28 14:53:28 +02:00
Kconfig sched/walt: Introduce WALT as a module 2022-06-28 18:45:55 -07:00
Kconfig.ext ANDROID: kbuild: add Kconfig support for external modules 2021-12-13 18:33:18 +00:00
MAINTAINERS Revert "Merge tag 'android14-6.1.75_r00' into android14-6.1" 2024-03-07 21:18:27 +00:00
Makefile Import Samsung changes 2024-07-28 14:53:29 +02:00
modules.bzl Revert "ANDROID: Build null_blk and scsi_debug as kernel modules" 2024-02-29 10:22:01 -08:00
modules.list.msm.anorak Merge "defconfig : Added support for USB configs" 2024-05-13 18:42:56 -07:00
modules.list.msm.autoghgvm defconfig: Enable minidump for the Auto GH Guest VMs 2024-04-23 17:52:02 -07:00
modules.list.msm.autogvm modules.list: autogvm: Add virtio_net module to first stage list 2024-04-22 02:12:30 -07:00
modules.list.msm.blair defconfig: Enable clock scaling for blair target 2023-09-25 11:44:59 +05:30
modules.list.msm.gen3auto defconfig: Enable clock scaling for msmnile_au 2024-02-21 22:37:56 -08:00
modules.list.msm.kalama shmbridge: Force use of SELF_OWNER_BIT 2023-02-28 11:54:26 -08:00
modules.list.msm.niobe Merge "defconfig: niobe: enable fbe modules" 2024-03-20 05:37:43 -07:00
modules.list.msm.pineapple modules.list: pineapple: Add minidump related modules to first stage 2024-04-02 14:15:46 +05:30
modules.list.msm.pitti modules.list: Pitti: Add minidump related modules to first stage 2024-03-29 17:47:23 +05:30
modules.list.msm.sdmsteppeauto Revert "defconfig: Enable clock scaling for sdmsteppe" 2024-03-22 00:14:10 -07:00
modules.systemdlkm_blocklist.msm.anorak modules.list.msm.anorak: Add build configs for Anorak 2024-04-18 12:59:57 +05:30
modules.systemdlkm_blocklist.msm.autoghgvm build: bazel: Add compilation support for autoghgvm 2023-12-21 17:31:48 -08:00
modules.systemdlkm_blocklist.msm.autogvm bazel: Add support to build autogvm 2023-04-05 12:56:46 +05:30
modules.systemdlkm_blocklist.msm.blair modules.blocklist: Add modules to system_dlkm blocklist for blair 2023-11-08 15:04:53 +08:00
modules.systemdlkm_blocklist.msm.gen3auto bazel: Add support to build gen3auto 2023-03-28 21:04:43 -07:00
modules.systemdlkm_blocklist.msm.kalama build: Add systemdlkm blocklist for kalama 2023-01-05 14:49:36 -08:00
modules.systemdlkm_blocklist.msm.niobe build: bazel: Enable compilation for Niobe SoC 2023-09-12 15:02:39 +05:30
modules.systemdlkm_blocklist.msm.pineapple modules.blocklist: Add modules to system_dlkm blocklist 2023-09-27 15:29:40 +05:30
modules.systemdlkm_blocklist.msm.pitti modules-list: Add kheaders in system_dlkm blocklist 2024-04-30 16:19:48 +05:30
modules.systemdlkm_blocklist.msm.sdmsteppeauto bazel: bazel build system for SA6155 2023-06-15 00:47:12 -07:00
modules.vendor_blocklist.msm.anorak modules.blocklist: Add modules blocklist for Anorak 2024-05-07 07:29:13 -07:00
modules.vendor_blocklist.msm.autoghgvm build: bazel: Add compilation support for autoghgvm 2023-12-21 17:31:48 -08:00
modules.vendor_blocklist.msm.autogvm Merge "modules.blocklist: Update blocklist modules for auto vm" 2024-04-03 06:50:43 -07:00
modules.vendor_blocklist.msm.blair modules.blocklist: Add modules to system_dlkm blocklist for blair 2023-11-08 15:04:53 +08:00
modules.vendor_blocklist.msm.gen3auto modules.vendor_blocklist: Remove cnss modules from gen3auto/sdmsteppeauto config 2024-01-26 08:23:59 +05:30
modules.vendor_blocklist.msm.kalama treewide: fix copyrights 2023-01-06 13:10:31 -08:00
modules.vendor_blocklist.msm.niobe Revert "blocklist: blocklist cnss2 and kiwi_v2 module for bring-up" 2024-04-10 01:57:51 -07:00
modules.vendor_blocklist.msm.pineapple modules.blocklist: Add modules to system_dlkm blocklist 2023-09-27 15:29:40 +05:30
modules.vendor_blocklist.msm.pitti modules.blocklist: Add limits_stress driver to block list for pitti 2024-01-10 22:51:14 -08:00
modules.vendor_blocklist.msm.sdmsteppeauto modules.vendor_blocklist: Remove cnss modules from gen3auto/sdmsteppeauto config 2024-01-26 08:23:59 +05:30
msm_abl.bzl build: Stop ABL compilation for autogvm targets 2023-04-06 13:03:35 +05:30
msm_common.bzl ANDROID: build: Replace genrules with write_file where possible 2023-08-01 09:41:05 -07:00
msm_dtc.bzl build: Unify output directory format 2023-01-18 17:14:58 -08:00
msm_kernel_extensions.bzl ANDROID: build: Remove test_mapping definitions 2023-07-27 09:25:18 -07:00
msm_kernel_la.bzl ANDROID: build: Remove default value passed to earlycon cmdline option 2024-04-30 12:36:52 +05:30
msm_kernel_lagvm.bzl ANDROID: build: Remove default value passed to earlycon cmdline option 2024-04-30 12:36:52 +05:30
msm_kernel_le.bzl ANDROID: build: Remove default value passed to earlycon cmdline option 2024-04-30 12:36:52 +05:30
msm_kernel_lxc.bzl Merge "ANDROID: build: Replace genrules with write_file where possible" 2023-08-10 13:43:30 -07:00
msm_kernel_vm.bzl Merge "ANDROID: build: Replace genrules with write_file where possible" 2023-08-10 13:43:30 -07:00
msm_platforms.bzl Merge "build: config: Add build support for Niobe TUIVM" 2024-04-22 04:54:46 -07:00
niobe.bzl arm64: defconfig: Enable Re-driver configs on Niobe 2024-05-02 00:06:50 -07:00
niobe_tuivm.bzl build: config: Add build support for Niobe TUIVM 2024-04-17 12:08:29 +05:30
OWNERS ANDROID: Snap to android14-6.1-2023-06 2023-08-08 17:02:27 -07:00
OWNERS_DrNo ANDROID: Updating OWNERS_DrNo 2022-08-22 16:34:52 +00:00
pineapple.bzl ANDROID: build: Remove default value passed to earlycon cmdline option 2024-04-30 12:36:52 +05:30
pineapple_allyes.bzl ANDROID: build: Fix output directory layout 2023-07-22 20:40:11 -07:00
pineapple_oemvm.bzl ANDROID: Enable oemvm builds in Bazel 2022-12-19 09:40:20 -08:00
pineapple_tuivm.bzl build: Add support for Bazel VM builds 2022-11-14 15:05:22 -08:00
pineapple_vms.bzl ANDROID: build: Replace the combine vms rule with getter 2023-03-02 10:35:13 -08:00
pitti.bzl defconfig: pitti: Enable qseecom proxy driver 2024-05-15 00:33:21 -07:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00
Readme.md V_01-03-59 2024-02-03 18:25:17 -08:00
README.md stm: Removed support for LTS kernel (4.9) EOL 2023-09-14 20:15:40 +02:00
sdmsteppeauto.bzl Merge "defconfig: sdmsteppeauto: support qfprom_sys in SA6155" 2024-05-02 04:27:34 -07:00
target_variants.bzl Merge "build: config: Add build support for Niobe TUIVM" 2024-04-22 04:54:46 -07:00

Toshiba Electronic Devices & Storage Corporation TC956X PCIe Ethernet Host Driver

Release Date: 26 Dec 2023

Release Version: V_01-03-59 : Limited-tested version

TC956X PCIe EMAC driver is based on "Fedora 39, kernel-6.6.1".

Compilation & Run: Need to be root user to execute the following steps.

  1. By default, DMA_OFFLOAD_ENABLE is enabled. Execute following commands:

    #make clean

    #make

  2. If IPA offload is not needed, disable macro DMA_OFFLOAD_ENABLE in common.h. set DMA_OFFLOAD = 0 in Makefile and execute following commands:

    #make clean

    #make

    To compile driver with load firmware header (fw.h) use the below command #make TC956X_LOAD_FW_HEADER=1

    In order to compile the Driver to include the code for applying Gen3 setting, execute Make with below argument #make TC956X_PCIE_GEN3_SETTING=1

    Please note, incase both fw.h and Gen3 settings are needed, then both arugments need to be specified.

  3. Load phylink module

    #modprobe phylink

  4. Load the driver

    #insmod tc956x_pcie_eth.ko pcie_link_speed=X

    In the module parameter pcie_link_speed, X is the desired PCIe Gen speed. X can be 3 or 2 or 1. Passing module parameter (pcie_link_speed=X) is optional. If module parameter is not passed, by default Gen3 speed will be selected by the driver.

    Please note that driver should be compiled using below command to use this feature: #make TC956X_PCIE_GEN3_SETTING=1

  5. Remove the driver

    #rmmod tc956x_pcie_eth

Note:

  1. Use below commands to advertise with Autonegotiation ON for speeds 10Gbps, 5Gbps, 2.5Gbps, 1Gbps, 100Mbps and 10Mbps as ethtool speed command does not support.

    ethtool -s advertise 0x7000 autoneg on --> changes the advertisement to 10Gbps

    ethtool -s advertise 0x1000000006000 autoneg on --> changes the advertisement to 5Gbps

    ethtool -s advertise 0x800000006000 autoneg on --> changes the advertisement to 2.5Gbps

    ethtool -s advertise 0x6020 autoneg on --> changes the advertisement to 1Gbps

    ethtool -s advertise 0x6008 autoneg on --> changes the advertisement to 100Mbps

    ethtool -s advertise 0x6002 autoneg on --> changes the advertisement 10Mbps

  2. Use the below command to insert the kernel module with specific modes for interfaces:

    #insmod tc956x_pcie_eth.ko mac0_interface=x mac1_interface=y

    argument info:
      mac0_interface: For PORT0 interface mode setting
      mac1_interface: For PORT1 interface mode setting
      x = [0: USXGMII, 1: XFI (default), 2: RGMII (unsupported), 3: SGMII, 4: 2500Base-X]
      y = [0: USXGMII (unsupported), 1: XFI (unsupported), 2: RGMII, 3: SGMII(default), 4: 2500Base-X]
    

    If invalid and unsupported modes are passed as kernel module parameter, the default interface mode will be selected.

  3. Regarding the performance, use the below command to increase the dynamic byte queue limit

    $echo "900000" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:03.0/0000:05:00.0/net/enp5s0f0/queues/tx-0/byte_queue_limits/limit_min

    900000 is the random value chosen. It needs to adjust this value on their system and check "0000:00/0000:00:01.0/0000:01:00.0/0000:02:03.0/0000:05:00.0/" value can be obtained from the "lspci -t" command

  4. The debug counters to check the interrupt count is available.

    "#ethtool -S " needs to be executed and sample output is as below

    total_interrupts: 120109
    lpi_intr_n: 0
    pmt_intr_n: 0
    event_intr_n: 0
    tx_intr_n: 120000
    rx_intr_n: 51
    xpcs_intr_n: 0
    phy_intr_n: 46
    sw_msi_n: 12
    

    tx_intr_n = No of. Tx interrupts originating from eMAC sw_msi_n = No. of SW MSIs triggered by Systick Handler as part of optimized Tx Timer based on Systick approach. So total number of interrupts for Tx = tx_intr_n + sw_msi_n Please note that whenever Rx interruts are generated, the Host ISR will process the Tx completed descriptors too.

  5. With V_01-00-07, when IPA API start_channel() is invoked for Rx direction, MAC_Address1_High is updated with 0xBF000000. This register setting is almost similar to promiscuous mode. So please install appropriate FRP instructions.

  6. From V_01-00-08 onwards, Port0 ethernet interface will not be created only if there is no ethernet PHY attached to it

  7. Enable TC956X_PHY_INTERRUPT_MODE_EMAC0 macro for supporting PORT0 Interrupt mode. Disable the macro if the phy driver supports only polling mode. Enable TC956X_PHY_INTERRUPT_MODE_EMAC1 macro for supporting PORT1 Interrupt mode. Disable the macro if the phy driver supports only polling mode.

  8. Change below macro values for configuration of Link state L0 and L1 transaction delay. /* Link state change delay configuration for Upstream Port */ #define USP_L0s_ENTRY_DELAY (0x1FU) #define USP_L1_ENTRY_DELAY (0x3FFU)

    /* Link state change delay configuration for Downstream Port-1 */ #define DSP1_L0s_ENTRY_DELAY (0x1FU) #define DSP1_L1_ENTRY_DELAY (0x3FFU)

    /* Link state change delay configuration for Downstream Port-2 */ #define DSP2_L0s_ENTRY_DELAY (0x1FU) #define DSP2_L1_ENTRY_DELAY (0x3FFU)

    /* Link state change delay configuration for Virtual Downstream Port */ #define VDSP_L0s_ENTRY_DELAY (0x1FU) #define VDSP_L1_ENTRY_DELAY (0x3FFU)

    /* Link state change delay configuration for Internal Endpoint */ #define EP_L0s_ENTRY_DELAY (0x1FU) #define EP_L1_ENTRY_DELAY (0x3FFU)

    Formula: L0 entry delay = XXX_L0s_ENTRY_DELAY * 256 ns L1 entry delay = XXX_L1_ENTRY_DELAY * 256 ns

     XXX_L0s_ENTRY_DELAY range: 1-31
     XXX_L1_ENTRY_DELAY: 1-1023
    
  9. To check vlan feature status execute: ethtool -k | grep vlan

    To enable/disable following vlan features execute: (a) rx-vlan-filter: ethtool -K rx-vlan-filter <on|off> (b) rx-vlan-offload: ethtool -K rxvlan <on|off> (c) tx-vlan-offload: ethtool -K txvlan <on|off>

    Use following to configure VLAN: (a) modprobe 8021q (b) vconfig add (c) vconfig set_flag . 1 0 (d) ifconfig . netmask 255.255.255.0 broadcast up

    Default Configuraton: (a) Rx vlan filter is disabled. (b) Rx valn offload (vlan stripping) is disabled. (c) Tx vlan offload is enabled.

  10. Please use the below command to insert the kernel module for passing pause frames to application except pause frames from PHY:

    #insmod tc956x_pcie_eth.ko mac0_filter_phy_pause=x mac1_filter_phy_pause=x

    argument info: mac0_filter_phy_pause: For PORT0 mac1_filter_phy_pause: For PORT1 x = [0: DISABLE (default), 1: ENABLE]

    If invalid values are passed as kernel module parameter, the default value will be selected.

  11. Use below commands to check WOL support and its type: #ethtool

  12. WOL command Usage : #ethtool -s wol <type - p/g/d>.

    Supported WOL options and meaning:

    Option Meaning
    p Wake on phy activity
    g Wake on MagicPacket(tm)
    d Disable (wake on nothing). (Default)

    Example - To wake on phy activity and magic packet use : ethtool -s eth0 wol pg

  13. Please use the below command to insert the kernel module to enable EEE and configure LPI Auto Entry timer:

    #insmod tc956x_pcie_eth.ko mac0_eee_enable=X mac0_lpi_timer=Y mac1_eee_enable=X mac1_lpi_timer=Y

    argument info:

    mac0_eee_enable: For PORT0
    mac1_eee_enable: For PORT1
    X = [0: DISABLE (default), 1: ENABLE]
    This module parameter is to Enable/Disable EEE for Port 0/1 - default is 0.
    If invalid values are passed as kernel module parameter, the default value will be selected.		
    
    mac0_lpi_timer: For PORT0
    mac1_lpi_timer: For PORT1
    Y = [0..1048568 (us)]
    This module parameter is to configure LPI Automatic Entry Timer for Port 0/1 - default is 600 (us).
    If invalid values are passed as kernel module parameter, the default value will be selected.		
    

    In addition to above module parameter, use below ethtool command to configure EEE and LPI auto entry timer. #ethtool --set-eee eee <on/off> tx-timer

    Use below command to check the status of EEE configuration #ethtool --show-eee

  14. Please use the below command to insert the kernel module for RX Queue size, Flow control thresholds & TX Queue size configuration.

    #insmod tc956x_pcie_eth.ko mac0_rxq0_size=x mac0_rxq0_rfd=y mac0_rxq0_rfa=y mac0_rxq1_size=x mac0_rxq1_rfd=y mac0_rxq1_rfa=y mac0_txq0_size=x mac0_txq1_size=x mac1_rxq0_size=x mac1_rxq0_rfd=y mac1_rxq0_rfa=y mac1_rxq1_size=x mac1_rxq1_rfd=y mac1_rxq1_rfa=y mac1_txq0_size=x mac1_txq1_size=x

    argument info: mac0_rxq0_size: For PORT0 RX Queue-0 mac0_rxq1_size: For PORT0 RX Queue-1 mac1_rxq0_size: For PORT1 RX Queue-0 mac1_rxq1_size: For PORT1 RX Queue-1 mac0_txq0_size: For PORT0 TX Queue-0 mac0_txq1_size: For PORT0 TX Queue-1 mac1_txq0_size: For PORT1 TX Queue-0 mac1_txq1_size: For PORT1 TX Queue-1 x = [Range Supported : 3072..44032 (bytes)], default is 18432 (bytes)

    mac0_rxq0_rfd: For PORT0 Queue-0 threshold for Disable flow control
    mac0_rxq1_rfd: For PORT0 Queue-1 threshold for Disable flow control
    mac0_rxq0_rfa: For PORT0 Queue-0 threshold for Enable flow control
    mac0_rxq1_rfa: For PORT0 Queue-1 threshold for Enable flow control
    mac1_rxq0_rfd: For PORT1 Queue-0 threshold for Disable flow control
    mac1_rxq1_rfd: For PORT1 Queue-1 threshold for Disable flow control
    mac1_rxq0_rfa: For PORT1 Queue-0 threshold for Enable flow control
    mac1_rxq1_rfa: For PORT1 Queue-1 threshold for Enable flow control
    y = [Range Supported : 0..84], default is 24 (13KB)
    

    If invalid values are passed as kernel module parameter, the default value will be selected for Queue Sizes and for Flow control 80% of Queue size will be used.

    Note:

    1. Please configure flow control thresholds (RFD & RFA) as per Queue size (Default values are for Default Queue size which is 18KB).
  15. Please use the below command to insert the kernel module for counting Link partner pause frames and output to ethtool:

    #insmod tc956x_pcie_eth.ko mac0_en_lp_pause_frame_cnt=x mac1_en_lp_pause_frame_cnt=x

    argument info: mac0_en_lp_pause_frame_cnt: For PORT0 mac1_en_lp_pause_frame_cnt: For PORT1 x = [0: DISABLE (default), 1: ENABLE]

    If invalid values are passed as kernel module parameter, the default value will be selected. Note: It is required to enable kernel module parameter "mac0_filter_phy_pause/mac1_filter_phy_pause" along with this module parameter to count link partner pause frames.

  16. Please use the below command to insert the kernel module for power saving at Link Down state:

    #insmod tc956x_pcie_eth.ko mac_power_save_at_link_down=x

    argument info: mac_power_save_at_link_down: Common for both PORT0 & PORT1 x = [0: DISABLE (default), 1: ENABLE]

    If invalid values are passed as kernel module parameter, the default value will be selected.

  17. Debufs directory will be created for port specific in debug path of kernel i.e. "/sys/kernel/debug" in x86 Linux platfrom. Under port specific debugfs directory (tc956x_port0_debug/tc956x_port1_debug), module specific files are created to get dump of debug information related to module. Example: config_stats --> Registers related to CONFIG module mac_stats --> Registers related to MAC block mtl_stats --> Registers related to MTL block dma_stats --> Registers related to DMA block m3_stats --> Debug information related to M3 Firmware interrupt_stats --> Registers related to MSI & INT blocks other_stats --> Information related to Driver & Firmware, TAMAP, Flexible Receiver Parser, mmc counters reg_dump --> Dumps all registers of MAC, MTL, DMA and CNFG modules

    Information will be printed to "dmesg" console, when files related to specific module are invoked.

    debugfs file can be invoked by using "cat" command. Example: cat /sys/kernel/debug/tc956x_port0_debug/config_stats

  18. Use the below command to insert the kernel module for SW reset during link down.

    #insmod tc956x_pcie_eth.ko mac0_link_down_macrst=x mac1_link_down_macrst=y

    argument info: mac0_link_down_macrst: For PORT0 x = [0: DISABLE, 1: ENABLE (default)] mac1_link_down_macrst: For PORT1 y = [0: DISABLE (default), 1: ENABLE]

    If invalid values are passed as kernel module parameter, the default value will be selected.

Release Versions:

TC956X_Host_Driver_20210326_V_01-00:

  1. Initial Version

TC956X_Host_Driver_20210705_V_01-00-01:

  1. Used Systick handler instead of Driver kernel timer to process transmitted Tx descriptors.
  2. XFI interface supported and added module parameters for selection of Port0 and Port1 interface
  3. kernel_read API replaced with kernel_read_file_from_path API
  4. sprintf, vsprintf APIs replaced with vcnsprintf or vcnsprintf APIs
  5. API to print IPA DMA channel statistics supported
  6. Correction of print statement about selection of C45 PHY for Port0 interface

TC956X_Host_Driver_20210705_V_01-00-02:

  1. XFI interface supported through compile time macro.
  2. Removed module parameters for selection of Port0 and Port1 interface
  3. Debugfs support for IPA statistics

TC956X_Host_Driver_20210720_V_01-00-03:

  1. Debugfs not supported for IPA statistics
  2. Default Port1 interface selected as SGMII

TC956X_Host_Driver_20210722_V_01-00-04:

  1. Module parameters for selection of Port0 and Port1 interface

TC956X_Host_Driver_20210722_V_01-00-05:

  1. Dynamic CM3 TAMAP configuration

TC956X_Host_Driver_20210722_V_01-00-06:

  1. Add support for contiguous allocation of memory

TC956X_Host_Driver_20210729_V_01-00-07:

  1. Add support to set MAC Address register

TC956X_Host_Driver_20210806_V_01-00-08:

  1. Store and use Port0 pci_dev for all DMA allocation/mapping for IPA path
  2. Register Port0 as only PCIe device, in case its PHY is not found

TC956X_Host_Driver_20210816_V_01-00-09:

  1. PHY interrupt mode supported through .config_intr and .ack_interrupt API

TC956X_Host_Driver_20210824_V_01-00-10:

  1. TC956X_PCIE_GEN3_SETTING macro setting supported through makefile. By default Gen3 settings will not be applied by the Driver as TC956X_PCIE_GEN3_SETTING is not defined.
  2. TC956X_LOAD_FW_HEADER macro setting supported through makefile. By default, TC956X_LOAD_FW_HEADER macro is disabled. If FIRMWARE_NAME is not specified in Makefile, the default value shall be TC956X_Firmware_PCIeBridge.bin
  3. Platform APIs supported.
  4. Modified PHY C22/C45 debug message.

TC956X_Host_Driver_20210902_V_01-00-11:

  1. Configuration of Link state L0 and L1 transaction delay for PCIe switch ports & Endpoint. By default maximum values are set for L0s and L1 latencies.

TC956X_Host_Driver_20210909_V_01-00-12:

  1. Reverted changes related to usage of Port-0 pci_dev for all DMA allocation/mapping for IPA path

TC956X_Host_Driver_20210914_V_01-00-13:

  1. Synchronization between ethtool vlan features "rx-vlan-offload", "rx-vlan-filter", "tx-vlan-offload" output and register settings.
  2. Added ethtool support to update "rx-vlan-offload", "rx-vlan-filter", and "tx-vlan-offload".
  3. Removed IOCTL TC956XMAC_VLAN_STRIP_CONFIG.
  4. Removed "Disable VLAN Filter" option in IOCTL TC956XMAC_VLAN_FILTERING.

TC956X_Host_Driver_20210923_V_01-00-14:

  1. Updated RX Queue Threshold limits for Activating and Deactivating Flow control
  2. Filtering All pause frames by default.
  3. Capturing RBU status and updating to ethtool statistics for both S/W & IPA DMA channels

TC956X_Host_Driver_20210929_V_01-00-15:

  1. Added check for Device presence before changing PCIe ports speed.

TC956X_Host_Driver_20211014_V_01-00-16:

  1. Configuring pause frame control using kernel module parameter also forwarding only Link partner pause frames to Application and filtering PHY pause frames using FRP.
  2. Returning error on disabling Receive Flow Control via ethtool for speed other than 10G in XFI mode.

TC956X_Host_Driver_20211019_V_01-00-17:

  1. Added M3 SRAM Debug counters to ethtool statistics.
  2. Added MTL RX Overflow/packet miss count, TX underflow counts,Rx Watchdog value to ethtool statistics.

TC956X_Host_Driver_20211021_V_01-00-18:

  1. Added support for GPIO configuration API

TC956X_Host_Driver_20211025_V_01-00-19:

  1. Added PM support for suspend-resume.
  2. Added WOL Interrupt Handler and ethtool Support.
  3. Updated EEE support for PHY and MAC Control. (EEE macros are not enabled as EEE LPI interrupts disable are still under validation)

TC956X_Host_Driver_20211104_V_01-00-20:

  1. Added separate control functions for MAC TX and RX start/stop.
  2. Stopped disabling/enabling of MAC TX during Link down/up.
  3. Disabled link state latency configuration for all PCIe ports by default

TC956X_Host_Driver_20211108_V_01-00-21:

  1. Skip queuing PHY Work during suspend and cancel any phy work if already queued.
  2. Restore Gen 3 Speed after resume.

TC956X_Host_Driver_20211124_V_01-00-22:

  1. Single port Suspend/Resume supported

TC956X_Host_Driver_20211124_V_01-00-23:

  1. Restricted MDIO access when no PHY found or MDIO registration fails
  2. Added mdio lock for making mii bus of private member to null to avoid parallel accessing to MDIO bus

TC956X_Host_Driver_20211124_V_01-00-24:

  1. Runtime configuration of EEE supported and LPI interrupts disabled by default.
  2. Module param added to configure EEE and LPI timer.
  3. Driver name corrected in ethtool display.

TC956X_Host_Driver_20211130_V_01-00-25:

  1. Print message correction for PCIe BAR size and Physical Address.

TC956X_Host_Driver_20211130_V_01-00-26:

  1. Added PHY Workqueue Cancel during suspend only if network interface available.

TC956X_Host_Driver_20211201_V_01-00-27:

  1. Free EMAC IRQ during suspend and request EMAC IRQ during resume.

TC956X_Host_Driver_20211201_V_01-00-28:

  1. Resetting SRAM Region before loading firmware.

TC956X_Host_Driver_20211203_V_01-00-29:

  1. Max C22/C45 PHY address changed to PHY_MAX_ADDR.
  2. Added error check for phydev in tc956xmac_suspend().

TC956X_Host_Driver_20211208_V_01-00-30:

  1. Added module parameters for Rx Queue Size, Flow Control thresholds and Tx Queue Size configuration.
  2. Renamed all module parameters for easy readability.

TC956X_Host_Driver_20211210_V_01-00-31:

  1. Support for link partner pause frame counting.
  2. Module parameter support to enable/disable link partner pause frame counting.

TC956X_Host_Driver_20211227_V_01-00-32:

  1. Support for eMAC Reset and unused clock disable during Suspend and restoring it back during resume.
  2. Resetting and disabling of unused clocks for eMAC Port, when no-found PHY for that particular port.
  3. Valid phy-address and mii-pointer NULL check in tc956xmac_suspend().

TC956X_Host_Driver_20220106_V_01-00-33:

  1. Null check added while freeing skb buff data
  2. Code comments corrected for flow control configuration

TC956X_Host_Driver_20220107_V_01-00-34:

  1. During emac resume, attach the net device after initializing the queues

TC956X_Host_Driver_20220111_V_01-00-35:

  1. Fixed phy mode support
  2. Error return when no phy driver found during ISR work queue execution

TC956X_Host_Driver_20220118_V_01-00-36:

  1. IRQ device name modified to differentiate between WOL and EMAC interrupt IRQs

TC956X_Host_Driver_20220120_V_01-00-37:

  1. Skip resume_config and reset eMAC if port unavailable (PHY not connected) during suspend-resume.
  2. Restore clock after resume in set_power.
  3. Shifted Queuing Work to end of resume to prevent MSI disable on resume.

TC956X_Host_Driver_20220124_V_01-00-38:

  1. Set Clock control and Reset control register to default value on driver unload.

TC956X_Host_Driver_20220131_V_01-00-39:

  1. Debug dump API supported to dump registers during crash.

TC956X_Host_Driver_20220202_V_01-00-40:

  1. Tx Queue flushed and checked for status after Tx DMA stop.

TC956X_Host_Driver_20220204_V_01-00-41:

  1. DMA channel status cleared only for SW path allocated DMA channels. IPA path DMA channel status clearing is skipped.
  2. Ethtool statistics added to print doorbell SRAM area for all the channels.

TC956X_Host_Driver_20220214_V_01-00-42:

  1. Reset assert and clock disable support during Link Down.

TC956X_Host_Driver_20220222_V_01-00-43:

  1. Supported GPIO configuration save and restoration.

TC956X_Host_Driver_20220225_V_01-00-44:

  1. XPCS module is re-initialized after link-up as MACxPONRST is asserted during link-down.
  2. Disable Rx side EEE LPI before configuring Rx Parser (FRP). Enable the same after Rx Parser configuration.

TC956X_Host_Driver_20220309_V_01-00-45:

  1. Handling of Non S/W path DMA channel abnormal interrupts in Driver and only TI & RI interrupts handled in FW.
  2. Reading MSI status for checking interrupt status of SW MSI.

TC956X_Host_Driver_20220322_V_01-00-46:

  1. PCI bus info updated for ethtool get driver version.

TC956X_Host_Driver_20220405_V_01-00-47:

  1. Disable MSI and flush phy work queue during driver release.

TC956X_Host_Driver_20220406_V_01-00-48:

  1. Dynamic MTU change supported. Max MTU supported is 2000 bytes.

TC956X_Host_Driver_20220414_V_01-00-49:

  1. Ignoring error from tc956xmac_hw_setup in tc956xmac_open API.

TC956X_Host_Driver_20220425_V_01-00-50:

  1. Perform platform remove after MDIO deregistration.

TC956X_Host_Driver_20220429_V_01-00-51:

  1. Checking for DMA status update as stop after TX DMA stop.
  2. Checking for Tx MTL Queue Read/Write contollers in idle state after TX DMA stop.
  3. Triggering Power saving at Link down after releasing of Offloaded DMA channels.
  4. Added kernel Module parameter for selecting Power saving at Link down and default is disabled.
  5. Added Lock for syncing linkdown, port rlease and release of offloaded DMA channels.

TC956X_Host_Driver_20220615_V_01-00-52:

  1. Added debugfs support for module specific register dump.

TC956X_Host_Driver_20220808_V_01-00-53:

  1. For IPA offload path, disable RBU interrupt when RBU interrupt occurs. Interrupt should be enabled back in IPA SW.

TC956X_Host_Driver_20220831_V_01-00-54:

  1. Fix for configuring Rx Parser when EEE is enabled and RGMII Interface is used

TC956X_Host_Driver_20220902_V_01-00-55:

  1. 2500Base-X support for line speeds 2.5Gbps, 1Gbps, 100Mbps.

TC956X_Host_Driver_20221021_V_01-00-56:

  1. MDIO registration failures treated as error of type "ENODEV"

TC956X_Host_Driver_20221109_V_01-00-57:

  1. Update of fix for configuring Rx Parser when EEE is enabled

TC956X_Host_Driver_20221222_V_01-00-58:

  1. Support for SW reset during link down.
  2. Module parameters introduced for the control of SW reset and by default SW reset is disabled.

TC956X_Host_Driver_20230509_V_01-00-59:

  1. Module parameters for SW reset (during link change) enabled by default for Port0.

TC956X_Linux_Host_Driver_20230810_V_01-01-59

  1. Automotive AVB/TSN support
  2. Default Port 0 interface is XFI and Port1 interface is SGMII
  3. IPA (macro TC956X_DMA_OFFLOAD_ENABLE) enabled by default
  4. Kernel timers are used to process transmitted TX descriptor. Systick timers are not used.
  5. Dynamic change of MTU not supported. Max MTU supported is 9000.
  6. Port 1 supports USXGMII, XFI and 25000Base-X interface also.

TC956X_Linux_Host_Driver_20231110_V_01-02-59

  1. Kernel 6.1.18 Porting changes
  2. TC956x switch to switch connection support (upto 1 level) over DSP ports

TC956X_Linux_Host_Driver_20231226_V_01-03-59

  1. Kernel 6.6.1 Porting changes
  2. Added the support for TC commands taprio and flower