summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chip/it83xx/flash.c9
-rw-r--r--chip/it83xx/registers.h1
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)