diff options
-rw-r--r-- | chip/it83xx/flash.c | 9 | ||||
-rw-r--r-- | chip/it83xx/registers.h | 1 |
2 files changed, 7 insertions, 3 deletions
diff --git a/chip/it83xx/flash.c b/chip/it83xx/flash.c index fe1dae7592..c0e062bce4 100644 --- a/chip/it83xx/flash.c +++ b/chip/it83xx/flash.c @@ -626,13 +626,16 @@ static void flash_code_static_dma(void) IT83XX_GCTRL_RVILMCR0 &= ~ILMCR_ILM2_ENABLE; IT83XX_SMFI_SCAR2H = 0x08; - /* Copy to DLM */ - IT83XX_GCTRL_MCCR2 |= 0x20; + /* Enable DLM 56k~60k region and than copy data into it */ + if (IS_ENABLED(CHIP_CORE_NDS32)) + IT83XX_GCTRL_MCCR2 |= IT83XX_DLM14_ENABLE; memcpy((void *)CHIP_RAMCODE_BASE, (const void *)FLASH_DMA_START, IT83XX_ILM_BLOCK_SIZE); if (IS_ENABLED(CHIP_CORE_RISCV)) IT83XX_GCTRL_RVILMCR0 |= ILMCR_ILM2_ENABLE; - IT83XX_GCTRL_MCCR2 &= ~0x20; + /* Disable DLM 56k~60k region and be the ram code section */ + if (IS_ENABLED(CHIP_CORE_NDS32)) + IT83XX_GCTRL_MCCR2 &= ~IT83XX_DLM14_ENABLE; /* * Enable ILM diff --git a/chip/it83xx/registers.h b/chip/it83xx/registers.h index 3c7202a698..7f70724864 100644 --- a/chip/it83xx/registers.h +++ b/chip/it83xx/registers.h @@ -981,6 +981,7 @@ enum clock_gate_offsets { #define IT83XX_GCTRL_EPLR REG8(IT83XX_GCTRL_BASE+0x37) #define IT83XX_GCTRL_IVTBAR REG8(IT83XX_GCTRL_BASE+0x41) #define IT83XX_GCTRL_MCCR2 REG8(IT83XX_GCTRL_BASE+0x44) +#define IT83XX_DLM14_ENABLE BIT(5) #define IT83XX_GCTRL_SSCR REG8(IT83XX_GCTRL_BASE+0x4A) #define IT83XX_GCTRL_ETWDUARTCR REG8(IT83XX_GCTRL_BASE+0x4B) #define IT83XX_GCTRL_WMCR REG8(IT83XX_GCTRL_BASE+0x4C) |