Skip to content

Commit d26cc38

Browse files
committed
feat(esp_hw_support): add branch prediction config retention
1 parent 2973d97 commit d26cc38

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

components/esp_hw_support/lowpower/port/esp32p4/rvsleep-frames.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ STRUCT_END(RvCoreCriticalSleepFrame)
113113
STRUCT_BEGIN
114114
STRUCT_FIELD (long, 4, RV_SLP_CTX_MSCRATCH, mscratch)
115115
STRUCT_FIELD (long, 4, RV_SLP_CTX_MISA, misa)
116+
STRUCT_FIELD (long, 4, RV_SLP_CTX_MHCR, mhcr)
116117
STRUCT_FIELD (long, 4, RV_SLP_CTX_TSELECT, tselect)
117118
STRUCT_FIELD (long, 4, RV_SLP_CTX_TDATA1, tdata1)
118119
STRUCT_FIELD (long, 4, RV_SLP_CTX_TDATA2, tdata2)

components/esp_hw_support/lowpower/port/esp32p4/sleep_cpu.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ static TCM_IRAM_ATTR RvCoreNonCriticalSleepFrame * rv_core_noncritical_regs_save
192192

193193
frame->mscratch = RV_READ_CSR(mscratch);
194194
frame->misa = RV_READ_CSR(misa);
195+
frame->mhcr = RV_READ_CSR(MHCR);
195196
frame->tselect = RV_READ_CSR(tselect);
196197
frame->tdata1 = RV_READ_CSR(tdata1);
197198
frame->tdata2 = RV_READ_CSR(tdata2);
@@ -260,6 +261,7 @@ static TCM_IRAM_ATTR void rv_core_noncritical_regs_restore(void)
260261

261262
RV_WRITE_CSR(mscratch, frame->mscratch);
262263
RV_WRITE_CSR(misa, frame->misa);
264+
RV_WRITE_CSR(MHCR, frame->mhcr);
263265
RV_WRITE_CSR(tselect, frame->tselect);
264266
RV_WRITE_CSR(tdata1, frame->tdata1);
265267
RV_WRITE_CSR(tdata2, frame->tdata2);

0 commit comments

Comments
 (0)