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

Initial P4 support tracking issue #2285

Open
3 of 5 tasks
MabezDev opened this issue Oct 7, 2024 · 9 comments
Open
3 of 5 tasks

Initial P4 support tracking issue #2285

MabezDev opened this issue Oct 7, 2024 · 9 comments
Assignees
Labels
chip:esp32p4 Issue related to ESP32-P4 chip status:blocked Unable to progress - dependent on another task

Comments

@MabezDev
Copy link
Member

MabezDev commented Oct 7, 2024

Whilst we don't intend to do a full chip bring-up until the mass production version is released, we would like to get a minimal chip bring-up to aid future developments.

@MabezDev MabezDev added this to the 0.22.0 milestone Oct 7, 2024
@MabezDev MabezDev added the chip:esp32p4 Issue related to ESP32-P4 chip label Oct 7, 2024
@github-project-automation github-project-automation bot moved this to Todo in esp-rs Oct 7, 2024
@jessebraham
Copy link
Member

I again have a very basic application running on device, calling only esp_println::println!().

There is a caveat to this, in that the application works on the v1.0 devkit but neither the v1.1 not v1.2 version; I have some ideas with regards to this, but will require more experimentation. At least for the time being, I'm able to move forward using the old devkit.

Unfortunately I think getting a UART example running will take a bit more time than expected, as there is quite tight coupling between the interrupt support and various drivers. Given that the ESP32-P4 uses yet another interrupt controller (CLIC) this will take some time to sort out. Hoping to have a hacky PoC by end of week or early next week, though.

I will continue to update this issue as I make progress.

@bjoernQ
Copy link
Contributor

bjoernQ commented Oct 9, 2024

I remember we had interrupts and gpio working in January or February already

@jessebraham
Copy link
Member

I remember we had interrupts and gpio working in January or February already

Yes but there have been a number of changes to the HAL since January, and it's not as simple as copy-pasting the previous code in unfortunately. I do not think this will take a ton of time to be clear, but it will take some time to understand the changes which have been made and adapt the previous implementation to match.

@playfulFence playfulFence self-assigned this Oct 30, 2024
@playfulFence
Copy link
Contributor

playfulFence commented Oct 30, 2024

Working on this right now. I'm not sure how far I'll get, but at least I want to adapt all the changes to the current state of a driver.

PS: Civilized people call it "rebase" directly actually 😅

@jessebraham jessebraham modified the milestones: 0.22.0, 0.23.0 Nov 6, 2024
@jessebraham
Copy link
Member

@playfulFence Is the P4 HIL runner in a functional state? Can we tick off that task?

@bugadani
Copy link
Contributor

bugadani commented Nov 8, 2024

Define functional, we have a raspberry that boots. We don't have anything on it, let alone flashing support in probe-rs or GHA workflows in this repo. What's the definition of done of that checkbox?

@jessebraham
Copy link
Member

jessebraham commented Nov 8, 2024

Define functional, we have a raspberry that boots. We don't have anything on it, let alone flashing support in probe-rs or GHA workflows in this repo. What's the definition of done of that checkbox?

Given that there is a separate task for tooling (which links to the probe-rs issue), I think just having the runner set up physically and having the GitHub runner configured is adequate. My understanding was that these steps have been completed, but perhaps I'm mistaken.

@MabezDev MabezDev modified the milestones: 1.0.0-beta.0, 0.22.0 Nov 8, 2024
@MabezDev
Copy link
Member Author

MabezDev commented Nov 8, 2024

Dropping this back to the current milestone, there's a chance we can complete it in time, but if not we'll reassess what to do in the next planning meeting.

@MabezDev MabezDev removed this from the 0.22.0 milestone Nov 14, 2024
@MabezDev MabezDev added the status:blocked Unable to progress - dependent on another task label Nov 14, 2024
@MabezDev
Copy link
Member Author

MabezDev commented Nov 14, 2024

@playfulFence has been working hard to get interrupt support working. It's nearly there, and works correctly without vectoring the CPU interrupts (this is the RISCV interrupt controller vectoring, different from vectoring the peripheral interrupts). The P4 is quite different to the other esp's and requires a number of changes in esp-riscv-rt (based on esp-idf, we didn't actually get this working just yet).

I think we'll want to revisit this support once #2390 has landed, as upstream riscv-rt has better support for this and we should be directing our efforts there anyway.

We'll leave the PR open #2466 as draft, and we can occasionally rebase if anyone would like to try out running some pure Rust code on an early P4 devkit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chip:esp32p4 Issue related to ESP32-P4 chip status:blocked Unable to progress - dependent on another task
Projects
Status: Todo
Development

No branches or pull requests

5 participants