Merge changes from topic "soundstream-bm" * changes: Updates for importing matcha to another Bazel project Add support for resuming at PC in dif_ml_top
diff --git a/rules/matcha.bzl b/rules/matcha.bzl index 8caf9aa..24b6093 100644 --- a/rules/matcha.bzl +++ b/rules/matcha.bzl
@@ -34,23 +34,23 @@ # List of supported riscv core targets. VERILATOR_CORE_TARGETS = { - "secure_core": "//sw/device/lib/arch:sim_verilator", - "smc": "//sw/device/lib/arch:smc_sim_verilator", + "secure_core": "@matcha//sw/device/lib/arch:sim_verilator", + "smc": "@matcha//sw/device/lib/arch:smc_sim_verilator", } DV_CORE_TARGETS = { - "secure_core": "//sw/device/lib/arch:sim_dv", - "smc": "//sw/device/lib/arch:smc_sim_dv", + "secure_core": "@matcha//sw/device/lib/arch:sim_dv", + "smc": "@matcha//sw/device/lib/arch:smc_sim_dv", } NEXUS_CORE_TARGETS = { - "secure_core": "//sw/device/lib/arch:sc_fpga_nexus", - "smc": "//sw/device/lib/arch:smc_fpga_nexus", + "secure_core": "@matcha//sw/device/lib/arch:sc_fpga_nexus", + "smc": "@matcha//sw/device/lib/arch:smc_fpga_nexus", } ASIC_CORE_TARGETS = { - "secure_core": "//sw/device/lib/arch:sc_asic", - "smc": "//sw/device/lib/arch:smc_asic", + "secure_core": "@matcha//sw/device/lib/arch:sc_asic", + "smc": "@matcha//sw/device/lib/arch:smc_asic", } MATCHA_COPTS = [
diff --git a/sw/device/lib/dif/dif_ml_top.c b/sw/device/lib/dif/dif_ml_top.c index f2ca845..9580874 100644 --- a/sw/device/lib/dif/dif_ml_top.c +++ b/sw/device/lib/dif/dif_ml_top.c
@@ -45,6 +45,19 @@ return kDifOk; } +dif_result_t dif_ml_top_resume_ctrl_en(const dif_ml_top_t *ml_top, uint32_t pc) { + if (ml_top == NULL) { + return kDifBadArg; + } + if (pc >= 0x400000) { + return kDifBadArg; + } + uint32_t ctrl_en = 0; + ctrl_en = bitfield_field32_write(ctrl_en, ML_TOP_CTRL_PC_START_FIELD, pc); + mmio_region_write32(ml_top->base_addr, ML_TOP_CTRL_REG_OFFSET, ctrl_en); + return kDifOk; +} + dif_result_t dif_ml_top_read_ctrl_en(const dif_ml_top_t *ml_top, uint32_t *result) { if (ml_top == NULL) { return kDifBadArg;
diff --git a/sw/device/lib/dif/dif_ml_top.h b/sw/device/lib/dif/dif_ml_top.h index 81f079c..57ed19e 100644 --- a/sw/device/lib/dif/dif_ml_top.h +++ b/sw/device/lib/dif/dif_ml_top.h
@@ -34,6 +34,7 @@ // ML_Top Control Register dif_result_t dif_ml_top_reset_ctrl_en(const dif_ml_top_t *ml_top); dif_result_t dif_ml_top_release_ctrl_en(const dif_ml_top_t *ml_top); +dif_result_t dif_ml_top_resume_ctrl_en(const dif_ml_top_t *ml_top, uint32_t pc); dif_result_t dif_ml_top_read_ctrl_en(const dif_ml_top_t *ml_top, uint32_t *result);
diff --git a/sw/device/lib/testing/test_framework/ottf_sc.ld b/sw/device/lib/testing/test_framework/ottf_sc.ld index 49bd456..d51172e 100644 --- a/sw/device/lib/testing/test_framework/ottf_sc.ld +++ b/sw/device/lib/testing/test_framework/ottf_sc.ld
@@ -9,7 +9,7 @@ * * This linker script generates a binary to run rom. */ - +SEARCH_DIR ( external/matcha ) INCLUDE hw/top_matcha/sw/autogen/top_matcha_memory.ld /**
diff --git a/sw/device/lib/testing/test_framework/ottf_smc.ld b/sw/device/lib/testing/test_framework/ottf_smc.ld index ed83c13..4538ca4 100644 --- a/sw/device/lib/testing/test_framework/ottf_smc.ld +++ b/sw/device/lib/testing/test_framework/ottf_smc.ld
@@ -10,6 +10,7 @@ * This linker script generates a binary to run rom. */ +SEARCH_DIR ( external/matcha ) INCLUDE hw/top_matcha/sw/autogen/top_matcha_memory.ld MEMORY { virtual(rx): ORIGIN = 0x10000, LENGTH = 0x400000