Files
gddr6/nva/include/ampere/ga102/ram_profile_init_seq.h
2022-12-03 20:08:58 +01:00

97 lines
6.1 KiB
C

/* _NVRM_COPYRIGHT_BEGIN_
*
* Copyright 2003-2016 by NVIDIA Corporation. All rights reserved. All
* information contained herein is proprietary and confidential to NVIDIA
* Corporation. Any use, reproduction, or disclosure without the written
* permission of NVIDIA Corporation is prohibited.
*
* _NVRM_COPYRIGHT_END_
*/
/* This file is autogenerated by ref2h.pl. Do not edit */
/* ------------------------- System Includes -------------------------------- */
#include "dev_pwr_pri.h"
#include "dev_chiplet_pwr.h"
/* ------------------------- Macros and Defines ----------------------------- */
// Per Parition Profile Values for various Feature. (Value taken from the PARTITION register)
#define PROFILE_POWER_ON 0x0
#define PROFILE_RPPG 0x1
#define PROFILE_RPG 0x2
/* =============================================================== */
// Profile Bit Position in Partition regsiter
/* =============================================================== */
#define PROFILE0_BIT_POS 0
#define PROFILE1_BIT_POS 2
#define PROFILE2_BIT_POS 4
#define PROFILE3_BIT_POS 6
/* =============================================================== */
// Bit position for Autoincrement setting
/* =============================================================== */
#define PARTITION1_INDEX_WRITEINCR_BIT_POSITION 9
/* =============================================================== */
// FEATURE | PROFILE MAPPING
/* =============================================================== */
// GR-RPPG | PROFILE0
// GR-RPG | PROFILE1
// MS-RPPG | PROFILE0
// L2-RPG | PROFILE1
/* =============================================================== */
/* =============================================================== */
// Macros for SW use while programing the Profile
/* =============================================================== */
// Profile to be used by SW for RPPG feature
#define SRAM_PG_PROFILE_RPPG NV_CPWR_PMU_RAM_TARGET_SEQ_PROFILE0
// Profile to be used by SW for RPG feature
#define SRAM_PG_PROFILE_RPG NV_CPWR_PMU_RAM_TARGET_SEQ_PROFILE1
// Profile to be used by SW for L2RPG feature
#define SRAM_PG_PROFILE_L2RPG NV_CPWR_PMU_RAM_TARGET_SEQ_PROFILE1
/* =============================================================== */
#define FBPS_POWER_CTRL_MS_RAM_PARTITION1_INDEX_WRITEINCR_ENABLED (NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1_INDEX_WRITEINCR_ENABLED << PARTITION1_INDEX_WRITEINCR_BIT_POSITION)
/* =============================================================== */ \
/* ------- Program the MS PROFILEs for MS-RPPG & L2-RPG ---------- */ \
/* =============================================================== */ \
/* =============================================================== */ \
/* ------------------ FBP ---------------------- */
/* =============================================================== */ \
// This macro is defined in the format:
// _op_(RegAddr, regVal, wrCount)
//
// regAddr - Register address to program
// regVal - Value to program in this register
// wrCount - Number of times this register has to be written with same value (for Auto increment feature on write for all the partition in given chiplet)
/* =============================================================== */ \
#define SRAM_PG_PROFILE_INIT(_op_) \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1_INDEX, (FBPS_POWER_CTRL_MS_RAM_PARTITION1_INDEX_WRITEINCR_ENABLED | NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION_INDEX_INDEX_MIN), 1) \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P0 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P1 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P2 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P3 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P4 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P5 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P6 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P7 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P8 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_POWER_ON << PROFILE0_BIT_POS), 1) /* P9 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P10 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P11 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P12 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P13 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P14 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P15 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P16 */ \
_op_(NV_PCHIPLET_PWR_FBPS_POWER_CTRL_MS_RAM_PARTITION1, (PROFILE_RPPG << PROFILE1_BIT_POS) | (PROFILE_RPPG << PROFILE0_BIT_POS), 1) /* P17 */