mirror of
https://github.com/apache/nuttx.git
synced 2026-05-31 23:40:19 +08:00
arch/arm/src/imxrt: Fix problem with with CPU hanging during boot in the clockconfig function. configs/imxrt1050-evk/scripts: Update linker script so that the NXP boot header will be included in the build.
This commit is contained in:
@@ -119,9 +119,20 @@ void imxrt_clockconfig(void)
|
|||||||
|
|
||||||
/* Set Dividers */
|
/* Set Dividers */
|
||||||
|
|
||||||
putreg32(CCM_CACRR_ARM_PODF(IMXRT_ARM_CLOCK_DIVIDER), IMXRT_CCM_CACRR);
|
reg = getreg32(IMXRT_CCM_CACRR);
|
||||||
putreg32(CCM_CBCDR_AHB_PODF(IMXRT_AHB_CLOCK_DIVIDER), IMXRT_CCM_CBCDR);
|
reg &= ~CCM_CACRR_ARM_PODF_MASK;
|
||||||
putreg32(CCM_CBCDR_IPG_PODF(IMXRT_IPG_CLOCK_DIVIDER), IMXRT_CCM_CBCDR);
|
reg |= CCM_CACRR_ARM_PODF(IMXRT_ARM_CLOCK_DIVIDER);
|
||||||
|
putreg32(reg, IMXRT_CCM_CACRR);
|
||||||
|
|
||||||
|
reg = getreg32(IMXRT_CCM_CBCDR);
|
||||||
|
reg &= ~CCM_CBCDR_AHB_PODF_MASK;
|
||||||
|
reg |= CCM_CBCDR_AHB_PODF(IMXRT_AHB_CLOCK_DIVIDER);
|
||||||
|
putreg32(reg, IMXRT_CCM_CBCDR);
|
||||||
|
|
||||||
|
reg = getreg32(IMXRT_CCM_CBCDR);
|
||||||
|
reg &= ~CCM_CBCDR_IPG_PODF_MASK;
|
||||||
|
reg |= CCM_CBCDR_IPG_PODF(IMXRT_IPG_CLOCK_DIVIDER);
|
||||||
|
putreg32(reg, IMXRT_CCM_CBCDR);
|
||||||
|
|
||||||
/* Set PRE_PERIPH_CLK to PLL1 */
|
/* Set PRE_PERIPH_CLK to PLL1 */
|
||||||
|
|
||||||
@@ -147,13 +158,13 @@ void imxrt_clockconfig(void)
|
|||||||
reg = getreg32(IMXRT_CCM_CSCDR1);
|
reg = getreg32(IMXRT_CCM_CSCDR1);
|
||||||
reg &= CCM_CSCDR1_UART_CLK_SEL;
|
reg &= CCM_CSCDR1_UART_CLK_SEL;
|
||||||
reg |= CCM_CSCDR1_UART_CLK_SEL_PLL3_80;
|
reg |= CCM_CSCDR1_UART_CLK_SEL_PLL3_80;
|
||||||
putreg32(reg, IMXRT_CCM_CBCDR);
|
putreg32(reg, IMXRT_CCM_CSCDR1);
|
||||||
|
|
||||||
/* Set UART divider to 1 */
|
/* Set UART divider to 1 */
|
||||||
|
|
||||||
reg = getreg32(IMXRT_CCM_CSCDR1);
|
reg = getreg32(IMXRT_CCM_CSCDR1);
|
||||||
reg &= CCM_CSCDR1_UART_CLK_PODF_MASK;
|
reg &= CCM_CSCDR1_UART_CLK_PODF_MASK;
|
||||||
reg |= CCM_CSCDR1_UART_CLK_PODF(0);
|
reg |= CCM_CSCDR1_UART_CLK_PODF(0);
|
||||||
putreg32(reg, IMXRT_CCM_CBCDR);
|
putreg32(reg, IMXRT_CCM_CSCDR1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ MEMORY
|
|||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
EXTERN(_vectors)
|
EXTERN(_vectors)
|
||||||
|
EXTERN(hyperflash_config)
|
||||||
|
EXTERN(image_vector_table)
|
||||||
|
EXTERN(boot_data)
|
||||||
|
|
||||||
ENTRY(_stext)
|
ENTRY(_stext)
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
@@ -147,3 +151,4 @@ SECTIONS
|
|||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user