OpenOCD
debug_defines.c
Go to the documentation of this file.
1 // SPDX-License-Identifier: BSD-2-Clause OR CC-BY-4.0
2 /* This file was auto-generated by running 'make debug_defines' in https://github.com/riscv/riscv-debug-spec/ (22a7576) */
3 
4 #include "debug_defines.h"
5 #include <stddef.h>
6 #include <assert.h>
8 {
9  struct riscv_debug_reg_field_list result = {
10  .field = {
11  .name = "Version",
12  .lsb = 0x1c,
13  .msb = 0x1f,
14  .values = NULL
15  },
16  .get_next = NULL
17  };
18  return result;
19 }
20 
22 {
23  struct riscv_debug_reg_field_list result = {
24  .field = {
25  .name = "PartNumber",
26  .lsb = 0xc,
27  .msb = 0x1b,
28  .values = NULL
29  },
30  .get_next = dtm_idcode_get_version
31  };
32  return result;
33 }
34 
36 {
37  struct riscv_debug_reg_field_list result = {
38  .field = {
39  .name = "ManufId",
40  .lsb = 1,
41  .msb = 0xb,
42  .values = NULL
43  },
44  .get_next = dtm_idcode_get_partnumber
45  };
46  return result;
47 }
48 
50 {
51  struct riscv_debug_reg_field_list result = {
52  .field = {
53  .name = "1",
54  .lsb = 0,
55  .msb = 0,
56  .values = NULL
57  },
58  .get_next = dtm_idcode_get_manufid
59  };
60  return result;
61 }
62 
63 static const char *dtm_dtmcs_errinfo_values[8] = {
64  [0] = "not_implemented",
65  [1] = "dmi_error",
66  [2] = "communication_error",
67  [3] = "device_error",
68  [4] = "unknown"
69 };
70 static const char *dtm_dtmcs_version_values[16] = {
71  [0] = "0_11",
72  [1] = "1_0",
73  [15] = "custom"
74 };
76 {
77  struct riscv_debug_reg_field_list result = {
78  .field = {
79  .name = "abits",
80  .lsb = 4,
81  .msb = 9,
82  .values = NULL
83  },
84  .get_next = NULL
85  };
86  return result;
87 }
88 
90 {
91  struct riscv_debug_reg_field_list result = {
92  .field = {
93  .name = "errinfo",
94  .lsb = 0x12,
95  .msb = 0x14,
96  .values = dtm_dtmcs_errinfo_values
97  },
98  .get_next = dtm_dtmcs_get_abits
99  };
100  return result;
101 }
102 
104 {
105  struct riscv_debug_reg_field_list result = {
106  .field = {
107  .name = "dtmhardreset",
108  .lsb = 0x11,
109  .msb = 0x11,
110  .values = NULL
111  },
112  .get_next = dtm_dtmcs_get_errinfo
113  };
114  return result;
115 }
116 
118 {
119  struct riscv_debug_reg_field_list result = {
120  .field = {
121  .name = "dmireset",
122  .lsb = 0x10,
123  .msb = 0x10,
124  .values = NULL
125  },
126  .get_next = dtm_dtmcs_get_dtmhardreset
127  };
128  return result;
129 }
130 
132 {
133  struct riscv_debug_reg_field_list result = {
134  .field = {
135  .name = "idle",
136  .lsb = 0xc,
137  .msb = 0xe,
138  .values = NULL
139  },
140  .get_next = dtm_dtmcs_get_dmireset
141  };
142  return result;
143 }
144 
146 {
147  struct riscv_debug_reg_field_list result = {
148  .field = {
149  .name = "dmistat",
150  .lsb = 0xa,
151  .msb = 0xb,
152  .values = NULL
153  },
154  .get_next = dtm_dtmcs_get_idle
155  };
156  return result;
157 }
158 
160 {
161  struct riscv_debug_reg_field_list result = {
162  .field = {
163  .name = "version",
164  .lsb = 0,
165  .msb = 3,
166  .values = dtm_dtmcs_version_values
167  },
168  .get_next = dtm_dtmcs_get_dmistat
169  };
170  return result;
171 }
172 
173 static const char *dtm_dmi_op_values[4] = {};
175 {
176  assert(context.abits.is_set);
177  struct riscv_debug_reg_field_list result = {
178  .field = {
179  .name = "address",
180  .lsb = 0x22,
181  .msb = (context.abits.value + 0x21),
182  .values = NULL
183  },
184  .get_next = NULL
185  };
186  return result;
187 }
188 
190 {
191  struct riscv_debug_reg_field_list result = {
192  .field = {
193  .name = "data",
194  .lsb = 2,
195  .msb = 0x21,
196  .values = NULL
197  },
198  .get_next = dtm_dmi_get_address
199  };
200  return result;
201 }
202 
204 {
205  struct riscv_debug_reg_field_list result = {
206  .field = {
207  .name = "op",
208  .lsb = 0,
209  .msb = 1,
210  .values = dtm_dmi_op_values
211  },
212  .get_next = dtm_dmi_get_data
213  };
214  return result;
215 }
216 
217 
218 static const char *csr_dcsr_debugver_values[16] = {
219  [0] = "none",
220  [4] = "1_0",
221  [15] = "custom"
222 };
223 static const char *csr_dcsr_extcause_values[8] = {
224  [0] = "critical_error"
225 };
226 static const char *csr_dcsr_cetrig_values[2] = {
227  [0] = "disabled",
228  [1] = "enabled"
229 };
230 static const char *csr_dcsr_pelp_values[2] = {
231  [0] = "NO_LP_EXPECTED",
232  [1] = "LP_EXPECTED"
233 };
234 static const char *csr_dcsr_ebreakvs_values[2] = {
235  [0] = "exception",
236  [1] = "debug_mode"
237 };
238 static const char *csr_dcsr_ebreakvu_values[2] = {
239  [0] = "exception",
240  [1] = "debug_mode"
241 };
242 static const char *csr_dcsr_ebreakm_values[2] = {
243  [0] = "exception",
244  [1] = "debug_mode"
245 };
246 static const char *csr_dcsr_ebreaks_values[2] = {
247  [0] = "exception",
248  [1] = "debug_mode"
249 };
250 static const char *csr_dcsr_ebreaku_values[2] = {
251  [0] = "exception",
252  [1] = "debug_mode"
253 };
254 static const char *csr_dcsr_stepie_values[2] = {
255  [0] = "interrupts_disabled",
256  [1] = "interrupts_enabled"
257 };
258 static const char *csr_dcsr_stopcount_values[2] = {
259  [0] = "normal",
260  [1] = "freeze"
261 };
262 static const char *csr_dcsr_stoptime_values[2] = {
263  [0] = "normal",
264  [1] = "freeze"
265 };
266 static const char *csr_dcsr_cause_values[8] = {
267  [1] = "ebreak",
268  [2] = "trigger",
269  [3] = "haltreq",
270  [4] = "step",
271  [5] = "resethaltreq",
272  [6] = "group",
273  [7] = "other"
274 };
275 static const char *csr_dcsr_mprven_values[2] = {
276  [0] = "disabled",
277  [1] = "enabled"
278 };
280 {
281  struct riscv_debug_reg_field_list result = {
282  .field = {
283  .name = "stoptime",
284  .lsb = 9,
285  .msb = 9,
286  .values = csr_dcsr_stoptime_values
287  },
288  .get_next = NULL
289  };
290  return result;
291 }
292 
294 {
295  struct riscv_debug_reg_field_list result = {
296  .field = {
297  .name = "cause",
298  .lsb = 6,
299  .msb = 8,
300  .values = csr_dcsr_cause_values
301  },
302  .get_next = csr_dcsr_get_stoptime
303  };
304  return result;
305 }
306 
308 {
309  struct riscv_debug_reg_field_list result = {
310  .field = {
311  .name = "v",
312  .lsb = 5,
313  .msb = 5,
314  .values = NULL
315  },
316  .get_next = csr_dcsr_get_cause
317  };
318  return result;
319 }
320 
322 {
323  struct riscv_debug_reg_field_list result = {
324  .field = {
325  .name = "mprven",
326  .lsb = 4,
327  .msb = 4,
328  .values = csr_dcsr_mprven_values
329  },
330  .get_next = csr_dcsr_get_v
331  };
332  return result;
333 }
334 
336 {
337  struct riscv_debug_reg_field_list result = {
338  .field = {
339  .name = "nmip",
340  .lsb = 3,
341  .msb = 3,
342  .values = NULL
343  },
344  .get_next = csr_dcsr_get_mprven
345  };
346  return result;
347 }
348 
350 {
351  struct riscv_debug_reg_field_list result = {
352  .field = {
353  .name = "debugver",
354  .lsb = 0x1c,
355  .msb = 0x1f,
356  .values = csr_dcsr_debugver_values
357  },
358  .get_next = csr_dcsr_get_nmip
359  };
360  return result;
361 }
362 
364 {
365  struct riscv_debug_reg_field_list result = {
366  .field = {
367  .name = "extcause",
368  .lsb = 0x18,
369  .msb = 0x1a,
370  .values = csr_dcsr_extcause_values
371  },
372  .get_next = csr_dcsr_get_debugver
373  };
374  return result;
375 }
376 
378 {
379  struct riscv_debug_reg_field_list result = {
380  .field = {
381  .name = "step",
382  .lsb = 2,
383  .msb = 2,
384  .values = NULL
385  },
386  .get_next = csr_dcsr_get_extcause
387  };
388  return result;
389 }
390 
392 {
393  struct riscv_debug_reg_field_list result = {
394  .field = {
395  .name = "cetrig",
396  .lsb = 0x13,
397  .msb = 0x13,
398  .values = csr_dcsr_cetrig_values
399  },
400  .get_next = csr_dcsr_get_step
401  };
402  return result;
403 }
404 
406 {
407  struct riscv_debug_reg_field_list result = {
408  .field = {
409  .name = "pelp",
410  .lsb = 0x12,
411  .msb = 0x12,
412  .values = csr_dcsr_pelp_values
413  },
414  .get_next = csr_dcsr_get_cetrig
415  };
416  return result;
417 }
418 
420 {
421  struct riscv_debug_reg_field_list result = {
422  .field = {
423  .name = "ebreakvs",
424  .lsb = 0x11,
425  .msb = 0x11,
426  .values = csr_dcsr_ebreakvs_values
427  },
428  .get_next = csr_dcsr_get_pelp
429  };
430  return result;
431 }
432 
434 {
435  struct riscv_debug_reg_field_list result = {
436  .field = {
437  .name = "ebreakvu",
438  .lsb = 0x10,
439  .msb = 0x10,
440  .values = csr_dcsr_ebreakvu_values
441  },
442  .get_next = csr_dcsr_get_ebreakvs
443  };
444  return result;
445 }
446 
448 {
449  struct riscv_debug_reg_field_list result = {
450  .field = {
451  .name = "ebreakm",
452  .lsb = 0xf,
453  .msb = 0xf,
454  .values = csr_dcsr_ebreakm_values
455  },
456  .get_next = csr_dcsr_get_ebreakvu
457  };
458  return result;
459 }
460 
462 {
463  struct riscv_debug_reg_field_list result = {
464  .field = {
465  .name = "ebreaks",
466  .lsb = 0xd,
467  .msb = 0xd,
468  .values = csr_dcsr_ebreaks_values
469  },
470  .get_next = csr_dcsr_get_ebreakm
471  };
472  return result;
473 }
474 
476 {
477  struct riscv_debug_reg_field_list result = {
478  .field = {
479  .name = "ebreaku",
480  .lsb = 0xc,
481  .msb = 0xc,
482  .values = csr_dcsr_ebreaku_values
483  },
484  .get_next = csr_dcsr_get_ebreaks
485  };
486  return result;
487 }
488 
490 {
491  struct riscv_debug_reg_field_list result = {
492  .field = {
493  .name = "stepie",
494  .lsb = 0xb,
495  .msb = 0xb,
496  .values = csr_dcsr_stepie_values
497  },
498  .get_next = csr_dcsr_get_ebreaku
499  };
500  return result;
501 }
502 
504 {
505  struct riscv_debug_reg_field_list result = {
506  .field = {
507  .name = "stopcount",
508  .lsb = 0xa,
509  .msb = 0xa,
510  .values = csr_dcsr_stopcount_values
511  },
512  .get_next = csr_dcsr_get_stepie
513  };
514  return result;
515 }
516 
518 {
519  struct riscv_debug_reg_field_list result = {
520  .field = {
521  .name = "prv",
522  .lsb = 0,
523  .msb = 1,
524  .values = NULL
525  },
526  .get_next = csr_dcsr_get_stopcount
527  };
528  return result;
529 }
530 
532 {
533  assert(context.DXLEN.is_set);
534  struct riscv_debug_reg_field_list result = {
535  .field = {
536  .name = "dpc",
537  .lsb = 0,
538  .msb = (context.DXLEN.value + -1),
539  .values = NULL
540  },
541  .get_next = NULL
542  };
543  return result;
544 }
545 
547 {
548  assert(context.DXLEN.is_set);
549  struct riscv_debug_reg_field_list result = {
550  .field = {
551  .name = "dscratch0",
552  .lsb = 0,
553  .msb = (context.DXLEN.value + -1),
554  .values = NULL
555  },
556  .get_next = NULL
557  };
558  return result;
559 }
560 
562 {
563  assert(context.DXLEN.is_set);
564  struct riscv_debug_reg_field_list result = {
565  .field = {
566  .name = "dscratch1",
567  .lsb = 0,
568  .msb = (context.DXLEN.value + -1),
569  .values = NULL
570  },
571  .get_next = NULL
572  };
573  return result;
574 }
575 
577 {
578  assert(context.XLEN.is_set);
579  struct riscv_debug_reg_field_list result = {
580  .field = {
581  .name = "index",
582  .lsb = 0,
583  .msb = (context.XLEN.value + -1),
584  .values = NULL
585  },
586  .get_next = NULL
587  };
588  return result;
589 }
590 
591 static const char *csr_tdata1_type_values[16] = {
592  [0] = "none",
593  [1] = "legacy",
594  [2] = "mcontrol",
595  [3] = "icount",
596  [4] = "itrigger",
597  [5] = "etrigger",
598  [6] = "mcontrol6",
599  [7] = "tmexttrigger",
600  [15] = "disabled"
601 };
602 static const char *csr_tdata1_dmode_values[2] = {
603  [0] = "both",
604  [1] = "dmode"
605 };
607 {
608  assert(context.XLEN.is_set);
609  struct riscv_debug_reg_field_list result = {
610  .field = {
611  .name = "dmode",
612  .lsb = (context.XLEN.value + -5),
613  .msb = (context.XLEN.value + -5),
614  .values = csr_tdata1_dmode_values
615  },
616  .get_next = NULL
617  };
618  return result;
619 }
620 
622 {
623  assert(context.XLEN.is_set);
624  struct riscv_debug_reg_field_list result = {
625  .field = {
626  .name = "type",
627  .lsb = (context.XLEN.value + -4),
628  .msb = (context.XLEN.value + -1),
629  .values = csr_tdata1_type_values
630  },
631  .get_next = csr_tdata1_get_dmode
632  };
633  return result;
634 }
635 
637 {
638  assert(context.XLEN.is_set);
639  struct riscv_debug_reg_field_list result = {
640  .field = {
641  .name = "data",
642  .lsb = 0,
643  .msb = (context.XLEN.value + -6),
644  .values = NULL
645  },
646  .get_next = csr_tdata1_get_type
647  };
648  return result;
649 }
650 
652 {
653  assert(context.XLEN.is_set);
654  struct riscv_debug_reg_field_list result = {
655  .field = {
656  .name = "data",
657  .lsb = 0,
658  .msb = (context.XLEN.value + -1),
659  .values = NULL
660  },
661  .get_next = NULL
662  };
663  return result;
664 }
665 
667 {
668  assert(context.XLEN.is_set);
669  struct riscv_debug_reg_field_list result = {
670  .field = {
671  .name = "data",
672  .lsb = 0,
673  .msb = (context.XLEN.value + -1),
674  .values = NULL
675  },
676  .get_next = NULL
677  };
678  return result;
679 }
680 
681 static const char *csr_tinfo_version_values[256] = {
682  [0] = "0",
683  [1] = "1"
684 };
686 {
687  struct riscv_debug_reg_field_list result = {
688  .field = {
689  .name = "version",
690  .lsb = 0x18,
691  .msb = 0x1f,
692  .values = csr_tinfo_version_values
693  },
694  .get_next = NULL
695  };
696  return result;
697 }
698 
700 {
701  struct riscv_debug_reg_field_list result = {
702  .field = {
703  .name = "info",
704  .lsb = 0,
705  .msb = 0xf,
706  .values = NULL
707  },
708  .get_next = csr_tinfo_get_version
709  };
710  return result;
711 }
712 
713 static const char *csr_tcontrol_mte_values[2] = {
714  [0] = "disabled",
715  [1] = "enabled"
716 };
718 {
719  struct riscv_debug_reg_field_list result = {
720  .field = {
721  .name = "mpte",
722  .lsb = 7,
723  .msb = 7,
724  .values = NULL
725  },
726  .get_next = NULL
727  };
728  return result;
729 }
730 
732 {
733  struct riscv_debug_reg_field_list result = {
734  .field = {
735  .name = "mte",
736  .lsb = 3,
737  .msb = 3,
738  .values = csr_tcontrol_mte_values
739  },
740  .get_next = csr_tcontrol_get_mpte
741  };
742  return result;
743 }
744 
746 {
747  struct riscv_debug_reg_field_list result = {
748  .field = {
749  .name = "data",
750  .lsb = 0,
751  .msb = 0x1f,
752  .values = NULL
753  },
754  .get_next = NULL
755  };
756  return result;
757 }
758 
760 {
761  struct riscv_debug_reg_field_list result = {
762  .field = {
763  .name = "hcontext",
764  .lsb = 0,
765  .msb = 0xd,
766  .values = NULL
767  },
768  .get_next = NULL
769  };
770  return result;
771 }
772 
773 static const char *csr_mcontrol_select_values[2] = {
774  [0] = "address",
775  [1] = "data"
776 };
777 static const char *csr_mcontrol_timing_values[2] = {
778  [0] = "before",
779  [1] = "after"
780 };
781 static const char *csr_mcontrol_sizelo_values[4] = {};
782 static const char *csr_mcontrol_action_values[16] = {
783  [0] = "breakpoint",
784  [1] = "debug_mode",
785  [2] = "trace_on",
786  [3] = "trace_off",
787  [4] = "trace_notify",
788  [8] = "external0",
789  [9] = "external1"
790 };
791 static const char *csr_mcontrol_chain_values[2] = {
792  [0] = "disabled",
793  [1] = "enabled"
794 };
795 static const char *csr_mcontrol_match_values[16] = {
796  [0] = "equal",
797  [1] = "napot",
798  [2] = "ge",
799  [3] = "lt",
800  [4] = "mask_low",
801  [5] = "mask_high",
802  [8] = "not_equal",
803  [9] = "not_napot",
804  [12] = "not_mask_low",
805  [13] = "not_mask_high"
806 };
808 {
809  assert(context.XLEN.is_set);
810  struct riscv_debug_reg_field_list result = {
811  .field = {
812  .name = "dmode",
813  .lsb = (context.XLEN.value + -5),
814  .msb = (context.XLEN.value + -5),
815  .values = NULL
816  },
817  .get_next = NULL
818  };
819  return result;
820 }
821 
823 {
824  assert(context.XLEN.is_set);
825  struct riscv_debug_reg_field_list result = {
826  .field = {
827  .name = "type",
828  .lsb = (context.XLEN.value + -4),
829  .msb = (context.XLEN.value + -1),
830  .values = NULL
831  },
832  .get_next = csr_mcontrol_get_dmode
833  };
834  return result;
835 }
836 
838 {
839  assert(context.XLEN.is_set);
840  struct riscv_debug_reg_field_list result = {
841  .field = {
842  .name = "maskmax",
843  .lsb = (context.XLEN.value + -0xb),
844  .msb = (context.XLEN.value + -6),
845  .values = NULL
846  },
847  .get_next = csr_mcontrol_get_type
848  };
849  return result;
850 }
851 
853 {
854  struct riscv_debug_reg_field_list result = {
855  .field = {
856  .name = "match",
857  .lsb = 7,
858  .msb = 0xa,
859  .values = csr_mcontrol_match_values
860  },
861  .get_next = csr_mcontrol_get_maskmax
862  };
863  return result;
864 }
865 
867 {
868  struct riscv_debug_reg_field_list result = {
869  .field = {
870  .name = "m",
871  .lsb = 6,
872  .msb = 6,
873  .values = NULL
874  },
875  .get_next = csr_mcontrol_get_match
876  };
877  return result;
878 }
879 
881 {
882  struct riscv_debug_reg_field_list result = {
883  .field = {
884  .name = "s",
885  .lsb = 4,
886  .msb = 4,
887  .values = NULL
888  },
889  .get_next = csr_mcontrol_get_m
890  };
891  return result;
892 }
893 
895 {
896  struct riscv_debug_reg_field_list result = {
897  .field = {
898  .name = "u",
899  .lsb = 3,
900  .msb = 3,
901  .values = NULL
902  },
903  .get_next = csr_mcontrol_get_s
904  };
905  return result;
906 }
907 
909 {
910  struct riscv_debug_reg_field_list result = {
911  .field = {
912  .name = "sizehi",
913  .lsb = 0x15,
914  .msb = 0x16,
915  .values = NULL
916  },
917  .get_next = csr_mcontrol_get_u
918  };
919  return result;
920 }
921 
923 {
924  struct riscv_debug_reg_field_list result = {
925  .field = {
926  .name = "hit",
927  .lsb = 0x14,
928  .msb = 0x14,
929  .values = NULL
930  },
931  .get_next = csr_mcontrol_get_sizehi
932  };
933  return result;
934 }
935 
937 {
938  struct riscv_debug_reg_field_list result = {
939  .field = {
940  .name = "execute",
941  .lsb = 2,
942  .msb = 2,
943  .values = NULL
944  },
945  .get_next = csr_mcontrol_get_hit
946  };
947  return result;
948 }
949 
951 {
952  struct riscv_debug_reg_field_list result = {
953  .field = {
954  .name = "select",
955  .lsb = 0x13,
956  .msb = 0x13,
958  },
959  .get_next = csr_mcontrol_get_execute
960  };
961  return result;
962 }
963 
965 {
966  struct riscv_debug_reg_field_list result = {
967  .field = {
968  .name = "timing",
969  .lsb = 0x12,
970  .msb = 0x12,
972  },
973  .get_next = csr_mcontrol_get_select
974  };
975  return result;
976 }
977 
979 {
980  struct riscv_debug_reg_field_list result = {
981  .field = {
982  .name = "sizelo",
983  .lsb = 0x10,
984  .msb = 0x11,
986  },
987  .get_next = csr_mcontrol_get_timing
988  };
989  return result;
990 }
991 
993 {
994  struct riscv_debug_reg_field_list result = {
995  .field = {
996  .name = "action",
997  .lsb = 0xc,
998  .msb = 0xf,
1000  },
1001  .get_next = csr_mcontrol_get_sizelo
1002  };
1003  return result;
1004 }
1005 
1007 {
1008  struct riscv_debug_reg_field_list result = {
1009  .field = {
1010  .name = "chain",
1011  .lsb = 0xb,
1012  .msb = 0xb,
1013  .values = csr_mcontrol_chain_values
1014  },
1015  .get_next = csr_mcontrol_get_action
1016  };
1017  return result;
1018 }
1019 
1021 {
1022  struct riscv_debug_reg_field_list result = {
1023  .field = {
1024  .name = "store",
1025  .lsb = 1,
1026  .msb = 1,
1027  .values = NULL
1028  },
1029  .get_next = csr_mcontrol_get_chain
1030  };
1031  return result;
1032 }
1033 
1035 {
1036  struct riscv_debug_reg_field_list result = {
1037  .field = {
1038  .name = "load",
1039  .lsb = 0,
1040  .msb = 0,
1041  .values = NULL
1042  },
1043  .get_next = csr_mcontrol_get_store
1044  };
1045  return result;
1046 }
1047 
1048 static const char *csr_mcontrol6_uncertain_values[2] = {
1049  [0] = "certain",
1050  [1] = "uncertain"
1051 };
1052 static const char *csr_mcontrol6_hit0_values[2] = {};
1053 static const char *csr_mcontrol6_select_values[2] = {
1054  [0] = "address",
1055  [1] = "data"
1056 };
1057 static const char *csr_mcontrol6_size_values[8] = {
1058  [0] = "any",
1059  [1] = "8bit",
1060  [2] = "16bit",
1061  [3] = "32bit",
1062  [4] = "48bit",
1063  [5] = "64bit",
1064  [6] = "128bit"
1065 };
1066 static const char *csr_mcontrol6_action_values[16] = {
1067  [0] = "breakpoint",
1068  [1] = "debug_mode",
1069  [2] = "trace_on",
1070  [3] = "trace_off",
1071  [4] = "trace_notify",
1072  [8] = "external0",
1073  [9] = "external1"
1074 };
1075 static const char *csr_mcontrol6_chain_values[2] = {
1076  [0] = "disabled",
1077  [1] = "enabled"
1078 };
1079 static const char *csr_mcontrol6_match_values[16] = {
1080  [0] = "equal",
1081  [1] = "napot",
1082  [2] = "ge",
1083  [3] = "lt",
1084  [4] = "mask_low",
1085  [5] = "mask_high",
1086  [8] = "not_equal",
1087  [9] = "not_napot",
1088  [12] = "not_mask_low",
1089  [13] = "not_mask_high"
1090 };
1091 static const char *csr_mcontrol6_uncertainen_values[2] = {
1092  [0] = "disabled",
1093  [1] = "enabled"
1094 };
1096 {
1097  assert(context.XLEN.is_set);
1098  struct riscv_debug_reg_field_list result = {
1099  .field = {
1100  .name = "dmode",
1101  .lsb = (context.XLEN.value + -5),
1102  .msb = (context.XLEN.value + -5),
1103  .values = NULL
1104  },
1105  .get_next = NULL
1106  };
1107  return result;
1108 }
1109 
1111 {
1112  assert(context.XLEN.is_set);
1113  struct riscv_debug_reg_field_list result = {
1114  .field = {
1115  .name = "type",
1116  .lsb = (context.XLEN.value + -4),
1117  .msb = (context.XLEN.value + -1),
1118  .values = NULL
1119  },
1120  .get_next = csr_mcontrol6_get_dmode
1121  };
1122  return result;
1123 }
1124 
1126 {
1127  struct riscv_debug_reg_field_list result = {
1128  .field = {
1129  .name = "match",
1130  .lsb = 7,
1131  .msb = 0xa,
1132  .values = csr_mcontrol6_match_values
1133  },
1134  .get_next = csr_mcontrol6_get_type
1135  };
1136  return result;
1137 }
1138 
1140 {
1141  struct riscv_debug_reg_field_list result = {
1142  .field = {
1143  .name = "m",
1144  .lsb = 6,
1145  .msb = 6,
1146  .values = NULL
1147  },
1148  .get_next = csr_mcontrol6_get_match
1149  };
1150  return result;
1151 }
1152 
1154 {
1155  struct riscv_debug_reg_field_list result = {
1156  .field = {
1157  .name = "uncertainen",
1158  .lsb = 5,
1159  .msb = 5,
1161  },
1162  .get_next = csr_mcontrol6_get_m
1163  };
1164  return result;
1165 }
1166 
1168 {
1169  struct riscv_debug_reg_field_list result = {
1170  .field = {
1171  .name = "s",
1172  .lsb = 4,
1173  .msb = 4,
1174  .values = NULL
1175  },
1176  .get_next = csr_mcontrol6_get_uncertainen
1177  };
1178  return result;
1179 }
1180 
1182 {
1183  struct riscv_debug_reg_field_list result = {
1184  .field = {
1185  .name = "u",
1186  .lsb = 3,
1187  .msb = 3,
1188  .values = NULL
1189  },
1190  .get_next = csr_mcontrol6_get_s
1191  };
1192  return result;
1193 }
1194 
1196 {
1197  struct riscv_debug_reg_field_list result = {
1198  .field = {
1199  .name = "uncertain",
1200  .lsb = 0x1a,
1201  .msb = 0x1a,
1203  },
1204  .get_next = csr_mcontrol6_get_u
1205  };
1206  return result;
1207 }
1208 
1210 {
1211  struct riscv_debug_reg_field_list result = {
1212  .field = {
1213  .name = "hit1",
1214  .lsb = 0x19,
1215  .msb = 0x19,
1216  .values = NULL
1217  },
1218  .get_next = csr_mcontrol6_get_uncertain
1219  };
1220  return result;
1221 }
1222 
1224 {
1225  struct riscv_debug_reg_field_list result = {
1226  .field = {
1227  .name = "vs",
1228  .lsb = 0x18,
1229  .msb = 0x18,
1230  .values = NULL
1231  },
1232  .get_next = csr_mcontrol6_get_hit1
1233  };
1234  return result;
1235 }
1236 
1238 {
1239  struct riscv_debug_reg_field_list result = {
1240  .field = {
1241  .name = "vu",
1242  .lsb = 0x17,
1243  .msb = 0x17,
1244  .values = NULL
1245  },
1246  .get_next = csr_mcontrol6_get_vs
1247  };
1248  return result;
1249 }
1250 
1252 {
1253  struct riscv_debug_reg_field_list result = {
1254  .field = {
1255  .name = "hit0",
1256  .lsb = 0x16,
1257  .msb = 0x16,
1258  .values = csr_mcontrol6_hit0_values
1259  },
1260  .get_next = csr_mcontrol6_get_vu
1261  };
1262  return result;
1263 }
1264 
1266 {
1267  struct riscv_debug_reg_field_list result = {
1268  .field = {
1269  .name = "select",
1270  .lsb = 0x15,
1271  .msb = 0x15,
1272  .values = csr_mcontrol6_select_values
1273  },
1274  .get_next = csr_mcontrol6_get_hit0
1275  };
1276  return result;
1277 }
1278 
1280 {
1281  struct riscv_debug_reg_field_list result = {
1282  .field = {
1283  .name = "execute",
1284  .lsb = 2,
1285  .msb = 2,
1286  .values = NULL
1287  },
1288  .get_next = csr_mcontrol6_get_select
1289  };
1290  return result;
1291 }
1292 
1294 {
1295  struct riscv_debug_reg_field_list result = {
1296  .field = {
1297  .name = "size",
1298  .lsb = 0x10,
1299  .msb = 0x12,
1300  .values = csr_mcontrol6_size_values
1301  },
1302  .get_next = csr_mcontrol6_get_execute
1303  };
1304  return result;
1305 }
1306 
1308 {
1309  struct riscv_debug_reg_field_list result = {
1310  .field = {
1311  .name = "action",
1312  .lsb = 0xc,
1313  .msb = 0xf,
1314  .values = csr_mcontrol6_action_values
1315  },
1316  .get_next = csr_mcontrol6_get_size
1317  };
1318  return result;
1319 }
1320 
1322 {
1323  struct riscv_debug_reg_field_list result = {
1324  .field = {
1325  .name = "chain",
1326  .lsb = 0xb,
1327  .msb = 0xb,
1328  .values = csr_mcontrol6_chain_values
1329  },
1330  .get_next = csr_mcontrol6_get_action
1331  };
1332  return result;
1333 }
1334 
1336 {
1337  struct riscv_debug_reg_field_list result = {
1338  .field = {
1339  .name = "store",
1340  .lsb = 1,
1341  .msb = 1,
1342  .values = NULL
1343  },
1344  .get_next = csr_mcontrol6_get_chain
1345  };
1346  return result;
1347 }
1348 
1350 {
1351  struct riscv_debug_reg_field_list result = {
1352  .field = {
1353  .name = "load",
1354  .lsb = 0,
1355  .msb = 0,
1356  .values = NULL
1357  },
1358  .get_next = csr_mcontrol6_get_store
1359  };
1360  return result;
1361 }
1362 
1363 static const char *csr_icount_action_values[64] = {
1364  [0] = "breakpoint",
1365  [1] = "debug_mode",
1366  [2] = "trace_on",
1367  [3] = "trace_off",
1368  [4] = "trace_notify",
1369  [8] = "external0",
1370  [9] = "external1"
1371 };
1373 {
1374  assert(context.XLEN.is_set);
1375  struct riscv_debug_reg_field_list result = {
1376  .field = {
1377  .name = "dmode",
1378  .lsb = (context.XLEN.value + -5),
1379  .msb = (context.XLEN.value + -5),
1380  .values = NULL
1381  },
1382  .get_next = NULL
1383  };
1384  return result;
1385 }
1386 
1388 {
1389  assert(context.XLEN.is_set);
1390  struct riscv_debug_reg_field_list result = {
1391  .field = {
1392  .name = "type",
1393  .lsb = (context.XLEN.value + -4),
1394  .msb = (context.XLEN.value + -1),
1395  .values = NULL
1396  },
1397  .get_next = csr_icount_get_dmode
1398  };
1399  return result;
1400 }
1401 
1403 {
1404  struct riscv_debug_reg_field_list result = {
1405  .field = {
1406  .name = "m",
1407  .lsb = 9,
1408  .msb = 9,
1409  .values = NULL
1410  },
1411  .get_next = csr_icount_get_type
1412  };
1413  return result;
1414 }
1415 
1417 {
1418  struct riscv_debug_reg_field_list result = {
1419  .field = {
1420  .name = "pending",
1421  .lsb = 8,
1422  .msb = 8,
1423  .values = NULL
1424  },
1425  .get_next = csr_icount_get_m
1426  };
1427  return result;
1428 }
1429 
1431 {
1432  struct riscv_debug_reg_field_list result = {
1433  .field = {
1434  .name = "s",
1435  .lsb = 7,
1436  .msb = 7,
1437  .values = NULL
1438  },
1439  .get_next = csr_icount_get_pending
1440  };
1441  return result;
1442 }
1443 
1445 {
1446  struct riscv_debug_reg_field_list result = {
1447  .field = {
1448  .name = "u",
1449  .lsb = 6,
1450  .msb = 6,
1451  .values = NULL
1452  },
1453  .get_next = csr_icount_get_s
1454  };
1455  return result;
1456 }
1457 
1459 {
1460  struct riscv_debug_reg_field_list result = {
1461  .field = {
1462  .name = "vs",
1463  .lsb = 0x1a,
1464  .msb = 0x1a,
1465  .values = NULL
1466  },
1467  .get_next = csr_icount_get_u
1468  };
1469  return result;
1470 }
1471 
1473 {
1474  struct riscv_debug_reg_field_list result = {
1475  .field = {
1476  .name = "vu",
1477  .lsb = 0x19,
1478  .msb = 0x19,
1479  .values = NULL
1480  },
1481  .get_next = csr_icount_get_vs
1482  };
1483  return result;
1484 }
1485 
1487 {
1488  struct riscv_debug_reg_field_list result = {
1489  .field = {
1490  .name = "hit",
1491  .lsb = 0x18,
1492  .msb = 0x18,
1493  .values = NULL
1494  },
1495  .get_next = csr_icount_get_vu
1496  };
1497  return result;
1498 }
1499 
1501 {
1502  struct riscv_debug_reg_field_list result = {
1503  .field = {
1504  .name = "count",
1505  .lsb = 0xa,
1506  .msb = 0x17,
1507  .values = NULL
1508  },
1509  .get_next = csr_icount_get_hit
1510  };
1511  return result;
1512 }
1513 
1515 {
1516  struct riscv_debug_reg_field_list result = {
1517  .field = {
1518  .name = "action",
1519  .lsb = 0,
1520  .msb = 5,
1521  .values = csr_icount_action_values
1522  },
1523  .get_next = csr_icount_get_count
1524  };
1525  return result;
1526 }
1527 
1528 static const char *csr_itrigger_action_values[64] = {
1529  [0] = "breakpoint",
1530  [1] = "debug_mode",
1531  [2] = "trace_on",
1532  [3] = "trace_off",
1533  [4] = "trace_notify",
1534  [8] = "external0",
1535  [9] = "external1"
1536 };
1538 {
1539  assert(context.XLEN.is_set);
1540  struct riscv_debug_reg_field_list result = {
1541  .field = {
1542  .name = "hit",
1543  .lsb = (context.XLEN.value + -6),
1544  .msb = (context.XLEN.value + -6),
1545  .values = NULL
1546  },
1547  .get_next = NULL
1548  };
1549  return result;
1550 }
1551 
1553 {
1554  assert(context.XLEN.is_set);
1555  struct riscv_debug_reg_field_list result = {
1556  .field = {
1557  .name = "dmode",
1558  .lsb = (context.XLEN.value + -5),
1559  .msb = (context.XLEN.value + -5),
1560  .values = NULL
1561  },
1562  .get_next = csr_itrigger_get_hit
1563  };
1564  return result;
1565 }
1566 
1568 {
1569  assert(context.XLEN.is_set);
1570  struct riscv_debug_reg_field_list result = {
1571  .field = {
1572  .name = "type",
1573  .lsb = (context.XLEN.value + -4),
1574  .msb = (context.XLEN.value + -1),
1575  .values = NULL
1576  },
1577  .get_next = csr_itrigger_get_dmode
1578  };
1579  return result;
1580 }
1581 
1583 {
1584  struct riscv_debug_reg_field_list result = {
1585  .field = {
1586  .name = "m",
1587  .lsb = 9,
1588  .msb = 9,
1589  .values = NULL
1590  },
1591  .get_next = csr_itrigger_get_type
1592  };
1593  return result;
1594 }
1595 
1597 {
1598  struct riscv_debug_reg_field_list result = {
1599  .field = {
1600  .name = "s",
1601  .lsb = 7,
1602  .msb = 7,
1603  .values = NULL
1604  },
1605  .get_next = csr_itrigger_get_m
1606  };
1607  return result;
1608 }
1609 
1611 {
1612  struct riscv_debug_reg_field_list result = {
1613  .field = {
1614  .name = "u",
1615  .lsb = 6,
1616  .msb = 6,
1617  .values = NULL
1618  },
1619  .get_next = csr_itrigger_get_s
1620  };
1621  return result;
1622 }
1623 
1625 {
1626  struct riscv_debug_reg_field_list result = {
1627  .field = {
1628  .name = "vs",
1629  .lsb = 0xc,
1630  .msb = 0xc,
1631  .values = NULL
1632  },
1633  .get_next = csr_itrigger_get_u
1634  };
1635  return result;
1636 }
1637 
1639 {
1640  struct riscv_debug_reg_field_list result = {
1641  .field = {
1642  .name = "vu",
1643  .lsb = 0xb,
1644  .msb = 0xb,
1645  .values = NULL
1646  },
1647  .get_next = csr_itrigger_get_vs
1648  };
1649  return result;
1650 }
1651 
1653 {
1654  struct riscv_debug_reg_field_list result = {
1655  .field = {
1656  .name = "nmi",
1657  .lsb = 0xa,
1658  .msb = 0xa,
1659  .values = NULL
1660  },
1661  .get_next = csr_itrigger_get_vu
1662  };
1663  return result;
1664 }
1665 
1667 {
1668  struct riscv_debug_reg_field_list result = {
1669  .field = {
1670  .name = "action",
1671  .lsb = 0,
1672  .msb = 5,
1673  .values = csr_itrigger_action_values
1674  },
1675  .get_next = csr_itrigger_get_nmi
1676  };
1677  return result;
1678 }
1679 
1680 static const char *csr_etrigger_action_values[64] = {
1681  [0] = "breakpoint",
1682  [1] = "debug_mode",
1683  [2] = "trace_on",
1684  [3] = "trace_off",
1685  [4] = "trace_notify",
1686  [8] = "external0",
1687  [9] = "external1"
1688 };
1690 {
1691  assert(context.XLEN.is_set);
1692  struct riscv_debug_reg_field_list result = {
1693  .field = {
1694  .name = "hit",
1695  .lsb = (context.XLEN.value + -6),
1696  .msb = (context.XLEN.value + -6),
1697  .values = NULL
1698  },
1699  .get_next = NULL
1700  };
1701  return result;
1702 }
1703 
1705 {
1706  assert(context.XLEN.is_set);
1707  struct riscv_debug_reg_field_list result = {
1708  .field = {
1709  .name = "dmode",
1710  .lsb = (context.XLEN.value + -5),
1711  .msb = (context.XLEN.value + -5),
1712  .values = NULL
1713  },
1714  .get_next = csr_etrigger_get_hit
1715  };
1716  return result;
1717 }
1718 
1720 {
1721  assert(context.XLEN.is_set);
1722  struct riscv_debug_reg_field_list result = {
1723  .field = {
1724  .name = "type",
1725  .lsb = (context.XLEN.value + -4),
1726  .msb = (context.XLEN.value + -1),
1727  .values = NULL
1728  },
1729  .get_next = csr_etrigger_get_dmode
1730  };
1731  return result;
1732 }
1733 
1735 {
1736  struct riscv_debug_reg_field_list result = {
1737  .field = {
1738  .name = "m",
1739  .lsb = 9,
1740  .msb = 9,
1741  .values = NULL
1742  },
1743  .get_next = csr_etrigger_get_type
1744  };
1745  return result;
1746 }
1747 
1749 {
1750  struct riscv_debug_reg_field_list result = {
1751  .field = {
1752  .name = "s",
1753  .lsb = 7,
1754  .msb = 7,
1755  .values = NULL
1756  },
1757  .get_next = csr_etrigger_get_m
1758  };
1759  return result;
1760 }
1761 
1763 {
1764  struct riscv_debug_reg_field_list result = {
1765  .field = {
1766  .name = "u",
1767  .lsb = 6,
1768  .msb = 6,
1769  .values = NULL
1770  },
1771  .get_next = csr_etrigger_get_s
1772  };
1773  return result;
1774 }
1775 
1777 {
1778  struct riscv_debug_reg_field_list result = {
1779  .field = {
1780  .name = "vs",
1781  .lsb = 0xc,
1782  .msb = 0xc,
1783  .values = NULL
1784  },
1785  .get_next = csr_etrigger_get_u
1786  };
1787  return result;
1788 }
1789 
1791 {
1792  struct riscv_debug_reg_field_list result = {
1793  .field = {
1794  .name = "vu",
1795  .lsb = 0xb,
1796  .msb = 0xb,
1797  .values = NULL
1798  },
1799  .get_next = csr_etrigger_get_vs
1800  };
1801  return result;
1802 }
1803 
1805 {
1806  struct riscv_debug_reg_field_list result = {
1807  .field = {
1808  .name = "action",
1809  .lsb = 0,
1810  .msb = 5,
1811  .values = csr_etrigger_action_values
1812  },
1813  .get_next = csr_etrigger_get_vu
1814  };
1815  return result;
1816 }
1817 
1818 static const char *csr_tmexttrigger_action_values[64] = {
1819  [0] = "breakpoint",
1820  [1] = "debug_mode",
1821  [2] = "trace_on",
1822  [3] = "trace_off",
1823  [4] = "trace_notify",
1824  [8] = "external0",
1825  [9] = "external1"
1826 };
1828 {
1829  assert(context.XLEN.is_set);
1830  struct riscv_debug_reg_field_list result = {
1831  .field = {
1832  .name = "hit",
1833  .lsb = (context.XLEN.value + -6),
1834  .msb = (context.XLEN.value + -6),
1835  .values = NULL
1836  },
1837  .get_next = NULL
1838  };
1839  return result;
1840 }
1841 
1843 {
1844  assert(context.XLEN.is_set);
1845  struct riscv_debug_reg_field_list result = {
1846  .field = {
1847  .name = "dmode",
1848  .lsb = (context.XLEN.value + -5),
1849  .msb = (context.XLEN.value + -5),
1850  .values = NULL
1851  },
1852  .get_next = csr_tmexttrigger_get_hit
1853  };
1854  return result;
1855 }
1856 
1858 {
1859  assert(context.XLEN.is_set);
1860  struct riscv_debug_reg_field_list result = {
1861  .field = {
1862  .name = "type",
1863  .lsb = (context.XLEN.value + -4),
1864  .msb = (context.XLEN.value + -1),
1865  .values = NULL
1866  },
1867  .get_next = csr_tmexttrigger_get_dmode
1868  };
1869  return result;
1870 }
1871 
1873 {
1874  struct riscv_debug_reg_field_list result = {
1875  .field = {
1876  .name = "select",
1877  .lsb = 6,
1878  .msb = 0x15,
1879  .values = NULL
1880  },
1881  .get_next = csr_tmexttrigger_get_type
1882  };
1883  return result;
1884 }
1885 
1887 {
1888  struct riscv_debug_reg_field_list result = {
1889  .field = {
1890  .name = "intctl",
1891  .lsb = 0x16,
1892  .msb = 0x16,
1893  .values = NULL
1894  },
1895  .get_next = csr_tmexttrigger_get_select
1896  };
1897  return result;
1898 }
1899 
1901 {
1902  struct riscv_debug_reg_field_list result = {
1903  .field = {
1904  .name = "action",
1905  .lsb = 0,
1906  .msb = 5,
1908  },
1909  .get_next = csr_tmexttrigger_get_intctl
1910  };
1911  return result;
1912 }
1913 
1914 static const char *csr_textra32_mhselect_values[8] = {
1915  [0] = "ignore",
1916  [4] = "mcontext"
1917 };
1918 static const char *csr_textra32_sselect_values[4] = {
1919  [0] = "ignore",
1920  [1] = "scontext",
1921  [2] = "asid"
1922 };
1924 {
1925  struct riscv_debug_reg_field_list result = {
1926  .field = {
1927  .name = "mhvalue",
1928  .lsb = 0x1a,
1929  .msb = 0x1f,
1930  .values = NULL
1931  },
1932  .get_next = NULL
1933  };
1934  return result;
1935 }
1936 
1938 {
1939  struct riscv_debug_reg_field_list result = {
1940  .field = {
1941  .name = "mhselect",
1942  .lsb = 0x17,
1943  .msb = 0x19,
1945  },
1946  .get_next = csr_textra32_get_mhvalue
1947  };
1948  return result;
1949 }
1950 
1952 {
1953  struct riscv_debug_reg_field_list result = {
1954  .field = {
1955  .name = "svalue",
1956  .lsb = 2,
1957  .msb = 0x11,
1958  .values = NULL
1959  },
1960  .get_next = csr_textra32_get_mhselect
1961  };
1962  return result;
1963 }
1964 
1966 {
1967  struct riscv_debug_reg_field_list result = {
1968  .field = {
1969  .name = "sbytemask",
1970  .lsb = 0x12,
1971  .msb = 0x13,
1972  .values = NULL
1973  },
1974  .get_next = csr_textra32_get_svalue
1975  };
1976  return result;
1977 }
1978 
1980 {
1981  struct riscv_debug_reg_field_list result = {
1982  .field = {
1983  .name = "sselect",
1984  .lsb = 0,
1985  .msb = 1,
1986  .values = csr_textra32_sselect_values
1987  },
1988  .get_next = csr_textra32_get_sbytemask
1989  };
1990  return result;
1991 }
1992 
1994 {
1995  struct riscv_debug_reg_field_list result = {
1996  .field = {
1997  .name = "mhvalue",
1998  .lsb = 0x33,
1999  .msb = 0x3f,
2000  .values = NULL
2001  },
2002  .get_next = NULL
2003  };
2004  return result;
2005 }
2006 
2008 {
2009  struct riscv_debug_reg_field_list result = {
2010  .field = {
2011  .name = "mhselect",
2012  .lsb = 0x30,
2013  .msb = 0x32,
2014  .values = NULL
2015  },
2016  .get_next = csr_textra64_get_mhvalue
2017  };
2018  return result;
2019 }
2020 
2022 {
2023  struct riscv_debug_reg_field_list result = {
2024  .field = {
2025  .name = "sbytemask",
2026  .lsb = 0x24,
2027  .msb = 0x27,
2028  .values = NULL
2029  },
2030  .get_next = csr_textra64_get_mhselect
2031  };
2032  return result;
2033 }
2034 
2036 {
2037  struct riscv_debug_reg_field_list result = {
2038  .field = {
2039  .name = "svalue",
2040  .lsb = 2,
2041  .msb = 0x21,
2042  .values = NULL
2043  },
2044  .get_next = csr_textra64_get_sbytemask
2045  };
2046  return result;
2047 }
2048 
2050 {
2051  struct riscv_debug_reg_field_list result = {
2052  .field = {
2053  .name = "sselect",
2054  .lsb = 0,
2055  .msb = 1,
2056  .values = NULL
2057  },
2058  .get_next = csr_textra64_get_svalue
2059  };
2060  return result;
2061 }
2062 
2063 static const char *dm_dmstatus_ndmresetpending_values[2] = {
2064  [0] = "false",
2065  [1] = "true"
2066 };
2067 static const char *dm_dmstatus_stickyunavail_values[2] = {
2068  [0] = "current",
2069  [1] = "sticky"
2070 };
2071 static const char *dm_dmstatus_authenticated_values[2] = {
2072  [0] = "false",
2073  [1] = "true"
2074 };
2075 static const char *dm_dmstatus_authbusy_values[2] = {
2076  [0] = "ready",
2077  [1] = "busy"
2078 };
2079 static const char *dm_dmstatus_confstrptrvalid_values[2] = {
2080  [0] = "invalid",
2081  [1] = "valid"
2082 };
2083 static const char *dm_dmstatus_version_values[16] = {
2084  [0] = "none",
2085  [1] = "0_11",
2086  [2] = "0_13",
2087  [3] = "1_0",
2088  [15] = "custom"
2089 };
2091 {
2092  struct riscv_debug_reg_field_list result = {
2093  .field = {
2094  .name = "allhalted",
2095  .lsb = 9,
2096  .msb = 9,
2097  .values = NULL
2098  },
2099  .get_next = NULL
2100  };
2101  return result;
2102 }
2103 
2105 {
2106  struct riscv_debug_reg_field_list result = {
2107  .field = {
2108  .name = "anyhalted",
2109  .lsb = 8,
2110  .msb = 8,
2111  .values = NULL
2112  },
2113  .get_next = dm_dmstatus_get_allhalted
2114  };
2115  return result;
2116 }
2117 
2119 {
2120  struct riscv_debug_reg_field_list result = {
2121  .field = {
2122  .name = "authenticated",
2123  .lsb = 7,
2124  .msb = 7,
2126  },
2127  .get_next = dm_dmstatus_get_anyhalted
2128  };
2129  return result;
2130 }
2131 
2133 {
2134  struct riscv_debug_reg_field_list result = {
2135  .field = {
2136  .name = "authbusy",
2137  .lsb = 6,
2138  .msb = 6,
2139  .values = dm_dmstatus_authbusy_values
2140  },
2141  .get_next = dm_dmstatus_get_authenticated
2142  };
2143  return result;
2144 }
2145 
2147 {
2148  struct riscv_debug_reg_field_list result = {
2149  .field = {
2150  .name = "hasresethaltreq",
2151  .lsb = 5,
2152  .msb = 5,
2153  .values = NULL
2154  },
2155  .get_next = dm_dmstatus_get_authbusy
2156  };
2157  return result;
2158 }
2159 
2161 {
2162  struct riscv_debug_reg_field_list result = {
2163  .field = {
2164  .name = "confstrptrvalid",
2165  .lsb = 4,
2166  .msb = 4,
2168  },
2170  };
2171  return result;
2172 }
2173 
2175 {
2176  struct riscv_debug_reg_field_list result = {
2177  .field = {
2178  .name = "ndmresetpending",
2179  .lsb = 0x18,
2180  .msb = 0x18,
2182  },
2184  };
2185  return result;
2186 }
2187 
2189 {
2190  struct riscv_debug_reg_field_list result = {
2191  .field = {
2192  .name = "stickyunavail",
2193  .lsb = 0x17,
2194  .msb = 0x17,
2196  },
2198  };
2199  return result;
2200 }
2201 
2203 {
2204  struct riscv_debug_reg_field_list result = {
2205  .field = {
2206  .name = "impebreak",
2207  .lsb = 0x16,
2208  .msb = 0x16,
2209  .values = NULL
2210  },
2211  .get_next = dm_dmstatus_get_stickyunavail
2212  };
2213  return result;
2214 }
2215 
2217 {
2218  struct riscv_debug_reg_field_list result = {
2219  .field = {
2220  .name = "allhavereset",
2221  .lsb = 0x13,
2222  .msb = 0x13,
2223  .values = NULL
2224  },
2225  .get_next = dm_dmstatus_get_impebreak
2226  };
2227  return result;
2228 }
2229 
2231 {
2232  struct riscv_debug_reg_field_list result = {
2233  .field = {
2234  .name = "anyhavereset",
2235  .lsb = 0x12,
2236  .msb = 0x12,
2237  .values = NULL
2238  },
2239  .get_next = dm_dmstatus_get_allhavereset
2240  };
2241  return result;
2242 }
2243 
2245 {
2246  struct riscv_debug_reg_field_list result = {
2247  .field = {
2248  .name = "allresumeack",
2249  .lsb = 0x11,
2250  .msb = 0x11,
2251  .values = NULL
2252  },
2253  .get_next = dm_dmstatus_get_anyhavereset
2254  };
2255  return result;
2256 }
2257 
2259 {
2260  struct riscv_debug_reg_field_list result = {
2261  .field = {
2262  .name = "anyresumeack",
2263  .lsb = 0x10,
2264  .msb = 0x10,
2265  .values = NULL
2266  },
2267  .get_next = dm_dmstatus_get_allresumeack
2268  };
2269  return result;
2270 }
2271 
2273 {
2274  struct riscv_debug_reg_field_list result = {
2275  .field = {
2276  .name = "allnonexistent",
2277  .lsb = 0xf,
2278  .msb = 0xf,
2279  .values = NULL
2280  },
2281  .get_next = dm_dmstatus_get_anyresumeack
2282  };
2283  return result;
2284 }
2285 
2287 {
2288  struct riscv_debug_reg_field_list result = {
2289  .field = {
2290  .name = "anynonexistent",
2291  .lsb = 0xe,
2292  .msb = 0xe,
2293  .values = NULL
2294  },
2295  .get_next = dm_dmstatus_get_allnonexistent
2296  };
2297  return result;
2298 }
2299 
2301 {
2302  struct riscv_debug_reg_field_list result = {
2303  .field = {
2304  .name = "allunavail",
2305  .lsb = 0xd,
2306  .msb = 0xd,
2307  .values = NULL
2308  },
2309  .get_next = dm_dmstatus_get_anynonexistent
2310  };
2311  return result;
2312 }
2313 
2315 {
2316  struct riscv_debug_reg_field_list result = {
2317  .field = {
2318  .name = "anyunavail",
2319  .lsb = 0xc,
2320  .msb = 0xc,
2321  .values = NULL
2322  },
2323  .get_next = dm_dmstatus_get_allunavail
2324  };
2325  return result;
2326 }
2327 
2329 {
2330  struct riscv_debug_reg_field_list result = {
2331  .field = {
2332  .name = "allrunning",
2333  .lsb = 0xb,
2334  .msb = 0xb,
2335  .values = NULL
2336  },
2337  .get_next = dm_dmstatus_get_anyunavail
2338  };
2339  return result;
2340 }
2341 
2343 {
2344  struct riscv_debug_reg_field_list result = {
2345  .field = {
2346  .name = "anyrunning",
2347  .lsb = 0xa,
2348  .msb = 0xa,
2349  .values = NULL
2350  },
2351  .get_next = dm_dmstatus_get_allrunning
2352  };
2353  return result;
2354 }
2355 
2357 {
2358  struct riscv_debug_reg_field_list result = {
2359  .field = {
2360  .name = "version",
2361  .lsb = 0,
2362  .msb = 3,
2363  .values = dm_dmstatus_version_values
2364  },
2365  .get_next = dm_dmstatus_get_anyrunning
2366  };
2367  return result;
2368 }
2369 
2370 static const char *dm_dmcontrol_ackhavereset_values[2] = {
2371  [0] = "nop",
2372  [1] = "ack"
2373 };
2374 static const char *dm_dmcontrol_ackunavail_values[2] = {
2375  [0] = "nop",
2376  [1] = "ack"
2377 };
2378 static const char *dm_dmcontrol_hasel_values[2] = {
2379  [0] = "single",
2380  [1] = "multiple"
2381 };
2382 static const char *dm_dmcontrol_dmactive_values[2] = {
2383  [0] = "inactive",
2384  [1] = "active"
2385 };
2387 {
2388  struct riscv_debug_reg_field_list result = {
2389  .field = {
2390  .name = "hartselhi",
2391  .lsb = 6,
2392  .msb = 0xf,
2393  .values = NULL
2394  },
2395  .get_next = NULL
2396  };
2397  return result;
2398 }
2399 
2401 {
2402  struct riscv_debug_reg_field_list result = {
2403  .field = {
2404  .name = "setkeepalive",
2405  .lsb = 5,
2406  .msb = 5,
2407  .values = NULL
2408  },
2409  .get_next = dm_dmcontrol_get_hartselhi
2410  };
2411  return result;
2412 }
2413 
2415 {
2416  struct riscv_debug_reg_field_list result = {
2417  .field = {
2418  .name = "clrkeepalive",
2419  .lsb = 4,
2420  .msb = 4,
2421  .values = NULL
2422  },
2423  .get_next = dm_dmcontrol_get_setkeepalive
2424  };
2425  return result;
2426 }
2427 
2429 {
2430  struct riscv_debug_reg_field_list result = {
2431  .field = {
2432  .name = "haltreq",
2433  .lsb = 0x1f,
2434  .msb = 0x1f,
2435  .values = NULL
2436  },
2437  .get_next = dm_dmcontrol_get_clrkeepalive
2438  };
2439  return result;
2440 }
2441 
2443 {
2444  struct riscv_debug_reg_field_list result = {
2445  .field = {
2446  .name = "resumereq",
2447  .lsb = 0x1e,
2448  .msb = 0x1e,
2449  .values = NULL
2450  },
2451  .get_next = dm_dmcontrol_get_haltreq
2452  };
2453  return result;
2454 }
2455 
2457 {
2458  struct riscv_debug_reg_field_list result = {
2459  .field = {
2460  .name = "setresethaltreq",
2461  .lsb = 3,
2462  .msb = 3,
2463  .values = NULL
2464  },
2465  .get_next = dm_dmcontrol_get_resumereq
2466  };
2467  return result;
2468 }
2469 
2471 {
2472  struct riscv_debug_reg_field_list result = {
2473  .field = {
2474  .name = "hartreset",
2475  .lsb = 0x1d,
2476  .msb = 0x1d,
2477  .values = NULL
2478  },
2480  };
2481  return result;
2482 }
2483 
2485 {
2486  struct riscv_debug_reg_field_list result = {
2487  .field = {
2488  .name = "ackhavereset",
2489  .lsb = 0x1c,
2490  .msb = 0x1c,
2492  },
2493  .get_next = dm_dmcontrol_get_hartreset
2494  };
2495  return result;
2496 }
2497 
2499 {
2500  struct riscv_debug_reg_field_list result = {
2501  .field = {
2502  .name = "ackunavail",
2503  .lsb = 0x1b,
2504  .msb = 0x1b,
2506  },
2507  .get_next = dm_dmcontrol_get_ackhavereset
2508  };
2509  return result;
2510 }
2511 
2513 {
2514  struct riscv_debug_reg_field_list result = {
2515  .field = {
2516  .name = "hasel",
2517  .lsb = 0x1a,
2518  .msb = 0x1a,
2519  .values = dm_dmcontrol_hasel_values
2520  },
2521  .get_next = dm_dmcontrol_get_ackunavail
2522  };
2523  return result;
2524 }
2525 
2527 {
2528  struct riscv_debug_reg_field_list result = {
2529  .field = {
2530  .name = "clrresethaltreq",
2531  .lsb = 2,
2532  .msb = 2,
2533  .values = NULL
2534  },
2535  .get_next = dm_dmcontrol_get_hasel
2536  };
2537  return result;
2538 }
2539 
2541 {
2542  struct riscv_debug_reg_field_list result = {
2543  .field = {
2544  .name = "hartsello",
2545  .lsb = 0x10,
2546  .msb = 0x19,
2547  .values = NULL
2548  },
2550  };
2551  return result;
2552 }
2553 
2555 {
2556  struct riscv_debug_reg_field_list result = {
2557  .field = {
2558  .name = "ndmreset",
2559  .lsb = 1,
2560  .msb = 1,
2561  .values = NULL
2562  },
2563  .get_next = dm_dmcontrol_get_hartsello
2564  };
2565  return result;
2566 }
2567 
2569 {
2570  struct riscv_debug_reg_field_list result = {
2571  .field = {
2572  .name = "dmactive",
2573  .lsb = 0,
2574  .msb = 0,
2576  },
2577  .get_next = dm_dmcontrol_get_ndmreset
2578  };
2579  return result;
2580 }
2581 
2582 static const char *dm_hartinfo_dataaccess_values[2] = {
2583  [0] = "csr",
2584  [1] = "memory"
2585 };
2587 {
2588  struct riscv_debug_reg_field_list result = {
2589  .field = {
2590  .name = "nscratch",
2591  .lsb = 0x14,
2592  .msb = 0x17,
2593  .values = NULL
2594  },
2595  .get_next = NULL
2596  };
2597  return result;
2598 }
2599 
2601 {
2602  struct riscv_debug_reg_field_list result = {
2603  .field = {
2604  .name = "dataaccess",
2605  .lsb = 0x10,
2606  .msb = 0x10,
2608  },
2609  .get_next = dm_hartinfo_get_nscratch
2610  };
2611  return result;
2612 }
2613 
2615 {
2616  struct riscv_debug_reg_field_list result = {
2617  .field = {
2618  .name = "datasize",
2619  .lsb = 0xc,
2620  .msb = 0xf,
2621  .values = NULL
2622  },
2623  .get_next = dm_hartinfo_get_dataaccess
2624  };
2625  return result;
2626 }
2627 
2629 {
2630  struct riscv_debug_reg_field_list result = {
2631  .field = {
2632  .name = "dataaddr",
2633  .lsb = 0,
2634  .msb = 0xb,
2635  .values = NULL
2636  },
2637  .get_next = dm_hartinfo_get_datasize
2638  };
2639  return result;
2640 }
2641 
2643 {
2644  struct riscv_debug_reg_field_list result = {
2645  .field = {
2646  .name = "hawindowsel",
2647  .lsb = 0,
2648  .msb = 0xe,
2649  .values = NULL
2650  },
2651  .get_next = NULL
2652  };
2653  return result;
2654 }
2655 
2657 {
2658  struct riscv_debug_reg_field_list result = {
2659  .field = {
2660  .name = "maskdata",
2661  .lsb = 0,
2662  .msb = 0x1f,
2663  .values = NULL
2664  },
2665  .get_next = NULL
2666  };
2667  return result;
2668 }
2669 
2670 static const char *dm_abstractcs_busy_values[2] = {
2671  [0] = "ready",
2672  [1] = "busy"
2673 };
2674 static const char *dm_abstractcs_relaxedpriv_values[2] = {
2675  [0] = "full_checks",
2676  [1] = "relaxed_checks"
2677 };
2678 static const char *dm_abstractcs_cmderr_values[8] = {
2679  [0] = "none",
2680  [1] = "busy",
2681  [2] = "not_supported",
2682  [3] = "exception",
2683  [4] = "halt_resume",
2684  [5] = "bus",
2685  [6] = "reserved",
2686  [7] = "other"
2687 };
2689 {
2690  struct riscv_debug_reg_field_list result = {
2691  .field = {
2692  .name = "cmderr",
2693  .lsb = 8,
2694  .msb = 0xa,
2695  .values = dm_abstractcs_cmderr_values
2696  },
2697  .get_next = NULL
2698  };
2699  return result;
2700 }
2701 
2703 {
2704  struct riscv_debug_reg_field_list result = {
2705  .field = {
2706  .name = "progbufsize",
2707  .lsb = 0x18,
2708  .msb = 0x1c,
2709  .values = NULL
2710  },
2711  .get_next = dm_abstractcs_get_cmderr
2712  };
2713  return result;
2714 }
2715 
2717 {
2718  struct riscv_debug_reg_field_list result = {
2719  .field = {
2720  .name = "busy",
2721  .lsb = 0xc,
2722  .msb = 0xc,
2723  .values = dm_abstractcs_busy_values
2724  },
2725  .get_next = dm_abstractcs_get_progbufsize
2726  };
2727  return result;
2728 }
2729 
2731 {
2732  struct riscv_debug_reg_field_list result = {
2733  .field = {
2734  .name = "relaxedpriv",
2735  .lsb = 0xb,
2736  .msb = 0xb,
2738  },
2739  .get_next = dm_abstractcs_get_busy
2740  };
2741  return result;
2742 }
2743 
2745 {
2746  struct riscv_debug_reg_field_list result = {
2747  .field = {
2748  .name = "datacount",
2749  .lsb = 0,
2750  .msb = 3,
2751  .values = NULL
2752  },
2753  .get_next = dm_abstractcs_get_relaxedpriv
2754  };
2755  return result;
2756 }
2757 
2759 {
2760  struct riscv_debug_reg_field_list result = {
2761  .field = {
2762  .name = "cmdtype",
2763  .lsb = 0x18,
2764  .msb = 0x1f,
2765  .values = NULL
2766  },
2767  .get_next = NULL
2768  };
2769  return result;
2770 }
2771 
2773 {
2774  struct riscv_debug_reg_field_list result = {
2775  .field = {
2776  .name = "control",
2777  .lsb = 0,
2778  .msb = 0x17,
2779  .values = NULL
2780  },
2781  .get_next = dm_command_get_cmdtype
2782  };
2783  return result;
2784 }
2785 
2787 {
2788  struct riscv_debug_reg_field_list result = {
2789  .field = {
2790  .name = "autoexecprogbuf",
2791  .lsb = 0x10,
2792  .msb = 0x1f,
2793  .values = NULL
2794  },
2795  .get_next = NULL
2796  };
2797  return result;
2798 }
2799 
2801 {
2802  struct riscv_debug_reg_field_list result = {
2803  .field = {
2804  .name = "autoexecdata",
2805  .lsb = 0,
2806  .msb = 0xb,
2807  .values = NULL
2808  },
2810  };
2811  return result;
2812 }
2813 
2815 {
2816  struct riscv_debug_reg_field_list result = {
2817  .field = {
2818  .name = "addr",
2819  .lsb = 0,
2820  .msb = 0x1f,
2821  .values = NULL
2822  },
2823  .get_next = NULL
2824  };
2825  return result;
2826 }
2827 
2829 {
2830  struct riscv_debug_reg_field_list result = {
2831  .field = {
2832  .name = "addr",
2833  .lsb = 0,
2834  .msb = 0x1f,
2835  .values = NULL
2836  },
2837  .get_next = NULL
2838  };
2839  return result;
2840 }
2841 
2843 {
2844  struct riscv_debug_reg_field_list result = {
2845  .field = {
2846  .name = "addr",
2847  .lsb = 0,
2848  .msb = 0x1f,
2849  .values = NULL
2850  },
2851  .get_next = NULL
2852  };
2853  return result;
2854 }
2855 
2857 {
2858  struct riscv_debug_reg_field_list result = {
2859  .field = {
2860  .name = "addr",
2861  .lsb = 0,
2862  .msb = 0x1f,
2863  .values = NULL
2864  },
2865  .get_next = NULL
2866  };
2867  return result;
2868 }
2869 
2871 {
2872  struct riscv_debug_reg_field_list result = {
2873  .field = {
2874  .name = "addr",
2875  .lsb = 0,
2876  .msb = 0x1f,
2877  .values = NULL
2878  },
2879  .get_next = NULL
2880  };
2881  return result;
2882 }
2883 
2885 {
2886  struct riscv_debug_reg_field_list result = {
2887  .field = {
2888  .name = "data",
2889  .lsb = 0,
2890  .msb = 0x1f,
2891  .values = NULL
2892  },
2893  .get_next = NULL
2894  };
2895  return result;
2896 }
2897 
2899 {
2900  struct riscv_debug_reg_field_list result = {
2901  .field = {
2902  .name = "data",
2903  .lsb = 0,
2904  .msb = 0x1f,
2905  .values = NULL
2906  },
2907  .get_next = NULL
2908  };
2909  return result;
2910 }
2911 
2913 {
2914  struct riscv_debug_reg_field_list result = {
2915  .field = {
2916  .name = "data",
2917  .lsb = 0,
2918  .msb = 0x1f,
2919  .values = NULL
2920  },
2921  .get_next = NULL
2922  };
2923  return result;
2924 }
2925 
2926 static const char *dm_dmcs2_grouptype_values[2] = {
2927  [0] = "halt",
2928  [1] = "resume"
2929 };
2930 static const char *dm_dmcs2_hgselect_values[2] = {
2931  [0] = "harts",
2932  [1] = "triggers"
2933 };
2935 {
2936  struct riscv_debug_reg_field_list result = {
2937  .field = {
2938  .name = "dmexttrigger",
2939  .lsb = 7,
2940  .msb = 0xa,
2941  .values = NULL
2942  },
2943  .get_next = NULL
2944  };
2945  return result;
2946 }
2947 
2949 {
2950  struct riscv_debug_reg_field_list result = {
2951  .field = {
2952  .name = "group",
2953  .lsb = 2,
2954  .msb = 6,
2955  .values = NULL
2956  },
2957  .get_next = dm_dmcs2_get_dmexttrigger
2958  };
2959  return result;
2960 }
2961 
2963 {
2964  struct riscv_debug_reg_field_list result = {
2965  .field = {
2966  .name = "grouptype",
2967  .lsb = 0xb,
2968  .msb = 0xb,
2969  .values = dm_dmcs2_grouptype_values
2970  },
2971  .get_next = dm_dmcs2_get_group
2972  };
2973  return result;
2974 }
2975 
2977 {
2978  struct riscv_debug_reg_field_list result = {
2979  .field = {
2980  .name = "hgwrite",
2981  .lsb = 1,
2982  .msb = 1,
2983  .values = NULL
2984  },
2985  .get_next = dm_dmcs2_get_grouptype
2986  };
2987  return result;
2988 }
2989 
2991 {
2992  struct riscv_debug_reg_field_list result = {
2993  .field = {
2994  .name = "hgselect",
2995  .lsb = 0,
2996  .msb = 0,
2997  .values = dm_dmcs2_hgselect_values
2998  },
2999  .get_next = dm_dmcs2_get_hgwrite
3000  };
3001  return result;
3002 }
3003 
3005 {
3006  struct riscv_debug_reg_field_list result = {
3007  .field = {
3008  .name = "haltsum0",
3009  .lsb = 0,
3010  .msb = 0x1f,
3011  .values = NULL
3012  },
3013  .get_next = NULL
3014  };
3015  return result;
3016 }
3017 
3019 {
3020  struct riscv_debug_reg_field_list result = {
3021  .field = {
3022  .name = "haltsum1",
3023  .lsb = 0,
3024  .msb = 0x1f,
3025  .values = NULL
3026  },
3027  .get_next = NULL
3028  };
3029  return result;
3030 }
3031 
3033 {
3034  struct riscv_debug_reg_field_list result = {
3035  .field = {
3036  .name = "haltsum2",
3037  .lsb = 0,
3038  .msb = 0x1f,
3039  .values = NULL
3040  },
3041  .get_next = NULL
3042  };
3043  return result;
3044 }
3045 
3047 {
3048  struct riscv_debug_reg_field_list result = {
3049  .field = {
3050  .name = "haltsum3",
3051  .lsb = 0,
3052  .msb = 0x1f,
3053  .values = NULL
3054  },
3055  .get_next = NULL
3056  };
3057  return result;
3058 }
3059 
3060 static const char *dm_sbcs_sbversion_values[8] = {
3061  [0] = "legacy",
3062  [1] = "1_0"
3063 };
3064 static const char *dm_sbcs_sbaccess_values[8] = {
3065  [0] = "8bit",
3066  [1] = "16bit",
3067  [2] = "32bit",
3068  [3] = "64bit",
3069  [4] = "128bit"
3070 };
3071 static const char *dm_sbcs_sberror_values[8] = {
3072  [0] = "none",
3073  [1] = "timeout",
3074  [2] = "address",
3075  [3] = "alignment",
3076  [4] = "size",
3077  [7] = "other"
3078 };
3080 {
3081  struct riscv_debug_reg_field_list result = {
3082  .field = {
3083  .name = "sbasize",
3084  .lsb = 5,
3085  .msb = 0xb,
3086  .values = NULL
3087  },
3088  .get_next = NULL
3089  };
3090  return result;
3091 }
3092 
3094 {
3095  struct riscv_debug_reg_field_list result = {
3096  .field = {
3097  .name = "sbaccess128",
3098  .lsb = 4,
3099  .msb = 4,
3100  .values = NULL
3101  },
3102  .get_next = dm_sbcs_get_sbasize
3103  };
3104  return result;
3105 }
3106 
3108 {
3109  struct riscv_debug_reg_field_list result = {
3110  .field = {
3111  .name = "sbaccess64",
3112  .lsb = 3,
3113  .msb = 3,
3114  .values = NULL
3115  },
3116  .get_next = dm_sbcs_get_sbaccess128
3117  };
3118  return result;
3119 }
3120 
3122 {
3123  struct riscv_debug_reg_field_list result = {
3124  .field = {
3125  .name = "sbversion",
3126  .lsb = 0x1d,
3127  .msb = 0x1f,
3128  .values = dm_sbcs_sbversion_values
3129  },
3130  .get_next = dm_sbcs_get_sbaccess64
3131  };
3132  return result;
3133 }
3134 
3136 {
3137  struct riscv_debug_reg_field_list result = {
3138  .field = {
3139  .name = "sbbusyerror",
3140  .lsb = 0x16,
3141  .msb = 0x16,
3142  .values = NULL
3143  },
3144  .get_next = dm_sbcs_get_sbversion
3145  };
3146  return result;
3147 }
3148 
3150 {
3151  struct riscv_debug_reg_field_list result = {
3152  .field = {
3153  .name = "sbbusy",
3154  .lsb = 0x15,
3155  .msb = 0x15,
3156  .values = NULL
3157  },
3158  .get_next = dm_sbcs_get_sbbusyerror
3159  };
3160  return result;
3161 }
3162 
3164 {
3165  struct riscv_debug_reg_field_list result = {
3166  .field = {
3167  .name = "sbreadonaddr",
3168  .lsb = 0x14,
3169  .msb = 0x14,
3170  .values = NULL
3171  },
3172  .get_next = dm_sbcs_get_sbbusy
3173  };
3174  return result;
3175 }
3176 
3178 {
3179  struct riscv_debug_reg_field_list result = {
3180  .field = {
3181  .name = "sbaccess32",
3182  .lsb = 2,
3183  .msb = 2,
3184  .values = NULL
3185  },
3186  .get_next = dm_sbcs_get_sbreadonaddr
3187  };
3188  return result;
3189 }
3190 
3192 {
3193  struct riscv_debug_reg_field_list result = {
3194  .field = {
3195  .name = "sbaccess",
3196  .lsb = 0x11,
3197  .msb = 0x13,
3198  .values = dm_sbcs_sbaccess_values
3199  },
3200  .get_next = dm_sbcs_get_sbaccess32
3201  };
3202  return result;
3203 }
3204 
3206 {
3207  struct riscv_debug_reg_field_list result = {
3208  .field = {
3209  .name = "sbautoincrement",
3210  .lsb = 0x10,
3211  .msb = 0x10,
3212  .values = NULL
3213  },
3214  .get_next = dm_sbcs_get_sbaccess
3215  };
3216  return result;
3217 }
3218 
3220 {
3221  struct riscv_debug_reg_field_list result = {
3222  .field = {
3223  .name = "sbreadondata",
3224  .lsb = 0xf,
3225  .msb = 0xf,
3226  .values = NULL
3227  },
3228  .get_next = dm_sbcs_get_sbautoincrement
3229  };
3230  return result;
3231 }
3232 
3234 {
3235  struct riscv_debug_reg_field_list result = {
3236  .field = {
3237  .name = "sberror",
3238  .lsb = 0xc,
3239  .msb = 0xe,
3240  .values = dm_sbcs_sberror_values
3241  },
3242  .get_next = dm_sbcs_get_sbreadondata
3243  };
3244  return result;
3245 }
3246 
3248 {
3249  struct riscv_debug_reg_field_list result = {
3250  .field = {
3251  .name = "sbaccess16",
3252  .lsb = 1,
3253  .msb = 1,
3254  .values = NULL
3255  },
3256  .get_next = dm_sbcs_get_sberror
3257  };
3258  return result;
3259 }
3260 
3262 {
3263  struct riscv_debug_reg_field_list result = {
3264  .field = {
3265  .name = "sbaccess8",
3266  .lsb = 0,
3267  .msb = 0,
3268  .values = NULL
3269  },
3270  .get_next = dm_sbcs_get_sbaccess16
3271  };
3272  return result;
3273 }
3274 
3276 {
3277  struct riscv_debug_reg_field_list result = {
3278  .field = {
3279  .name = "address",
3280  .lsb = 0,
3281  .msb = 0x1f,
3282  .values = NULL
3283  },
3284  .get_next = NULL
3285  };
3286  return result;
3287 }
3288 
3290 {
3291  struct riscv_debug_reg_field_list result = {
3292  .field = {
3293  .name = "address",
3294  .lsb = 0,
3295  .msb = 0x1f,
3296  .values = NULL
3297  },
3298  .get_next = NULL
3299  };
3300  return result;
3301 }
3302 
3304 {
3305  struct riscv_debug_reg_field_list result = {
3306  .field = {
3307  .name = "address",
3308  .lsb = 0,
3309  .msb = 0x1f,
3310  .values = NULL
3311  },
3312  .get_next = NULL
3313  };
3314  return result;
3315 }
3316 
3318 {
3319  struct riscv_debug_reg_field_list result = {
3320  .field = {
3321  .name = "address",
3322  .lsb = 0,
3323  .msb = 0x1f,
3324  .values = NULL
3325  },
3326  .get_next = NULL
3327  };
3328  return result;
3329 }
3330 
3332 {
3333  struct riscv_debug_reg_field_list result = {
3334  .field = {
3335  .name = "data",
3336  .lsb = 0,
3337  .msb = 0x1f,
3338  .values = NULL
3339  },
3340  .get_next = NULL
3341  };
3342  return result;
3343 }
3344 
3346 {
3347  struct riscv_debug_reg_field_list result = {
3348  .field = {
3349  .name = "data",
3350  .lsb = 0,
3351  .msb = 0x1f,
3352  .values = NULL
3353  },
3354  .get_next = NULL
3355  };
3356  return result;
3357 }
3358 
3360 {
3361  struct riscv_debug_reg_field_list result = {
3362  .field = {
3363  .name = "data",
3364  .lsb = 0,
3365  .msb = 0x1f,
3366  .values = NULL
3367  },
3368  .get_next = NULL
3369  };
3370  return result;
3371 }
3372 
3374 {
3375  struct riscv_debug_reg_field_list result = {
3376  .field = {
3377  .name = "data",
3378  .lsb = 0,
3379  .msb = 0x1f,
3380  .values = NULL
3381  },
3382  .get_next = NULL
3383  };
3384  return result;
3385 }
3386 
3388 {
3389  struct riscv_debug_reg_field_list result = {
3390  .field = {
3391  .name = "field",
3392  .lsb = 0,
3393  .msb = 7,
3394  .values = NULL
3395  },
3396  .get_next = NULL
3397  };
3398  return result;
3399 }
3400 
3401 static const char *ac_access_register_aarsize_values[8] = {
3402  [2] = "32bit",
3403  [3] = "64bit",
3404  [4] = "128bit"
3405 };
3407  [0] = "disabled",
3408  [1] = "enabled"
3409 };
3410 static const char *ac_access_register_postexec_values[2] = {
3411  [0] = "disabled",
3412  [1] = "enabled"
3413 };
3414 static const char *ac_access_register_transfer_values[2] = {
3415  [0] = "disabled",
3416  [1] = "enabled"
3417 };
3418 static const char *ac_access_register_write_values[2] = {
3419  [0] = "arg0",
3420  [1] = "register"
3421 };
3423 {
3424  struct riscv_debug_reg_field_list result = {
3425  .field = {
3426  .name = "cmdtype",
3427  .lsb = 0x18,
3428  .msb = 0x1f,
3429  .values = NULL
3430  },
3431  .get_next = NULL
3432  };
3433  return result;
3434 }
3435 
3437 {
3438  struct riscv_debug_reg_field_list result = {
3439  .field = {
3440  .name = "aarsize",
3441  .lsb = 0x14,
3442  .msb = 0x16,
3444  },
3445  .get_next = ac_access_register_get_cmdtype
3446  };
3447  return result;
3448 }
3449 
3451 {
3452  struct riscv_debug_reg_field_list result = {
3453  .field = {
3454  .name = "aarpostincrement",
3455  .lsb = 0x13,
3456  .msb = 0x13,
3458  },
3459  .get_next = ac_access_register_get_aarsize
3460  };
3461  return result;
3462 }
3463 
3465 {
3466  struct riscv_debug_reg_field_list result = {
3467  .field = {
3468  .name = "postexec",
3469  .lsb = 0x12,
3470  .msb = 0x12,
3472  },
3474  };
3475  return result;
3476 }
3477 
3479 {
3480  struct riscv_debug_reg_field_list result = {
3481  .field = {
3482  .name = "transfer",
3483  .lsb = 0x11,
3484  .msb = 0x11,
3486  },
3488  };
3489  return result;
3490 }
3491 
3493 {
3494  struct riscv_debug_reg_field_list result = {
3495  .field = {
3496  .name = "write",
3497  .lsb = 0x10,
3498  .msb = 0x10,
3500  },
3502  };
3503  return result;
3504 }
3505 
3507 {
3508  struct riscv_debug_reg_field_list result = {
3509  .field = {
3510  .name = "regno",
3511  .lsb = 0,
3512  .msb = 0xf,
3513  .values = NULL
3514  },
3515  .get_next = ac_access_register_get_write
3516  };
3517  return result;
3518 }
3519 
3521 {
3522  struct riscv_debug_reg_field_list result = {
3523  .field = {
3524  .name = "cmdtype",
3525  .lsb = 0x18,
3526  .msb = 0x1f,
3527  .values = NULL
3528  },
3529  .get_next = NULL
3530  };
3531  return result;
3532 }
3533 
3534 static const char *ac_access_memory_aamvirtual_values[2] = {
3535  [0] = "physical",
3536  [1] = "virtual"
3537 };
3538 static const char *ac_access_memory_aamsize_values[8] = {
3539  [0] = "8bit",
3540  [1] = "16bit",
3541  [2] = "32bit",
3542  [3] = "64bit",
3543  [4] = "128bit"
3544 };
3545 static const char *ac_access_memory_write_values[2] = {
3546  [0] = "arg0",
3547  [1] = "memory"
3548 };
3550 {
3551  struct riscv_debug_reg_field_list result = {
3552  .field = {
3553  .name = "cmdtype",
3554  .lsb = 0x18,
3555  .msb = 0x1f,
3556  .values = NULL
3557  },
3558  .get_next = NULL
3559  };
3560  return result;
3561 }
3562 
3564 {
3565  struct riscv_debug_reg_field_list result = {
3566  .field = {
3567  .name = "aamvirtual",
3568  .lsb = 0x17,
3569  .msb = 0x17,
3571  },
3572  .get_next = ac_access_memory_get_cmdtype
3573  };
3574  return result;
3575 }
3576 
3578 {
3579  struct riscv_debug_reg_field_list result = {
3580  .field = {
3581  .name = "aamsize",
3582  .lsb = 0x14,
3583  .msb = 0x16,
3585  },
3587  };
3588  return result;
3589 }
3590 
3592 {
3593  struct riscv_debug_reg_field_list result = {
3594  .field = {
3595  .name = "aampostincrement",
3596  .lsb = 0x13,
3597  .msb = 0x13,
3598  .values = NULL
3599  },
3600  .get_next = ac_access_memory_get_aamsize
3601  };
3602  return result;
3603 }
3604 
3606 {
3607  struct riscv_debug_reg_field_list result = {
3608  .field = {
3609  .name = "write",
3610  .lsb = 0x10,
3611  .msb = 0x10,
3613  },
3615  };
3616  return result;
3617 }
3618 
3620 {
3621  struct riscv_debug_reg_field_list result = {
3622  .field = {
3623  .name = "target-specific",
3624  .lsb = 0xe,
3625  .msb = 0xf,
3626  .values = NULL
3627  },
3628  .get_next = ac_access_memory_get_write
3629  };
3630  return result;
3631 }
3632 
3634 {
3635  struct riscv_debug_reg_field_list result = {
3636  .field = {
3637  .name = "v",
3638  .lsb = 2,
3639  .msb = 2,
3640  .values = NULL
3641  },
3642  .get_next = NULL
3643  };
3644  return result;
3645 }
3646 
3648 {
3649  struct riscv_debug_reg_field_list result = {
3650  .field = {
3651  .name = "prv",
3652  .lsb = 0,
3653  .msb = 1,
3654  .values = NULL
3655  },
3656  .get_next = virt_priv_get_v
3657  };
3658  return result;
3659 }
3660 
3662 {
3663  static const struct riscv_debug_reg_info debug_reg_info[] = {
3664  [DTM_IDCODE_ORDINAL] = {
3665  .name = "idcode",
3666  .get_fields_head = dtm_idcode_get_1
3667  },
3668  [DTM_DTMCS_ORDINAL] = {
3669  .name = "dtmcs",
3670  .get_fields_head = dtm_dtmcs_get_version
3671  },
3672  [DTM_DMI_ORDINAL] = {
3673  .name = "dmi",
3674  .get_fields_head = dtm_dmi_get_op
3675  },
3676  [DTM_BYPASS_ORDINAL] = {
3677  .name = "bypass",
3678  .get_fields_head = NULL
3679  },
3680  [CSR_DCSR_ORDINAL] = {
3681  .name = "dcsr",
3682  .get_fields_head = csr_dcsr_get_prv
3683  },
3684  [CSR_DPC_ORDINAL] = {
3685  .name = "dpc",
3686  .get_fields_head = csr_dpc_get_dpc
3687  },
3688  [CSR_DSCRATCH0_ORDINAL] = {
3689  .name = "dscratch0",
3690  .get_fields_head = csr_dscratch0_get_dscratch0
3691  },
3692  [CSR_DSCRATCH1_ORDINAL] = {
3693  .name = "dscratch1",
3694  .get_fields_head = csr_dscratch1_get_dscratch1
3695  },
3696  [CSR_TSELECT_ORDINAL] = {
3697  .name = "tselect",
3698  .get_fields_head = csr_tselect_get_index
3699  },
3700  [CSR_TDATA1_ORDINAL] = {
3701  .name = "tdata1",
3702  .get_fields_head = csr_tdata1_get_data
3703  },
3704  [CSR_TDATA2_ORDINAL] = {
3705  .name = "tdata2",
3706  .get_fields_head = csr_tdata2_get_data
3707  },
3708  [CSR_TDATA3_ORDINAL] = {
3709  .name = "tdata3",
3710  .get_fields_head = csr_tdata3_get_data
3711  },
3712  [CSR_TINFO_ORDINAL] = {
3713  .name = "tinfo",
3714  .get_fields_head = csr_tinfo_get_info
3715  },
3716  [CSR_TCONTROL_ORDINAL] = {
3717  .name = "tcontrol",
3718  .get_fields_head = csr_tcontrol_get_mte
3719  },
3720  [CSR_SCONTEXT_ORDINAL] = {
3721  .name = "scontext",
3722  .get_fields_head = csr_scontext_get_data
3723  },
3724  [CSR_MCONTEXT_ORDINAL] = {
3725  .name = "mcontext",
3726  .get_fields_head = csr_mcontext_get_hcontext
3727  },
3728  [CSR_MCONTROL_ORDINAL] = {
3729  .name = "mcontrol",
3730  .get_fields_head = csr_mcontrol_get_load
3731  },
3732  [CSR_MCONTROL6_ORDINAL] = {
3733  .name = "mcontrol6",
3734  .get_fields_head = csr_mcontrol6_get_load
3735  },
3736  [CSR_ICOUNT_ORDINAL] = {
3737  .name = "icount",
3738  .get_fields_head = csr_icount_get_action
3739  },
3740  [CSR_ITRIGGER_ORDINAL] = {
3741  .name = "itrigger",
3742  .get_fields_head = csr_itrigger_get_action
3743  },
3744  [CSR_ETRIGGER_ORDINAL] = {
3745  .name = "etrigger",
3746  .get_fields_head = csr_etrigger_get_action
3747  },
3749  .name = "tmexttrigger",
3750  .get_fields_head = csr_tmexttrigger_get_action
3751  },
3752  [CSR_TEXTRA32_ORDINAL] = {
3753  .name = "textra32",
3754  .get_fields_head = csr_textra32_get_sselect
3755  },
3756  [CSR_TEXTRA64_ORDINAL] = {
3757  .name = "textra64",
3758  .get_fields_head = csr_textra64_get_sselect
3759  },
3760  [DM_DMSTATUS_ORDINAL] = {
3761  .name = "dmstatus",
3762  .get_fields_head = dm_dmstatus_get_version
3763  },
3764  [DM_DMCONTROL_ORDINAL] = {
3765  .name = "dmcontrol",
3766  .get_fields_head = dm_dmcontrol_get_dmactive
3767  },
3768  [DM_HARTINFO_ORDINAL] = {
3769  .name = "hartinfo",
3770  .get_fields_head = dm_hartinfo_get_dataaddr
3771  },
3773  .name = "hawindowsel",
3774  .get_fields_head = dm_hawindowsel_get_hawindowsel
3775  },
3776  [DM_HAWINDOW_ORDINAL] = {
3777  .name = "hawindow",
3778  .get_fields_head = dm_hawindow_get_maskdata
3779  },
3780  [DM_ABSTRACTCS_ORDINAL] = {
3781  .name = "abstractcs",
3782  .get_fields_head = dm_abstractcs_get_datacount
3783  },
3784  [DM_COMMAND_ORDINAL] = {
3785  .name = "command",
3786  .get_fields_head = dm_command_get_control
3787  },
3789  .name = "abstractauto",
3790  .get_fields_head = dm_abstractauto_get_autoexecdata
3791  },
3793  .name = "confstrptr0",
3794  .get_fields_head = dm_confstrptr0_get_addr
3795  },
3797  .name = "confstrptr1",
3798  .get_fields_head = dm_confstrptr1_get_addr
3799  },
3801  .name = "confstrptr2",
3802  .get_fields_head = dm_confstrptr2_get_addr
3803  },
3805  .name = "confstrptr3",
3806  .get_fields_head = dm_confstrptr3_get_addr
3807  },
3808  [DM_NEXTDM_ORDINAL] = {
3809  .name = "nextdm",
3810  .get_fields_head = dm_nextdm_get_addr
3811  },
3812  [DM_DATA0_ORDINAL] = {
3813  .name = "data0",
3814  .get_fields_head = dm_data0_get_data
3815  },
3816  [DM_PROGBUF0_ORDINAL] = {
3817  .name = "progbuf0",
3818  .get_fields_head = dm_progbuf0_get_data
3819  },
3820  [DM_AUTHDATA_ORDINAL] = {
3821  .name = "authdata",
3822  .get_fields_head = dm_authdata_get_data
3823  },
3824  [DM_DMCS2_ORDINAL] = {
3825  .name = "dmcs2",
3826  .get_fields_head = dm_dmcs2_get_hgselect
3827  },
3828  [DM_HALTSUM0_ORDINAL] = {
3829  .name = "haltsum0",
3830  .get_fields_head = dm_haltsum0_get_haltsum0
3831  },
3832  [DM_HALTSUM1_ORDINAL] = {
3833  .name = "haltsum1",
3834  .get_fields_head = dm_haltsum1_get_haltsum1
3835  },
3836  [DM_HALTSUM2_ORDINAL] = {
3837  .name = "haltsum2",
3838  .get_fields_head = dm_haltsum2_get_haltsum2
3839  },
3840  [DM_HALTSUM3_ORDINAL] = {
3841  .name = "haltsum3",
3842  .get_fields_head = dm_haltsum3_get_haltsum3
3843  },
3844  [DM_SBCS_ORDINAL] = {
3845  .name = "sbcs",
3846  .get_fields_head = dm_sbcs_get_sbaccess8
3847  },
3848  [DM_SBADDRESS0_ORDINAL] = {
3849  .name = "sbaddress0",
3850  .get_fields_head = dm_sbaddress0_get_address
3851  },
3852  [DM_SBADDRESS1_ORDINAL] = {
3853  .name = "sbaddress1",
3854  .get_fields_head = dm_sbaddress1_get_address
3855  },
3856  [DM_SBADDRESS2_ORDINAL] = {
3857  .name = "sbaddress2",
3858  .get_fields_head = dm_sbaddress2_get_address
3859  },
3860  [DM_SBADDRESS3_ORDINAL] = {
3861  .name = "sbaddress3",
3862  .get_fields_head = dm_sbaddress3_get_address
3863  },
3864  [DM_SBDATA0_ORDINAL] = {
3865  .name = "sbdata0",
3866  .get_fields_head = dm_sbdata0_get_data
3867  },
3868  [DM_SBDATA1_ORDINAL] = {
3869  .name = "sbdata1",
3870  .get_fields_head = dm_sbdata1_get_data
3871  },
3872  [DM_SBDATA2_ORDINAL] = {
3873  .name = "sbdata2",
3874  .get_fields_head = dm_sbdata2_get_data
3875  },
3876  [DM_SBDATA3_ORDINAL] = {
3877  .name = "sbdata3",
3878  .get_fields_head = dm_sbdata3_get_data
3879  },
3880  [SHORTNAME_ORDINAL] = {
3881  .name = "shortname",
3882  .get_fields_head = shortname_get_field
3883  },
3885  .name = "access register",
3886  .get_fields_head = ac_access_register_get_regno
3887  },
3889  .name = "quick access",
3890  .get_fields_head = ac_quick_access_get_cmdtype
3891  },
3893  .name = "access memory",
3894  .get_fields_head = ac_access_memory_get_target_specific
3895  },
3896  [VIRT_PRIV_ORDINAL] = {
3897  .name = "priv",
3898  .get_fields_head = virt_priv_get_prv
3899  },
3900  };
3901  return debug_reg_info[reg_ordinal];
3902 }
static struct riscv_debug_reg_field_list csr_mcontrol_get_action(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_cause_values[8]
static struct riscv_debug_reg_field_list dtm_dtmcs_get_dtmhardreset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_vu(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontext_get_hcontext(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_mprven(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_m(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_maskmax(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anyhavereset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tdata2_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_u(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_idcode_get_version(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:7
static struct riscv_debug_reg_field_list dm_sbdata1_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra64_get_svalue(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list shortname_get_field(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_cetrig_values[2]
static struct riscv_debug_reg_field_list csr_etrigger_get_hit(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbaddress2_get_address(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_ebreaks_values[2]
static const char * csr_etrigger_action_values[64]
static struct riscv_debug_reg_field_list csr_itrigger_get_dmode(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_size_values[8]
static struct riscv_debug_reg_field_list csr_icount_get_vs(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_hit0(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_abstractauto_get_autoexecprogbuf(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_match(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_memory_get_target_specific(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_stepie(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbdata0_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_timing(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbversion(struct riscv_debug_reg_ctx context)
static const char * dm_dmstatus_ndmresetpending_values[2]
static const char * csr_dcsr_stoptime_values[2]
static struct riscv_debug_reg_field_list dm_sbcs_get_sbautoincrement(struct riscv_debug_reg_ctx context)
static const char * ac_access_memory_aamvirtual_values[2]
static struct riscv_debug_reg_field_list ac_access_memory_get_aamsize(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anyrunning(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_memory_get_aamvirtual(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_scontext_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_progbuf0_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_command_get_cmdtype(struct riscv_debug_reg_ctx context)
static const char * csr_tmexttrigger_action_values[64]
static struct riscv_debug_reg_field_list csr_dcsr_get_ebreakvu(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_idcode_get_manufid(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:35
static struct riscv_debug_reg_field_list dm_sbcs_get_sbreadondata(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_u(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_confstrptr2_get_addr(struct riscv_debug_reg_ctx context)
static const char * dtm_dmi_op_values[4]
static struct riscv_debug_reg_field_list csr_mcontrol_get_store(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anyresumeack(struct riscv_debug_reg_ctx context)
struct riscv_debug_reg_info get_riscv_debug_reg_info(enum riscv_debug_reg_ordinal reg_ordinal)
static const char * dm_abstractcs_relaxedpriv_values[2]
static const char * csr_dcsr_ebreaku_values[2]
static struct riscv_debug_reg_field_list csr_textra64_get_mhselect(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_s(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allrunning(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess16(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_mprven_values[2]
static struct riscv_debug_reg_field_list dm_dmcontrol_get_clrkeepalive(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dscratch0_get_dscratch0(struct riscv_debug_reg_ctx context)
static const char * dm_dmstatus_stickyunavail_values[2]
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess128(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_ackhavereset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_m(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcs2_get_hgselect(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra32_get_mhselect(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_ebreaku(struct riscv_debug_reg_ctx context)
static const char * dm_dmcontrol_dmactive_values[2]
static struct riscv_debug_reg_field_list dtm_dtmcs_get_abits(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:75
static struct riscv_debug_reg_field_list csr_itrigger_get_nmi(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_action(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_confstrptrvalid(struct riscv_debug_reg_ctx context)
static const char * dm_dmstatus_authenticated_values[2]
static struct riscv_debug_reg_field_list dm_hartinfo_get_nscratch(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_s(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_resumereq(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_stopcount(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_haltsum1_get_haltsum1(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_uncertain(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_nmip(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tcontrol_get_mte(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anyhalted(struct riscv_debug_reg_ctx context)
static const char * ac_access_register_postexec_values[2]
static struct riscv_debug_reg_field_list csr_textra64_get_sbytemask(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_version(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_hartsello(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_ebreakm_values[2]
static struct riscv_debug_reg_field_list csr_itrigger_get_vu(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_action(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_uncertain_values[2]
static const char * csr_dcsr_debugver_values[16]
static struct riscv_debug_reg_field_list dm_dmstatus_get_hasresethaltreq(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_aarpostincrement(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_execute(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_step(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_stepie_values[2]
static struct riscv_debug_reg_field_list dm_hartinfo_get_dataaccess(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_extcause_values[8]
static struct riscv_debug_reg_field_list csr_icount_get_u(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_hawindow_get_maskdata(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allresumeack(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_m(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_hartreset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess32(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_dmode(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_chain_values[2]
static const char * csr_dcsr_ebreakvs_values[2]
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_intctl(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_ebreakm(struct riscv_debug_reg_ctx context)
static const char * dm_dmcontrol_hasel_values[2]
static struct riscv_debug_reg_field_list csr_mcontrol6_get_size(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_count(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allnonexistent(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_ndmreset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_load(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_setresethaltreq(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_dtmcs_get_dmistat(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_pelp(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcs2_get_grouptype(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_hit(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tdata3_get_data(struct riscv_debug_reg_ctx context)
static const char * csr_tinfo_version_values[256]
static struct riscv_debug_reg_field_list csr_tinfo_get_info(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_hit(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_confstrptr3_get_addr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_setkeepalive(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_postexec(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_v(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra32_get_mhvalue(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_dtmcs_get_errinfo(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:89
static struct riscv_debug_reg_field_list csr_mcontrol6_get_store(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess8(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_idcode_get_1(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:49
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_dmode(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_action(struct riscv_debug_reg_ctx context)
static const char * dm_dmcontrol_ackhavereset_values[2]
static const char * dm_dmcontrol_ackunavail_values[2]
static const char * dm_dmcs2_grouptype_values[2]
static struct riscv_debug_reg_field_list csr_mcontrol6_get_vs(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_ebreakvs(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anyunavail(struct riscv_debug_reg_ctx context)
static const char * dm_abstractcs_busy_values[2]
static struct riscv_debug_reg_field_list csr_tselect_get_index(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_idcode_get_partnumber(struct riscv_debug_reg_ctx context)
Definition: debug_defines.c:21
static struct riscv_debug_reg_field_list dm_sbaddress3_get_address(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_write(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_u(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol_select_values[2]
static struct riscv_debug_reg_field_list dm_hartinfo_get_dataaddr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_vu(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allunavail(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_command_get_control(struct riscv_debug_reg_ctx context)
static const char * dm_dmcs2_hgselect_values[2]
static const char * dm_abstractcs_cmderr_values[8]
static const char * dm_dmstatus_version_values[16]
static struct riscv_debug_reg_field_list csr_textra32_get_svalue(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcs2_get_dmexttrigger(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_stopcount_values[2]
static struct riscv_debug_reg_field_list csr_dcsr_get_ebreaks(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_transfer(struct riscv_debug_reg_ctx context)
static const char * dtm_dtmcs_version_values[16]
Definition: debug_defines.c:70
static struct riscv_debug_reg_field_list csr_dcsr_get_cause(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_hartselhi(struct riscv_debug_reg_ctx context)
static const char * dm_sbcs_sberror_values[8]
static struct riscv_debug_reg_field_list csr_icount_get_dmode(struct riscv_debug_reg_ctx context)
static const char * csr_tdata1_dmode_values[2]
static struct riscv_debug_reg_field_list csr_icount_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_prv(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tcontrol_get_mpte(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_memory_get_cmdtype(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbasize(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_chain(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_debugver(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol_timing_values[2]
static struct riscv_debug_reg_field_list dm_abstractauto_get_autoexecdata(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_abstractcs_get_busy(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allhalted(struct riscv_debug_reg_ctx context)
static const char * ac_access_memory_aamsize_values[8]
static struct riscv_debug_reg_field_list dm_dmcs2_get_group(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_s(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_select(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_allhavereset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_authenticated(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbreadonaddr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_pending(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_hit(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_dmode(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol_action_values[16]
static struct riscv_debug_reg_field_list csr_dcsr_get_cetrig(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_aarsize(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tdata1_get_dmode(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_ebreakvu_values[2]
static struct riscv_debug_reg_field_list dm_haltsum3_get_haltsum3(struct riscv_debug_reg_ctx context)
static const char * ac_access_register_write_values[2]
static struct riscv_debug_reg_field_list dm_abstractcs_get_datacount(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_s(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_dmactive(struct riscv_debug_reg_ctx context)
static const char * dm_hartinfo_dataaccess_values[2]
static const char * dm_dmstatus_authbusy_values[2]
static struct riscv_debug_reg_field_list dtm_dtmcs_get_idle(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_clrresethaltreq(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra64_get_mhvalue(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_sizelo(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbaccess64(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dscratch1_get_dscratch1(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_stoptime(struct riscv_debug_reg_ctx context)
static const char * dtm_dtmcs_errinfo_values[8]
Definition: debug_defines.c:63
static struct riscv_debug_reg_field_list csr_icount_get_m(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dcsr_get_extcause(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra64_get_sselect(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_match_values[16]
static struct riscv_debug_reg_field_list dm_dmstatus_get_ndmresetpending(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_hit1(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_ackunavail(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tinfo_get_version(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_sizehi(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbdata2_get_data(struct riscv_debug_reg_ctx context)
static const char * dm_sbcs_sbversion_values[8]
static struct riscv_debug_reg_field_list dm_dmcs2_get_hgwrite(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_haltreq(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_select(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra32_get_sbytemask(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_execute(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol_match_values[16]
static struct riscv_debug_reg_field_list csr_mcontrol6_get_load(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_vu(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_impebreak(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sberror(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_data0_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_vs(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_haltsum2_get_haltsum2(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_nextdm_get_addr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_m(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_abstractcs_get_cmderr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tdata1_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_abstractcs_get_progbufsize(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_tdata1_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_dmode(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_dpc_get_dpc(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_confstrptr0_get_addr(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbaddress0_get_address(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_uncertainen(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbdata3_get_data(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_action_values[16]
static struct riscv_debug_reg_field_list ac_access_memory_get_aampostincrement(struct riscv_debug_reg_ctx context)
static const char * csr_textra32_sselect_values[4]
static const char * csr_mcontrol_sizelo_values[4]
static struct riscv_debug_reg_field_list csr_tmexttrigger_get_hit(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_u(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbaddress1_get_address(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_dmi_get_data(struct riscv_debug_reg_ctx context)
static const char * csr_dcsr_pelp_values[2]
static struct riscv_debug_reg_field_list dm_abstractcs_get_relaxedpriv(struct riscv_debug_reg_ctx context)
static const char * dm_dmstatus_confstrptrvalid_values[2]
static const char * dm_sbcs_sbaccess_values[8]
static struct riscv_debug_reg_field_list dtm_dtmcs_get_dmireset(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_haltsum0_get_haltsum0(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_confstrptr1_get_addr(struct riscv_debug_reg_ctx context)
static const char * ac_access_register_aarpostincrement_values[2]
static struct riscv_debug_reg_field_list dtm_dtmcs_get_version(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbbusyerror(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_select(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_uncertainen_values[2]
static const char * csr_mcontrol6_hit0_values[2]
static const char * ac_access_memory_write_values[2]
static struct riscv_debug_reg_field_list csr_etrigger_get_s(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_dmi_get_op(struct riscv_debug_reg_ctx context)
static const char * csr_mcontrol6_select_values[2]
static const char * ac_access_register_transfer_values[2]
static struct riscv_debug_reg_field_list ac_access_register_get_cmdtype(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol_get_type(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_authbusy(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_etrigger_get_action(struct riscv_debug_reg_ctx context)
static const char * csr_tcontrol_mte_values[2]
static struct riscv_debug_reg_field_list dm_hawindowsel_get_hawindowsel(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_hartinfo_get_datasize(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_stickyunavail(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmstatus_get_anynonexistent(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_textra32_get_sselect(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list virt_priv_get_v(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_authdata_get_data(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_dmcontrol_get_hasel(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dm_sbcs_get_sbbusy(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_mcontrol6_get_chain(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list virt_priv_get_prv(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_icount_get_action(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list dtm_dmi_get_address(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_quick_access_get_cmdtype(struct riscv_debug_reg_ctx context)
static const char * csr_icount_action_values[64]
static const char * csr_textra32_mhselect_values[8]
static const char * csr_tdata1_type_values[16]
static const char * ac_access_register_aarsize_values[8]
static const char * csr_mcontrol_chain_values[2]
static struct riscv_debug_reg_field_list ac_access_memory_get_write(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list ac_access_register_get_regno(struct riscv_debug_reg_ctx context)
static const char * csr_itrigger_action_values[64]
static struct riscv_debug_reg_field_list csr_mcontrol_get_match(struct riscv_debug_reg_ctx context)
static struct riscv_debug_reg_field_list csr_itrigger_get_vs(struct riscv_debug_reg_ctx context)
riscv_debug_reg_ordinal
@ DM_AUTHDATA_ORDINAL
@ DM_CONFSTRPTR0_ORDINAL
@ CSR_TEXTRA64_ORDINAL
@ DM_DMSTATUS_ORDINAL
@ CSR_MCONTEXT_ORDINAL
@ DM_SBADDRESS0_ORDINAL
@ DM_ABSTRACTAUTO_ORDINAL
@ CSR_SCONTEXT_ORDINAL
@ DTM_IDCODE_ORDINAL
@ CSR_MCONTROL6_ORDINAL
@ CSR_ETRIGGER_ORDINAL
@ DM_SBDATA0_ORDINAL
@ CSR_TDATA1_ORDINAL
@ DM_COMMAND_ORDINAL
@ DM_SBDATA2_ORDINAL
@ DM_PROGBUF0_ORDINAL
@ DM_CONFSTRPTR2_ORDINAL
@ CSR_TMEXTTRIGGER_ORDINAL
@ DM_ABSTRACTCS_ORDINAL
@ CSR_ICOUNT_ORDINAL
@ DM_SBADDRESS1_ORDINAL
@ DM_DMCS2_ORDINAL
@ VIRT_PRIV_ORDINAL
@ DTM_DMI_ORDINAL
@ DM_HAWINDOW_ORDINAL
@ AC_ACCESS_MEMORY_ORDINAL
@ DM_SBDATA1_ORDINAL
@ CSR_ITRIGGER_ORDINAL
@ CSR_TSELECT_ORDINAL
@ CSR_TINFO_ORDINAL
@ DTM_BYPASS_ORDINAL
@ DM_SBADDRESS3_ORDINAL
@ AC_QUICK_ACCESS_ORDINAL
@ CSR_DPC_ORDINAL
@ CSR_DSCRATCH1_ORDINAL
@ DM_NEXTDM_ORDINAL
@ CSR_DCSR_ORDINAL
@ DTM_DTMCS_ORDINAL
@ CSR_DSCRATCH0_ORDINAL
@ DM_HAWINDOWSEL_ORDINAL
@ SHORTNAME_ORDINAL
@ CSR_TDATA3_ORDINAL
@ CSR_TEXTRA32_ORDINAL
@ CSR_TDATA2_ORDINAL
@ DM_CONFSTRPTR3_ORDINAL
@ CSR_TCONTROL_ORDINAL
@ DM_SBDATA3_ORDINAL
@ CSR_MCONTROL_ORDINAL
@ DM_HALTSUM2_ORDINAL
@ DM_HALTSUM1_ORDINAL
@ DM_HARTINFO_ORDINAL
@ DM_SBCS_ORDINAL
@ DM_SBADDRESS2_ORDINAL
@ DM_HALTSUM3_ORDINAL
@ DM_DMCONTROL_ORDINAL
@ DM_HALTSUM0_ORDINAL
@ DM_DATA0_ORDINAL
@ DM_CONFSTRPTR1_ORDINAL
@ AC_ACCESS_REGISTER_ORDINAL
struct riscv_debug_reg_field_info field
#define NULL
Definition: usb.h:16