| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- # SPDX-License-Identifier: CC0-1.0
- import logging
- import pytest
- from pytest_embedded import Dut
- MEM_TEST_UNICORE = {
- 'esp32s2': [
- ['IRAM0_SRAM', 'WRX'],
- ['IRAM0_RTCFAST', 'WRX'],
- ['DRAM0_SRAM', 'WR'],
- ['DRAM0_RTCFAST', 'WR'],
- ['PERI1_RTCSLOW', 'WR'],
- ['PERI2_RTCSLOW_0', 'WRX'],
- ['PERI2_RTCSLOW_1', 'WRX']
- ],
- 'esp32c3': [
- ['IRAM0_SRAM', 'WRX'],
- ['DRAM0_SRAM', 'WR'],
- ['IRAM0_RTCFAST', 'WRX']
- ],
- 'esp32s3': [
- ['IRAM0_SRAM (core 0)', 'WRX'],
- ['DRAM0_SRAM (core 0)', 'WR']
- # temporarily disabled unless IDF-5208 gets merged
- # ['IRAM0_RTCFAST', 'WR'],
- ],
- }
- MEM_TEST_MULTICORE = {
- 'esp32s3': [
- # instruction execute test temporarily disabled
- # ['IRAM0_SRAM (core 0)', 'WRX'],
- ['IRAM0_SRAM (core 0)', 'WR'],
- ['DRAM0_SRAM (core 0)', 'WR'],
- # instruction execute test temporarily disabled
- # ['IRAM0_SRAM (core 1)', 'WRX'],
- ['IRAM0_SRAM (core 1)', 'WR'],
- ['DRAM0_SRAM (core 1)', 'WR']
- # temporarily disabled unless IDF-5208 gets merged
- # ['IRAM0_RTCFAST', 'WR'],
- ]
- }
- @pytest.mark.esp32s2
- @pytest.mark.esp32s3
- @pytest.mark.esp32c3
- @pytest.mark.generic
- def test_sys_memprot(dut: Dut) -> None:
- current_target = dut.target
- unicore = dut.app.sdkconfig.get('FREERTOS_UNICORE')
- mem_test_cfg = MEM_TEST_UNICORE if unicore else MEM_TEST_MULTICORE
- logging.info(f'Test cfg: {current_target}')
- for i in mem_test_cfg[current_target]:
- if 'R' in i[1]:
- dut.expect_exact(i[0] + ' read low: OK')
- dut.expect_exact(i[0] + ' read high: OK')
- if 'W' in i[1]:
- dut.expect_exact(i[0] + ' write low: OK')
- dut.expect_exact(i[0] + ' write high: OK')
- if 'X' in i[1]:
- dut.expect_exact(i[0] + ' exec low: OK')
- dut.expect_exact(i[0] + ' exec high: OK')
|