-
Notifications
You must be signed in to change notification settings - Fork 214
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
Track peripheral driver implementations for all chips #19
Comments
working on I2C |
I'm working on supporting the |
I have an Edit: added in #26 |
I will start implementing |
@fkohlgrueber I'm already pretty far with the implementation of the For better visibility I have just created #53. The PR so for includes the The challenge is that all variants have a sightly different RMT feature set and register structure. This makes bringing them all together into generic implementation a lot of fun. 😆 |
I will start working on LEDC. |
I'll start working on DAC |
Going to look into ADC |
Working on the TWAI and the associated |
This is missing MCPWM? or is that PWM{0,1,2,3}? |
@liebman I think that's what those were supposed to be, I honestly don't even remember where I generated this list from at this point 😁 Thanks for pointing that out. I've updated the table to use |
I will start looking into GDMA on ESP32-C3. Maybe I can extend it to support for ESP-S3 later but DMA on ESP32 and ESP32-S2 is fundamentally different - so this would be a very first step |
|
Going to implement USB (device) for ESP32-S3 and S2 - starting with S3 |
We now have some level of |
Going to implement first steps to get I2S support (starting with ESP32-C3 / ESP32-S3 - then ESP32 and ESP32-S2, just TX for the start and only supporting standard I2S - we can improve that later but we need something to start with) |
Working on |
Do I understand correctly that the ESP32-C2 is secretly an ESP8684? (what's up with espressif's chip names? 😅 ) If so, the first table seems to be missing some |
Looking into implementing |
@dimpolo My understanding regarding the device names is that the ESP8684/ESP8685 are variants of the ESP32-C2/C3 respectively with flash memory integrated into the package. I'm not aware of any other differences, though that's not to say they don't exist. You are correct though, seems I updated one table's column but not the others' when I added the C2. I will get that fixed shortly! |
I'd like to tackle USB serial on the ESP32-C3. I'm going to start by fleshing out the USB_SERIAL_JTAG so it looks and feels a bit more like a UART (Rx, interrupts, etc). |
Preliminary |
They were marked as off-topic because they are off-topic for a tracking issue thread. Many people are subscribed to this issue and don't want to be spammed with off-topic questions. Please open a discussion thread/issue or join the matrix channel to ask questions like these, we are more than happy to answer them :). |
Ok.. I'll do so.. |
i would like to work on AES in esp32 |
Does anyone from espressif have documentation on EDIT (to not ping): Thanks @liebman, it didn't have the LCD_CAM peripheral in the technical reference document I had, it seems to be an old version, the latest works. |
Download the technical reference manual for the chip in question, it will have a section on each peripheral. |
|
I think that HALL_SENS peripheral should be remove from the list. Justification: PCN20221202 |
I would agree, we also removed it from esp-idf-hal (from v5 onwards). |
|
I've regenerated the tables in the first comment from the current PACs, and filled in each cell by hand. There are a number of new peripherals in the first table now, however I'm not sure if all of them actually require peripheral drivers. I trimmed this down already from the generated version, but will need to spend some time in the TRMs to figure out which other rows can be eliminated, if any. If you see anything in the first table that does not belong there please let me know so I can remove it. When ESP32-C6 support is added over the new few weeks, I will update these tables again to include the new peripherals. |
working on RSA in esp32 |
ESP32-C6 support was added in #392, and the tables have been updated. However, there are a number of new peripherals which have not yet been added; I'll do this at some point. |
I'm willing to work on ECC and HMAC driver but I would need some time for testing as I need to order some boards. |
@nabilmerk yes i'm still working on it and i'm more than happy to discuss this with you. |
@nabilmerk that would be great, thank you for offering! There's no rush at all, grateful for any contributions 😁 |
@jessebraham the basic function for computing HMAC are ready for testing but in order to use the HMAC, efuse must be programmed, even for upstream mode. Looking at the efuse module, I think I will also write the HAL for this module except if someone is on it? |
@nabilmerk thanks for the offer, that'd be great. I don't believe anybody is working on anything |
I'm looking into half-duplex SPI including dual and quad SPI |
After digging around with EFUSE, I came to the conclusion that the EFUSE is a peripheral that we should set only in 'factory' environment. If someone's look at ESP-IDF, they actually don't ship software for writing EFUSE but they ship software for programming them when the board is attached to the PC. |
I agree, we shouldn't have write access to EFUSE on chip. We already have some read-only access in the soc/$chip/efuse.rs modules, whether this is enough to mark them it as complete or not is a different question. |
I started to look into |
I think this issue has outlived its usefulness, and is just becoming more of a burden than anything else. So, I'm going to close it! 😁 |
I was looking for it 5 minutes ago to see what still needed to be implemented and what has been implemented. Haha |
The table below enumerates all peripherals for each chip supported by
esp-hal
. Support in this case does not mean a feature-complete and bug-free driver implementation, only that you are able to interact with the peripheral in some meaningful way.If a cell contains am em dash (—) this means that the particular peripheral is not present for a chip. A check mark (✓) means that some driver implementation exists.
The table should be complete, though some minor naming changes have been made for consistency. If there are any missing peripherals or errors please comment below indicating such. Since adding support for additional devices it's possible some new peripherals have been introduced which aren't displayed below.
If you would like to contribute to this project, we ask that you please comment below "claiming" a peripheral, just to help ensure people are not stepping on each others' feet.
If you would like to request a feature for an existing peripheral driver, please open a separate issue to do so.
The following peripherals either have no drivers at all, or do not support all devices with that peripheral:
1: #341
The following peripherals have some driver implementation for all supported chips, though the drivers may not be feature-complete:
The text was updated successfully, but these errors were encountered: