diff --git a/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld b/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld index f831a68040..9b13c98b69 100644 --- a/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld +++ b/components/esp_rom/esp32p4/ld/esp32p4.rom.rvfp.ld @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,15 +16,21 @@ /*************************************** Group rvfplibdf ***************************************/ +/* + * These functions cannot work when compiling with floating point ABI + * implementation assumes argument is passed in a0, but floats will be passed + * in the floating point registers instead + * + * __fixsfdi = 0x4fc00878; + * __fixunssfdi = 0x4fc00880; + */ /* Functions */ __adddf3 = 0x4fc00868; __eqdf2 = 0x4fc0086c; __fixdfdi = 0x4fc00870; __fixdfsi = 0x4fc00874; -__fixsfdi = 0x4fc00878; __fixunsdfsi = 0x4fc0087c; -__fixunssfdi = 0x4fc00880; __floatdidf = 0x4fc00884; __floatsidf = 0x4fc00888; __floatundidf = 0x4fc0088c; @@ -41,6 +47,10 @@ __subdf3 = 0x4fc008ac; Group libgcc ***************************************/ +/* Not part of the orginal ROM interface, but RVFP versions cannot work with float-abi */ +__fixsfdi = 0x4fc007ac; +__fixunssfdi = 0x4fc007b4; + /* Functions */ __absvdi2 = 0x4fc0073c; __absvsi2 = 0x4fc00740; diff --git a/components/esp_rom/test_apps/.build-test-rules.yml b/components/esp_rom/test_apps/.build-test-rules.yml index a67fcbb8ea..1eb663e797 100644 --- a/components/esp_rom/test_apps/.build-test-rules.yml +++ b/components/esp_rom/test_apps/.build-test-rules.yml @@ -9,6 +9,3 @@ components/esp_rom/test_apps/rom_tests: - if: IDF_TARGET in ["esp32", "esp32c2"] temporary: false reason: lack of memory for testing miniz compressing - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: test not pass, should be re-enable # TODO: IDF-8977 diff --git a/components/esp_rom/test_apps/rom_tests/pytest_esp_rom.py b/components/esp_rom/test_apps/rom_tests/pytest_esp_rom.py index 2fa5f1cc7d..eb309c8d19 100644 --- a/components/esp_rom/test_apps/rom_tests/pytest_esp_rom.py +++ b/components/esp_rom/test_apps/rom_tests/pytest_esp_rom.py @@ -10,6 +10,7 @@ from pytest_embedded import Dut @pytest.mark.esp32s3 @pytest.mark.esp32c6 @pytest.mark.esp32h2 +@pytest.mark.esp32p4 @pytest.mark.generic def test_esp_rom(dut: Dut) -> None: dut.run_all_single_board_cases()