aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch176
1 files changed, 176 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch
new file mode 100644
index 00000000..38d92d2c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2042-drm-amdgpu-psp-udpate-ta_ras-interface-header.patch
@@ -0,0 +1,176 @@
+From 76bc1a53a4369aec98496d433cbfac63d0741036 Mon Sep 17 00:00:00 2001
+From: Hawking Zhang <Hawking.Zhang@amd.com>
+Date: Fri, 31 May 2019 22:53:38 +0800
+Subject: [PATCH 2042/2940] drm/amdgpu/psp: udpate ta_ras interface header
+
+ras ta interface header need to be updated to match with latest ta fw updates
+
+Change-Id: I4ccc0dbba820221b5074e2bfc2902819a1e3f4d4
+Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Reviewed-by: James Zhu <James.Zhu@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/ta_ras_if.h | 108 ++++++++++++++-----------
+ 1 file changed, 59 insertions(+), 49 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/ta_ras_if.h b/drivers/gpu/drm/amd/amdgpu/ta_ras_if.h
+index 0b4e7b55595a..ca7d05993ca2 100644
+--- a/drivers/gpu/drm/amd/amdgpu/ta_ras_if.h
++++ b/drivers/gpu/drm/amd/amdgpu/ta_ras_if.h
+@@ -1,29 +1,26 @@
+-/****************************************************************************\
+-*
+-* File Name ta_ras_if.h
+-* Project AMD PSP SW IP Module
+-*
+-* Description Interface to the RAS Trusted Application
+-*
+-* Copyright 2019 Advanced Micro Devices, Inc.
+-*
+-* 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
+-*/
++/*
++ * Copyright 2019 Advanced Micro Devices, Inc.
++ *
++ * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 _TA_RAS_IF_H
+ #define _TA_RAS_IF_H
+
+@@ -31,8 +28,8 @@
+ #define RSP_ID_MASK (1U << 31)
+ #define RSP_ID(cmdId) (((uint32_t)(cmdId)) | RSP_ID_MASK)
+
+-#define TA_NUM_BLOCK_MAX 14
+-
++/* RAS related enumerations */
++/**********************************************************/
+ enum ras_command {
+ TA_RAS_COMMAND__ENABLE_FEATURES = 0,
+ TA_RAS_COMMAND__DISABLE_FEATURES,
+@@ -45,7 +42,12 @@ enum ta_ras_status {
+ TA_RAS_STATUS__ERROR_INVALID_PARAMETER = 0x02,
+ TA_RAS_STATUS__ERROR_RAS_NOT_AVAILABLE = 0x03,
+ TA_RAS_STATUS__ERROR_RAS_DUPLICATE_CMD = 0x04,
+- TA_RAS_STATUS__ERROR_INJECTION_FAILED = 0x05
++ TA_RAS_STATUS__ERROR_INJECTION_FAILED = 0x05,
++ TA_RAS_STATUS__ERROR_ASD_READ_WRITE = 0x06,
++ TA_RAS_STATUS__ERROR_TOGGLE_DF_CSTATE = 0x07,
++ TA_RAS_STATUS__ERROR_TIMEOUT = 0x08,
++ TA_RAS_STATUS__ERROR_BLOCK_DISABLED = 0x09,
++ TA_RAS_STATUS__ERROR_GENERIC = 0x10,
+ };
+
+ enum ta_ras_block {
+@@ -62,47 +64,55 @@ enum ta_ras_block {
+ TA_RAS_BLOCK__SEM,
+ TA_RAS_BLOCK__MP0,
+ TA_RAS_BLOCK__MP1,
+- TA_RAS_BLOCK__FUSE = (TA_NUM_BLOCK_MAX - 1),
++ TA_RAS_BLOCK__FUSE,
++ TA_NUM_BLOCK_MAX
+ };
+
+ enum ta_ras_error_type {
+- TA_RAS_ERROR__NONE = 0,
+- TA_RAS_ERROR__PARITY = 1,
+- TA_RAS_ERROR__SINGLE_CORRECTABLE = 2,
+- TA_RAS_ERROR__MULTI_UNCORRECTABLE = 4,
+- TA_RAS_ERROR__POISON = 8
++ TA_RAS_ERROR__NONE = 0,
++ TA_RAS_ERROR__PARITY = 1,
++ TA_RAS_ERROR__SINGLE_CORRECTABLE = 2,
++ TA_RAS_ERROR__MULTI_UNCORRECTABLE = 4,
++ TA_RAS_ERROR__POISON = 8,
+ };
+
++/* Input/output structures for RAS commands */
++/**********************************************************/
++
+ struct ta_ras_enable_features_input {
+- enum ta_ras_block block_id;
+- enum ta_ras_error_type error_type;
++ enum ta_ras_block block_id;
++ enum ta_ras_error_type error_type;
+ };
+
+ struct ta_ras_disable_features_input {
+- enum ta_ras_block block_id;
+- enum ta_ras_error_type error_type;
++ enum ta_ras_block block_id;
++ enum ta_ras_error_type error_type;
+ };
+
+ struct ta_ras_trigger_error_input {
+- enum ta_ras_block block_id;
+- enum ta_ras_error_type inject_error_type;
+- uint32_t sub_block_index;
+- uint64_t address;
+- uint64_t value;
++ enum ta_ras_block block_id; // ras-block. i.e. umc, gfx
++ enum ta_ras_error_type inject_error_type; // type of error. i.e. single_correctable
++ uint32_t sub_block_index; // mem block. i.e. hbm, sram etc.
++ uint64_t address; // explicit address of error
++ uint64_t value; // method if error injection. i.e persistent, coherent etc.
+ };
+
++/* Common input structure for RAS callbacks */
++/**********************************************************/
+ union ta_ras_cmd_input {
+ struct ta_ras_enable_features_input enable_features;
+ struct ta_ras_disable_features_input disable_features;
+ struct ta_ras_trigger_error_input trigger_error;
+ };
+
++/* Shared Memory structures */
++/**********************************************************/
+ struct ta_ras_shared_memory {
+- uint32_t cmd_id;
+- uint32_t resp_id;
+- enum ta_ras_status ras_status;
+- uint32_t reserved;
+- union ta_ras_cmd_input ras_in_message;
++ uint32_t cmd_id;
++ uint32_t resp_id;
++ enum ta_ras_status ras_status;
++ uint32_t reserved;
++ union ta_ras_cmd_input ras_in_message;
+ };
+
+ #endif // TL_RAS_IF_H_
+--
+2.17.1
+