mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: split nvgpu power on sequence into 2 stages
1) nvgpu poweron sequence split into two stages:
- nvgpu_early_init() - Initializes the sub units
which are required to be initialized before the grgmr init.
For creating dev node, grmgr init and its dependency unit
needs to move to early stage of GPU power on.
After successful nvgpu_early_init() sequence,
NvGpu can indetify the number of MIG instance required
for each physical GPU.
- nvgpu_finalize_poweron() - Initializes the sub units which
can be initialized at the later stage of GPU power on sequence.
- grmgr init depends on the following HAL sub units,
* device - To get the device caps.
* priv_ring - To get the gpc count and other
MIG config programming.
* fb - MIG config programming.
* ltc - MIG config programming.
* bios, bus, ecc and clk - dependent module of
priv_ring/fb/ltc.
2) g->ops.xve.reset_gpu() should be called before GPU sub unit
initialization. Hence, added g->ops.xve.reset_gpu() HAL in the
early stage of dGPU power on sequence.
3) Increased xve_reset timeout from 100ms to 200ms.
4) Added nvgpu_assert() for gpc_count, gpc_mask and
max_veid_count_per_tsg for identify the GPU boot
device probe failure during nvgpu_init_gr_manager().
JIRA NVGPU-6633
Change-Id: I5d43bf711198e6b3f8eebcec3027ba17c15fc692
Signed-off-by: Lakshmanan M <lm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2521894
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Debarshi Dutta <ddutta@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
a18be36a15
commit
c041ad5b4b
@@ -89,6 +89,24 @@ struct nvgpu_ref;
|
||||
* the GPU dev node in the early stage of GPU power on sequence.
|
||||
* Each sub-unit is responsible for HW initialization.
|
||||
*
|
||||
* nvgpu poweron sequence split into two stages:
|
||||
* - nvgpu_early_init() - Initializes the sub units
|
||||
* which are required to be initialized before the grgmr init.
|
||||
* For creating dev node, grmgr init and its dependency unit
|
||||
* needs to move to early stage of GPU power on.
|
||||
* After successful nvgpu_early_init() sequence,
|
||||
* NvGpu can indetify the number of MIG instance required
|
||||
* for each physical GPU.
|
||||
* - nvgpu_finalize_poweron() - Initializes the sub units which
|
||||
* can be initialized at the later stage of GPU power on sequence.
|
||||
*
|
||||
* grmgr init depends on the following HAL sub units,
|
||||
* device - To get the device caps.
|
||||
* priv_ring - To get the gpc count and other MIG config programming.
|
||||
* fb - MIG config programming.
|
||||
* ltc - MIG config programming.
|
||||
* bios, bus, ecc and clk - dependent module of priv_ring/fb/ltc.
|
||||
*
|
||||
* @return 0 in case of success, < 0 in case of failure.
|
||||
*/
|
||||
int nvgpu_early_poweron(struct gk20a *g);
|
||||
|
||||
Reference in New Issue
Block a user