6 #include "dt/dt_pinmux.h"
7 #include "dt/dt_spi_host.h"
15 #include "sw/device/lib/testing/dma_testutils.h"
16 #include "sw/device/lib/testing/pinmux_testutils.h"
17 #include "sw/device/lib/testing/rand_testutils.h"
18 #include "sw/device/lib/testing/test_framework/check.h"
20 #include "sw/device/lib/testing/test_framework/status.h"
25 #define CHUNK_SIZE 32 * 4
27 OTTF_DEFINE_TEST_CONFIG();
30 kSoftwareBarrierTimeoutUsec = 500,
34 static volatile const uint8_t kSoftwareBarrier = 0;
39 static volatile uint32_t kShaDigestExpData[16];
40 static volatile uint8_t kShaMode;
43 uint8_t received_data[TX_SIZE] __attribute__((aligned(4)));
45 static dif_spi_host_t spi_host;
46 static dif_pinmux_t pinmux;
51 CHECK_DIF_OK(dif_pinmux_init_from_dt(kDtPinmuxAon, &pinmux));
52 pinmux_testutils_init(&pinmux);
55 CHECK_DIF_OK(dif_dma_init_from_dt(kDtDma, &dma));
58 setup_pads_spi_host0(&pinmux);
61 CHECK_DIF_OK(dif_spi_host_init_from_dt((dt_spi_host_t)0, &spi_host));
66 LOG_INFO(
"spi host configuration complete");
69 kShaDigestExpData[0] = 0;
71 setup_spi_dma_transaction(&spi_host, &dma, &received_data[0], CHUNK_SIZE,
77 IBEX_SPIN_FOR(kSoftwareBarrier == 1, kSoftwareBarrierTimeoutUsec);
84 CHECK(
status & kDifDmaStatusAborted,
"Abort bit not set");
89 LOG_INFO(
"spi host re-configuration complete");
92 setup_spi_dma_transaction(&spi_host, &dma, &received_data[0], CHUNK_SIZE,
101 CHECK_ARRAYS_EQ((uint8_t *)digest, (uint8_t *)kShaDigestExpData, digest_len);