@@ -151,49 +151,70 @@ namespace bemu {
151151#define THREAD (hart ) ((hart) % EMU_THREADS_PER_MINION)
152152
153153
154- // TODO: Reset value constants
155-
156-
157154void neigh_esrs_t::debug_reset ()
158155{
159- // TODO: Implement for ERBIUM
156+ hactrl = 0 ;
157+ hastatus0 = 0 ;
158+ hastatus1 = 0 ;
160159}
161160
162161
163162void neigh_esrs_t::warm_reset ()
164163{
165- // TODO: Implement for ERBIUM
164+ ipi_redirect_pc = 0 ;
165+ pmu_ctrl = false ;
166166}
167167
168168
169169void neigh_esrs_t::cold_reset ()
170170{
171- // TODO: Implement for ERBIUM
171+ minion_boot = 0x0200a000 ; // boot rom
172+ mprot = 0 ;
173+ dummy0 = 0 ;
174+ dummy2 = false ;
175+ neigh_chicken = 0 ;
176+ icache_err_log_ctl = 0 ;
177+ icache_err_log_info = 0 ;
178+ icache_sbe_dbe_counts = 0 ;
172179}
173180
174181
175182void shire_cache_esrs_t::cold_reset ()
176183{
177- // TODO: Implement for ERBIUM
184+ // No shire cache registers for Erbium
178185}
179186
180187
181188void shire_other_esrs_t::warm_reset ()
182189{
183- // TODO: Implement for ERBIUM
190+ for (int i = 0 ; i < 32 ; ++i) {
191+ fast_local_barrier[i] = 0 ;
192+ }
193+ ipi_redirect_filter = 0 ;
194+ ipi_trigger = 0 ;
195+ shire_coop_mode = false ;
196+ icache_prefetch_active = false ;
184197}
185198
186199
187200void shire_other_esrs_t::cold_reset (unsigned shireid)
188201{
189202 (void ) shireid;
190- // TODO: Implement for ERBIUM
203+ minion_feature = 0x01 ;
204+ thread0_disable = 0xfe ; // Can be overriden by OTP(?)
205+ thread1_disable = 0xff ;
206+ mtime_local_target = 0 ;
207+ clk_gate_ctrl = 0 ;
208+ // TODO: no implemented yet
209+ // debug_clk_gate_ctrl = 0;
210+ // time_config = 0x28;
211+ // sm_config = 0;
191212}
192213
193214
194215void mem_shire_esrs_t::cold_reset ()
195216{
196- // TODO: Implement for ERBIUM
217+ // No mem shire registers for Erbium
197218}
198219
199220
0 commit comments