@@ -48,14 +48,24 @@ static uint64_t esp32c3_rtc_cntl_read(void* opaque, hwaddr addr, unsigned int si
48
48
case A_RTC_CNTL_RTC_RESET_STATE :
49
49
r = s -> reason ;
50
50
break ;
51
+
52
+ case A_RTC_CNTL_RTC_STORE0 :
53
+ case A_RTC_CNTL_RTC_STORE1 :
54
+ case A_RTC_CNTL_RTC_STORE2 :
55
+ case A_RTC_CNTL_RTC_STORE3 :
56
+ r = s -> scratch_reg [(addr - A_RTC_CNTL_RTC_STORE0 ) / 4 ];
57
+ break ;
58
+
51
59
case A_RTC_CNTL_RTC_STORE4 :
52
- /* XTAL frequency: 40MHz, must be in both upper and lower half-word */
53
- r = 0x00280028 ;
60
+ case A_RTC_CNTL_RTC_STORE5 :
61
+ case A_RTC_CNTL_RTC_STORE6 :
62
+ case A_RTC_CNTL_RTC_STORE7 :
63
+ r = s -> scratch_reg [(addr - A_RTC_CNTL_RTC_STORE4 ) / 4 + 4 ];
54
64
break ;
55
65
default :
56
66
#if RTCCNTL_WARNING
57
67
/* Other registers are not supported yet */
58
- warn_report ("[RTCCNTL] Unsupported read to %08lx\n " , addr );
68
+ warn_report ("[RTCCNTL] Unsupported read to %08lx" , addr );
59
69
#endif
60
70
break ;
61
71
}
@@ -81,10 +91,25 @@ static void esp32c3_rtc_cntl_write(void* opaque, hwaddr addr, uint64_t value, un
81
91
esp32c3_reset_request (opaque , ESP32C3_RTC_SW_CPU_RESET , 1 );
82
92
}
83
93
break ;
94
+
95
+ case A_RTC_CNTL_RTC_STORE0 :
96
+ case A_RTC_CNTL_RTC_STORE1 :
97
+ case A_RTC_CNTL_RTC_STORE2 :
98
+ case A_RTC_CNTL_RTC_STORE3 :
99
+ s -> scratch_reg [(addr - A_RTC_CNTL_RTC_STORE0 ) / 4 ] = value ;
100
+ break ;
101
+
102
+ case A_RTC_CNTL_RTC_STORE4 :
103
+ case A_RTC_CNTL_RTC_STORE5 :
104
+ case A_RTC_CNTL_RTC_STORE6 :
105
+ case A_RTC_CNTL_RTC_STORE7 :
106
+ s -> scratch_reg [(addr - A_RTC_CNTL_RTC_STORE4 ) / 4 + 4 ] = value ;
107
+ break ;
108
+
84
109
default :
85
110
#if RTCCNTL_WARNING
86
111
/* Other registers are not supported yet */
87
- warn_report ("[RTCCNTL] Unsupported write to %08lx (%08lx)\n " , addr , value );
112
+ warn_report ("[RTCCNTL] Unsupported write to %08lx (%08lx)" , addr , value );
88
113
#endif
89
114
break ;
90
115
}
0 commit comments