Skip to content

Conversation

thejpster
Copy link
Contributor

This PR updates some of the arm*-unknown-none target docs, and adds some missing target pages.

aarch64-none-elf and aarch64-none-elf-softfloat

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.

armv7a-none-eabi and armv7a-none-eabihf

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.

armv7r-none-eabi and armv7r-none-eabihf

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and the target page is split from the Big Endian versions. Links are added to the EDWG's support crates for this target.

armebv7r-none-eabi and armveb7r-none-eabihf

The target page is split from the Little Endian versions. No change in maintainers.

I have agreement to add EDWG/T-Arm as maintainers, which was voted upon in their repo.

@rustbot
Copy link
Collaborator

rustbot commented Sep 10, 2025

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 10, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 10, 2025

r? @lcnr

rustbot has assigned @lcnr.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

The Rust Embedded Devices Working Group (wg-embedded) Arm Team (t-arm)
agreed to listed as maintainers of:

* aarch64-unknown-none
* aarch64-unknown-none-softfloat
* armv7a-none-eabi
* armv7r-none-eabi
* armv7r-none-eabihf

The aarch64-unknown-none* target didn't have a page so I added it.

wg-embedded t-arm did not want to take over:

* armebv7r-none-eabi
* armebv7r-none-eabihf

So I gave them their own target page. The current maintainer remains.
@thejpster thejpster force-pushed the update-arm-target-docs branch from 8a54175 to faf0e14 Compare September 10, 2025 18:51
@thejpster
Copy link
Contributor Author

Force-pushed with fixed markdown formatting.

@rustbot

This comment has been minimized.

@thejpster thejpster force-pushed the update-arm-target-docs branch from 827e2cd to f1abb70 Compare September 10, 2025 19:31
@rust-log-analyzer

This comment has been minimized.

@lcnr
Copy link
Contributor

lcnr commented Sep 11, 2025

r? @workingjubilee maybe?

@rustbot rustbot assigned workingjubilee and unassigned lcnr Sep 11, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 11, 2025

workingjubilee is currently at their maximum review capacity.
They may take a while to respond.

Copy link
Member

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

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

I may find more nits but the maintainer assent one is blocking, I think.

View changes since this review


## Target maintainers

* [@chrisnc](https://github.com/chrisnc)
Copy link
Member

Choose a reason for hiding this comment

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

Uhm. Hrm.

@chrisnc Do you assent?

@thejpster I am not sure I have seen an assent by Chris to maintain this specific target variant.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The armebv7r and armv7r targets were on the same page, and so I concluded Chris was the maintainer for both. Pretty sure he wrote the page back in 90893e4.

https://doc.rust-lang.org/beta/rustc/platform-support/armv7r-none-eabi.html

Copy link
Contributor

Choose a reason for hiding this comment

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

The format for these was updated a while ago to drop the bullet points for ease of copy-pasting the usernames in GitHub issues and PRs. Please drop those, no matter who's being listed here (and in all the other files) :)

Copy link
Member

Choose a reason for hiding this comment

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

Oh, you're right, I got confused.

I think it would still be helpful to have assent here on this new split and shared responsibility and such.

Copy link
Member

Choose a reason for hiding this comment

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

I have been provided with more information on the context it was assented to, that @chrisnc both is fine with the EDWG helping out and does not want to impede them but neither is he interested in definitely becoming part of that team. I am deciding it is trustworthy enough for this to go ahead, as we can always roll back changes if more information comes to light, I just wanted enough information to be able to presume the situation was correct.

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 11, 2025
Copy link
Contributor

@Gelbpunkt Gelbpunkt left a comment

Choose a reason for hiding this comment

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

I only looked at the aarch64 document since that's what I'm most familiar with, most of my comments should also apply to the other documents from what I can tell. I'm very happy about more extensive documentation, this is a fairly good first step.

View changes since this review

Comment on lines +106 to +115
## Start-up and Low-Level Code

The [Rust Embedded Devices Working Group Arm Team] maintain the
[`aarch64-cpu`] crate, which may be useful for writing bare-metal code using
this target.

The *TrustedFirmware* group also maintain [Rust crates for this
target](https://github.com/ArmFirmwareCrates).

[`aarch64-cpu`]: https://docs.rs/aarch64-cpu
Copy link
Contributor

@Gelbpunkt Gelbpunkt Sep 12, 2025

Choose a reason for hiding this comment

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

I'm not really sure how the maintainers feel about endorsing third-party crates like this. I think this section could just be dropped and, if you really want to have some start-up code, replaced with a tiny linker script + assembly + Rust entrypoint example when e.g. booting with the Linux boot protocol.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

For many targets the code required is more than can fit into a target doc, and often involves multiple files that would be tedious and error prone to copy-paste into a new project. ArmFirmwareCrates is from Arm themselves, so it seemed legit to refer to it. But I can take it out.

I personally find it pretty hard to get started with many of these targets so I think giving people links to code that works and runs is very useful. I’m happy to not have it here, but I don’t know where else it would go.

Copy link
Member

Choose a reason for hiding this comment

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

For a target, if the maintainers think it worthwhile to recommend a crate that deals with the special needs of that target, then we generally do not impede such. Often, external software is required anyways for a target, e.g. specialty linkers or compilers or headers or... whatever. If quite a lot of such supplemental material is needed, it may come as an advisory against maintaining the target at all, but this doesn't seem to rise to such a threshold.


## Target maintainers

* [@chrisnc](https://github.com/chrisnc)
Copy link
Contributor

Choose a reason for hiding this comment

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

The format for these was updated a while ago to drop the bullet points for ease of copy-pasting the usernames in GitHub issues and PRs. Please drop those, no matter who's being listed here (and in all the other files) :)

@thejpster
Copy link
Contributor Author

The format for these was updated a while ago to drop the bullet points for ease of copy-pasting the usernames in GitHub issues and PRs

It seems the existing target docs were not updated when this rule came in. I'm removed the bullets for all the targets maintained by the Rust Embedded Devices Working Group's Arm Team as requested.

Removes a bunch of information that isn't, strictly speaking, target specific.
Copy link
Member

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

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

@thejpster This looks good to go. I believe you are making some final small edits per our conversation, please ping me again when they're in and I'll take a quick glance at them.

View changes since this review

This is important to note, as it affects how easy it is to build a
binary, and that `#![no_std]` is mandatory.

A different PR should probably add this to all the other platform pages.
@thejpster
Copy link
Contributor Author

Notes added to all the arm-none-, thumb-none-* and aarch64-unknown-none-* pages noting that they are no_std only, as discussed.

@workingjubilee
Copy link
Member

looks good to me!

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Sep 13, 2025

📌 Commit afd324a has been approved by workingjubilee

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Sep 13, 2025
bors added a commit that referenced this pull request Sep 13, 2025
Rollup of 8 pull requests

Successful merges:

 - #113095 (Document `become` keyword)
 - #146159 (Some hygiene doc improvements)
 - #146171 (tidy: check that error messages don't start with a capitalized letter)
 - #146419 (Update the arm-* and aarch64-* platform docs.)
 - #146473 (Revert "Constify SystemTime methods")
 - #146506 (Fix small typo in check-cfg.md)
 - #146517 (fix Condvar::wait_timeout docs)
 - #146521 (document `core::ffi::VaArgSafe`)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 04f17d8 into rust-lang:master Sep 14, 2025
10 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Sep 14, 2025
rust-timer added a commit that referenced this pull request Sep 14, 2025
Rollup merge of #146419 - thejpster:update-arm-target-docs, r=workingjubilee

Update the arm-* and aarch64-* platform docs.

This PR updates some of the arm*-unknown-none target docs, and adds some missing target pages.

## aarch64-none-elf and aarch64-none-elf-softfloat

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.

## armv7a-none-eabi and armv7a-none-eabihf

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.

## armv7r-none-eabi and armv7r-none-eabihf

The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and the target page is split from the Big Endian versions. Links are added to the EDWG's support crates for this target.

## armebv7r-none-eabi and armveb7r-none-eabihf

The target page is split from the Little Endian versions. No change in maintainers.

I have agreement to add EDWG/T-Arm as maintainers, which was voted upon in [their repo](rust-embedded/wg#851).
@thejpster thejpster deleted the update-arm-target-docs branch September 14, 2025 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants