15 #include "sw/device/lib/testing/spi_device_testutils.h"
16 #include "sw/device/lib/testing/spi_flash_testutils.h"
17 #include "sw/device/lib/testing/spi_host_testutils.h"
18 #include "sw/device/lib/testing/test_framework/check.h"
20 #include "sw/device/tests/spi_host_flash_test_impl.h"
24 static_assert(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__,
25 "This test assumes the target platform is little endian.");
27 OTTF_DEFINE_TEST_CONFIG();
29 static void init_test(dif_spi_host_t *spi_host) {
32 CHECK_DIF_OK(dif_pinmux_init(addr, &pinmux));
34 spi_pinmux_platform_id_t platform_id = kSpiPinmuxPlatformIdCount;
37 platform_id = kSpiPinmuxPlatformIdTeacup;
40 platform_id = kSpiPinmuxPlatformIdCw310;
43 platform_id = kSpiPinmuxPlatformIdCw340;
46 CHECK(
false,
"Device not supported %u",
kDeviceType);
49 dt_pad_t csb_pad = kDtPadIoc9;
51 spi_host1_pinmux_connect_to_bob(&pinmux, csb_pad, platform_id));
54 CHECK_DIF_OK(dif_spi_host_init(addr, spi_host));
56 CHECK(
kClockFreqUsbHz <= UINT32_MAX,
"kClockFreqUsbHz must fit in uint32_t");
64 "SPI_HOST config failed!");
70 dif_spi_host_t spi_host;
73 enum MacronixVendorSpecific {
74 kManufacturerId = 0xC2,
75 kPageQuadProgramOpcode = 0x38,
82 EXECUTE_TEST(result, test_read_jedec, &spi_host, kManufacturerId);
85 if (is_4_bytes_address_mode_supported()) {
93 kPageQuadProgramOpcode, kTransactionWidthMode144);
97 return status_ok(result);