Dániel Buga 2438d03b21
Simplify generated code to save on build time, yeet a few dependencies (#3643)
* Reduce use of iter::chain

* Cache all symbols

* Trim xtensa-lx-rt deps

* Remove unused dep

* Replace chrono with jiff

* Yeet minijinja

* Save a bit on toml_edit

* Disable some default features

* Disable regex log filters

* Reduce xtensa-lx-rt build script

* Remove unnecessary dependencies

* Remove darling

* Update embedded-test

* lol

* Clean up

* Only validate loaded config once

* fmt

* Changelog
2025-06-17 20:35:00 +00:00

178 lines
3.0 KiB
TOML

# ESP32 Device Metadata
#
# Empty [`device.driver`] tables imply `partial` support status.
#
# If you modify a driver support status, run `cargo xtask update-chip-support-table` to
# update the table in the esp-hal README.
[device]
name = "esp32"
arch = "xtensa"
cores = 2
trm = "https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf"
peripherals = [
# Peripherals available in the PAC:
"aes",
"apb_ctrl",
"bb",
"dport",
"efuse",
"emac",
"flash_encryption",
"frc_timer",
"gpio",
"gpio_sd",
"hinf",
"i2c0",
"i2c1",
"i2s0",
"i2s1",
"io_mux",
"ledc",
"mcpwm0",
"mcpwm1",
"nrx",
"pcnt",
"rmt",
"rng",
"rsa",
"rtc_cntl",
"rtc_i2c",
"rtc_io",
"sdhost",
"sens",
"sha",
"slc",
"slchost",
"spi0",
"spi1",
"spi2",
"spi3",
"timg0",
"timg1",
"twai0",
"uart0",
"uart1",
"uart2",
"uhci0",
"uhci1",
]
virtual_peripherals = [
"adc1",
"adc2",
"dac1",
"dac2",
]
symbols = [
# Additional peripherals defined by us (the developers):
"pdma",
"phy",
"psram",
"touch",
# ROM capabilities
"rom_crc_le",
"rom_crc_be",
"rom_md5_bsd",
# Wakeup SOC based on ESP-IDF:
"pm_support_ext0_wakeup",
"pm_support_ext1_wakeup",
"pm_support_touch_sensor_wakeup",
"ulp_supported",
]
memory = [{ name = "dram", start = 0x3FFA_E000, end = 0x4000_0000 }]
[device.adc]
support_status = "partial"
instances = [
{ name = "adc1" },
{ name = "adc2" },
]
[device.dac]
support_status = "partial"
instances = [
{ name = "dac1" },
{ name = "dac2" },
]
[device.gpio]
support_status = "supported"
has_bank_1 = true
[device.i2c_master]
support_status = "supported"
instances = [{ name = "i2c0" }, { name = "i2c1" }]
ll_intr_mask = 0x3ffff
fifo_size = 32
max_bus_timeout = 0xFFFFF
separate_filter_config_registers = true
i2c0_data_register_ahb_address = 0x6001301c
[device.i2c_slave]
support_status = "not_supported"
[device.interrupts]
support_status = "partial"
status_registers = 3
[device.rmt]
support_status = "partial"
ram_start = 0x3ff56800
channel_ram_size = 64
[device.spi_master]
support_status = "supported"
instances = [{ name = "spi2" }, { name = "spi3" }]
[device.timergroup]
timg_has_timer1 = true
instances = [{ name = "timg0" }, { name = "timg1" }]
[device.uart]
support_status = "supported"
[device.ethernet]
support_status = "not_supported"
[device.camera]
support_status = "not_supported"
[device.rgb_display]
# Other drivers which are partially supported but have no other configuration:
## Crypto
[device.aes]
[device.rsa]
[device.sha]
[device.rng]
## Interfaces
[device.i2s]
[device.ledc]
[device.mcpwm]
[device.pcnt]
[device.sd_host]
[device.sd_slave]
[device.spi_slave]
[device.touch]
[device.twai]
## Miscellaneous
[device.dma]
[device.io_mux]
[device.psram]
[device.temp_sensor]
[device.sleep]
[device.ulp_fsm]
## Radio
[device.wifi]
[device.bt]