/* * Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #ifndef NVGPU_PMUIF_GPMUIFSEQ_H #define NVGPU_PMUIF_GPMUIFSEQ_H #include #define PMU_UNIT_SEQ (0x02) /*! * @file gpmuifseq.h * @brief PMU Command/Message Interfaces - Sequencer */ /*! * Defines the identifiers various high-level types of sequencer commands. * * _RUN_SCRIPT @ref NV_PMU_SEQ_CMD_RUN_SCRIPT */ enum { NV_PMU_SEQ_CMD_ID_RUN_SCRIPT = 0, }; struct nv_pmu_seq_cmd_run_script { u8 cmd_type; u8 pad[3]; struct pmu_allocation_v3 script_alloc; struct pmu_allocation_v3 reg_alloc; }; #define NV_PMU_SEQ_CMD_ALLOC_OFFSET 4 #define NV_PMU_SEQ_MSG_ALLOC_OFFSET \ (NV_PMU_SEQ_CMD_ALLOC_OFFSET + NV_PMU_CMD_ALLOC_SIZE) struct nv_pmu_seq_cmd { struct pmu_hdr hdr; union { u8 cmd_type; struct nv_pmu_seq_cmd_run_script run_script; }; }; enum { NV_PMU_SEQ_MSG_ID_RUN_SCRIPT = 0, }; struct nv_pmu_seq_msg_run_script { u8 msg_type; u8 error_code; u16 error_pc; u32 timeout_stat; }; struct nv_pmu_seq_msg { struct pmu_hdr hdr; union { u8 msg_type; struct nv_pmu_seq_msg_run_script run_script; }; }; #endif /* NVGPU_PMUIF_GPMUIFSEQ_H */