[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: Xie, Patrick <[email protected]>
> Sent: Monday, January 26, 2026 11:55 AM
> To: [email protected]
> Cc: Zhou1, Tao <[email protected]>; Chai, Thomas <[email protected]>;
> Xie, Patrick <[email protected]>
> Subject: [PATCH 04/14] drm/amd/ras: add uniras smu feature flag init func
>
> add flag to indicate if pmfw eeprom is supported or not, and initialize it
>
> Signed-off-by: Gangliang Xie <[email protected]>
> ---
>  drivers/gpu/drm/amd/ras/rascore/Makefile      |  3 +-
>  drivers/gpu/drm/amd/ras/rascore/ras.h         |  3 ++
>  drivers/gpu/drm/amd/ras/rascore/ras_core.c    |  2 +
>  .../gpu/drm/amd/ras/rascore/ras_eeprom_fw.c   | 38 +++++++++++++++++++
>  .../gpu/drm/amd/ras/rascore/ras_eeprom_fw.h   | 29 ++++++++++++++
>  5 files changed, 74 insertions(+), 1 deletion(-)  create mode 100644
> drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.c
>  create mode 100644 drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.h
>
> diff --git a/drivers/gpu/drm/amd/ras/rascore/Makefile
> b/drivers/gpu/drm/amd/ras/rascore/Makefile
> index e826a1f86424..06b265ec1cde 100644
> --- a/drivers/gpu/drm/amd/ras/rascore/Makefile
> +++ b/drivers/gpu/drm/amd/ras/rascore/Makefile
> @@ -36,7 +36,8 @@ RAS_CORE_FILES = ras_core.o \
>                       ras_log_ring.o \
>                       ras_cper.o \
>                       ras_psp.o \
> -                     ras_psp_v13_0.o
> +                     ras_psp_v13_0.o \
> +                     ras_eeprom_fw.o
>
>
>  RAS_CORE = $(addprefix
> $(AMD_GPU_RAS_PATH)/rascore/,$(RAS_CORE_FILES))
> diff --git a/drivers/gpu/drm/amd/ras/rascore/ras.h
> b/drivers/gpu/drm/amd/ras/rascore/ras.h
> index 2db838c444f1..6e223eff522c 100644
> --- a/drivers/gpu/drm/amd/ras/rascore/ras.h
> +++ b/drivers/gpu/drm/amd/ras/rascore/ras.h
> @@ -36,6 +36,7 @@
>  #include "ras_mp1.h"
>  #include "ras_psp.h"
>  #include "ras_log_ring.h"
> +#include "ras_eeprom_fw.h"
>
>  #define RAS_HW_ERR           "[Hardware Error]: "
>
> @@ -335,6 +336,8 @@ struct ras_core_context {
>       spinlock_t seqno_lock;
>
>       bool ras_core_enabled;
> +
> +     u64 ras_fw_features;
>  };
>
>  struct ras_core_context *ras_core_create(struct ras_core_config 
> *init_config); diff --
> git a/drivers/gpu/drm/amd/ras/rascore/ras_core.c
> b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
> index 01122b55c98a..91c883f16ae5 100644
> --- a/drivers/gpu/drm/amd/ras/rascore/ras_core.c
> +++ b/drivers/gpu/drm/amd/ras/rascore/ras_core.c
> @@ -382,6 +382,8 @@ int ras_core_hw_init(struct ras_core_context *ras_core)
>       if (ret)
>               goto init_err5;
>
> +     ras_fw_init_feature_flags(ras_core);
> +
>       ret = ras_eeprom_hw_init(ras_core);
>       if (ret)
>               goto init_err6;
> diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.c
> b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.c
> new file mode 100644
> index 000000000000..4a65351569e8
> --- /dev/null
> +++ b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.c
> @@ -0,0 +1,38 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright 2025 Advanced Micro Devices, Inc.

[Tao] 2026

> + *
> + * 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.
> + *
> + */
> +
> +#include "ras.h"
> +
> +void ras_fw_init_feature_flags(struct ras_core_context *ras_core) {
> +     struct ras_mp1 *mp1 = &ras_core->ras_mp1;
> +     const struct ras_mp1_sys_func *sys_func = mp1->sys_func;
> +     uint64_t flags = 0ULL;
> +
> +     if (!sys_func || !sys_func->mp1_get_ras_enabled_mask)
> +             return;
> +
> +     if (!sys_func->mp1_get_ras_enabled_mask(ras_core, &flags))
> +             ras_core->ras_fw_features = flags;
> +}
> diff --git a/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.h
> b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.h
> new file mode 100644
> index 000000000000..58472e459470
> --- /dev/null
> +++ b/drivers/gpu/drm/amd/ras/rascore/ras_eeprom_fw.h
> @@ -0,0 +1,29 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright 2025 Advanced Micro Devices, Inc.

[Tao] 2026

> + *
> + * 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 __RAS_EEPROM_FW_H__
> +#define __RAS_EEPROM_FW_H__
> +
> +void ras_fw_init_feature_flags(struct ras_core_context *ras_core);
> +
> +#endif
> --
> 2.34.1

Reply via email to