Re: [PATCH 5/5] drm/amd: Add documentation for how to flash a dGPU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 26, 2023 at 11:04 AM Mario Limonciello
<mario.limonciello@xxxxxxx> wrote:
>

Needs a basic patch description.  Even just "add documentation"

With that fixed, the series is:
Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
>  Documentation/gpu/amdgpu/flashing.rst   | 33 +++++++++++++++++++++++++
>  Documentation/gpu/amdgpu/index.rst      |  1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 16 ++++++++++++
>  3 files changed, 50 insertions(+)
>  create mode 100644 Documentation/gpu/amdgpu/flashing.rst
>
> diff --git a/Documentation/gpu/amdgpu/flashing.rst b/Documentation/gpu/amdgpu/flashing.rst
> new file mode 100644
> index 0000000000000..bd745c42a538f
> --- /dev/null
> +++ b/Documentation/gpu/amdgpu/flashing.rst
> @@ -0,0 +1,33 @@
> +=======================
> + dGPU firmware flashing
> +=======================
> +
> +IFWI
> +----
> +Flashing the dGPU integrated firmware image (IFWI) is supported by GPUs that
> +use the PSP to orchestrate the update (Navi3x or newer GPUs).
> +For supported GPUs, `amdgpu` will export a series of sysfs files that can be
> +used for the flash process.
> +
> +The IFWI flash process is:
> +
> +1. Ensure the IFWI image is intended for the dGPU on the system.
> +2. "Write" the IFWI image to the sysfs file `psp_vbflash`. This will stage the IFWI in memory.
> +3. "Read" from the `psp_vbflash` sysfs file to initiate the flash process.
> +4. Poll the `psp_vbflash_status` sysfs file to determine when the flash process completes.
> +
> +USB-C PD F/W
> +------------
> +On GPUs that support flashing an updated USB-C PD firmware image, the process
> +is done using the `usbc_pd_fw` sysfs file.
> +
> +* Reading the file will provide the current firmware version.
> +* Writing the name of a firmware payload stored in `/lib/firmware/amdgpu` to the sysfs file will initiate the flash process.
> +
> +The firmware payload stored in `/lib/firmware/amdgpu` can be named any name
> +as long as it doesn't conflict with other existing binaries that are used by
> +`amdgpu`.
> +
> +sysfs files
> +-----------
> +.. kernel-doc:: drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> diff --git a/Documentation/gpu/amdgpu/index.rst b/Documentation/gpu/amdgpu/index.rst
> index 03c2966cae798..912e699fd3731 100644
> --- a/Documentation/gpu/amdgpu/index.rst
> +++ b/Documentation/gpu/amdgpu/index.rst
> @@ -10,6 +10,7 @@ Next (GCN), Radeon DNA (RDNA), and Compute DNA (CDNA) architectures.
>     module-parameters
>     driver-core
>     display/index
> +   flashing
>     xgmi
>     ras
>     thermal
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 7872004ed7f9b..047760bafcc23 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -3476,6 +3476,11 @@ void psp_copy_fw(struct psp_context *psp, uint8_t *start_addr, uint32_t bin_size
>         drm_dev_exit(idx);
>  }
>
> +/**
> + * DOC: usbc_pd_fw
> + * Reading from this file will retrieve the USB-C PD firmware version. Writing to
> + * this file will trigger the update process.
> + */
>  static DEVICE_ATTR(usbc_pd_fw, S_IRUGO | S_IWUSR,
>                    psp_usbc_pd_fw_sysfs_read,
>                    psp_usbc_pd_fw_sysfs_write);
> @@ -3569,6 +3574,11 @@ static ssize_t amdgpu_psp_vbflash_read(struct file *filp, struct kobject *kobj,
>         return 0;
>  }
>
> +/**
> + * DOC: psp_vbflash
> + * Writing to this file will stage an IFWI for update. Reading from this file
> + * will trigger the update process.
> + */
>  static struct bin_attribute psp_vbflash_bin_attr = {
>         .attr = {.name = "psp_vbflash", .mode = 0660},
>         .size = 0,
> @@ -3576,6 +3586,12 @@ static struct bin_attribute psp_vbflash_bin_attr = {
>         .read = amdgpu_psp_vbflash_read,
>  };
>
> +/**
> + * DOC: psp_vbflash_status
> + * The status of the flash process.
> + * 0: IFWI flash not complete.
> + * 1: IFWI flash complete.
> + */
>  static ssize_t amdgpu_psp_vbflash_status(struct device *dev,
>                                          struct device_attribute *attr,
>                                          char *buf)
> --
> 2.34.1
>




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux