zephyr/dts/arm/nxp/nxp_rt1015.dtsi
Daniel DeGrasse 9e4b57398f dts: arm: nxp: rt1015: correct FlexRAM bank allocation
Although the RT1015 only supports 128 KB of FlexRAM being used at once, the
default fusemap overallocates 160KB of FlexRAM. The JLink flashloader
algorithm appears to rely on the 64KB of DTCM in the default fusemap
being configured. Reducing the DTCM allocation resulted in JLink
failing to flash the SOC.

To resolve this, utilize the default fusemap of {O, O, D, D, I} for the
RT1015 FlexRAM setup. Add a note about the restrictions on using
overallocated FlexRAM to the SOC DTSI.

Fixes #65889

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-11-29 11:21:40 -06:00

145 lines
3.6 KiB
Plaintext

/*
* Copyright (c) 2019, Linaro
* Copyright (c) 2022, NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <nxp/nxp_rt10xx.dtsi>
&flexram {
flexram,num-ram-banks = <5>;
/* Note: RT1015 has five flexram banks, but only 4 of the 5 can
* be used at the same time, for a total of 128KB of RAM.
*/
flexram,bank-spec = <FLEXRAM_OCRAM>,
<FLEXRAM_OCRAM>,
<FLEXRAM_DTCM>,
<FLEXRAM_DTCM>,
<FLEXRAM_ITCM>;
};
&sysclk {
clock-frequency = <500000000>;
};
&itcm {
reg = <0x00000000 DT_SIZE_K(32)>;
};
&dtcm {
reg = <0x20000000 DT_SIZE_K(64)>;
};
&ocram {
reg = <0x20200000 DT_SIZE_K(64)>;
};
&ccm {
ipg-podf {
clock-div = <4>;
};
};
&gpt2 {
gptfreq = <12500000>;
};
/* RT1015 only has two LPSPI blocks */
/delete-node/ &lpspi3;
/delete-node/ &lpspi4;
/ {
soc {
/* Remove ADC2, it doesn't exist on RT1015 */
/delete-node/ adc@400C8000;
/* GPIOS 4 and 6-9 are not preset on RT1015 */
/delete-node/ gpio@401c4000;
/delete-node/ gpio@42000000;
/delete-node/ gpio@42004000;
/delete-node/ gpio@42008000;
/delete-node/ gpio@4200c000;
/* RT1015 has only one flexSPI controller */
/delete-node/ spi@402a4000;
};
};
/*
* GPIO pinmux options. These options define the pinmux settings
* for GPIO ports on the package, so that the GPIO driver can
* select GPIO mux options during GPIO configuration.
*/
&gpio1{
pinmux = <&iomuxc_gpio_ad_b0_00_gpio1_io00>,
<&iomuxc_gpio_ad_b0_01_gpio1_io01>,
<&iomuxc_gpio_ad_b0_02_gpio1_io02>,
<&iomuxc_gpio_ad_b0_03_gpio1_io03>,
<&iomuxc_gpio_ad_b0_04_gpio1_io04>,
<&iomuxc_gpio_ad_b0_05_gpio1_io05>,
<&iomuxc_gpio_ad_b0_06_gpio1_io06>,
<&iomuxc_gpio_ad_b0_07_gpio1_io07>,
<&iomuxc_gpio_ad_b0_08_gpio1_io08>,
<&iomuxc_gpio_ad_b0_09_gpio1_io09>,
<&iomuxc_gpio_ad_b0_10_gpio1_io10>,
<&iomuxc_gpio_ad_b0_11_gpio1_io11>,
<&iomuxc_gpio_ad_b0_12_gpio1_io12>,
<&iomuxc_gpio_ad_b0_13_gpio1_io13>,
<&iomuxc_gpio_ad_b0_14_gpio1_io14>,
<&iomuxc_gpio_ad_b0_15_gpio1_io15>,
<&iomuxc_gpio_ad_b1_10_gpio1_io26>,
<&iomuxc_gpio_ad_b1_11_gpio1_io27>,
<&iomuxc_gpio_ad_b1_12_gpio1_io28>,
<&iomuxc_gpio_ad_b1_13_gpio1_io29>,
<&iomuxc_gpio_ad_b1_14_gpio1_io30>,
<&iomuxc_gpio_ad_b1_15_gpio1_io31>;
gpio-reserved-ranges = <16 10>;
};
&gpio2{
pinmux = <&iomuxc_gpio_emc_04_gpio2_io04>,
<&iomuxc_gpio_emc_05_gpio2_io05>,
<&iomuxc_gpio_emc_06_gpio2_io06>,
<&iomuxc_gpio_emc_07_gpio2_io07>,
<&iomuxc_gpio_emc_08_gpio2_io08>,
<&iomuxc_gpio_emc_09_gpio2_io09>,
<&iomuxc_gpio_emc_16_gpio2_io16>,
<&iomuxc_gpio_emc_17_gpio2_io17>,
<&iomuxc_gpio_emc_18_gpio2_io18>,
<&iomuxc_gpio_emc_19_gpio2_io19>,
<&iomuxc_gpio_emc_20_gpio2_io20>,
<&iomuxc_gpio_emc_21_gpio2_io21>,
<&iomuxc_gpio_emc_22_gpio2_io22>,
<&iomuxc_gpio_emc_23_gpio2_io23>,
<&iomuxc_gpio_emc_24_gpio2_io24>,
<&iomuxc_gpio_emc_25_gpio2_io25>,
<&iomuxc_gpio_emc_26_gpio2_io26>,
<&iomuxc_gpio_emc_27_gpio2_io27>;
gpio-reserved-ranges = <0 4>, <10 6>;
};
&gpio3{
pinmux = <&iomuxc_gpio_emc_32_gpio3_io00>,
<&iomuxc_gpio_emc_33_gpio3_io01>,
<&iomuxc_gpio_emc_34_gpio3_io02>,
<&iomuxc_gpio_emc_35_gpio3_io03>,
<&iomuxc_gpio_sd_b1_00_gpio3_io20>,
<&iomuxc_gpio_sd_b1_01_gpio3_io21>,
<&iomuxc_gpio_sd_b1_02_gpio3_io22>,
<&iomuxc_gpio_sd_b1_03_gpio3_io23>,
<&iomuxc_gpio_sd_b1_04_gpio3_io24>,
<&iomuxc_gpio_sd_b1_05_gpio3_io25>,
<&iomuxc_gpio_sd_b1_06_gpio3_io26>,
<&iomuxc_gpio_sd_b1_07_gpio3_io27>,
<&iomuxc_gpio_sd_b1_08_gpio3_io28>,
<&iomuxc_gpio_sd_b1_09_gpio3_io29>,
<&iomuxc_gpio_sd_b1_10_gpio3_io30>,
<&iomuxc_gpio_sd_b1_11_gpio3_io31>;
gpio-reserved-ranges = <4 16>;
};
&gpio5{
pinmux = <&iomuxc_snvs_pmic_on_req_gpio5_io01>;
gpio-reserved-ranges = <0 1>;
};