summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/system.c4
-rw-r--r--zephyr/shim/src/CMakeLists.txt3
-rw-r--r--zephyr/shim/src/ztest_system.c100
-rw-r--r--zephyr/test/drivers/src/isl923x.c14
-rw-r--r--zephyr/test/drivers/src/stubs.c4
5 files changed, 42 insertions, 83 deletions
diff --git a/common/system.c b/common/system.c
index 8f85e85e3c..a4d18c350d 100644
--- a/common/system.c
+++ b/common/system.c
@@ -321,6 +321,7 @@ void system_print_banner(void)
}
}
+#ifdef CONFIG_RAM_SIZE
struct jump_data *get_jump_data(void)
{
uintptr_t addr;
@@ -343,6 +344,7 @@ struct jump_data *get_jump_data(void)
return (struct jump_data *)(addr - sizeof(struct jump_data));
}
+#endif
int system_jumped_to_this_image(void)
{
@@ -735,6 +737,7 @@ int system_set_active_copy(enum ec_image copy)
return system_set_bbram(SYSTEM_BBRAM_IDX_TRY_SLOT, copy);
}
+#ifdef CONFIG_EC_PROTECTED_STORAGE_OFF
/*
* This is defined in system.c instead of flash.c because it's called even
* on the boards which don't include flash.o. (e.g. hadoken, stm32l476g-eval)
@@ -750,6 +753,7 @@ uint32_t flash_get_rw_offset(enum ec_image copy)
return CONFIG_EC_PROTECTED_STORAGE_OFF + CONFIG_RO_STORAGE_OFF;
}
+#endif
const struct image_data *system_get_image_data(enum ec_image copy)
{
diff --git a/zephyr/shim/src/CMakeLists.txt b/zephyr/shim/src/CMakeLists.txt
index ff7a8b5220..0dccfa1f8d 100644
--- a/zephyr/shim/src/CMakeLists.txt
+++ b/zephyr/shim/src/CMakeLists.txt
@@ -13,8 +13,9 @@ if (DEFINED CONFIG_ARCH_POSIX)
zephyr_library_sources(ztest_system.c)
else()
zephyr_library_sources(system.c)
- zephyr_library_sources("${PLATFORM_EC}/common/system.c")
endif()
+zephyr_library_sources("${PLATFORM_EC}/common/system.c")
+
zephyr_library_sources_ifdef(no_libgcc libgcc_${ARCH}.S)
zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_ADC adc.c)
diff --git a/zephyr/shim/src/ztest_system.c b/zephyr/shim/src/ztest_system.c
index 7c9d938f53..322876fefe 100644
--- a/zephyr/shim/src/ztest_system.c
+++ b/zephyr/shim/src/ztest_system.c
@@ -7,112 +7,78 @@
#include "cros_version.h"
#include "battery.h"
#include "charge_manager.h"
+#include "sysjump.h"
#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args)
-/* Ongoing actions preventing going into deep-sleep mode. */
-atomic_t sleep_mask;
+static struct jump_data mock_jump_data = {
+};
-void system_common_pre_init(void)
+struct jump_data *get_jump_data(void)
{
+ return &mock_jump_data;
}
-int system_add_jump_tag(uint16_t tag, int version, int size, const void *data)
+__attribute__((weak))
+void system_reset(int flags)
{
- return EC_SUCCESS;
+ __builtin_unreachable();
}
-const uint8_t *system_get_jump_tag(uint16_t tag, int *version, int *size)
-{
- return NULL;
-}
+static uint8_t bbram[SYSTEM_BBRAM_IDX_TRY_SLOT+1];
-#ifdef CONFIG_ZTEST
-struct system_jumped_late_mock system_jumped_late_mock = {
- .ret_val = 0,
- .call_count = 0,
-};
-#endif
-
-int system_jumped_late(void)
+test_mockable int system_get_bbram(enum system_bbram_idx idx, uint8_t *value)
{
-#ifdef CONFIG_ZTEST
- system_jumped_late_mock.call_count++;
-
- return system_jumped_late_mock.ret_val;
-#else
- return 0;
-#endif
+ if (idx <= SYSTEM_BBRAM_IDX_TRY_SLOT) {
+ *value = bbram[idx];
+ return EC_SUCCESS;
+ }
+ return EC_ERROR_INVAL;
}
-enum ec_image system_get_image_copy(void)
+test_mockable int system_set_bbram(enum system_bbram_idx idx, uint8_t value)
{
- return EC_IMAGE_RW;
+ if (idx <= SYSTEM_BBRAM_IDX_TRY_SLOT) {
+ bbram[idx] = value;
+ return EC_SUCCESS;
+ }
+ return EC_ERROR_INVAL;
}
-int system_is_locked(void)
+uint32_t flash_get_rw_offset(enum ec_image copy)
{
return 0;
}
-int system_is_in_rw(void)
+int crec_flash_read(int offset, int size, char *data)
{
- return 1;
+ return EC_ERROR_INVAL;
}
-uint32_t system_get_reset_flags(void)
+test_mockable const char *system_get_chip_vendor(void)
{
- /* Don't power up the AP automatically, let the tests do it if they
- * need to.
- */
- return EC_RESET_FLAG_AP_OFF;
+ return "Testing";
}
-void system_print_banner(void)
+test_mockable const char *system_get_chip_name(void)
{
- printk("Image: %s\n", build_info);
+ return "emu";
}
-void system_set_reset_flags(uint32_t flags)
+test_mockable const char *system_get_chip_revision(void)
{
+ return "";
}
-struct jump_data *get_jump_data(void)
+void board_reset_pd_mcu(void)
{
- return NULL;
}
-__attribute__((weak))
-void system_reset(int flags)
+test_mockable void system_hibernate(uint32_t seconds, uint32_t microseconds)
{
- __builtin_unreachable();
}
-int system_can_boot_ap(void)
+uint32_t crec_flash_get_protect(void)
{
- int soc = -1;
- int pow = -1;
-
-#if defined(CONFIG_BATTERY) && \
- defined(CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON)
- /* Require a minimum battery level to power on. If battery isn't
- * present, battery_state_of_charge_abs returns false.
- */
- if (battery_state_of_charge_abs(&soc) == EC_SUCCESS &&
- soc >= CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON)
- return 1;
-#endif
-
-#if defined(CONFIG_CHARGE_MANAGER) && \
- defined(CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON)
- pow = charge_manager_get_power_limit_uw() / 1000;
- if (pow >= CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON)
- return 1;
-#else
- /* For fixed AC system */
- return 1;
-#endif
-
- CPRINTS("Not enough power to boot (%d %%, %d mW)", soc, pow);
return 0;
}
diff --git a/zephyr/test/drivers/src/isl923x.c b/zephyr/test/drivers/src/isl923x.c
index c2e0f00c76..05737a9af0 100644
--- a/zephyr/test/drivers/src/isl923x.c
+++ b/zephyr/test/drivers/src/isl923x.c
@@ -668,18 +668,10 @@ ZTEST(isl923x, test_init)
"Expected input current 0mV but got %dmV", input_current);
/*
- * Test system_jumped_late being true (will not call
- * set_input_current_limit)
+ * TODO(b/219520539): Test system_jumped_late being true (will not call
+ * set_input_current_limit). It isn't clear how to stimulate the
+ * code in system.c to cause a late jump.
*/
- system_jumped_late_mock.ret_val = true;
- system_jumped_late_mock.call_count = 0;
- isl923x_emul_reset(isl923x_emul);
- isl923x_drv.init(CHARGER_NUM);
- zassert_equal(
- 1, system_jumped_late_mock.call_count,
- "Expected to have called system_jumped_late() once, but got %d calls",
- system_jumped_late_mock.call_count);
- system_jumped_late_mock.ret_val = false;
}
ZTEST(isl923x, test_isl923x_is_acok)
diff --git a/zephyr/test/drivers/src/stubs.c b/zephyr/test/drivers/src/stubs.c
index 4f2ae8f7a9..b9aae5e8ef 100644
--- a/zephyr/test/drivers/src/stubs.c
+++ b/zephyr/test/drivers/src/stubs.c
@@ -423,7 +423,3 @@ int clock_get_freq(void)
{
return 16000000;
}
-
-void system_enter_hibernate(uint32_t seconds, uint32_t microseconds)
-{
-}