12#include "hw/top/dt/dt_flash_ctrl.h" 
   48      [kDtFlashCtrlRegBlockCore] = 0x41000000,
 
   49      [kDtFlashCtrlRegBlockPrim] = 0x41008000,
 
   52      [kDtFlashCtrlMemoryMem] = 0x20000000,
 
   55      [kDtFlashCtrlMemoryMem] = 0x100000,
 
   68      [kDtFlashCtrlPeriphIoTck] = {
 
   73          .outsel_or_dt_pad = 0,
 
   76      [kDtFlashCtrlPeriphIoTms] = {
 
   81          .outsel_or_dt_pad = 0,
 
   84      [kDtFlashCtrlPeriphIoTdi] = {
 
   89          .outsel_or_dt_pad = 0,
 
   92      [kDtFlashCtrlPeriphIoTdo] = {
 
   96          .periph_input_or_direct_pad = 0,
 
  109#define TRY_GET_DT(dt, default)   ({     if ((dt) < (dt_flash_ctrl_t)0 || (dt) >= kDtFlashCtrlCount)       return (default);     &flash_ctrl_desc[dt];   }) 
  127  return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
 
 
  134  return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
 
 
  148  if (first_irq == kDtPlicIrqIdNone) {
 
  149    return kDtPlicIrqIdNone;
 
 
  159  if (first_irq == kDtPlicIrqIdNone) {
 
 
  172  return (
dt_alert_id_t)((uint32_t)flash_ctrl_desc[dt].first_alert + (uint32_t)alert);
 
 
  179  if (alert < flash_ctrl_desc[dt].first_alert || alert >= flash_ctrl_desc[dt].first_alert + (
dt_alert_id_t)count) {
 
 
  190  return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];