|
|
@@ -36,37 +36,60 @@ static void test_psram_content()
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-// NOTE: this unit test rely on the config that PSRAM of 8MB is used only when CONFIG_SPIRAM_BNKSWITCH_ENABLE is set
|
|
|
-TEST_CASE("can use spi when not being used by psram", "[psram_4m]")
|
|
|
-{
|
|
|
- spi_host_device_t host;
|
|
|
-#if !CONFIG_SPIRAM_SUPPORT || !CONFIG_SPIRAM_SPEED_80M || CONFIG_SPIRAM_BANKSWITCH_ENABLE
|
|
|
- //currently all 8M psram don't need more SPI peripherals
|
|
|
- host = -1;
|
|
|
-#elif CONFIG_SPIRAM_OCCUPY_HSPI_HOST
|
|
|
- host = HSPI_HOST;
|
|
|
-#elif CONFIG_SPIRAM_OCCUPY_VSPI_HOST
|
|
|
- host = VSPI_HOST;
|
|
|
-#endif
|
|
|
+bool psram_is_32mbit_ver0(void);
|
|
|
|
|
|
+static void test_spi_bus_occupy(spi_host_device_t expected_occupied_host)
|
|
|
+{
|
|
|
bool claim_hspi = spicommon_periph_claim(HSPI_HOST, "ut-hspi");
|
|
|
if (claim_hspi) ESP_LOGI(TAG, "HSPI claimed.");
|
|
|
|
|
|
bool claim_vspi = spicommon_periph_claim(VSPI_HOST, "ut-vspi");
|
|
|
if (claim_vspi) ESP_LOGI(TAG, "VSPI claimed.");
|
|
|
|
|
|
- if (host == HSPI_HOST) {
|
|
|
- TEST_ASSERT(claim_hspi==false);
|
|
|
- TEST_ASSERT(claim_vspi==true);
|
|
|
- } else if (host == VSPI_HOST) {
|
|
|
- TEST_ASSERT(claim_vspi==false);
|
|
|
- TEST_ASSERT(claim_hspi==true);
|
|
|
+ if (expected_occupied_host == HSPI_HOST) {
|
|
|
+ TEST_ASSERT_FALSE(claim_hspi);
|
|
|
+ TEST_ASSERT(claim_vspi);
|
|
|
+ } else if (expected_occupied_host == VSPI_HOST) {
|
|
|
+ TEST_ASSERT_FALSE(claim_vspi);
|
|
|
+ TEST_ASSERT(claim_hspi);
|
|
|
} else {
|
|
|
- TEST_ASSERT(claim_hspi==true);
|
|
|
- TEST_ASSERT(claim_vspi==true);
|
|
|
+ TEST_ASSERT(claim_hspi);
|
|
|
+ TEST_ASSERT(claim_vspi);
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SPIRAM_SUPPORT
|
|
|
test_psram_content();
|
|
|
#endif
|
|
|
}
|
|
|
+
|
|
|
+#if CONFIG_SPIRAM_OCCUPY_HSPI_HOST || CONFIG_SPIRAM_OCCUPY_VSPI_HOST
|
|
|
+TEST_CASE("some spi bus occpied by psram", "[psram_4m][test_env=UT_T1_PSRAMV0]")
|
|
|
+{
|
|
|
+// NOTE: this unit test rely on the config that PSRAM of 8MB is used only when CONFIG_SPIRAM_BNKSWITCH_ENABLE is set
|
|
|
+//currently all 8M psram don't need more SPI peripherals
|
|
|
+#if !CONFIG_SPIRAM_SUPPORT || !CONFIG_SPIRAM_SPEED_80M || CONFIG_SPIRAM_BANKSWITCH_ENABLE
|
|
|
+#error unexpected test config, only psram 32MBit ver 0 at 80MHz will trigger the workaround
|
|
|
+#endif
|
|
|
+
|
|
|
+ spi_host_device_t host;
|
|
|
+ if (!psram_is_32mbit_ver0()) {
|
|
|
+ TEST_FAIL_MESSAGE("unexpected psram version");
|
|
|
+ }
|
|
|
+
|
|
|
+#if CONFIG_SPIRAM_OCCUPY_HSPI_HOST
|
|
|
+ host = HSPI_HOST;
|
|
|
+#elif CONFIG_SPIRAM_OCCUPY_VSPI_HOST
|
|
|
+ host = VSPI_HOST;
|
|
|
+#endif
|
|
|
+ test_spi_bus_occupy(host);
|
|
|
+}
|
|
|
+#else
|
|
|
+TEST_CASE("can use spi when not being used by psram", "[psram_4m]")
|
|
|
+{
|
|
|
+#if CONFIG_SPIRAM_SUPPORT && CONFIG_SPIRAM_SPEED_80M
|
|
|
+#error unexpected test config, some runners using the UT_T1_PSRAMV0 but still perform this test.\
|
|
|
+they will not pass this test at 80MHz.
|
|
|
+#endif
|
|
|
+ test_spi_bus_occupy(-1);
|
|
|
+}
|
|
|
+#endif
|