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

Claim tags need clarification #15

Open
algrant-arm opened this issue Jun 7, 2023 · 1 comment
Open

Claim tags need clarification #15

algrant-arm opened this issue Jun 7, 2023 · 1 comment

Comments

@algrant-arm
Copy link
Contributor

Various devices implement a claim tag register which can be used by different agents (e.g. external and self-hosted debug) to negotiate access. Use of these bits relies on agents adopting a common convention. CSAL's registers.h defines CS_CLAIM_INTERNAL as 0x01 and CS_CLAIM_EXTERNAL as 0x02 based on the recommendations for debug APs in Arm Debug Interface 6.0 specification.

However, an alternative convention (0x01 external and 0x02 self-hosted) is in use, and is used by ArmDS and the Linux kernel, for devices such as CTI and ETM.

It is also unclear whether CSAL should be regarded as an internal or an external debugger. Potentially, CSAL could come into conflict both with an external (JTAG) debugger and with self-hosted (e.g. OS-resident) drivers, or even with another instance of CSAL - e.g. one instance running in management firmware and another running as a userspace device driver.

So the issue here is twofold:

  • clarify CS_CLAIM_INTERNAL and CS_CLAIM_EXTERNAL definitions in the headers, perhaps consider deprecating them

  • build some flexibility into CSAL so that there is more choice about which claim tags are used by a given CSAL instance

@algrant-arm
Copy link
Contributor Author

Definitions have been clarified in csregisters.h, with two new pairs of tag macros.

It's still unclear exactly how to use the claim tags or how much flexibility to allow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant