tcl: am437x: add reset-init event handler
[openocd.git] / tcl / target / am437x.cfg
index c58cd894490fe9aefa92355bc4487167a6d50baf..75c13e4b87ff67cfa3d209ec6d7ffbff97a36b9e 100644 (file)
@@ -1,4 +1,437 @@
 source [find target/icepick.cfg]
+source [find mem_helper.tcl]
+
+###############################################################################
+##                             AM437x Registers                             ##
+###############################################################################
+set  PRCM_BASE_ADDR                  0x44df0000
+set  REVISION_PRM                    [expr       $PRCM_BASE_ADDR     +  0x0000]
+set  PRM_IRQSTATUS_MPU               [expr       $PRCM_BASE_ADDR     +  0x0004]
+set  PRM_IRQENABLE_MPU               [expr       $PRCM_BASE_ADDR     +  0x0008]
+set  PRM_IRQSTATUS_M3                [expr       $PRCM_BASE_ADDR     +  0x000c]
+set  PRM_IRQENABLE_M3                [expr       $PRCM_BASE_ADDR     +  0x0010]
+set  PM_MPU_PWRSTCTRL                [expr       $PRCM_BASE_ADDR     +  0x0300]
+set  PM_MPU_PWRSTST                  [expr       $PRCM_BASE_ADDR     +  0x0304]
+set  RM_MPU_RSTST                    [expr       $PRCM_BASE_ADDR     +  0x0314]
+set  RM_MPU_CONTEXT                  [expr       $PRCM_BASE_ADDR     +  0x0324]
+set  PM_GFX_PWRSTCTRL                [expr       $PRCM_BASE_ADDR     +  0x0400]
+set  PM_GFX_PWRSTST                  [expr       $PRCM_BASE_ADDR     +  0x0404]
+set  RM_GFX_RSTCTRL                  [expr       $PRCM_BASE_ADDR     +  0x0410]
+set  RM_GFX_RSTST                    [expr       $PRCM_BASE_ADDR     +  0x0414]
+set  RM_GFX_CONTEXT                  [expr       $PRCM_BASE_ADDR     +  0x0424]
+set  RM_RTC_CONTEXT                  [expr       $PRCM_BASE_ADDR     +  0x0524]
+set  RM_WKUP_RSTCTRL                 [expr       $PRCM_BASE_ADDR     +  0x2010]
+set  RM_WKUP_RSTST                   [expr       $PRCM_BASE_ADDR     +  0x2014]
+set  CM_L3_AON_CLKSTCTRL             [expr       $PRCM_BASE_ADDR     +  0x2800]
+set  CM_WKUP_DEBUGSS_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2820]
+set  CM_L3S_TSC_CLKSTCTRL            [expr       $PRCM_BASE_ADDR     +  0x2900]
+set  CM_WKUP_ADC_TSC_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2920]
+set  CM_L4_WKUP_AON_CLKSTCTRL        [expr       $PRCM_BASE_ADDR     +  0x2a00]
+set  CM_WKUP_L4WKUP_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x2a20]
+set  CM_WKUP_WKUP_M3_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2a28]
+set  CM_WKUP_SYNCTIMER_CLKCTRL       [expr       $PRCM_BASE_ADDR     +  0x2a30]
+set  CM_WKUP_CLKDIV32K_CLKCTRL       [expr       $PRCM_BASE_ADDR     +  0x2a38]
+set  CM_WKUP_USBPHY0_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2a40]
+set  CM_WKUP_USBPHY1_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2a48]
+set  CM_WKUP_CLKSTCTRL               [expr       $PRCM_BASE_ADDR     +  0x2b00]
+set  CM_WKUP_TIMER0_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x2b20]
+set  CM_WKUP_TIMER1_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x2b28]
+set  CM_WKUP_WDT0_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x2b30]
+set  CM_WKUP_WDT1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x2b38]
+set  CM_WKUP_I2C0_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x2b40]
+set  CM_WKUP_UART0_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x2b48]
+set  CM_WKUP_SMARTREFLEX0_CLKCTRL    [expr       $PRCM_BASE_ADDR     +  0x2b50]
+set  CM_WKUP_SMARTREFLEX1_CLKCTRL    [expr       $PRCM_BASE_ADDR     +  0x2b58]
+set  CM_WKUP_CONTROL_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x2b60]
+set  CM_WKUP_GPIO0_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x2b68]
+set  CM_CLKMODE_DPLL_CORE            [expr       $PRCM_BASE_ADDR     +  0x2d20]
+set  CM_IDLEST_DPLL_CORE             [expr       $PRCM_BASE_ADDR     +  0x2d24]
+set  CM_CLKSEL_DPLL_CORE             [expr       $PRCM_BASE_ADDR     +  0x2d2c]
+set  CM_DIV_M4_DPLL_CORE             [expr       $PRCM_BASE_ADDR     +  0x2d38]
+set  CM_DIV_M5_DPLL_CORE             [expr       $PRCM_BASE_ADDR     +  0x2d3c]
+set  CM_DIV_M6_DPLL_CORE             [expr       $PRCM_BASE_ADDR     +  0x2d40]
+set  CM_SSC_DELTAMSTEP_DPLL_CORE     [expr       $PRCM_BASE_ADDR     +  0x2d48]
+set  CM_SSC_MODFREQDIV_DPLL_CORE     [expr       $PRCM_BASE_ADDR     +  0x2d4c]
+set  CM_CLKMODE_DPLL_MPU             [expr       $PRCM_BASE_ADDR     +  0x2d60]
+set  CM_IDLEST_DPLL_MPU              [expr       $PRCM_BASE_ADDR     +  0x2d64]
+set  CM_CLKSEL_DPLL_MPU              [expr       $PRCM_BASE_ADDR     +  0x2d6c]
+set  CM_DIV_M2_DPLL_MPU              [expr       $PRCM_BASE_ADDR     +  0x2d70]
+set  CM_SSC_DELTAMSTEP_DPLL_MPU      [expr       $PRCM_BASE_ADDR     +  0x2d88]
+set  CM_SSC_MODFREQDIV_DPLL_MPU      [expr       $PRCM_BASE_ADDR     +  0x2d8c]
+set  CM_CLKMODE_DPLL_DDR             [expr       $PRCM_BASE_ADDR     +  0x2da0]
+set  CM_IDLEST_DPLL_DDR              [expr       $PRCM_BASE_ADDR     +  0x2da4]
+set  CM_CLKSEL_DPLL_DDR              [expr       $PRCM_BASE_ADDR     +  0x2dac]
+set  CM_DIV_M2_DPLL_DDR              [expr       $PRCM_BASE_ADDR     +  0x2db0]
+set  CM_DIV_M4_DPLL_DDR              [expr       $PRCM_BASE_ADDR     +  0x2db8]
+set  CM_SSC_DELTAMSTEP_DPLL_DDR      [expr       $PRCM_BASE_ADDR     +  0x2dc8]
+set  CM_SSC_MODFREQDIV_DPLL_DDR      [expr       $PRCM_BASE_ADDR     +  0x2dcc]
+set  CM_CLKMODE_DPLL_PER             [expr       $PRCM_BASE_ADDR     +  0x2de0]
+set  CM_IDLEST_DPLL_PER              [expr       $PRCM_BASE_ADDR     +  0x2de4]
+set  CM_CLKSEL_DPLL_PER              [expr       $PRCM_BASE_ADDR     +  0x2dec]
+set  CM_DIV_M2_DPLL_PER              [expr       $PRCM_BASE_ADDR     +  0x2df0]
+set  CM_CLKSEL2_DPLL_PER             [expr       $PRCM_BASE_ADDR     +  0x2e04]
+set  CM_SSC_DELTAMSTEP_DPLL_PER      [expr       $PRCM_BASE_ADDR     +  0x2e08]
+set  CM_SSC_MODFREQDIV_DPLL_PER      [expr       $PRCM_BASE_ADDR     +  0x2e0c]
+set  CM_CLKDCOLDO_DPLL_PER           [expr       $PRCM_BASE_ADDR     +  0x2e14]
+set  CM_CLKMODE_DPLL_DISP            [expr       $PRCM_BASE_ADDR     +  0x2e20]
+set  CM_IDLEST_DPLL_DISP             [expr       $PRCM_BASE_ADDR     +  0x2e24]
+set  CM_CLKSEL_DPLL_DISP             [expr       $PRCM_BASE_ADDR     +  0x2e2c]
+set  CM_DIV_M2_DPLL_DISP             [expr       $PRCM_BASE_ADDR     +  0x2e30]
+set  CM_SSC_DELTAMSTEP_DPLL_DISP     [expr       $PRCM_BASE_ADDR     +  0x2e48]
+set  CM_SSC_MODFREQDIV_DPLL_DISP     [expr       $PRCM_BASE_ADDR     +  0x2e4c]
+set  CM_CLKMODE_DPLL_EXTDEV          [expr       $PRCM_BASE_ADDR     +  0x2e60]
+set  CM_IDLEST_DPLL_EXTDEV           [expr       $PRCM_BASE_ADDR     +  0x2e64]
+set  CM_CLKSEL_DPLL_EXTDEV           [expr       $PRCM_BASE_ADDR     +  0x2e6c]
+set  CM_DIV_M2_DPLL_EXTDEV           [expr       $PRCM_BASE_ADDR     +  0x2e70]
+set  CM_CLKSEL2_DPLL_EXTDEV          [expr       $PRCM_BASE_ADDR     +  0x2e84]
+set  CM_SSC_DELTAMSTEP_DPLL_EXTDEV   [expr       $PRCM_BASE_ADDR     +  0x2e88]
+set  CM_SSC_MODFREQDIV_DPLL_EXTDEV   [expr       $PRCM_BASE_ADDR     +  0x2e8c]
+set  CM_SHADOW_FREQ_CONFIG1          [expr       $PRCM_BASE_ADDR     +  0x2fa0]
+set  CM_SHADOW_FREQ_CONFIG2          [expr       $PRCM_BASE_ADDR     +  0x2fa4]
+set  CM_CLKOUT1_CTRL                 [expr       $PRCM_BASE_ADDR     +  0x4100]
+set  CM_DLL_CTRL                     [expr       $PRCM_BASE_ADDR     +  0x4104]
+set  CM_CLKOUT2_CTRL                 [expr       $PRCM_BASE_ADDR     +  0x4108]
+set  CLKSEL_TIMER1MS_CLK             [expr       $PRCM_BASE_ADDR     +  0x4200]
+set  CLKSEL_TIMER2_CLK               [expr       $PRCM_BASE_ADDR     +  0x4204]
+set  CLKSEL_TIMER3_CLK               [expr       $PRCM_BASE_ADDR     +  0x4208]
+set  CLKSEL_TIMER4_CLK               [expr       $PRCM_BASE_ADDR     +  0x420c]
+set  CLKSEL_TIMER5_CLK               [expr       $PRCM_BASE_ADDR     +  0x4210]
+set  CLKSEL_TIMER6_CLK               [expr       $PRCM_BASE_ADDR     +  0x4214]
+set  CLKSEL_TIMER7_CLK               [expr       $PRCM_BASE_ADDR     +  0x4218]
+set  CLKSEL_TIMER8_CLK               [expr       $PRCM_BASE_ADDR     +  0x421c]
+set  CLKSEL_TIMER9_CLK               [expr       $PRCM_BASE_ADDR     +  0x4220]
+set  CLKSEL_TIMER10_CLK              [expr       $PRCM_BASE_ADDR     +  0x4224]
+set  CLKSEL_TIMER11_CLK              [expr       $PRCM_BASE_ADDR     +  0x4228]
+set  CLKSEL_WDT1_CLK                 [expr       $PRCM_BASE_ADDR     +  0x422c]
+set  CLKSEL_SYNCTIMER_CLK            [expr       $PRCM_BASE_ADDR     +  0x4230]
+set  CLKSEL_MAC_CLK                  [expr       $PRCM_BASE_ADDR     +  0x4234]
+set  CLKSEL_CPTS_RFT_CLK             [expr       $PRCM_BASE_ADDR     +  0x4238]
+set  CLKSEL_GFX_FCLK                 [expr       $PRCM_BASE_ADDR     +  0x423c]
+set  CLKSEL_GPIO0_DBCLK              [expr       $PRCM_BASE_ADDR     +  0x4240]
+set  CLKSEL_LCDC_PIXEL_CLK           [expr       $PRCM_BASE_ADDR     +  0x4244]
+set  CLKSEL_ICSS_OCP_CLK             [expr       $PRCM_BASE_ADDR     +  0x4248]
+set  CLKSEL_DLL_AGING_CLK            [expr       $PRCM_BASE_ADDR     +  0x4250]
+set  CLKSEL_USBPHY32KHZ_GCLK         [expr       $PRCM_BASE_ADDR     +  0x4260]
+set  CM_MPU_CLKSTCTRL                [expr       $PRCM_BASE_ADDR     +  0x8300]
+set  CM_MPU_MPU_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8320]
+set  CM_GFX_L3_CLKSTCTRL             [expr       $PRCM_BASE_ADDR     +  0x8400]
+set  CM_GFX_GFX_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8420]
+set  CM_RTC_CLKSTCTRL                [expr       $PRCM_BASE_ADDR     +  0x8500]
+set  CM_RTC_RTC_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8520]
+set  CM_PER_L3_CLKSTCTRL             [expr       $PRCM_BASE_ADDR     +  0x8800]
+set  CM_PER_L3_CLKCTRL               [expr       $PRCM_BASE_ADDR     +  0x8820]
+set  CM_PER_AES0_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8828]
+set  CM_PER_DES_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8830]
+set  CM_PER_CRYPTODMA_CLKCTRL        [expr       $PRCM_BASE_ADDR     +  0x8838]
+set  CM_PER_L3_INSTR_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x8840]
+set  CM_PER_MSTR_EXPS_CLKCTRL        [expr       $PRCM_BASE_ADDR     +  0x8848]
+set  CM_PER_OCMCRAM_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8850]
+set  CM_PER_SHA0_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8858]
+set  CM_PER_SLV_EXPS_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x8860]
+set  CM_PER_VPFE0_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8868]
+set  CM_PER_VPFE1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8870]
+set  CM_PER_TPCC_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8878]
+set  CM_PER_TPTC0_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8880]
+set  CM_PER_TPTC1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8888]
+set  CM_PER_TPTC2_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8890]
+set  CM_PER_DLL_AGING_CLKCTRL        [expr       $PRCM_BASE_ADDR     +  0x8898]
+set  CM_PER_L4HS_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x88a0]
+set  CM_PER_L4FW_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x88a8]
+set  CM_PER_L3S_CLKSTCTRL            [expr       $PRCM_BASE_ADDR     +  0x8a00]
+set  CM_PER_GPMC_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8a20]
+set  CM_PER_IEEE5000_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x8a28]
+set  CM_PER_MCASP0_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8a38]
+set  CM_PER_MCASP1_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8a40]
+set  CM_PER_MMC2_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8a48]
+set  CM_PER_QSPI_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8a58]
+set  CM_PER_USB_OTG_SS0_CLKCTRL      [expr       $PRCM_BASE_ADDR     +  0x8a60]
+set  CM_PER_USB_OTG_SS1_CLKCTRL      [expr       $PRCM_BASE_ADDR     +  0x8a68]
+set  CM_PER_ICSS_CLKSTCTRL           [expr       $PRCM_BASE_ADDR     +  0x8b00]
+set  CM_PER_ICSS_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8b20]
+set  CM_PER_L4LS_CLKSTCTRL           [expr       $PRCM_BASE_ADDR     +  0x8c00]
+set  CM_PER_L4LS_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8c20]
+set  CM_PER_DCAN0_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c28]
+set  CM_PER_DCAN1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c30]
+set  CM_PER_EPWMSS0_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c38]
+set  CM_PER_EPWMSS1_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c40]
+set  CM_PER_EPWMSS2_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c48]
+set  CM_PER_EPWMSS3_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c50]
+set  CM_PER_EPWMSS4_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c58]
+set  CM_PER_EPWMSS5_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8c60]
+set  CM_PER_ELM_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8c68]
+set  CM_PER_GPIO1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c78]
+set  CM_PER_GPIO2_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c80]
+set  CM_PER_GPIO3_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c88]
+set  CM_PER_GPIO4_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c90]
+set  CM_PER_GPIO5_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8c98]
+set  CM_PER_HDQ1W_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8ca0]
+set  CM_PER_I2C1_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8ca8]
+set  CM_PER_I2C2_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8cb0]
+set  CM_PER_MAILBOX0_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x8cb8]
+set  CM_PER_MMC0_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8cc0]
+set  CM_PER_MMC1_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8cc8]
+set  CM_PER_PKA_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8cd0]
+set  CM_PER_RNG_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8ce0]
+set  CM_PER_SPARE0_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8ce8]
+set  CM_PER_SPARE1_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8cf0]
+set  CM_PER_SPI0_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8d00]
+set  CM_PER_SPI1_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8d08]
+set  CM_PER_SPI2_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8d10]
+set  CM_PER_SPI3_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8d18]
+set  CM_PER_SPI4_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8d20]
+set  CM_PER_SPINLOCK_CLKCTRL         [expr       $PRCM_BASE_ADDR     +  0x8d28]
+set  CM_PER_TIMER2_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d30]
+set  CM_PER_TIMER3_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d38]
+set  CM_PER_TIMER4_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d40]
+set  CM_PER_TIMER5_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d48]
+set  CM_PER_TIMER6_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d50]
+set  CM_PER_TIMER7_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d58]
+set  CM_PER_TIMER8_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d60]
+set  CM_PER_TIMER9_CLKCTRL           [expr       $PRCM_BASE_ADDR     +  0x8d68]
+set  CM_PER_TIMER10_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8d70]
+set  CM_PER_TIMER11_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8d78]
+set  CM_PER_UART1_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8d80]
+set  CM_PER_UART2_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8d88]
+set  CM_PER_UART3_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8d90]
+set  CM_PER_UART4_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8d98]
+set  CM_PER_UART5_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x8da0]
+set  CM_PER_USBPHYOCP2SCP0_CLKCTRL   [expr       $PRCM_BASE_ADDR     +  0x8db8]
+set  CM_PER_USBPHYOCP2SCP1_CLKCTRL   [expr       $PRCM_BASE_ADDR     +  0x8dc0]
+set  CM_PER_EMIF_CLKSTCTRL           [expr       $PRCM_BASE_ADDR     +  0x8f00]
+set  CM_PER_EMIF_CLKCTRL             [expr       $PRCM_BASE_ADDR     +  0x8f20]
+set  CM_PER_DLL_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x8f28]
+set  CM_PER_EMIF_FW_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x8f30]
+set  CM_PER_OTFA_EMIF_CLKCTRL        [expr       $PRCM_BASE_ADDR     +  0x8f38]
+set  CM_PER_DSS_CLKSTCTRL            [expr       $PRCM_BASE_ADDR     +  0x9200]
+set  CM_PER_DSS_CLKCTRL              [expr       $PRCM_BASE_ADDR     +  0x9220]
+set  CM_PER_CPSW_CLKSTCTRL           [expr       $PRCM_BASE_ADDR     +  0x9300]
+set  CM_PER_CPGMAC0_CLKCTRL          [expr       $PRCM_BASE_ADDR     +  0x9320]
+set  CM_PER_OCPWP_L3_CLKSTCTRL       [expr       $PRCM_BASE_ADDR     +  0x9400]
+set  CM_PER_OCPWP_CLKCTRL            [expr       $PRCM_BASE_ADDR     +  0x9420]
+
+set  CONTROL_BASE_ADDR               0x44e10000
+set  CONTROL_STATUS                  [expr       $CONTROL_BASE_ADDR  +  0x0040]
+set  DEVICE_ID                       [expr       $CONTROL_BASE_ADDR  +  0x0600]
+set  DEV_FEATURE                     [expr       $CONTROL_BASE_ADDR  +  0x0604]
+set  DEV_ATTRIBUTE                   [expr       $CONTROL_BASE_ADDR  +  0x0610]
+set  MAC_ID0_LO                      [expr       $CONTROL_BASE_ADDR  +  0x0630]
+set  MAC_ID0_HI                      [expr       $CONTROL_BASE_ADDR  +  0x0634]
+set  MAC_ID1_LO                      [expr       $CONTROL_BASE_ADDR  +  0x0638]
+set  MAC_ID1_HI                      [expr       $CONTROL_BASE_ADDR  +  0x063c]
+set  USB_VID_PID                     [expr       $CONTROL_BASE_ADDR  +  0x07f4]
+set  CONTROL_CONF_ECAP0_IN_PWM0_OUT  [expr       $CONTROL_BASE_ADDR  +  0x0964]
+set  CONTROL_CONF_SPI4_CS0           [expr       $CONTROL_BASE_ADDR  +  0x0a5c]
+set  CONTROL_CONF_SPI2_SCLK          [expr       $CONTROL_BASE_ADDR  +  0x0a60]
+set  CONTROL_CONF_SPI2_D0            [expr       $CONTROL_BASE_ADDR  +  0x0a64]
+set  CONTROL_CONF_XDMA_EVENT_INTR0   [expr       $CONTROL_BASE_ADDR  +  0x0a70]
+set  CONTROL_CONF_XDMA_EVENT_INTR1   [expr       $CONTROL_BASE_ADDR  +  0x0a74]
+set  CONTROL_CONF_GPMC_A0            [expr       $CONTROL_BASE_ADDR  +  0x0840]
+set  DDR_IO_CTRL                     [expr       $CONTROL_BASE_ADDR  +  0x0e04]
+set  VTP_CTRL_REG                    [expr       $CONTROL_BASE_ADDR  +  0x0e0c]
+set  VREF_CTRL                       [expr       $CONTROL_BASE_ADDR  +  0x0e14]
+set  DDR_CKE_CTRL                    [expr       $CONTROL_BASE_ADDR  +  0x131c]
+set  DDR_ADDRCTRL_IOCTRL             [expr       $CONTROL_BASE_ADDR  +  0x1404]
+set  DDR_ADDRCTRL_WD0_IOCTRL         [expr       $CONTROL_BASE_ADDR  +  0x1408]
+set  DDR_ADDRCTRL_WD1_IOCTRL         [expr       $CONTROL_BASE_ADDR  +  0x140c]
+set  DDR_DATA0_IOCTRL                [expr       $CONTROL_BASE_ADDR  +  0x1440]
+set  DDR_DATA1_IOCTRL                [expr       $CONTROL_BASE_ADDR  +  0x1444]
+set  DDR_DATA2_IOCTRL                [expr       $CONTROL_BASE_ADDR  +  0x1448]
+set  DDR_DATA3_IOCTRL                [expr       $CONTROL_BASE_ADDR  +  0x144c]
+set  EMIF_SDRAM_CONFIG_EXT           [expr       $CONTROL_BASE_ADDR  +  0x1460]
+set  EMIF_SDRAM_STATUS_EXT           [expr       $CONTROL_BASE_ADDR  +  0x1464]
+
+set  GPIO0_BASE_ADDR                 0x44e07000
+set  GPIO0_SYSCONFIG                 [expr       $GPIO0_BASE_ADDR    +  0x0010]
+set  GPIO0_SYSSTATUS                 [expr       $GPIO0_BASE_ADDR    +  0x0114]
+set  GPIO0_CTRL                      [expr       $GPIO0_BASE_ADDR    +  0x0130]
+set  GPIO0_OE                        [expr       $GPIO0_BASE_ADDR    +  0x0134]
+set  GPIO0_CLEARDATAOUT              [expr       $GPIO0_BASE_ADDR    +  0x0190]
+set  GPIO0_SETDATAOUT                [expr       $GPIO0_BASE_ADDR    +  0x0194]
+
+set  GPIO5_BASE_ADDR                 0x48322000
+set  GPIO5_SYSCONFIG                 [expr       $GPIO5_BASE_ADDR    +  0x0010]
+set  GPIO5_SYSSTATUS                 [expr       $GPIO5_BASE_ADDR    +  0x0114]
+set  GPIO5_CTRL                      [expr       $GPIO5_BASE_ADDR    +  0x0130]
+set  GPIO5_OE                        [expr       $GPIO5_BASE_ADDR    +  0x0134]
+set  GPIO5_CLEARDATAOUT              [expr       $GPIO5_BASE_ADDR    +  0x0190]
+set  GPIO5_SETDATAOUT                [expr       $GPIO5_BASE_ADDR    +  0x0194]
+
+set  GPIO1_BASE_ADDR                 0x4804c000
+set  GPIO1_SYSCONFIG                 [expr       $GPIO1_BASE_ADDR    +  0x0010]
+set  GPIO1_SYSSTATUS                 [expr       $GPIO1_BASE_ADDR    +  0x0114]
+set  GPIO1_CTRL                      [expr       $GPIO1_BASE_ADDR    +  0x0130]
+set  GPIO1_OE                        [expr       $GPIO1_BASE_ADDR    +  0x0134]
+set  GPIO1_CLEARDATAOUT              [expr       $GPIO1_BASE_ADDR    +  0x0190]
+set  GPIO1_SETDATAOUT                [expr       $GPIO1_BASE_ADDR    +  0x0194]
+
+set  EMIF_BASE_ADDR                  0x4c000000
+set  EMIF_STATUS                     [expr       $EMIF_BASE_ADDR     +  0x0004]
+set  EMIF_SDRAM_CONFIG               [expr       $EMIF_BASE_ADDR     +  0x0008]
+set  EMIF_SDRAM_CONFIG_2             [expr       $EMIF_BASE_ADDR     +  0x000c]
+set  EMIF_SDRAM_REF_CTRL             [expr       $EMIF_BASE_ADDR     +  0x0010]
+set  EMIF_SDRAM_REF_CTRL_SHDW        [expr       $EMIF_BASE_ADDR     +  0x0014]
+set  EMIF_SDRAM_TIM_1                [expr       $EMIF_BASE_ADDR     +  0x0018]
+set  EMIF_SDRAM_TIM_1_SHDW           [expr       $EMIF_BASE_ADDR     +  0x001c]
+set  EMIF_SDRAM_TIM_2                [expr       $EMIF_BASE_ADDR     +  0x0020]
+set  EMIF_SDRAM_TIM_2_SHDW           [expr       $EMIF_BASE_ADDR     +  0x0024]
+set  EMIF_SDRAM_TIM_3                [expr       $EMIF_BASE_ADDR     +  0x0028]
+set  EMIF_SDRAM_TIM_3_SHDW           [expr       $EMIF_BASE_ADDR     +  0x002c]
+set  EMIF_LPDDR2_NVM_TIM             [expr       $EMIF_BASE_ADDR     +  0x0030]
+set  EMIF_LPDDR2_NVM_TIM_SHDW        [expr       $EMIF_BASE_ADDR     +  0x0034]
+set  EMIF_PWR_MGMT_CTRL              [expr       $EMIF_BASE_ADDR     +  0x0038]
+set  EMIF_PWR_MGMT_CTRL_SHDW         [expr       $EMIF_BASE_ADDR     +  0x003c]
+set  EMIF_LPDDR2_MODE_REG_DATA       [expr       $EMIF_BASE_ADDR     +  0x0040]
+set  EMIF_LPDDR2_MODE_REG_CFG        [expr       $EMIF_BASE_ADDR     +  0x0050]
+set  EMIF_OCP_CONFIG                 [expr       $EMIF_BASE_ADDR     +  0x0054]
+set  EMIF_OCP_CFG_VAL_1              [expr       $EMIF_BASE_ADDR     +  0x0058]
+set  EMIF_OCP_CFG_VAL_2              [expr       $EMIF_BASE_ADDR     +  0x005c]
+set  EMIF_IODFT_TLGC                 [expr       $EMIF_BASE_ADDR     +  0x0060]
+set  EMIF_IODFT_CTRL_MISR_RSLT       [expr       $EMIF_BASE_ADDR     +  0x0064]
+set  EMIF_IODFT_ADDR_MISR_RSLT       [expr       $EMIF_BASE_ADDR     +  0x0068]
+set  EMIF_IODFT_DATA_MISR_RSLT_1     [expr       $EMIF_BASE_ADDR     +  0x006c]
+set  EMIF_IODFT_DATA_MISR_RSLT_2     [expr       $EMIF_BASE_ADDR     +  0x0070]
+set  EMIF_IODFT_DATA_MISR_RSLT_3     [expr       $EMIF_BASE_ADDR     +  0x0074]
+set  EMIF_PERF_CNT_1                 [expr       $EMIF_BASE_ADDR     +  0x0080]
+set  EMIF_PERF_CNT_2                 [expr       $EMIF_BASE_ADDR     +  0x0084]
+set  EMIF_PERF_CNT_CFG               [expr       $EMIF_BASE_ADDR     +  0x0088]
+set  EMIF_PERF_CNT_SEL               [expr       $EMIF_BASE_ADDR     +  0x008c]
+set  EMIF_PERF_CNT_TIM               [expr       $EMIF_BASE_ADDR     +  0x0090]
+set  EMIF_MISC_REG                   [expr       $EMIF_BASE_ADDR     +  0x0094]
+set  EMIF_DLL_CALIB_CTRL             [expr       $EMIF_BASE_ADDR     +  0x0098]
+set  EMIF_DLL_CALIB_CTRL_SHDW        [expr       $EMIF_BASE_ADDR     +  0x009c]
+set  EMIF_IRQ_EOI                    [expr       $EMIF_BASE_ADDR     +  0x00a0]
+set  EMIF_IRQSTATUS_RAW_SYS          [expr       $EMIF_BASE_ADDR     +  0x00a4]
+set  EMIF_IRQSTATUS_SYS              [expr       $EMIF_BASE_ADDR     +  0x00ac]
+set  EMIF_IRQENABLE_SET_SYS          [expr       $EMIF_BASE_ADDR     +  0x00b4]
+set  EMIF_IRQENABLE_CLR_SYS          [expr       $EMIF_BASE_ADDR     +  0x00bc]
+set  EMIF_ZQ_CONFIG                  [expr       $EMIF_BASE_ADDR     +  0x00c8]
+set  EMIF_TEMP_ALERT_CONFIG          [expr       $EMIF_BASE_ADDR     +  0x00cc]
+set  EMIF_OCP_ERR_LOG                [expr       $EMIF_BASE_ADDR     +  0x00d0]
+set  EMIF_RDWR_LVL_RMP_WIN           [expr       $EMIF_BASE_ADDR     +  0x00d4]
+set  EMIF_RDWR_LVL_RMP_CTRL          [expr       $EMIF_BASE_ADDR     +  0x00d8]
+set  EMIF_RDWR_LVL_CTRL              [expr       $EMIF_BASE_ADDR     +  0x00dc]
+set  EMIF_DDR_PHY_CTRL_1             [expr       $EMIF_BASE_ADDR     +  0x00e4]
+set  EMIF_DDR_PHY_CTRL_1_SHDW        [expr       $EMIF_BASE_ADDR     +  0x00e8]
+set  EMIF_DDR_PHY_CTRL_2             [expr       $EMIF_BASE_ADDR     +  0x00ec]
+set  EMIF_PRI_COS_MAP                [expr       $EMIF_BASE_ADDR     +  0x0100]
+set  EMIF_CONNID_COS_1_MAP           [expr       $EMIF_BASE_ADDR     +  0x0104]
+set  EMIF_CONNID_COS_2_MAP           [expr       $EMIF_BASE_ADDR     +  0x0108]
+set  ECC_CTRL                        [expr       $EMIF_BASE_ADDR     +  0x0110]
+set  ECC_ADDR_RNG_1                  [expr       $EMIF_BASE_ADDR     +  0x0114]
+set  ECC_ADDR_RNG_2                  [expr       $EMIF_BASE_ADDR     +  0x0118]
+set  EMIF_RD_WR_EXEC_THRSH           [expr       $EMIF_BASE_ADDR     +  0x0120]
+set  COS_CONFIG                      [expr       $EMIF_BASE_ADDR     +  0x0124]
+
+set  PHY_STATUS_1                    [expr       $EMIF_BASE_ADDR     +  0x0144]
+set  PHY_STATUS_2                    [expr       $EMIF_BASE_ADDR     +  0x0148]
+set  PHY_STATUS_3                    [expr       $EMIF_BASE_ADDR     +  0x014c]
+set  PHY_STATUS_4                    [expr       $EMIF_BASE_ADDR     +  0x0150]
+set  PHY_STATUS_5                    [expr       $EMIF_BASE_ADDR     +  0x0154]
+set  PHY_STATUS_6                    [expr       $EMIF_BASE_ADDR     +  0x0158]
+set  PHY_STATUS_7                    [expr       $EMIF_BASE_ADDR     +  0x015c]
+set  PHY_STATUS_8                    [expr       $EMIF_BASE_ADDR     +  0x0160]
+set  PHY_STATUS_9                    [expr       $EMIF_BASE_ADDR     +  0x0164]
+set  PHY_STATUS_10                   [expr       $EMIF_BASE_ADDR     +  0x0168]
+set  PHY_STATUS_11                   [expr       $EMIF_BASE_ADDR     +  0x016c]
+set  PHY_STATUS_12                   [expr       $EMIF_BASE_ADDR     +  0x0170]
+set  PHY_STATUS_13                   [expr       $EMIF_BASE_ADDR     +  0x0174]
+set  PHY_STATUS_14                   [expr       $EMIF_BASE_ADDR     +  0x0178]
+set  PHY_STATUS_15                   [expr       $EMIF_BASE_ADDR     +  0x017c]
+set  PHY_STATUS_16                   [expr       $EMIF_BASE_ADDR     +  0x0180]
+set  PHY_STATUS_17                   [expr       $EMIF_BASE_ADDR     +  0x0184]
+set  PHY_STATUS_18                   [expr       $EMIF_BASE_ADDR     +  0x0188]
+set  PHY_STATUS_19                   [expr       $EMIF_BASE_ADDR     +  0x018c]
+set  PHY_STATUS_20                   [expr       $EMIF_BASE_ADDR     +  0x0190]
+set  PHY_STATUS_21                   [expr       $EMIF_BASE_ADDR     +  0x0194]
+set  PHY_STATUS_22                   [expr       $EMIF_BASE_ADDR     +  0x0198]
+set  PHY_STATUS_23                   [expr       $EMIF_BASE_ADDR     +  0x019c]
+set  PHY_STATUS_24                   [expr       $EMIF_BASE_ADDR     +  0x01a0]
+set  PHY_STATUS_25                   [expr       $EMIF_BASE_ADDR     +  0x01a4]
+set  PHY_STATUS_26                   [expr       $EMIF_BASE_ADDR     +  0x01a8]
+set  PHY_STATUS_27                   [expr       $EMIF_BASE_ADDR     +  0x01ac]
+set  PHY_STATUS_28                   [expr       $EMIF_BASE_ADDR     +  0x01b0]
+
+set  EXT_PHY_CTRL_1                  [expr       $EMIF_BASE_ADDR     +  0x0200]
+set  EXT_PHY_CTRL_1_SHDW             [expr       $EMIF_BASE_ADDR     +  0x0204]
+set  EXT_PHY_CTRL_2                  [expr       $EMIF_BASE_ADDR     +  0x0208]
+set  EXT_PHY_CTRL_2_SHDW             [expr       $EMIF_BASE_ADDR     +  0x020c]
+set  EXT_PHY_CTRL_3                  [expr       $EMIF_BASE_ADDR     +  0x0210]
+set  EXT_PHY_CTRL_3_SHDW             [expr       $EMIF_BASE_ADDR     +  0x0214]
+set  EXT_PHY_CTRL_4                  [expr       $EMIF_BASE_ADDR     +  0x0218]
+set  EXT_PHY_CTRL_4_SHDW             [expr       $EMIF_BASE_ADDR     +  0x021c]
+set  EXT_PHY_CTRL_5                  [expr       $EMIF_BASE_ADDR     +  0x0220]
+set  EXT_PHY_CTRL_5_SHDW             [expr       $EMIF_BASE_ADDR     +  0x0224]
+set  EXT_PHY_CTRL_6                  [expr       $EMIF_BASE_ADDR     +  0x0228]
+set  EXT_PHY_CTRL_6_SHDW             [expr       $EMIF_BASE_ADDR     +  0x022c]
+set  EXT_PHY_CTRL_7                  [expr       $EMIF_BASE_ADDR     +  0x0230]
+set  EXT_PHY_CTRL_7_SHDW             [expr       $EMIF_BASE_ADDR     +  0x0234]
+set  EXT_PHY_CTRL_8                  [expr       $EMIF_BASE_ADDR     +  0x0238]
+set  EXT_PHY_CTRL_8_SHDW             [expr       $EMIF_BASE_ADDR     +  0x023c]
+set  EXT_PHY_CTRL_9                  [expr       $EMIF_BASE_ADDR     +  0x0240]
+set  EXT_PHY_CTRL_9_SHDW             [expr       $EMIF_BASE_ADDR     +  0x0244]
+set  EXT_PHY_CTRL_10                 [expr       $EMIF_BASE_ADDR     +  0x0248]
+set  EXT_PHY_CTRL_10_SHDW            [expr       $EMIF_BASE_ADDR     +  0x024c]
+set  EXT_PHY_CTRL_11                 [expr       $EMIF_BASE_ADDR     +  0x0250]
+set  EXT_PHY_CTRL_11_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0254]
+set  EXT_PHY_CTRL_12                 [expr       $EMIF_BASE_ADDR     +  0x0258]
+set  EXT_PHY_CTRL_12_SHDW            [expr       $EMIF_BASE_ADDR     +  0x025c]
+set  EXT_PHY_CTRL_13                 [expr       $EMIF_BASE_ADDR     +  0x0260]
+set  EXT_PHY_CTRL_13_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0264]
+set  EXT_PHY_CTRL_14                 [expr       $EMIF_BASE_ADDR     +  0x0268]
+set  EXT_PHY_CTRL_14_SHDW            [expr       $EMIF_BASE_ADDR     +  0x026c]
+set  EXT_PHY_CTRL_15                 [expr       $EMIF_BASE_ADDR     +  0x0270]
+set  EXT_PHY_CTRL_15_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0274]
+set  EXT_PHY_CTRL_16                 [expr       $EMIF_BASE_ADDR     +  0x0278]
+set  EXT_PHY_CTRL_16_SHDW            [expr       $EMIF_BASE_ADDR     +  0x027c]
+set  EXT_PHY_CTRL_17                 [expr       $EMIF_BASE_ADDR     +  0x0280]
+set  EXT_PHY_CTRL_17_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0284]
+set  EXT_PHY_CTRL_18                 [expr       $EMIF_BASE_ADDR     +  0x0288]
+set  EXT_PHY_CTRL_18_SHDW            [expr       $EMIF_BASE_ADDR     +  0x028c]
+set  EXT_PHY_CTRL_19                 [expr       $EMIF_BASE_ADDR     +  0x0290]
+set  EXT_PHY_CTRL_19_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0294]
+set  EXT_PHY_CTRL_20                 [expr       $EMIF_BASE_ADDR     +  0x0298]
+set  EXT_PHY_CTRL_20_SHDW            [expr       $EMIF_BASE_ADDR     +  0x029c]
+set  EXT_PHY_CTRL_21                 [expr       $EMIF_BASE_ADDR     +  0x02a0]
+set  EXT_PHY_CTRL_21_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02a4]
+set  EXT_PHY_CTRL_22                 [expr       $EMIF_BASE_ADDR     +  0x02a8]
+set  EXT_PHY_CTRL_22_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02ac]
+set  EXT_PHY_CTRL_23                 [expr       $EMIF_BASE_ADDR     +  0x02b0]
+set  EXT_PHY_CTRL_23_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02b4]
+set  EXT_PHY_CTRL_24                 [expr       $EMIF_BASE_ADDR     +  0x02b8]
+set  EXT_PHY_CTRL_24_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02bc]
+set  EXT_PHY_CTRL_25                 [expr       $EMIF_BASE_ADDR     +  0x02c0]
+set  EXT_PHY_CTRL_25_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02c4]
+set  EXT_PHY_CTRL_26                 [expr       $EMIF_BASE_ADDR     +  0x02c8]
+set  EXT_PHY_CTRL_26_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02cc]
+set  EXT_PHY_CTRL_27                 [expr       $EMIF_BASE_ADDR     +  0x02d0]
+set  EXT_PHY_CTRL_27_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02d4]
+set  EXT_PHY_CTRL_28                 [expr       $EMIF_BASE_ADDR     +  0x02d8]
+set  EXT_PHY_CTRL_28_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02dc]
+set  EXT_PHY_CTRL_29                 [expr       $EMIF_BASE_ADDR     +  0x02e0]
+set  EXT_PHY_CTRL_29_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02e4]
+set  EXT_PHY_CTRL_30                 [expr       $EMIF_BASE_ADDR     +  0x02e8]
+set  EXT_PHY_CTRL_30_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02ec]
+set  EXT_PHY_CTRL_31                 [expr       $EMIF_BASE_ADDR     +  0x02f0]
+set  EXT_PHY_CTRL_31_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02f4]
+set  EXT_PHY_CTRL_32                 [expr       $EMIF_BASE_ADDR     +  0x02f8]
+set  EXT_PHY_CTRL_32_SHDW            [expr       $EMIF_BASE_ADDR     +  0x02fc]
+set  EXT_PHY_CTRL_33                 [expr       $EMIF_BASE_ADDR     +  0x0300]
+set  EXT_PHY_CTRL_33_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0304]
+set  EXT_PHY_CTRL_34                 [expr       $EMIF_BASE_ADDR     +  0x0308]
+set  EXT_PHY_CTRL_34_SHDW            [expr       $EMIF_BASE_ADDR     +  0x030c]
+set  EXT_PHY_CTRL_35                 [expr       $EMIF_BASE_ADDR     +  0x0310]
+set  EXT_PHY_CTRL_35_SHDW            [expr       $EMIF_BASE_ADDR     +  0x0314]
+set  EXT_PHY_CTRL_36                 [expr       $EMIF_BASE_ADDR     +  0x0318]
+set  EXT_PHY_CTRL_36_SHDW            [expr       $EMIF_BASE_ADDR     +  0x031c]
+
+set  WDT1_BASE_ADDR                  0x44e35000
+set  WDT1_W_PEND_WSPR                [expr       $WDT1_BASE_ADDR     +  0x0034]
+set  WDT1_WSPR                       [expr       $WDT1_BASE_ADDR     +  0x0048]
+
+set  RTC_BASE_ADDR                   0x44e3e000
+set  RTC_KICK0R                      [expr       $RTC_BASE_ADDR      +  0x6c]
+set  RTC_KICK1R                      [expr       $RTC_BASE_ADDR      +  0x70]
+
 
 if { [info exists CHIPNAME] } {
    set _CHIPNAME $CHIPNAME
@@ -49,3 +482,513 @@ target create $_TARGETNAME cortex_a -chain-position $_CHIPNAME.dap -dbgbase 0x80
 
 # SRAM: 256K at 0x4030.0000
 $_TARGETNAME configure -work-area-phys 0x40300000 -work-area-size 0x40000
+
+# Disables watchdog timer after reset otherwise board won't stay in
+# halted state.
+proc disable_watchdog { } {
+       global WDT1_WSPR
+       global WDT1_W_PEND_WSPR
+       global _TARGETNAME
+
+       set curstate [$_TARGETNAME curstate]
+
+       if { [string compare $curstate halted] == 0 } {
+               set WDT_DISABLE_SEQ1    0xaaaa
+               set WDT_DISABLE_SEQ2    0x5555
+
+               mww phys $WDT1_WSPR $WDT_DISABLE_SEQ1
+
+               # Empty body to make sure this executes as fast as possible.
+               # We don't want any delays here otherwise romcode might start
+               # executing and end up changing state of certain IPs.
+               while { [expr [mrw $WDT1_W_PEND_WSPR] & 0x10] } { }
+
+               mww phys $WDT1_WSPR $WDT_DISABLE_SEQ2
+               while { [expr [mrw $WDT1_W_PEND_WSPR] & 0x10] } { }
+       }
+}
+
+proc ceil { x y } {
+       return [ expr ($x + $y - 1) / $y ]
+}
+
+proc device_type { } {
+       global CONTROL_STATUS
+
+       set tmp [ mrw $CONTROL_STATUS ]
+       set tmp [ expr $tmp & 0x700 ]
+       set tmp [ expr $tmp >> 8 ]
+
+       return $tmp
+}
+
+proc get_input_clock_frequency { } {
+       global CONTROL_STATUS
+
+       if { [ device_type ] != 3 } {
+               error "Unknown device type\n"
+               return -1
+       }
+
+       set freq [ mrw $CONTROL_STATUS ]
+       set freq [ expr $freq & 0x00c00000 ]
+       set freq [ expr $freq >> 22 ]
+
+       switch $freq {
+               0 {
+                       set CLKIN 19200000
+               }
+
+               1 {
+                       set CLKIN 24000000
+               }
+
+               2 {
+                       set CLKIN 25000000
+               }
+
+               3 {
+                       set CLKIN 26000000
+               }
+       }
+
+       return $CLKIN
+}
+
+proc mpu_pll_config { CLKIN N M M2 } {
+       global CM_CLKMODE_DPLL_MPU
+       global CM_CLKSEL_DPLL_MPU
+       global CM_DIV_M2_DPLL_MPU
+       global CM_IDLEST_DPLL_MPU
+
+       set clksel [ mrw $CM_CLKSEL_DPLL_MPU ]
+       set div_m2 [ mrw $CM_DIV_M2_DPLL_MPU ]
+
+       mww $CM_CLKMODE_DPLL_MPU 0x4
+       while { !([ mrw $CM_IDLEST_DPLL_MPU ] & 0x0100) } { }
+
+       set clksel [ expr $clksel & (~0x7ffff) ]
+       set clksel [ expr $clksel | ($M << 0x8) | $N ]
+       mww $CM_CLKSEL_DPLL_MPU $clksel
+
+       set div_m2 [ expr $div_m2 & (~0x1f) ]
+       set div_m2 [ expr $div_m2 | $M2 ]
+       mww $CM_DIV_M2_DPLL_MPU $div_m2
+
+       mww $CM_CLKMODE_DPLL_MPU 0x7
+       while { [ mrw $CM_IDLEST_DPLL_MPU ] != 1 } { }
+
+       echo "MPU DPLL locked"
+}
+
+proc core_pll_config { CLKIN N M M4 M5 M6 } {
+       global CM_CLKMODE_DPLL_CORE
+       global CM_CLKSEL_DPLL_CORE
+       global CM_DIV_M4_DPLL_CORE
+       global CM_DIV_M5_DPLL_CORE
+       global CM_DIV_M6_DPLL_CORE
+       global CM_IDLEST_DPLL_CORE
+
+       set clksel [ mrw $CM_CLKSEL_DPLL_CORE ]
+
+       mww $CM_CLKMODE_DPLL_CORE 0x4
+       while { !([ mrw $CM_IDLEST_DPLL_CORE ] & 0x0100) } { }
+
+       set clksel [ expr $clksel & (~0x7ffff) ]
+       set clksel [ expr $clksel | ($M << 0x8) | $N ]
+       mww $CM_CLKSEL_DPLL_CORE $clksel
+       mww $CM_DIV_M4_DPLL_CORE $M4
+       mww $CM_DIV_M5_DPLL_CORE $M5
+       mww $CM_DIV_M6_DPLL_CORE $M6
+
+       mww $CM_CLKMODE_DPLL_CORE 0x7
+       while { !([ mrw $CM_IDLEST_DPLL_CORE ] & 0x01) } { }
+
+       echo "CORE DPLL locked"
+}
+
+proc per_pll_config { CLKIN N M M2 } {
+       global CM_CLKMODE_DPLL_PER
+       global CM_CLKSEL_DPLL_PER
+       global CM_DIV_M2_DPLL_PER
+       global CM_IDLEST_DPLL_PER
+
+       set x [ expr $M * $CLKIN / 1000000 ]
+       set y [ expr ($N + 1) * 250 ]
+       set sd [ ceil $x $y ]
+
+       set clksel [ mrw $CM_CLKSEL_DPLL_PER ]
+       set div_m2 [ mrw $CM_DIV_M2_DPLL_PER ]
+
+       mww $CM_CLKMODE_DPLL_PER 0x4
+       while { !([ mrw $CM_IDLEST_DPLL_PER ] & 0x0100) } { }
+
+       set clksel [ expr $clksel & (~0xff0fffff) ]
+       set clksel [ expr $clksel | ($M << 0x8) | $N ]
+       set clksel [ expr $clksel | ($sd << 24) ]
+       mww $CM_CLKSEL_DPLL_PER $clksel
+
+       set div_m2 [ expr 0xffffff80 | $M2 ]
+
+       mww $CM_CLKMODE_DPLL_PER 0x7
+       while { !([ mrw $CM_IDLEST_DPLL_PER ] & 0x01) } { }
+
+       echo "PER DPLL locked"
+}
+
+proc ddr_pll_config { CLKIN N M M2 M4 } {
+       global CM_CLKMODE_DPLL_DDR
+       global CM_CLKSEL_DPLL_DDR
+       global CM_DIV_M2_DPLL_DDR
+       global CM_DIV_M4_DPLL_DDR
+       global CM_IDLEST_DPLL_DDR
+
+       set clksel [ mrw $CM_CLKSEL_DPLL_DDR ]
+       set div_m2 [ mrw $CM_DIV_M2_DPLL_DDR ]
+
+       mww $CM_CLKMODE_DPLL_DDR 0x4
+       while { !([ mrw $CM_IDLEST_DPLL_DDR ] & 0x0100) } { }
+
+       set clksel [ expr $clksel & (~0x7ffff) ]
+       set clksel [ expr $clksel | ($M << 8) | $N ]
+       mww $CM_CLKSEL_DPLL_DDR $clksel
+
+       set div_m2 [ expr ($div_m2 & 0xffffffe0) | $M2 ]
+       mww $CM_DIV_M2_DPLL_DDR $div_m2
+       mww $CM_DIV_M4_DPLL_DDR $M4
+
+       mww $CM_CLKMODE_DPLL_DDR 0x7
+       while { !([ mrw $CM_IDLEST_DPLL_DDR ] & 0x01) } { }
+
+       echo "DDR DPLL Locked"
+}
+
+proc config_opp100 { } {
+       set CLKIN [ get_input_clock_frequency ]
+
+       if { $CLKIN == -1 } {
+               return -1
+       }
+
+       switch $CLKIN {
+               24000000 {
+                       mpu_pll_config   $CLKIN  0  25   1
+                       core_pll_config  $CLKIN  2  125  10  8  4
+                       per_pll_config   $CLKIN  9  400  5
+                       ddr_pll_config   $CLKIN  2  50   1   2
+               }
+
+               25000000 {
+                       mpu_pll_config   $CLKIN  0  24   1
+                       core_pll_config  $CLKIN  0  40   10  8  4
+                       per_pll_config   $CLKIN  9  384  5
+                       ddr_pll_config   $CLKIN  0  16   1   2
+               }
+
+               26000000 {
+                       mpu_pll_config   $CLKIN  12  300  1
+                       core_pll_config  $CLKIN  12  500  10  8  4
+                       per_pll_config   $CLKIN  12  480  5
+                       ddr_pll_config   $CLKIN  12  200  1   2
+               }
+
+               19200000 {
+                       mpu_pll_config   $CLKIN  3   125  1
+                       core_pll_config  $CLKIN  11  625  10  8  4
+                       per_pll_config   $CLKIN  7   400  5
+                       ddr_pll_config   $CLKIN  2   125  1   2
+               }
+       }
+}
+
+proc emif_prcm_clk_enable { } {
+       global CM_PER_EMIF_FW_CLKCTRL
+       global CM_PER_EMIF_CLKCTRL
+
+       mww $CM_PER_EMIF_FW_CLKCTRL 0x02
+       mww $CM_PER_EMIF_CLKCTRL 0x02
+
+       while { [ mrw $CM_PER_EMIF_CLKCTRL ] != 0x02 } { }
+}
+
+proc vtp_enable { } {
+       global VTP_CTRL_REG
+
+       set vtp [ expr [ mrw $VTP_CTRL_REG ] | 0x40 ]
+       mww $VTP_CTRL_REG $vtp
+
+       set vtp [ expr [ mrw $VTP_CTRL_REG ] & ~0x01 ]
+       mww $VTP_CTRL_REG $vtp
+
+       set vtp [ expr [ mrw $VTP_CTRL_REG ] | 0x01 ]
+       mww $VTP_CTRL_REG $vtp
+
+}
+
+proc config_ddr_ioctrl { } {
+       global DDR_ADDRCTRL_IOCTRL
+       global DDR_ADDRCTRL_WD0_IOCTRL
+       global DDR_ADDRCTRL_WD1_IOCTRL
+       global DDR_CKE_CTRL
+       global DDR_DATA0_IOCTRL
+       global DDR_DATA1_IOCTRL
+       global DDR_DATA2_IOCTRL
+       global DDR_DATA3_IOCTRL
+       global DDR_IO_CTRL
+
+       mww $DDR_ADDRCTRL_IOCTRL        0x84
+       mww $DDR_ADDRCTRL_WD0_IOCTRL    0x00
+       mww $DDR_ADDRCTRL_WD1_IOCTRL    0x00
+       mww $DDR_DATA0_IOCTRL           0x84
+       mww $DDR_DATA1_IOCTRL           0x84
+       mww $DDR_DATA2_IOCTRL           0x84
+       mww $DDR_DATA3_IOCTRL           0x84
+
+       mww $DDR_IO_CTRL                0x00
+       mww $DDR_CKE_CTRL               0x03
+}
+
+proc config_ddr_phy { } {
+       global EMIF_DDR_PHY_CTRL_1
+       global EMIF_DDR_PHY_CTRL_1_SHDW
+
+       global EXT_PHY_CTRL_1
+       global EXT_PHY_CTRL_1_SHDW
+       global EXT_PHY_CTRL_2
+       global EXT_PHY_CTRL_2_SHDW
+       global EXT_PHY_CTRL_3
+       global EXT_PHY_CTRL_3_SHDW
+       global EXT_PHY_CTRL_4
+       global EXT_PHY_CTRL_4_SHDW
+       global EXT_PHY_CTRL_5
+       global EXT_PHY_CTRL_5_SHDW
+       global EXT_PHY_CTRL_6
+       global EXT_PHY_CTRL_6_SHDW
+       global EXT_PHY_CTRL_7
+       global EXT_PHY_CTRL_7_SHDW
+       global EXT_PHY_CTRL_8
+       global EXT_PHY_CTRL_8_SHDW
+       global EXT_PHY_CTRL_9
+       global EXT_PHY_CTRL_9_SHDW
+       global EXT_PHY_CTRL_10
+       global EXT_PHY_CTRL_10_SHDW
+       global EXT_PHY_CTRL_11
+       global EXT_PHY_CTRL_11_SHDW
+       global EXT_PHY_CTRL_12
+       global EXT_PHY_CTRL_12_SHDW
+       global EXT_PHY_CTRL_13
+       global EXT_PHY_CTRL_13_SHDW
+       global EXT_PHY_CTRL_14
+       global EXT_PHY_CTRL_14_SHDW
+       global EXT_PHY_CTRL_15
+       global EXT_PHY_CTRL_15_SHDW
+       global EXT_PHY_CTRL_16
+       global EXT_PHY_CTRL_16_SHDW
+       global EXT_PHY_CTRL_17
+       global EXT_PHY_CTRL_17_SHDW
+       global EXT_PHY_CTRL_18
+       global EXT_PHY_CTRL_18_SHDW
+       global EXT_PHY_CTRL_19
+       global EXT_PHY_CTRL_19_SHDW
+       global EXT_PHY_CTRL_20
+       global EXT_PHY_CTRL_20_SHDW
+       global EXT_PHY_CTRL_21
+       global EXT_PHY_CTRL_21_SHDW
+       global EXT_PHY_CTRL_22
+       global EXT_PHY_CTRL_22_SHDW
+       global EXT_PHY_CTRL_23
+       global EXT_PHY_CTRL_23_SHDW
+       global EXT_PHY_CTRL_24
+       global EXT_PHY_CTRL_24_SHDW
+       global EXT_PHY_CTRL_25
+       global EXT_PHY_CTRL_25_SHDW
+       global EXT_PHY_CTRL_26
+       global EXT_PHY_CTRL_26_SHDW
+       global EXT_PHY_CTRL_27
+       global EXT_PHY_CTRL_27_SHDW
+       global EXT_PHY_CTRL_28
+       global EXT_PHY_CTRL_28_SHDW
+       global EXT_PHY_CTRL_29
+       global EXT_PHY_CTRL_29_SHDW
+       global EXT_PHY_CTRL_30
+       global EXT_PHY_CTRL_30_SHDW
+       global EXT_PHY_CTRL_31
+       global EXT_PHY_CTRL_31_SHDW
+       global EXT_PHY_CTRL_32
+       global EXT_PHY_CTRL_32_SHDW
+       global EXT_PHY_CTRL_33
+       global EXT_PHY_CTRL_33_SHDW
+       global EXT_PHY_CTRL_34
+       global EXT_PHY_CTRL_34_SHDW
+       global EXT_PHY_CTRL_35
+       global EXT_PHY_CTRL_35_SHDW
+       global EXT_PHY_CTRL_36
+       global EXT_PHY_CTRL_36_SHDW
+
+       mww $EMIF_DDR_PHY_CTRL_1        0x8009
+       mww $EMIF_DDR_PHY_CTRL_1_SHDW   0x8009
+
+       set slave_ratio         0x80
+       set gatelvl_init_ratio  0x20
+       set wr_dqs_slave_delay  0x60
+       set rd_dqs_slave_delay  0x60
+       set dq_offset           0x40
+       set gatelvl_init_mode   0x01
+       set wr_data_slave_delay 0x80
+       set gatelvl_num_dq0 0x0f
+       set wrlvl_num_dq0 0x0f
+
+       mww $EXT_PHY_CTRL_1        [ expr ($slave_ratio << 20) | ($slave_ratio << 10) | $slave_ratio ]
+       mww $EXT_PHY_CTRL_1_SHDW   [ expr ($slave_ratio << 20) | ($slave_ratio << 10) | $slave_ratio ]
+       mww $EXT_PHY_CTRL_26       [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_26_SHDW  [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_27       [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_27_SHDW  [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_28       [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_28_SHDW  [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_29       [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_29_SHDW  [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_30       [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_30_SHDW  [ expr ($gatelvl_init_ratio << 16) | $gatelvl_init_ratio ]
+       mww $EXT_PHY_CTRL_31       0x00
+       mww $EXT_PHY_CTRL_31_SHDW  0x00
+       mww $EXT_PHY_CTRL_32       0x00
+       mww $EXT_PHY_CTRL_32_SHDW  0x00
+       mww $EXT_PHY_CTRL_33       0x00
+       mww $EXT_PHY_CTRL_33_SHDW  0x00
+       mww $EXT_PHY_CTRL_34       0x00
+       mww $EXT_PHY_CTRL_34_SHDW  0x00
+       mww $EXT_PHY_CTRL_35       0x00
+       mww $EXT_PHY_CTRL_35_SHDW  0x00
+       mww $EXT_PHY_CTRL_22       0x00
+       mww $EXT_PHY_CTRL_22_SHDW  0x00
+       mww $EXT_PHY_CTRL_23       [ expr ($wr_dqs_slave_delay  <<  16) | $rd_dqs_slave_delay ]
+       mww $EXT_PHY_CTRL_23_SHDW  [ expr ($wr_dqs_slave_delay  <<  16) | $rd_dqs_slave_delay ]
+       mww $EXT_PHY_CTRL_24       [ expr ($dq_offset << 24) | ($gatelvl_init_mode << 16) | $wr_data_slave_delay ]
+       mww $EXT_PHY_CTRL_24_SHDW  [ expr ($dq_offset << 24) | ($gatelvl_init_mode << 16) | $wr_data_slave_delay << 0 ]
+       mww $EXT_PHY_CTRL_25       [ expr ($dq_offset << 21) | ($dq_offset << 14) | ($dq_offset << 7) | $dq_offset ]
+       mww $EXT_PHY_CTRL_25_SHDW  [ expr ($dq_offset << 21) | ($dq_offset << 14) | ($dq_offset << 7) | $dq_offset ]
+       mww $EXT_PHY_CTRL_36       [ expr ($wrlvl_num_dq0 << 4) | $gatelvl_num_dq0 ]
+       mww $EXT_PHY_CTRL_36_SHDW  [ expr ($wrlvl_num_dq0 << 4) | $gatelvl_num_dq0 ]
+}
+
+proc config_ddr_timing { } {
+       global EMIF_SDRAM_TIM_1
+       global EMIF_SDRAM_TIM_2
+       global EMIF_SDRAM_TIM_3
+       global EMIF_SDRAM_TIM_1_SHDW
+       global EMIF_SDRAM_TIM_2_SHDW
+       global EMIF_SDRAM_TIM_3_SHDW
+       global EMIF_ZQ_CONFIG
+
+       mww $EMIF_SDRAM_TIM_1           0xeaaad4db
+       mww $EMIF_SDRAM_TIM_1_SHDW      0xeaaad4db
+
+       mww $EMIF_SDRAM_TIM_2           0x266b7fda
+       mww $EMIF_SDRAM_TIM_2_SHDW      0x266b7fda
+
+       mww $EMIF_SDRAM_TIM_3           0x107f8678
+       mww $EMIF_SDRAM_TIM_3_SHDW      0x107f8678
+
+       mww $EMIF_ZQ_CONFIG             0x50074be4
+}
+
+proc config_ddr_pm { } {
+       global EMIF_PWR_MGMT_CTRL
+       global EMIF_PWR_MGMT_CTRL_SHDW
+       global EMIF_DLL_CALIB_CTRL
+       global EMIF_DLL_CALIB_CTRL_SHDW
+       global EMIF_TEMP_ALERT_CONFIG
+
+       mww $EMIF_PWR_MGMT_CTRL         0x00
+       mww $EMIF_PWR_MGMT_CTRL_SHDW    0x00
+       mww $EMIF_DLL_CALIB_CTRL        0x00050000
+       mww $EMIF_DLL_CALIB_CTRL_SHDW   0x00050000
+       mww $EMIF_TEMP_ALERT_CONFIG     0x00
+}
+
+proc config_ddr_priority { } {
+       global EMIF_PRI_COS_MAP
+       global EMIF_CONNID_COS_1_MAP
+       global EMIF_CONNID_COS_2_MAP
+       global EMIF_RD_WR_EXEC_THRSH
+       global COS_CONFIG
+
+       mww $EMIF_PRI_COS_MAP       0x00
+       mww $EMIF_CONNID_COS_1_MAP  0x00
+       mww $EMIF_CONNID_COS_2_MAP  0x0
+       mww $EMIF_RD_WR_EXEC_THRSH  0x0405
+       mww $COS_CONFIG             0x00ffffff
+}
+
+proc config_ddr3 { SDRAM_CONFIG } {
+       global CM_DLL_CTRL
+       global EMIF_IODFT_TLGC
+       global EMIF_RDWR_LVL_CTRL
+       global EMIF_RDWR_LVL_RMP_CTRL
+       global EMIF_SDRAM_CONFIG
+       global EMIF_SDRAM_CONFIG_EXT
+       global EMIF_SDRAM_REF_CTRL
+       global EMIF_SDRAM_REF_CTRL_SHDW
+       global EMIF_STATUS
+       global EXT_PHY_CTRL_36
+       global EXT_PHY_CTRL_36_SHDW
+
+       emif_prcm_clk_enable
+       vtp_enable
+
+       set dll [ expr [ mrw $CM_DLL_CTRL ] & ~0x01 ]
+       mww $CM_DLL_CTRL $dll
+       while { !([ mrw $CM_DLL_CTRL ] & 0x04) } { }
+
+       config_ddr_ioctrl
+
+       mww $EMIF_SDRAM_CONFIG_EXT      0xc163
+       mww $EMIF_IODFT_TLGC            0x2011
+       mww $EMIF_IODFT_TLGC            0x2411
+       mww $EMIF_IODFT_TLGC            0x2011
+       mww $EMIF_SDRAM_REF_CTRL        0x80003000
+
+       config_ddr_phy
+
+       mww $EMIF_IODFT_TLGC            0x2011
+       mww $EMIF_IODFT_TLGC            0x2411
+       mww $EMIF_IODFT_TLGC            0x2011
+
+       config_ddr_timing
+       config_ddr_pm
+       config_ddr_priority
+
+       mww $EMIF_SDRAM_REF_CTRL        0x3000
+       mww $EMIF_SDRAM_CONFIG          $SDRAM_CONFIG
+
+       mww $EMIF_SDRAM_REF_CTRL        0x0c30
+       mww $EMIF_SDRAM_REF_CTRL_SHDW   0x0c30
+
+       sleep 10
+
+       set tmp [ expr [ mrw $EXT_PHY_CTRL_36 ] | 0x0100 ]
+       mww $EXT_PHY_CTRL_36            $tmp
+       mww $EXT_PHY_CTRL_36_SHDW       $tmp
+
+       mww $EMIF_RDWR_LVL_RMP_CTRL     0x80000000
+       mww $EMIF_RDWR_LVL_CTRL         0x80000000
+
+       while { [ mrw $EMIF_RDWR_LVL_CTRL ] & 0x80000000 } { }
+
+       if { [ mrw $EMIF_STATUS ]  & 0x70 } {
+               error "DDR3 Hardware Leveling incomplete!!!"
+       }
+}
+
+proc init_platform { SDRAM_CONFIG } {
+       config_opp100
+       config_ddr3 $SDRAM_CONFIG
+
+       # now that PLLs are configured, we can run JTAG at full speed
+       adapter_khz 16000
+}
+
+$_TARGETNAME configure -event reset-start { adapter_khz 1000 }
+$_TARGETNAME configure -event reset-init { init_platform 0x61a013b2 }
+$_TARGETNAME configure -event reset-end { disable_watchdog }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)