Commit Graph

262 Commits

Author SHA1 Message Date
Mahavir Jain
7bb29086df
docs: add ECDSA peripheral chapter for H2/P4
- Add ECDSA peripheral chapter and instructions to program efuse key block
- Update security guide for ECDSA peripheral mention for device identity
- Link with ESP-TLS guide about using ECDSA peripheral in TLS connection
2023-11-15 09:42:26 +05:30
Mahavir Jain
94bf4710fa
fix(esp32h2): program use_hardware_k efuse bit for ECDSA key purpose
In ESP32-H2, the ECDSA peripheral by default uses the TRNG (hardware)
generated k value but it can be overridden to software supplied k.
This can happen through by overriding the `ECDSA_SOFTWARE_SET_K` bit
in the configuration register. Even though the HAL API is not exposed
for this but still it could be achieved by direct register
programming. And for this scenario, if sufficiently random k is not
supplied by the software then it could posses a security risk.

In this change, we are unconditionally programming the efuse
`ESP_EFUSE_ECDSA_FORCE_USE_HARDWARE_K` bit during startup security
checks itself. Additionally, same is ensured in the `esp_efuse_write_key`
API as well. This always enforces the hardware k mode in the ECDSA
peripheral and ensures strongest possible security.
2023-11-15 09:42:26 +05:30
Armando
d3be2541de fix(adc): rename ADC_ATTEN_DB_11 to ADC_ATTEN_DB_12
By design, it's 12 dB. There're errors among chips, so the actual
attenuation will be 11dB more or less
2023-11-06 18:55:49 +08:00
gaoxu
843e07b2d5 docs(adc): added adc calibration doc on h2 2023-11-02 11:33:06 +08:00
gaoxu
0ea0b39725 feat(adc_cali): Add ADC calibration support for ESP32H2 2023-10-31 11:29:30 +08:00
Konstantin Kondrashov
a304cc230e Merge branch 'feature/esp32h2_adds_adc_calib_efuses' into 'master'
feat(efuse): Adds efuse ADC calibration data for ESP32H2

See merge request espressif/esp-idf!26305
2023-10-25 15:58:24 +08:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
morris
66497af276 feat(hal): enable hal host test 2023-10-11 11:23:24 +08:00
KonstantinKondrashov
071d1cf865 feat(efuse): Adds efuse ADC calibration data for ESP32H2 2023-10-04 16:00:01 +08:00
Chen Yudong
2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
KonstantinKondrashov
b29f6d5a40 feat(efuse): Support eFuses and doc for ESP32P4 2023-09-12 17:58:17 +08:00
harshal.patil
d86b320892
feat(ecdsa): add ECDSA peripheral support for esp32p4 2023-09-06 11:07:37 +05:30
Armando
dc9ddfc0d4 change(soc): added SOC_EFUSE_SUPPORTED 2023-08-24 12:51:20 +08:00
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
KonstantinKondrashov
c09d823b6a change(efuse): Update eFuses for esp32p4 chip 2023-08-09 19:33:35 +08:00
Armando
706d684418 feat(esp32p4): introduced new target esp32p4, supported hello_world 2023-08-09 19:33:25 +08:00
Konstantin Kondrashov
dd08ec095b Merge branch 'feature/add_new_pkg_and_flash_efuses_esp32c3' into 'master'
feat(efuse): Add flash efuses for esp32c3

Closes IDF-7609

See merge request espressif/esp-idf!24685
2023-07-13 00:57:58 +08:00
Konstantin Kondrashov
9708952fa8 Merge branch 'feature/add_new_pkg_and_flash_psram_efuses' into 'master'
feat(efuse): Add flash&psram efuses for S3

Closes IDF-7439

See merge request espressif/esp-idf!24624
2023-07-13 00:57:14 +08:00
KonstantinKondrashov
b95dfc67fa feat(efuse): Add flash efuses for esp32c3 2023-07-11 19:49:17 +08:00
KonstantinKondrashov
cf46ef954f feat(efuse): Add flash&psram efuses for S3 2023-07-11 19:41:40 +08:00
laokaiyao
edc1abc8ea refactor(adc_calib): Simplify 2nd step coefficient calculation
- remove unnecessary variables and calculations
- improve readability of code
2023-07-06 14:22:03 +08:00
laokaiyao
f949819976 adc_calib: support calibration v2 on esp32c6 2023-06-26 10:40:36 +08:00
Zim Kalinowski
f59394f36b Merge branch 'bugfix/efuse-improve-qemu-test' into 'master'
efuse: simplify qemu test script

See merge request espressif/esp-idf!24206
2023-06-14 18:30:41 +08:00
Zim Kalinowski
b2dae9c262 efuse: simplify qemu test script 2023-06-14 07:29:35 +02:00
Konstantin Kondrashov
ac188ad074 Merge branch 'bugfix/mac_ext_order_for_c6_h2' into 'master'
esp_hw_support: Change the byte order of MAC for IEEE802154 (C6 and H2 chips)

Closes IDF-6809

See merge request espressif/esp-idf!23988
2023-06-13 16:08:13 +08:00
KonstantinKondrashov
f7dfd1f48e mac_addr(C6 and H2): Fix byte order of MAC_EXT and change format of IEEE802154 MAC
The changes only related to C6 and H2 chips where CONFIG_SOC_IEEE802154_SUPPORTED=y.
For this case these APIs return 8 bytes
    esp_efuse_mac_get_default() -> 8 bytes
    esp_efuse_mac_get_custom() -> 8 bytes
    esp_read_mac(..., ESP_MAC_IEEE802154) -> 8 bytes
The rest cases len is 6 bytes
2023-06-08 23:11:32 +08:00
Alexey Gerenkov
c9b7748789 efuse: Use 'hal_memcpy' instead of 'memcpy' in ESP32-H2 driver 2023-06-08 16:49:42 +03:00
Alexey Gerenkov
8846674e54 tools: Upgrade Clang toolchain to 'esp-16.0.0-20230516' 2023-05-31 22:07:15 +03:00
laokaiyao
de8ae73de3 adc_cali: fix the condition of ocode calibration 2023-05-25 21:49:40 +08:00
Zim Kalinowski
451a0f1d33 Merge branch 'feature/adds_new_efuses_for_h2' into 'master'
efuse(H2): Adds RF Calibration Information

Closes IDF-7382

See merge request espressif/esp-idf!23827
2023-05-25 14:36:50 +08:00
laokaiyao
ffb40a89d9 adc_cali: supported channel compensation of adc calibration on esp32c6 2023-05-23 22:44:25 +08:00
KonstantinKondrashov
3550a2d185 efuse(c6): Adds adc calib efuses 2023-05-23 20:34:29 +08:00
laokaiyao
caa044c289 adc_cali: supported adc calibration on esp32c6 2023-05-23 20:34:29 +08:00
KonstantinKondrashov
aef81cceee efuse(H2): Adds RF Calibration Information 2023-05-22 08:40:26 +00:00
laokaiyao
bf2a7b2df6 esp32h4: removed esp32h4 related codes 2023-04-23 12:03:07 +00:00
laokaiyao
b16ed57b2e esp32h4: removed esp32h4 related files 2023-04-23 12:03:07 +00:00
Jiang Jiang Jian
badf267022 Merge branch 'bugfix/block9_can_not_be_used_for_fe' into 'master'
efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)

Closes IDF-7175

See merge request espressif/esp-idf!23052
2023-04-06 10:17:07 +08:00
KonstantinKondrashov
5b00d1f396 efuse: Update efuses for esp32 esp32c2 esp32c3 esp32s2 esp32s3 2023-04-04 22:32:32 +08:00
KonstantinKondrashov
3d695b9768 efuse: Prevent burning XTS_AES and ECDSA keys into BLOCK9 (BLOCK_KEY5)
eFuse module has a hardware bug.
It is related to ESP32-C3, C6, S3, H2 chips:
    - BLOCK9 (BLOCK_KEY5) can not be used by XTS_AES keys.
For H2 chips, the BLOCK9 (BLOCK_KEY5) can not be used by ECDSA keys.
S2 does not have such a hardware bug.
2023-04-04 18:45:48 +08:00
Zim Kalinowski
6e67c54a92 Merge branch 'feature/replace_some_efuses_for_c6' into 'master'
efuse(esp32c6): Replace PKG_VERSION BLK_VERSION_MINOR BLK_VERSION_MAJOR

Closes IDF-7174

See merge request espressif/esp-idf!22775
2023-04-04 16:34:29 +08:00
Mahavir Jain
f22daec784 Merge branch 'feature/secure_set_efuses_to_prevent_brick_chip' into 'master'
security: write-protect DIS_ICAHE and DIS_DCACHE

Closes IDF-5177

See merge request espressif/esp-idf!22640
2023-03-29 11:51:09 +08:00
KonstantinKondrashov
199e5abbf3 efuse: Adds WR_DIS.DIS_CACHE for esp32 and WR_DIS.DIS_ICACHE for rest chips
C2 chip does not have such fields
2023-03-29 00:02:24 +08:00
KonstantinKondrashov
b950f5de8d efuse: Fix handling aliases in efuse_table_gen 2023-03-29 00:02:24 +08:00
Zim Kalinowski
ee842a1386 Merge branch 'feature/fix_load_efuses_from_flash_when_real_fe_is_on' into 'master'
efuse(virtual mode): Fix load_efuses_from_flash when FE is on

Closes IDFGH-9580

See merge request espressif/esp-idf!22793
2023-03-28 17:32:11 +08:00
KonstantinKondrashov
3a31a4c885 efuse: Enable and adjust some efuse tests for H2 chip 2023-03-24 17:21:32 +00:00
Sachin Parekh
d2940c5ff3 mbedtls: Add port layer for ECDSA peripheral 2023-03-24 10:43:40 +05:30
KonstantinKondrashov
88ef0d8aeb efuse: Fix load_efuses_from_flash when FE is on
esp_efuse_utility_load_efuses_from_flash() read emul_efuse
as an encrypted partition, but that is not correct,
this partition was never encrypted.
Need to read it as not encrypted partition.

Fxed the case: If FE is already on then EFUSE VIRT mode can work with it.

Closes https://github.com/espressif/esp-idf/issues/10929
2023-03-23 16:20:43 +08:00
Michael (XIAO Xufeng)
dbbc1ba5be Merge branch 'feat/merge_nuttx_patch' into 'master'
G0, G1: fix issues that prevents using G0/G1 components on other platforms

See merge request espressif/esp-idf!22521
2023-03-21 20:48:21 +08:00
KonstantinKondrashov
77a8b1afef efuse: Fix some tests, some CI chips may already have blocks written 2023-03-16 18:19:08 +08:00
Gustavo Henrique Nihei
3672144c9f efuse: Remove dependency on bootloader component headers
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2023-03-16 01:50:21 +08:00