Skip to content

fix(U-Boot): Correct R5 SPL core for J722S #279

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1649,7 +1649,7 @@ Boot Flow
| | | | |
+------------------------------------------------------------------------+-----------------------+

.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX', 'J722S')
.. ifconfig:: CONFIG_part_variant in ('AM62X', 'AM62AX', 'AM62PX')

.. code-block:: text

Expand Down Expand Up @@ -1722,6 +1722,79 @@ Boot Flow
Here |__SYSFW_CORE_NAME__| acts as master and provides all the critical services. R5/ARM64
requests |__SYSFW_CORE_NAME__| to get these services done as shown in the above diagram.

.. ifconfig:: CONFIG_part_variant in ('J722S')
Copy link
Member

@StaticRocket StaticRocket Apr 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, I don't really like the size of this diff compared to the amount of content actually changing, but that's not really that big of an issue I guess.

I am concerned as to why this is applicable to J722S but not AM62P. @bryanbrattlof @h-nagalla can you comment? At this point I think the original table being copied here was also using the wrong nomenclature.

Copy link
Contributor

@h-nagalla h-nagalla Apr 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Humm.. I believe for both devices DMR5 is in WKUP domain. Check this pds doc:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@h-nagalla public list. removed the pds link reference ( not accesible from here)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this ROM code is heavily recycled from the 62A/62P Sitara class of SoCs which use a somewhat dedicated R5 core in the 'Wakeup Island" (sometimes called the Device Manger core) for the Public ROM code as well as for DM after U-Boot has finished booting with it.

We could probably do a better job of calling this out in the TRM, but check out chapter 7.4.1 for a little more on the roles the WKUP_R5FSS plays during boot

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nehamalcom any update on this PR closure


.. code-block:: text

+------------------------------------------------------------------------+
| TIFS | MCU R5 | A53 |
+------------------------------------------------------------------------+
| +--------+ | | |
| | Reset | | | |
| +--------+ | | |
| : | | |
| +--------+ | +-----------+ | |
| | *ROM* |----------|-->| Reset rls | | |
| +--------+ | +-----------+ | |
| | | | : | |
| | ROM | | : | |
| |services| | : | |
| | | | +-------------+ | |
| | | | | *R5 ROM* | | |
| | | | +-------------+ | |
| | |<---------|---|Load and auth| | |
| | | | | tiboot3.bin | | |
| +--------+ | +-------------+ | |
| | |<---------|---| Load sysfw | | |
| | | | | part to TIFS| | |
| | | | | core | | |
| | | | +-------------+ | |
| | | | : | |
| | | | : | |
| | | | : | |
| | | | +-------------+ | |
| | | | | *R5 SPL* | | |
| | | | +-------------+ | |
| | | | | DDR | | |
| | | | | config | | |
| | | | +-------------+ | |
| | | | | Load | | |
| | | | | tispl.bin | | |
| | | | +-------------+ | |
| | | | | Load R5 | | |
| | | | | firmware | | |
| | | | +-------------+ | |
| | |<---------|---| Start A53 | | |
| | | | | and jump to | | |
| | | | | DM fw image | | |
| | | | +-------------+ | |
| | | | | +-----------+ |
| | |----------|-----------------------|---->| Reset rls | |
| | | | | +-----------+ |
| | TIFS | | | : |
| |Services| | | +-----------+ |
| | |<---------|-----------------------|---->|*ATF/OPTEE*| |
| | | | | +-----------+ |
| | | | | : |
| | | | | +-----------+ |
| | |<---------|-----------------------|---->| *A53 SPL* | |
| | | | | +-----------+ |
| | | | | | Load | |
| | | | | | u-boot.img| |
| | | | | +-----------+ |
| | | | | : |
| | | | | +-----------+ |
| | |<---------|-----------------------|---->| *U-Boot* | |
| | | | | +-----------+ |
| | | | | | prompt | |
| | |----------|-----------------------|-----+-----------+-----|
| +--------+ | | |
| | | |
+------------------------------------------------------------------------+

Here |__SYSFW_CORE_NAME__| acts as master and provides all the critical services. R5/ARM64
requests |__SYSFW_CORE_NAME__| to get these services done as shown in the above diagram.

.. ifconfig:: CONFIG_part_variant in ('AM62LX')

Unlike with most other K3 SoCs the AM62LX does not have an Cortext-R5
Expand Down