[PATCH V2] firmware: ti_sci: Scan all device instances when releasing exclusive devices
Dhruva Gole
d-gole at ti.com
Thu Apr 10 17:26:37 CEST 2025
Hi,
On Apr 07, 2025 at 07:15:54 -0500, Nishanth Menon wrote:
> When FIT image with multiple dtbs are involved for R5 boot process,
> R5 SPL starts off with the first instance of dtb to probe the
> eeprom, then once we have identified the type of board, invocation
> of setup_multi_dtb_fit will replace the gd->fdt_blob with the proper
> board dtb match. However, when we do this, two things happen:
>
> a) Prior to the invocation of setup_multi_dtb_fit, as part of the eeprom
> discovery process, i2c controller device is already probed and marked
> as exclusive with the match of the very first tisci match (from the
> original boot dtb). This list is stored in the info->dev_list of the
> first probe.
> b) When the second dtb is loaded, tisci is probed again (since this is a
> new node) and the new info->dev_list is empty.
>
> At this stage, the exclusive devices such as i2c instances used to
> probe the board information is left in the old info->dev_list that is
> no longer used actively by the system using the replaced dtb.
>
> As a result of this, the cleanup we intend to do with
> ti_sci_cmd_release_exclusive_devices is no longer complete and
> leaves the instances such as i2c for eeprom marked used as we scan just
> the new info->dev_list.
>
> This creates a problem when Device Manager(DM) firmware starts up later
> on in the boot process and identifies that this instance of i2c is
> already marked active, so it assumes this can no longer be controlled
> by software and is marked internally as reserved and HLOS can no
> longer control these instances. This defeated the purpose of
> ti_sci_cmd_release_exclusive_devices.
>
> NOTE: This scheme works just fine if the FIT has just a single dtb as
> the info->dev_list is upto date.
>
> To fix this, let us make ti_sci_cmd_release_exclusive_devices scan the
> all registrations of tisci instances and cleanup all exclusive devices
> that have ever been registered.
>
> As part of this, change the prototype of release_exclusive_devices to
> drop the handle since that has no further meaning now.
>
> Though this issue was identified on AM64-sk, this can be present in
> other builds which use multi-fit-dtb for R5 SPL startup.
>
> Fixes: 9566b777ae0a ("firmware: ti_sci: Add a command for releasing all exclusive devices")
> Signed-off-by: Nishanth Menon <nm at ti.com>
> ---
> Changes since V1:
> * commit message: s/intent/intend (review comment)
> * Added comment to indicate am64x-sk
> * No functional changes.
Thanks for addressing concerns from previous series and
also discussing about alternate approaches.
Reviewed-by: Dhruva Gole <d-gole at ti.com>
--
Best regards,
Dhruva Gole
Texas Instruments Incorporated
More information about the U-Boot
mailing list