Skip to content
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

Feature: Add a new target for ARMv8-A #2022

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

marysaka
Copy link
Contributor

@marysaka marysaka commented Dec 15, 2024

Detailed description

As ARMv8-A changed entirely debug interactions, a new target was needed.

This implements a new basic target for ARMv8-A that only support AArch64 for now.

I tested all those changes with a Solitude AML-S905D3-CC on core 0 in u-boot (JTAG access can be enabled with smc 0x82000040 2)

Things left as todo that will not be tackled by this PR:

  • Float registers
  • AArch32 support (Lot of cortexar.c could be reused for this)
  • Any relevant ARMv8-A extensions to expose (Pointer Authentication)
  • Possibly weird CoreSight tables where the CTI component isn't after the DC
  • SMP

Depends on #2017.

Your checklist for this pull request

Closing issues

This change breakwatch::addr to be 64-bit as this will be required for
ARMv8 AArch64 support.

This also change the layout of breakwatch to avoid extraneous padding in
64-bit and reduce the size of the reserved array to 64 bits.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Allow to grab the last target created, will be used to map DC with CTI
objects.

Signed-off-by: Mary Guillemard <mary@mary.zone>
@marysaka marysaka force-pushed the feature/cortexa-armv8-aach64 branch from 4fb9bca to 1dbf6a1 Compare December 15, 2024 12:16
This adds support for Arm Coresight CTI as defined in SoC-400 and
Soc-600 TRMs (DDI0480E, 100806)

Signed-off-by: Mary Guillemard <mary@mary.zone>
ARMv8-A being completely different than ARMv7-A even at the debug
componenet level makes it quite tidious to integrate in cortexar.c.

This adds a new target for ARMv8-A with the base probing wired up.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Also read the CPUID.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Also implement DCC/ITR interaction.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
Signed-off-by: Mary Guillemard <mary@mary.zone>
@marysaka marysaka force-pushed the feature/cortexa-armv8-aach64 branch from 1dbf6a1 to 294856b Compare December 15, 2024 12:24
@dragonmux dragonmux added this to the v2.1 release milestone Dec 15, 2024
@dragonmux dragonmux added Enhancement General project improvement New Target New debug target labels Dec 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement General project improvement New Target New debug target
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants