Skip to content

Upgrade drivers/firmware to support Arm SystemReady IR

Al Stone requested to merge ahs3/edge-stream-9:firmware-v1 into main
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071830
Depends: https://bugzilla.redhat.com/show_bug.cgi?id=2071840

While POWER systems already use Open Firmware (drivers/of), which
in turn depends on drivers/firmware, it is not exactly the same as
full DeviceTree support.  Arm SystemReady IR platforms use DeviceTree
extensively, and for Arm systems such components as PSCI, SCMI, FFA
and the EFI stub need to be ready.  This patch set brings drivers/firmware
up to date with Linux 5.19-rc3 so that all of the DeviceTree functionality
needed for Arm SystemReady IR can be supported.

This patch set does not include device specific patches for non-iMX8M
Arm platforms, however, since they are not being targeted at this point
in time.

NB: this is one of a series of patch sets needed to fully support
Arm SystemReady IR in the kernel; drivers/of and drivers/base/property.c
are also being updated.  Individual drivers for specific SystemReady
IR compliant platforms will also be needed.

v5:
  -- Added missing fixes.
  -- Added a patch to remove a previous conflict in a USB patch

v4:
  -- Removed commit (c2024251b023, upstream fb561bf9abde49f7e00fdbf9ed2ccf2d86cac8ee)
     that has been reverted by upstream bdde97ac4bea26d48f60e353396b2b4fb0234ac4.
  -- Removed diffstat from this cover letter.
  -- Changed CONFIG_EFI_COCO_SECRET so it reflects ARK usage.

v3:
  -- fixing the s390x patches inadvertently removed a chunk preventing
     a the build from succeeding on 390x.  Put the chunk back in.

v2:
  -- remove a redundant debug CONFIG setting for SCMI
  -- include an additional patch for s390x (7a47c52142c1 upstream)
  -- add 7a47c52142c1 ("s390/ccwgroup: Drop if with an always false
     condition") to remove a conflict
  -- removed an additional conflict in virtio-rng.c that was actually
     a needed change.

Signed-off-by: Al Stone <ahs3@redhat.com>

Al Stone (5):
  rhel: Enable ARM SCMI transport mechanism
  rhel: Enable Simple FrameBuffer support
  rhel: Configure ARM SCMI SMC transport AtomicEnable
  rhel: Enable EFI COCO secret
  rhel: Enable EFI DXE memory attributes

Alyssa Ross (1):
  firmware: arm_scmi: Remove space in MODULE_ALIAS name

Andre Przywara (1):
  firmware: smccc: Register smccc_trng platform device

Ard Biesheuvel (11):
  efi/cper: use stack buffer for error record decoding
  efi/libstub: add prototype of
    efi_tcg2_protocol::hash_log_extend_event()
  efi/libstub: consolidate initrd handling across architectures
  efi/libstub: x86/mixed: increase supported argument count
  efi: runtime: avoid EFIv2 runtime services on Apple x86 machines
  firmware: arm_scmi: Disable ftrace for Clang Thumb2 builds
  efi: libstub: pass image handle to handle_kernel_image()
  efi/arm64: libstub: run image in place if randomized by the loader
  efi: stub: prefer mirrored memory for randomized allocations
  efi/x86: libstub: Make DXE calls mixed mode safe
  efi: clean up Kconfig dependencies on CONFIG_EFI

Arnd Bergmann (2):
  firmware: arm_scmi: Remove __exit annotation
  firmware: arm_ffa: Remove unused 'compat_version' variable

Baskov Evgeniy (2):
  efi: libstub: declare DXE services table
  efi: libstub: ensure allocated memory to be executable

Charles Keepax (11):
  firmware: cs_dsp: Add lockdep asserts to interface functions
  firmware: cs_dsp: Add version checks on coefficient loading
  firmware: cs_dsp: Add pre_run callback
  firmware: cs_dsp: Print messages from bin files
  firmware: cs_dsp: Add support for rev 2 coefficient files
  firmware: cs_dsp: Perform NULL check in cs_dsp_coeff_write/read_ctrl
  firmware: cs_dsp: Clarify some kernel doc comments
  firmware: cs_dsp: Add offset to cs_dsp read/write
  firmware: cs_dsp: Allow creation of event controls
  firmware: cs_dsp: Move lockdep asserts to avoid potential null pointer
  firmware: cs_dsp: Clear core reset for cache

Cristian Marussi (65):
  firmware: arm_scmi: Add support for type handling in common functions
  firmware: arm_scmi: Remove scmi_dump_header_dbg() helper
  firmware: arm_scmi: Add optional transport_init/exit support
  firmware: arm_scmi: Introduce monotonically increasing tokens
  firmware: arm_scmi: Handle concurrent and out-of-order messages
  firmware: arm_scmi: Make .clear_channel optional
  firmware: arm_scmi: Make polling mode optional
  firmware: arm_scmi: Make SCMI transports configurable
  firmware: arm_scmi: Add priv parameter to scmi_rx_callback
  firmware: arm_scmi: Use WARN_ON() to check configured transports
  firmware: arm_scmi: Fix virtio transport Kconfig dependency
  firmware: arm_scmi: Simplify spinlocks in virtio transport
  firmware: arm_scmi: Add proper barriers to scmi virtio device
  firmware: arm_scmi: Fix null de-reference on error path
  firmware: arm_scmi: Fix type error in sensor protocol
  firmware: arm_scmi: Review some virtio log messages
  firmware: arm_scmi: Fix type error assignment in voltage protocol
  firmware: arm_scmi: Make virtio Version_1 compliance optional
  firmware: arm_scmi: Perform earlier cinfo lookup call in do_xfer
  firmware: arm_scmi: Set polling timeout to max_rx_timeout_ms
  firmware: arm_scmi: Refactor message response path
  include: trace: Add new scmi_xfer_response_wait event
  firmware: arm_scmi: Use new trace event scmi_xfer_response_wait
  firmware: arm_scmi: Add configurable polling mode for transports
  firmware: arm_scmi: Make smc transport use common completions
  firmware: arm_scmi: Add sync_cmds_completed_on_ret transport flag
  firmware: arm_scmi: Make smc support sync_cmds_completed_on_ret
  firmware: arm_scmi: Make optee support sync_cmds_completed_on_ret
  firmware: arm_scmi: Add support for atomic transports
  firmware: arm_scmi: Add atomic mode support to smc transport
  firmware: arm_scmi: Add new parameter to mark_txdone
  firmware: arm_scmi: Add a virtio channel refcount
  firmware: arm_scmi: Review virtio free_list handling
  firmware: arm_scmi: Add atomic mode support to virtio transport
  firmware: arm_scmi: Support optional system wide atomic-threshold-us
  firmware: arm_scmi: Add atomic support to clock protocol
  firmware: arm_scmi: Add support for clock_enable_latency
  firmware: arm_scmi: Remove clear channel call on the TX channel
  firmware: arm_scmi: Fix sorting of retrieved clock rates
  firmware: arm_scmi: Make protocols initialisation fail on basic errors
  firmware: arm_scmi: Fix list protocols enumeration in the base
    protocol
  firmware: arm_scmi: Validate BASE_DISCOVER_LIST_PROTOCOLS response
  firmware: arm_scmi: Dynamically allocate implemented protocols array
  firmware: arm_scmi: Make name_get operations return a const
  firmware: arm_scmi: Check CLOCK_RATE_SET_COMPLETE async response
  firmware: arm_scmi: Remove unneeded NULL termination of clk name
  firmware: arm_scmi: Split protocol specific definitions in a dedicated
    header
  firmware: arm_scmi: Introduce a common SCMI v3.1 .extended_name_get
    helper
  firmware: arm_scmi: Add SCMI v3.1 protocol extended names support
  firmware: arm_scmi: Parse clock_enable_latency conditionally
  firmware: arm_scmi: Add iterators for multi-part commands
  firmware: arm_scmi: Use common iterators in the sensor protocol
  firmware: arm_scmi: Add SCMI v3.1 SENSOR_AXIS_NAME_GET support
  firmware: arm_scmi: Use common iterators in the clock protocol
  firmware: arm_scmi: Use common iterators in the voltage protocol
  firmware: arm_scmi: Use common iterators in the perf protocol
  firmware: arm_scmi: Add SCMI v3.1 perf power-cost in microwatts
  firmware: arm_scmi: Add checks for min/max limits in
    PERFORMANCE_LIMITS_SET
  firmware: arm_scmi: Add SCMI v3.1 clock notifications
  firmware: arm_scmi: Add SCMI v3.1 VOLTAGE_LEVEL_SET_COMPLETE
  firmware: arm_scmi: Fix late checks on pointer dereference
  firmware: arm_scmi: Avoid using extended string-buffers sizes if not
    necessary
  firmware: arm_scmi: Relax CLOCK_DESCRIBE_RATES out-of-spec checks
  firmware: arm_scmi: Remove all the unused local variables
  firmware: arm_scmi: Fix SENSOR_AXIS_NAME_GET behaviour when
    unsupported

Dov Murik (2):
  efi: Save location of EFI confidential computing area
  efi: Register efi_secret platform device if EFI secret area is
    declared

Eric Snowberg (1):
  efi/mokvar: move up init order

Eric W. Biederman (1):
  exit/kthread: Have kernel threads return instead of calling do_exit

Etienne Carriere (2):
  firmware: arm_scmi: Add optee transport
  firmware: arm_scmi: Support optee shared memory in the optee transport

Evgeniy Baskov (1):
  efi/x86: libstub: Fix typo in __efi64_argmap* name

Greg Kroah-Hartman (5):
  firmware: memmap: use default_groups in kobj_type
  qemu_fw_cfg: use default_groups in kobj_type
  firmware: dmi-sysfs: use default_groups in kobj_type
  firmware: edd: remove empty default_attrs array
  efi: use default_groups in kobj_type

Hans de Goede (1):
  firmware: dmi: Move product_sku info to the end of the modalias

Heinrich Schuchardt (1):
  efi/libstub: Simplify "Exiting bootservices" message

Igor Skalkin (3):
  firmware: arm_scmi: Make shmem support optional for transports
  firmware: arm_scmi: Add method to override max message number
  firmware: arm_scmi: Add virtio transport

Ilias Apalodimas (1):
  efi/libstub: measure loaded initrd info into the TPM

Jann Horn (2):
  efivars: Respect "block" flag in efivar_entry_set_safe()
  pstore: Don't use semaphores in always-atomic-context code

Javier Martinez Canillas (7):
  drivers/firmware: move x86 Generic System Framebuffers support
  drivers/firmware: consolidate EFI framebuffer setup for all arches
  drivers/firmware: fix SYSFB depends to prevent build failures
  drivers/firmware: Don't mark as busy the simple-framebuffer IO
    resource
  efi: Move efifb_setup_from_dmi() prototype from arch headers
  video: vga16fb: Only probe for EGA and VGA 16 color graphic cards
  fbdev: Prevent probing generic drivers if a FB is already registered

Johan Hovold (5):
  firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
  firmware: qemu_fw_cfg: fix kobject leak in probe error path
  firmware: qemu_fw_cfg: fix sysfs information leak
  firmware: qemu_fw_cfg: remove sysfs entries explicitly
  firmware: sysfb: fix platform-device leak in error path

Lv Ruyi (1):
  firmware: arm_scmi: Replace zero-length array with flexible-array
    member

Marc Bonnici (2):
  firmware: arm_ffa: Add support for MEM_LEND
  firmware: arm_ffa: Fix handling of fragmented memory descriptors

Miaoqian Lin (2):
  drivers/firmware: Add missing platform_device_put() in
    sysfb_create_simplefb
  firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle

Michael Ellerman (1):
  powerpc/64: Include cache.h directly in paca.h

Michael S. Tsirkin (1):
  virtio: wrap config->reset calls

Michal Suchanek (2):
  sysfb: Make config option dependencies explicit
  sysfb: Enable boot time VESA graphic mode selection

Mihai Carabas (1):
  efi/libstub: arm64: Fix image check alignment at entry

Ming Qian (1):
  firmware: imx: scu-pd: imx8q: add vpu mu resources

Nava kishore Manne (1):
  drivers: firmware: Add PDI load API support

Paul Semel (1):
  arm64: kasan: fix include error in MTE functions

Peng Fan (2):
  firmware: arm_scmi: pm: Propagate return value to caller
  firmware: imx: add get resource owner api

Peter Collingbourne (1):
  printk: stop including cache.h from printk.h

Peter Hilber (2):
  firmware: arm_scmi: Add message passing abstractions for transports
  firmware: arm_scmi: Add optional link_supplier() transport op

Randy Dunlap (2):
  efi: sysfb_efi: fix build when EFI is not set
  efi: fix return value of __setup handlers

Rasmus Villemoes (1):
  efi: cper: fix scnprintf() use in cper_mem_err_location()

Richard Fitzgerald (1):
  firmware: cs_dsp: Fix overrun of unterminated control name string

Rishabh Bhatnagar (1):
  firmware: arm_scmi: Free mailbox channels if probe fails

Shuai Xue (5):
  efi: cper: check section header more appropriately
  ACPI: APEI: explicit init of HEST and GHES in apci_init()
  efi/cper: Add a cper_mem_err_status_str() to decode error description
  EDAC/ghes: Unify CPER memory error location reporting
  efi/cper: Reformat CPER memory error location to more readable

Simon Trimmer (1):
  firmware: cs_dsp: tidy includes in cs_dsp.c and cs_dsp.h

Sudeep Holla (9):
  firmware: arm_ffa: Add missing remove callback to ffa_bus_type
  firmware: arm_ffa: Fix __ffa_devices_unregister
  firmware: arm_ffa: Handle compatibility with different firmware
    versions
  firmware: arm_scmi: optee: Drop the support for the OPTEE shared
    dynamic buffer
  firmware: arm_scpi: Fix string overflow in SCPI genpd driver
  firmware: arm_scmi: Fix sparse warnings in OPTEE transport driver
  firmware: arm_scmi: Set clock latency to U32_MAX if it is not
    supported
  firmware: arm_ffa: Fix uuid parameter to ffa_partition_probe
  firmware: arm_ffa: Remove incorrect assignment of driver_data

Uwe Kleine-König (4):
  s390/cio: Make struct css_driver::remove return void
  s390/scm: Make struct scm_driver::remove return void
  PCI: endpoint: Make struct pci_epf_driver::remove return void
  bus: Make remove callback return void

Vincent Guittot (1):
  firmware: arm_scmi: Fix base agent discover response

Wei Yongjun (1):
  firmware: arm_scmi: optee: Fix missing mutex_init()

Yang Yingliang (1):
  edd: simplify the check of 'attr->test' in edd_populate_dir()

jing yangyang (1):
  firmware/psci: fix application of sizeof to pointer

kernel test robot (1):
  firmware: arm_scmi: Fix boolconv.cocci warnings
Edited by Al Stone

Merge request reports