162306a36Sopenharmony_ciLinux Devlink Documentation
262306a36Sopenharmony_ci===========================
362306a36Sopenharmony_ci
462306a36Sopenharmony_cidevlink is an API to expose device information and resources not directly
562306a36Sopenharmony_cirelated to any device class, such as chip-wide/switch-ASIC-wide configuration.
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciLocking
862306a36Sopenharmony_ci-------
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciDriver facing APIs are currently transitioning to allow more explicit
1162306a36Sopenharmony_cilocking. Drivers can use the existing ``devlink_*`` set of APIs, or
1262306a36Sopenharmony_cinew APIs prefixed by ``devl_*``. The older APIs handle all the locking
1362306a36Sopenharmony_ciin devlink core, but don't allow registration of most sub-objects once
1462306a36Sopenharmony_cithe main devlink object is itself registered. The newer ``devl_*`` APIs assume
1562306a36Sopenharmony_cithe devlink instance lock is already held. Drivers can take the instance
1662306a36Sopenharmony_cilock by calling ``devl_lock()``. It is also held all callbacks of devlink
1762306a36Sopenharmony_cinetlink commands.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciDrivers are encouraged to use the devlink instance lock for their own needs.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciInterface documentation
2262306a36Sopenharmony_ci-----------------------
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciThe following pages describe various interfaces available through devlink in
2562306a36Sopenharmony_cigeneral.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci.. toctree::
2862306a36Sopenharmony_ci   :maxdepth: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci   devlink-dpipe
3162306a36Sopenharmony_ci   devlink-health
3262306a36Sopenharmony_ci   devlink-info
3362306a36Sopenharmony_ci   devlink-flash
3462306a36Sopenharmony_ci   devlink-params
3562306a36Sopenharmony_ci   devlink-port
3662306a36Sopenharmony_ci   devlink-region
3762306a36Sopenharmony_ci   devlink-resource
3862306a36Sopenharmony_ci   devlink-reload
3962306a36Sopenharmony_ci   devlink-selftests
4062306a36Sopenharmony_ci   devlink-trap
4162306a36Sopenharmony_ci   devlink-linecard
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciDriver-specific documentation
4462306a36Sopenharmony_ci-----------------------------
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciEach driver that implements ``devlink`` is expected to document what
4762306a36Sopenharmony_ciparameters, info versions, and other features it supports.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci.. toctree::
5062306a36Sopenharmony_ci   :maxdepth: 1
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci   bnxt
5362306a36Sopenharmony_ci   etas_es58x
5462306a36Sopenharmony_ci   hns3
5562306a36Sopenharmony_ci   ionic
5662306a36Sopenharmony_ci   ice
5762306a36Sopenharmony_ci   mlx4
5862306a36Sopenharmony_ci   mlx5
5962306a36Sopenharmony_ci   mlxsw
6062306a36Sopenharmony_ci   mv88e6xxx
6162306a36Sopenharmony_ci   netdevsim
6262306a36Sopenharmony_ci   nfp
6362306a36Sopenharmony_ci   qed
6462306a36Sopenharmony_ci   ti-cpsw-switch
6562306a36Sopenharmony_ci   am65-nuss-cpsw-switch
6662306a36Sopenharmony_ci   prestera
6762306a36Sopenharmony_ci   iosm
6862306a36Sopenharmony_ci   octeontx2
6962306a36Sopenharmony_ci   sfc
70