Skip to content

Conversation

gschorcht
Copy link
Contributor

@gschorcht gschorcht commented Jul 22, 2022

Now that the 2022.07 release branch is created, it is a good time to go the next migration step and to add Espressif's vendor toolchain for ESP32-S3 to be able to compile RIOT-OS/RIOT#18185 in CI. The toolchain has a size of 292 MByte.

@benpicco
Copy link
Contributor

Does ESP32-S2 work with the existing toolchain?

@benpicco benpicco requested a review from kaspar030 July 29, 2022 14:26
@gschorcht
Copy link
Contributor Author

Does ESP32-S2 work with the existing toolchain?

Nope, that requires a separate toolchain that I could provide.

@benpicco
Copy link
Contributor

Please do, I actually have one of those boards 😄

I'm still surprised, aren't they all using the same Xtensa core? Why are separate toolchains needed for different members of the family?

@gschorcht
Copy link
Contributor Author

Does ESP32-S2 work with the existing toolchain?

Nope, that requires a separate toolchain that I could provide.

I could provide it immediately. The question is whether it makes sense before we have ESP32-C3 and ESP32-S3 support in the master. Each toolchain blows up the Docker image by about 300 MBytes.

@benpicco
Copy link
Contributor

As it can take very long for the workers to get updates, I say we better have toolchain support earlier than later.

@gschorcht
Copy link
Contributor Author

Please do, I actually have one of those boards smile

Hm, but the ESP32-S2 support bases on some changes introduced for ESP32-S3 which in turn bases on some changes that can't be merged independent on the PR for ESP32-C3 support. That is, we have to merge the support for each variant step by step 😟

I'm still surprised, aren't they all using the same Xtensa core? Why are separate toolchains needed for different members of the family?

I don't know. At least ESP32 uses a different Xtensa core than ESP32-S2 and ESP32-S3. While ESP32 is using LX6 cores, new ESP32x variants like ESP32-S2 and ESP32-S3 use LX7 core.

@gschorcht
Copy link
Contributor Author

I don't know. At least ESP32 uses a different Xtensa core than ESP32-S2 and ESP32-S3. While ESP32 is using LX6 cores, new ESP32x variants like ESP32-S2 and ESP32-S3 use LX7 core.

As I know, the cores differ in the instruction sets they implement. Xtensa cores are highly configurable by the SoC designer. There are a lot of hardware options from which a designer can select what he wants. As a result, supported instructions can differ a lot. I guess, the compiler has to know what instructions are supported so that it has to be built for each Xtensa core.

@benpicco
Copy link
Contributor

the ESP32-S2 support bases on some changes introduced for ESP32-S3 which in turn bases on some changes that can't be merged independent on the PR for ESP32-C3 support. That is, we have to merge the support for each variant step by step

Don't worry about that, only more motivation for me to review the C3 and S3 PRs 😉
I'll try to find some time for it on the weekend.

@gschorcht
Copy link
Contributor Author

gschorcht commented Jul 30, 2022

Hm, the build test seems to fail due to an unrelated error in Rust build test. It seems that a git checkout command is used and the examples/rust-hello-world/Cargo.lock file is modified during the compilation of examples/rust-hello-world/.

error: Your local changes to the following files would be overwritten by checkout:
	examples/rust-hello-world/Cargo.lock
Please commit your changes or stash them before you switch branches.
Aborting
Error: Process completed with exit code 1.

@benpicco
Copy link
Contributor

benpicco commented Aug 2, 2022

Bors try

bors bot added a commit that referenced this pull request Aug 2, 2022
@bors
Copy link
Contributor

bors bot commented Aug 2, 2022

try

Build succeeded:

@benpicco
Copy link
Contributor

benpicco commented Aug 3, 2022

Bors merge

@bors
Copy link
Contributor

bors bot commented Aug 3, 2022

Build succeeded:

@bors bors bot merged commit f388fe8 into RIOT-OS:master Aug 3, 2022
@gschorcht
Copy link
Contributor Author

@benpicco Thanks for reviewing and merging.

@gschorcht gschorcht deleted the esp32_add_esp32s3_toolchain branch August 3, 2022 07:29
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

Successfully merging this pull request may close these issues.

2 participants