mbox series

[v7,00/24] EFI: ti: Enable EFI capsule updates

Message ID 20240614163551.2610212-1-j-humphreys@ti.com
Headers show
Series EFI: ti: Enable EFI capsule updates | expand

Message

Jonathan Humphreys June 14, 2024, 4:35 p.m. UTC
Enable on disk capsule updates, which includes defining the firmware
components (tiboot3, spl, u-boot) and enabling processing of raw capsule
updates.

This is enabled for several TI SoC based platforms: AM64, AM62, AM62p,
AM69, BeaglePlay, J7, and BeagleboneAI. The configs to enable this are in a
single base config file. This will make it more scalable to add additional
EFI capsule features (like authentication) across all TI boards that have
capsules enabled.

This series also includes enabling serial flash DFU for AM62 and MMC DFU
for beagleplay.

Changes from v1:
- Added sysfw.itb capsule definition to beagleboneai64
- removed extra commas in structure definitions

Changes from v2:
- Added documentation on OSPI flash layouts
- Improved comments for capsule GUIDs definitions
- Defined board unique capsule GUIDs and put definitions in board specific
  files
- Added a Capsule Update porting section to the documentation

Changes from v3:
- Added better commit messages based upon checkpatch warnings.
- Remove conditional inclusion of capsule update firmware info
- Converted OSPI layout diagram to svg format
Link to v3: https://lore.kernel.org/r/20240419205701.163821-1-j-humphreys@ti.com

Changes from v4:
- Added am69 SK board
- Corrected a few spelling mistakes and clarity improvements in k3 docs
  section
- Added CONFIG_SET_DFU_ALT_INFO guard around set_dfu_alt_info()
Link to v4: https://lore.kernel.org/r/20240509164123.1753050-1-j-humphreys@ti.com

Changes from v5:
- Created an EFI capsule base config for TI boards, making adding
  additional capsule features on TI boards more scalable.
Link to v5: https://lore.kernel.org/r/20240531222118.2618041-1-j-humphreys@ti.com

Changes from v6:
 - Rebased on latest -next
 - added tags
 Link to v6: https://lore.kernel.org/r/20240607223858.1971290-1-j-humphreys@ti.com

Jonathan Humphreys (24):
  doc: uefi: capsules: Add Capsule Update porting section
  doc: ti: k3: Correct spelling mistakes and improve clarity
  configs: ti: Create base EFI capsule configs for TI K3 devices
  board: am64x: Define capsule update firmware info
  configs: am64x: Enable EFI capsule update
  doc: board: ti: am64x: document OSPI layout
  board: j721e: Define capsule update firmware info
  configs: j721e: Enable EFI capsule update
  doc: board: ti: j721e: document OSPI layout
  board: beagleplay: Define capsule update firmware info
  configs: beagleplay: Enable DFU for MMC
  configs: beagleplay: Enable EFI capsule update
  board: am62x: Define capsule update firmware info
  configs: am62x: Enable EFI capsule update
  doc: board: ti: am62x: document OSPI layout
  board: am62px: Define capsule update firmware info
  configs: am62px: Enable EFI capsule update
  doc: board: ti: am62px: document OSPI layout
  board: beagleboneai64: Define capsule update firmware info
  configs: beagleboneai64: Enable EFI capsule update
  configs: j784s4_evm: Enable serial flash DFU support
  board: sk-am69: Define capsule update firmware info
  configs: j784s4: Enable EFI capsule update
  doc: board: ti: j784s4: document OSPI NOR layout

 board/beagle/beagleboneai64/Kconfig          |    4 +-
 board/beagle/beagleboneai64/beagleboneai64.c |   39 +
 board/beagle/beagleplay/Kconfig              |    4 +-
 board/beagle/beagleplay/beagleplay.c         |   34 +
 board/ti/am62px/evm.c                        |   34 +
 board/ti/am62x/evm.c                         |   34 +
 board/ti/am64x/evm.c                         |   34 +
 board/ti/j721e/evm.c                         |   40 +
 board/ti/j784s4/evm.c                        |   34 +
 configs/am62px_evm_a53_defconfig             |    2 +
 configs/am62x_beagleplay_a53_defconfig       |    4 +
 configs/am62x_evm_a53_defconfig              |    1 +
 configs/am64x_evm_a53_defconfig              |    2 +
 configs/j721e_beagleboneai64_a72_defconfig   |    2 +
 configs/j721e_evm_a72_defconfig              |    2 +
 configs/j784s4_evm_a72_defconfig             |    5 +
 configs/k3_efi_capsule.config                |    2 +
 doc/board/ti/am62px_sk.rst                   |   24 +
 doc/board/ti/am62x_sk.rst                    |   24 +
 doc/board/ti/am64x_evm.rst                   |   24 +
 doc/board/ti/img/ospi_sysfw-am64.svg         |  802 ++++++++++
 doc/board/ti/img/ospi_sysfw.svg              | 1464 ++++++++++--------
 doc/board/ti/img/ospi_sysfw2.svg             |  802 ++++++++++
 doc/board/ti/img/ospi_sysfw3.svg             |  802 ++++++++++
 doc/board/ti/j721e_evm.rst                   |   58 +-
 doc/board/ti/j784s4_evm.rst                  |   28 +
 doc/board/ti/k3.rst                          |   10 +-
 doc/develop/uefi/uefi.rst                    |   12 +
 include/configs/am62px_evm.h                 |   24 +
 include/configs/am62x_evm.h                  |   24 +
 include/configs/am64x_evm.h                  |   24 +
 include/configs/beagleboneai64.h             |   55 +
 include/configs/beagleplay.h                 |   41 +
 include/configs/j721e_evm.h                  |   29 +
 include/configs/j784s4_evm.h                 |   24 +
 35 files changed, 3864 insertions(+), 684 deletions(-)
 create mode 100644 configs/k3_efi_capsule.config
 create mode 100644 doc/board/ti/img/ospi_sysfw-am64.svg
 create mode 100644 doc/board/ti/img/ospi_sysfw2.svg
 create mode 100644 doc/board/ti/img/ospi_sysfw3.svg
 create mode 100644 include/configs/beagleboneai64.h
 create mode 100644 include/configs/beagleplay.h

Comments

Nishanth Menon June 18, 2024, 2:50 p.m. UTC | #1
On 11:35-20240614, Jonathan Humphreys wrote:
> Enable on disk capsule updates, which includes defining the firmware
> components (tiboot3, spl, u-boot) and enabling processing of raw capsule
> updates.
> 
> This is enabled for several TI SoC based platforms: AM64, AM62, AM62p,
> AM69, BeaglePlay, J7, and BeagleboneAI. The configs to enable this are in a
> single base config file. This will make it more scalable to add additional
> EFI capsule features (like authentication) across all TI boards that have
> capsules enabled.
> 
> This series also includes enabling serial flash DFU for AM62 and MMC DFU
> for beagleplay.
> 
> Changes from v1:
> - Added sysfw.itb capsule definition to beagleboneai64
> - removed extra commas in structure definitions
> 
> Changes from v2:
> - Added documentation on OSPI flash layouts
> - Improved comments for capsule GUIDs definitions
> - Defined board unique capsule GUIDs and put definitions in board specific
>   files
> - Added a Capsule Update porting section to the documentation
> 
> Changes from v3:
> - Added better commit messages based upon checkpatch warnings.
> - Remove conditional inclusion of capsule update firmware info
> - Converted OSPI layout diagram to svg format
> Link to v3: https://lore.kernel.org/r/20240419205701.163821-1-j-humphreys@ti.com
> 
> Changes from v4:
> - Added am69 SK board
> - Corrected a few spelling mistakes and clarity improvements in k3 docs
>   section
> - Added CONFIG_SET_DFU_ALT_INFO guard around set_dfu_alt_info()
> Link to v4: https://lore.kernel.org/r/20240509164123.1753050-1-j-humphreys@ti.com
> 
> Changes from v5:
> - Created an EFI capsule base config for TI boards, making adding
>   additional capsule features on TI boards more scalable.
> Link to v5: https://lore.kernel.org/r/20240531222118.2618041-1-j-humphreys@ti.com
> 
> Changes from v6:
>  - Rebased on latest -next
>  - added tags
>  Link to v6: https://lore.kernel.org/r/20240607223858.1971290-1-j-humphreys@ti.com
> 
> Jonathan Humphreys (24):
>   doc: uefi: capsules: Add Capsule Update porting section
>   doc: ti: k3: Correct spelling mistakes and improve clarity
>   configs: ti: Create base EFI capsule configs for TI K3 devices
>   board: am64x: Define capsule update firmware info
>   configs: am64x: Enable EFI capsule update
>   doc: board: ti: am64x: document OSPI layout
>   board: j721e: Define capsule update firmware info
>   configs: j721e: Enable EFI capsule update
>   doc: board: ti: j721e: document OSPI layout
>   board: beagleplay: Define capsule update firmware info
>   configs: beagleplay: Enable DFU for MMC
>   configs: beagleplay: Enable EFI capsule update
>   board: am62x: Define capsule update firmware info
>   configs: am62x: Enable EFI capsule update
>   doc: board: ti: am62x: document OSPI layout
>   board: am62px: Define capsule update firmware info
>   configs: am62px: Enable EFI capsule update
>   doc: board: ti: am62px: document OSPI layout
>   board: beagleboneai64: Define capsule update firmware info
>   configs: beagleboneai64: Enable EFI capsule update
>   configs: j784s4_evm: Enable serial flash DFU support
>   board: sk-am69: Define capsule update firmware info
>   configs: j784s4: Enable EFI capsule update
>   doc: board: ti: j784s4: document OSPI NOR layout

Jon,

Could you submit a follow on patch to add under the appropriate
subsection of [1] instructions for build environment and steps
to copy the capsules?

I just ran into an issue with next where my build container was missing
uuid-dev package and my builds broke overnight for u-boot/next. looking
for documentation, I did not see the change.


[1] https://github.com/u-boot/u-boot/blob/master/doc/board/ti/k3.rst?plain=1#L203
Tom Rini June 18, 2024, 6:57 p.m. UTC | #2
On Fri, 14 Jun 2024 11:35:27 -0500, Jonathan Humphreys wrote:

> Enable on disk capsule updates, which includes defining the firmware
> components (tiboot3, spl, u-boot) and enabling processing of raw capsule
> updates.
> 
> This is enabled for several TI SoC based platforms: AM64, AM62, AM62p,
> AM69, BeaglePlay, J7, and BeagleboneAI. The configs to enable this are in a
> single base config file. This will make it more scalable to add additional
> EFI capsule features (like authentication) across all TI boards that have
> capsules enabled.
> 
> [...]

Applied to u-boot/next, thanks!