<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2038071#M233606</link>
    <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Could you share the Uboot version that you are working with?&lt;BR /&gt;Also, could you share the logs of a working test?&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
    <pubDate>Tue, 04 Feb 2025 22:24:15 GMT</pubDate>
    <dc:creator>AldoG</dc:creator>
    <dc:date>2025-02-04T22:24:15Z</dc:date>
    <item>
      <title>[imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2037585#M233583</link>
      <description>&lt;P&gt;here is part of arch/arm/dts/imx8mn-evk.dtsi for uart3(original source).&lt;/P&gt;&lt;P&gt;&amp;amp;uart3 {&lt;BR /&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart3&amp;gt;;&lt;BR /&gt;assigned-clocks = &amp;lt;&amp;amp;clk IMX8MN_CLK_UART3&amp;gt;;&lt;BR /&gt;&lt;STRONG&gt;assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MN_SYS_PLL1_80M&amp;gt;;&lt;/STRONG&gt;&lt;BR /&gt;u-boot,dm-spl;&lt;BR /&gt;uart-has-rtscts;&lt;BR /&gt;status = "okay";&lt;BR /&gt;};&lt;BR /&gt;&lt;BR /&gt;with this dts, run uart_test. it show error message like below.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;error is "could not get parent clock pointer, id 111"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I haven't touch any dts for clock.&lt;BR /&gt;&lt;STRONG&gt;I tried to remove "assigned-clock-parents item", then it works without error.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;So,&amp;nbsp; I got a question, &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;how to fix this issue ?&amp;nbsp; Is it ok&amp;nbsp; if removing "assigned-clock-parents "&amp;nbsp; in dts file ? any impact ?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;u-boot=&amp;gt; uart_test uart3 9600 48656C6C6F2C2055415254210A&lt;BR /&gt;trying to uclass_get_device_by_name: serial@30880000...&lt;BR /&gt;device_probe: udevice-&amp;gt;name: serial@30880000&lt;BR /&gt;device_probe: udevice-&amp;gt;name: spba-bus@30800000&lt;BR /&gt;device_probe: udevice-&amp;gt;name: uart3grp&lt;BR /&gt;device_probe: udevice-&amp;gt;name: pinctrl@30330000&lt;BR /&gt;clk_set_defaults(uart3grp)&lt;BR /&gt;clk_set_default_parents: could not read assigned-clock-parents for 000000007df08f70&lt;BR /&gt;clk_set_defaults(serial@30880000)&lt;BR /&gt;clk_get_by_indexed_prop(dev=000000007df09f30, index=0, clk=000000007def9af8)&lt;BR /&gt;device_probe: udevice-&amp;gt;name: clock-controller@30380000&lt;BR /&gt;clk_of_xlate_default(clk=000000007def9af8)&lt;BR /&gt;clk_request(dev=000000007df09510, clk=000000007def9af8)&lt;BR /&gt;clk_get_by_indexed_prop(dev=000000007df09f30, index=0, clk=000000007def9ad0)&lt;BR /&gt;device_probe: udevice-&amp;gt;name: clock-controller@30380000&lt;BR /&gt;clk_of_xlate_default(clk=000000007def9ad0)&lt;BR /&gt;clk_request(dev=000000007df09510, clk=000000007def9ad0)&lt;BR /&gt;clk_set_default_get_by_id(): &lt;STRONG&gt;could not get parent clock pointer, id 111&lt;/STRONG&gt;&lt;BR /&gt;clk_set_parent(clk=000000007def9ad0, parent=000000007df0ea80)&lt;BR /&gt;clk_set_default_parents: failed to reparent clock 0 for serial@30880000&lt;/P&gt;&lt;P&gt;u-boot=&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Feb 2025 08:27:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2037585#M233583</guid>
      <dc:creator>justin-inno</dc:creator>
      <dc:date>2025-02-04T08:27:29Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2038071#M233606</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Could you share the Uboot version that you are working with?&lt;BR /&gt;Also, could you share the logs of a working test?&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Feb 2025 22:24:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2038071#M233606</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2025-02-04T22:24:15Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2038122#M233608</link>
      <description>&lt;P&gt;&lt;SPAN&gt;my dev environment:&amp;nbsp; imx-6.1.55-2.2.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(repo init -u&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/nxp-imx/imx-manifest" target="_blank" rel="nofollow noopener noreferrer"&gt;https://github.com/nxp-imx/imx-manifest&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;-b imx-linux-mickledore -m imx-6.1.55-2.2.1.xml)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&amp;lt; u-boot log&amp;nbsp; &amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;U-Boot SPL 2023.04-lf_v2023.04+g49b102d9888 (Nov 21 2023 - 07:28:53 +0000)&lt;BR /&gt;DDR Initialization&lt;BR /&gt;DDRINFO: start DRAM init...&lt;BR /&gt;DDRINFO: DRAM rate 1600MTS&lt;BR /&gt;DDRINFO:ddrphy calibration done&lt;BR /&gt;DDRINFO: ddrmix config done&lt;BR /&gt;DDRINFO: end DRAM init...&lt;BR /&gt;SEC0: RNG instantiated&lt;BR /&gt;Normal Boot&lt;BR /&gt;Trying to boot from BOOTROM&lt;BR /&gt;Boot Stage: Primary boot&lt;BR /&gt;image offset 0x0, pagesize 0x200, ivt offset 0x0&lt;BR /&gt;NOTICE: Do not release JR0 to NS as it can be used by HAB&lt;BR /&gt;NOTICE: BL31: v2.8(release):lf-6.1.55-2.2.1-rc1-0-g08e9d4eef-dirty&lt;BR /&gt;NOTICE: BL31: Built : 06:43:30, Nov 21 2023&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;U-Boot 2023.04-lf_v2023.04+g49b102d9888 (Nov 21 2023 - 07:28:53 +0000)&lt;/P&gt;&lt;P&gt;CPU: i.MX8MNano UltraLite Quad rev1.0 1400 MHz (running at 1200 MHz)&lt;BR /&gt;CPU: Industrial temperature grade (-40C to 105C) at 30C&lt;BR /&gt;Reset cause: POR&lt;BR /&gt;Model: NXP i.MX8MNano DDR3L EVK board&lt;BR /&gt;DRAM: 992 MiB&lt;BR /&gt;tcpc_init: Can't find device id=0x52&lt;BR /&gt;setup_typec: tcpc port2 init failed, err=-19&lt;BR /&gt;tcpc_init: Can't find device id=0x50&lt;BR /&gt;setup_typec: tcpc port1 init failed, err=-19&lt;BR /&gt;Core: 199 devices, 27 uclasses, devicetree: separate&lt;BR /&gt;MMC: FSL_SDHC: 1, FSL_SDHC: 2&lt;BR /&gt;Loading Environment from MMC... Select HS400ES failed -5&lt;BR /&gt;Select HS400 failed -5&lt;BR /&gt;OK&lt;BR /&gt;In: serial&lt;BR /&gt;Out: serial&lt;BR /&gt;Err: serial&lt;BR /&gt;SEC0: RNG instantiated&lt;BR /&gt;Select HS400ES failed -5&lt;BR /&gt;Select HS400 failed -5&lt;BR /&gt;switch to partitions #0, OK&lt;BR /&gt;mmc2(part 0) is current device&lt;BR /&gt;flash target is MMC:2&lt;BR /&gt;Select HS400ES failed -5&lt;BR /&gt;Select HS400 failed -5&lt;BR /&gt;Net: ksz-switch switch@5f: ksz_i2c_probe switch@5f master:ethernet@30be0000&lt;BR /&gt;ksz-switch switch@5f: ksz_i2c_probe id=0x00989600&lt;BR /&gt;KSZ9896CS: eth0: ethernet@30be0000&lt;BR /&gt;Fastboot: Normal&lt;BR /&gt;Normal Boot&lt;BR /&gt;Hit any key to stop autoboot: 0&lt;BR /&gt;u-boot=&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;&amp;lt; u-boot, arch/arm/dts/imx8mn-evk.dtsi &amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;amp;uart1 { /* console */&lt;BR /&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart1&amp;gt;;&lt;BR /&gt;u-boot,dm-spl;&lt;BR /&gt;status = "okay";&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;amp;uart2 {&lt;BR /&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart2&amp;gt;;&lt;BR /&gt;status = "okay";&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;amp;uart3 {&lt;BR /&gt;pinctrl-names = "default";&lt;BR /&gt;pinctrl-0 = &amp;lt;&amp;amp;pinctrl_uart3&amp;gt;;&lt;BR /&gt;assigned-clocks = &amp;lt;&amp;amp;clk IMX8MN_CLK_UART3&amp;gt;;&lt;BR /&gt;&lt;STRONG&gt;assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MN_SYS_PLL1_80M&amp;gt;;&lt;/STRONG&gt;&lt;BR /&gt;u-boot,dm-spl;&lt;BR /&gt;uart-has-rtscts;&lt;BR /&gt;status = "okay";&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;&amp;lt; u-boot,&amp;nbsp; board/freescale/imx8mn_evk/imx8mn_evk.c&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;static iomux_v3_cfg_t const uart_pads[] = {&lt;BR /&gt;IMX8MN_PAD_UART1_RXD__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;BR /&gt;IMX8MN_PAD_UART1_TXD__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;BR /&gt;IMX8MN_PAD_UART2_RXD__UART2_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;BR /&gt;IMX8MN_PAD_UART2_TXD__UART2_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;IMX8MN_PAD_ECSPI1_SCLK__UART3_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;IMX8MN_PAD_ECSPI1_MOSI__UART3_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;IMX8MN_PAD_ECSPI1_MISO__UART3_DCE_CTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;IMX8MN_PAD_ECSPI1_SS0__UART3_DCE_RTS_B | MUX_PAD_CTRL(UART_PAD_CTRL),&lt;/STRONG&gt;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;int board_early_init_f(void)&lt;BR /&gt;{&lt;BR /&gt;struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;&lt;/P&gt;&lt;P&gt;imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));&lt;/P&gt;&lt;P&gt;set_wdog_reset(wdog);&lt;/P&gt;&lt;P&gt;imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));&lt;/P&gt;&lt;P&gt;init_uart_clk(0);&lt;BR /&gt;init_uart_clk(1);&lt;BR /&gt;&lt;STRONG&gt;init_uart_clk(2);&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;#ifdef CONFIG_NAND_MXS&lt;BR /&gt;setup_gpmi_nand(); /* SPL will call the board_early_init_f */&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;&amp;lt; u-boot, cmd/uart_test.c&amp;gt;&amp;gt;&lt;/P&gt;&lt;P&gt;abc@dev:~/yocto/build/tmp/work/imx8mnul_ddr3l_evk-poky-linux/u-boot-imx/2023.04-r0/git/cmd (lf_v2023.04)$ cat uart_test.c&lt;BR /&gt;#include &amp;lt;common.h&amp;gt;&lt;BR /&gt;#include &amp;lt;command.h&amp;gt;&lt;BR /&gt;#include &amp;lt;dm.h&amp;gt;&lt;BR /&gt;#include &amp;lt;serial.h&amp;gt;&lt;BR /&gt;#include &amp;lt;dm/device.h&amp;gt;&lt;BR /&gt;#include &amp;lt;dm/uclass.h&amp;gt;&lt;BR /&gt;#include &amp;lt;dm/device-internal.h&amp;gt; // device_probe()&lt;BR /&gt;#include &amp;lt;dm/uclass-internal.h&amp;gt; // uclass_first_device(), uclass_next_device()&lt;/P&gt;&lt;P&gt;static const struct {&lt;BR /&gt;const char *alias;&lt;BR /&gt;const char *device_name;&lt;BR /&gt;} uart_aliases[] = {&lt;BR /&gt;{ "uart2", "serial@30890000" },&lt;BR /&gt;{ "uart3", "serial@30880000" },&lt;BR /&gt;{ "uart4", "serial@308a0000" }&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;static const char *get_uart_device_name(const char *alias) {&lt;BR /&gt;for (int i = 0; i &amp;lt; ARRAY_SIZE(uart_aliases); i++) {&lt;BR /&gt;if (strcmp(alias, uart_aliases[i].alias) == 0) {&lt;BR /&gt;return uart_aliases[i].device_name;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;return alias;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static int do_uart_test(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])&lt;BR /&gt;{&lt;BR /&gt;const char *uart_name;&lt;BR /&gt;const char *device_name;&lt;BR /&gt;struct udevice *dev;&lt;BR /&gt;struct udevice *iter_dev;&lt;BR /&gt;const struct dm_serial_ops *ops;&lt;BR /&gt;const char *baudrate_str;&lt;BR /&gt;const char *hex_message;&lt;BR /&gt;int baudrate;&lt;BR /&gt;int ret;&lt;BR /&gt;bool found = false;&lt;/P&gt;&lt;P&gt;if (argc != 4) {&lt;BR /&gt;printf("Usage: uart_test &amp;lt;uart_name&amp;gt; &amp;lt;baudrate&amp;gt; &amp;lt;hex message&amp;gt;\n");&lt;BR /&gt;return CMD_RET_USAGE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;uart_name = argv[1];&lt;BR /&gt;baudrate_str = argv[2];&lt;BR /&gt;hex_message = argv[3];&lt;/P&gt;&lt;P&gt;baudrate = simple_strtoul(baudrate_str, NULL, 10);&lt;BR /&gt;device_name = get_uart_device_name(uart_name);&lt;/P&gt;&lt;P&gt;if (!gd-&amp;gt;dm_root) {&lt;BR /&gt;ret = dm_scan_fdt(gd-&amp;gt;fdt_blob, false);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("Failed to scan FDT (error: %d)\n", ret);&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;printf("trying to uclass_get_device_by_name: %s...\n", device_name);&lt;BR /&gt;ret = uclass_get_device_by_name(UCLASS_SERIAL, device_name, &amp;amp;dev);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("UART device %s not found, trying to probe...\n", device_name);&lt;BR /&gt;ret = device_probe(dev);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("Error: Unable to probe UART device %s (ret=%d)\n", device_name, ret);&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;BR /&gt;printf("devcie probe finished: %s ...\n", device_name);&lt;BR /&gt;printf("trying to uclass_get_device_by_name: %s...\n", device_name);&lt;BR /&gt;ret = uclass_get_device_by_name(UCLASS_SERIAL, device_name, &amp;amp;dev);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("Still failed to find UART device: %s (error: %d)\n", device_name, ret);&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;printf("UART device %s found...\n", device_name);&lt;/P&gt;&lt;P&gt;#if 0&lt;BR /&gt;if (!dev) {&lt;BR /&gt;printf("Error: Device not found!\n");&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;ret = device_probe(dev);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("Error: Unable to probe UART device %s (ret=%d)\n", device_name, ret);&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;printf("UART device %s probed successfully.\n", device_name);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;/* Set baudrate */&lt;BR /&gt;ops = serial_get_ops(dev);&lt;BR /&gt;if (!ops || !ops-&amp;gt;putc || !ops-&amp;gt;setbrg) {&lt;BR /&gt;printf("UART device does not support putc, setbrg operation\n");&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;/* Get DM serial operations */&lt;BR /&gt;/* Set baudrate */&lt;BR /&gt;ret = ops-&amp;gt;setbrg(dev, baudrate);&lt;BR /&gt;if (ret) {&lt;BR /&gt;printf("Failed to set baudrate %d on %s (error: %d)\n", baudrate, device_name, ret);&lt;BR /&gt;return CMD_RET_FAILURE;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;printf("UART device: %s\n", device_name);&lt;BR /&gt;printf("BaudRate: %d\n", baudrate);&lt;/P&gt;&lt;P&gt;/* Convert hex string to binary and send */&lt;BR /&gt;while (*hex_message &amp;amp;&amp;amp; *(hex_message + 1)) {&lt;BR /&gt;char hex_byte[3] = {hex_message[0], hex_message[1], '\0'};&lt;BR /&gt;char byte = (char) simple_strtoul(hex_byte, NULL, 16);&lt;BR /&gt;&lt;BR /&gt;ops-&amp;gt;putc(dev, byte);&lt;BR /&gt;hex_message += 2;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;printf("Message sent successfully.\n");&lt;/P&gt;&lt;P&gt;return CMD_RET_SUCCESS;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;U_BOOT_CMD(&lt;BR /&gt;uart_test, 4, 1, do_uart_test,&lt;BR /&gt;"Send hex message over UART",&lt;BR /&gt;"&amp;lt;uart_name&amp;gt; &amp;lt;baudrate&amp;gt; &amp;lt;hex_message&amp;gt;\n"&lt;BR /&gt;" - Send &amp;lt;hex_message&amp;gt; (hex format) to specified UART device.\n"&lt;BR /&gt;" example) - uart2, 115200, Hello, UART! \n =&amp;gt; uart_test uart2 115200 48656C6C6F2C2055415254210A\n"&lt;BR /&gt;" example) - uart3, 9600, Hello, UART! \n =&amp;gt; uart_test uart3 9600 48656C6C6F2C2055415254210A\n"&lt;BR /&gt;" example) - uart4, 9600, Hello, 1122aabb\n =&amp;gt; uart_test uart4 9600 1122aabb\n"&lt;BR /&gt;);&lt;BR /&gt;abc@dev:~/yocto/build/tmp/work/imx8mnul_ddr3l_evk-poky-linux/u-boot-imx/2023.04-r0/git/cmd (lf_v2023.04)$&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Feb 2025 01:17:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2038122#M233608</guid>
      <dc:creator>justin-inno</dc:creator>
      <dc:date>2025-02-05T01:17:51Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2039624#M233712</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Thank you for sharing, I do not think that removing assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MN_SYS_PLL1_80M&amp;gt; is enough, is just that it skips the api that checks this is enabled correctly.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/uboot-imx/blob/lf_v2023.04/drivers/clk/clk-uclass.c#L214" target="_blank"&gt;https://github.com/nxp-imx/uboot-imx/blob/lf_v2023.04/drivers/clk/clk-uclass.c#L214&lt;/A&gt;&lt;BR /&gt;num_parents = dev_count_phandle_with_args(dev, "assigned-clock-parents",&lt;BR /&gt;"#clock-cells", 0);&lt;BR /&gt;if (num_parents &amp;lt; 0) {&lt;BR /&gt;debug("%s: could not read assigned-clock-parents for %p\n",&lt;BR /&gt;__func__, dev);&lt;BR /&gt;return 0;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://github.com/nxp-imx/uboot-imx/blob/lf_v2022.04/include/dm/read.h#L438" target="_blank"&gt;https://github.com/nxp-imx/uboot-imx/blob/lf_v2022.04/include/dm/read.h#L438&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;/**&lt;BR /&gt;* dev_count_phandle_with_args() - Return phandle number in a list&lt;BR /&gt;*&lt;BR /&gt;* This function is usefull to get phandle number contained in a property list.&lt;BR /&gt;* For example, this allows to allocate the right amount of memory to keep&lt;BR /&gt;* clock's reference contained into the "clocks" property.&lt;BR /&gt;*&lt;BR /&gt;* &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/27672"&gt;@Dev&lt;/a&gt;: device whose node containing a list&lt;BR /&gt;* @list_name: property name that contains a list&lt;BR /&gt;* @cells_name: property name that specifies phandles' arguments count&lt;BR /&gt;* @cell_count: Cell count to use if @cells_name is NULL&lt;BR /&gt;* Return: number of phandle found on success, on error returns appropriate&lt;BR /&gt;* errno value.&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;For some reason I see that its returning failure, in your test you were able to test UART3 correctly with that change?&lt;BR /&gt;Removing&amp;nbsp;assigned-clock-parents&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Feb 2025 00:47:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2039624#M233712</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2025-02-07T00:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2039646#M233714</link>
      <description>&lt;P&gt;thanks for your reply.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so far, it works well.&amp;nbsp;&lt;BR /&gt;but I got a question.&amp;nbsp; So, how to find source clock for uart3&amp;nbsp; including uart 1,2,4 as well?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I tryed to call clk dump, but&amp;nbsp; uart clock doesn't show up.&lt;/P&gt;&lt;P&gt;Could you guide me how to find the clock source for each uart port ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;=================================================&lt;BR /&gt;u-boot=&amp;gt; clk dump&lt;BR /&gt;Rate Usecnt Name&lt;BR /&gt;------------------------------------------&lt;BR /&gt;32768 0 |-- clock-osc-32k&lt;BR /&gt;24000000 4 |-- clock-osc-24m&lt;BR /&gt;24000000 0 | |-- video_pll1_ref_sel&lt;BR /&gt;594000000 0 | | `-- video_pll1&lt;BR /&gt;594000000 0 | | `-- video_pll1_bypass&lt;BR /&gt;594000000 0 | | `-- video_pll1_out&lt;BR /&gt;27000000 0 | | `-- dsi_phy_ref&lt;BR /&gt;24000000 0 | |-- dram_pll_ref_sel&lt;BR /&gt;400000000 0 | | `-- dram_pll&lt;BR /&gt;400000000 0 | | `-- dram_pll_bypass&lt;BR /&gt;400000000 0 | | `-- dram_pll_out&lt;BR /&gt;24000000 0 | |-- arm_pll_ref_sel&lt;BR /&gt;1200000000 0 | | `-- arm_pll&lt;BR /&gt;1200000000 0 | | `-- arm_pll_bypass&lt;BR /&gt;1200000000 0 | | `-- arm_pll_out&lt;BR /&gt;24000000 1 | |-- sys_pll1_ref_sel&lt;BR /&gt;800000000 1 | | `-- sys_pll1&lt;BR /&gt;800000000 1 | | `-- sys_pll1_bypass&lt;BR /&gt;800000000 3 | | `-- sys_pll1_out&lt;BR /&gt;40000000 0 | | |-- sys_pll1_40m&lt;BR /&gt;80000000 0 | | |-- sys_pll1_80m&lt;BR /&gt;100000000 0 | | |-- sys_pll1_100m&lt;BR /&gt;100000000 0 | | | `-- usb_phy_ref&lt;BR /&gt;133333333 1 | | |-- sys_pll1_133m&lt;BR /&gt;133333333 2 | | | `-- ahb&lt;BR /&gt;66666667 3 | | | `-- ipg_root&lt;BR /&gt;66666667 0 | | | `-- ocotp_root_clk&lt;BR /&gt;160000000 0 | | |-- sys_pll1_160m&lt;BR /&gt;200000000 0 | | |-- sys_pll1_200m&lt;BR /&gt;266666666 3 | | |-- sys_pll1_266m&lt;BR /&gt;266666666 3 | | | |-- nand_usdhc_bus&lt;BR /&gt;266666666 0 | | | | `-- nand_usdhc_rawnand_clk&lt;BR /&gt;266666666 0 | | | |-- dsi_core&lt;BR /&gt;266666666 2 | | | `-- enet_axi&lt;BR /&gt;266666666 3 | | | `-- enet1_root_clk&lt;BR /&gt;400000000 2 | | |-- sys_pll1_400m&lt;BR /&gt;200000000 0 | | | |-- usdhc1&lt;BR /&gt;200000000 0 | | | | `-- usdhc1_root_clk&lt;BR /&gt;400000000 0 | | | |-- qspi&lt;BR /&gt;400000000 0 | | | | `-- qspi_root_clk&lt;BR /&gt;400000000 2 | | | |-- usdhc2&lt;BR /&gt;400000000 2 | | | | `-- usdhc2_root_clk&lt;BR /&gt;400000000 2 | | | `-- usdhc3&lt;BR /&gt;400000000 2 | | | `-- usdhc3_root_clk&lt;BR /&gt;800000000 0 | | `-- sys_pll1_800m&lt;BR /&gt;200000000 0 | | `-- disp_apb&lt;BR /&gt;200000000 0 | | `-- disp_apb_root_clk&lt;BR /&gt;24000000 1 | |-- sys_pll2_ref_sel&lt;BR /&gt;1000000000 1 | | `-- sys_pll2&lt;BR /&gt;1000000000 1 | | `-- sys_pll2_bypass&lt;BR /&gt;1000000000 3 | | `-- sys_pll2_out&lt;BR /&gt;50000000 2 | | |-- sys_pll2_50m&lt;BR /&gt;50000000 2 | | | `-- enet_phy&lt;BR /&gt;100000000 2 | | |-- sys_pll2_100m&lt;BR /&gt;100000000 2 | | | `-- enet_timer&lt;BR /&gt;125000000 2 | | |-- sys_pll2_125m&lt;BR /&gt;125000000 2 | | | `-- enet_ref&lt;BR /&gt;166666666 0 | | |-- sys_pll2_166m&lt;BR /&gt;200000000 0 | | |-- sys_pll2_200m&lt;BR /&gt;50000000 0 | | | |-- ecspi1&lt;BR /&gt;50000000 0 | | | | `-- ecspi1_root_clk&lt;BR /&gt;50000000 0 | | | |-- ecspi2&lt;BR /&gt;50000000 0 | | | | `-- ecspi2_root_clk&lt;BR /&gt;50000000 0 | | | `-- ecspi3&lt;BR /&gt;50000000 0 | | | `-- ecspi3_root_clk&lt;BR /&gt;250000000 0 | | |-- sys_pll2_250m&lt;BR /&gt;333333333 0 | | |-- sys_pll2_333m&lt;BR /&gt;500000000 0 | | |-- sys_pll2_500m&lt;BR /&gt;500000000 0 | | | |-- arm_a53_src&lt;BR /&gt;500000000 0 | | | | `-- arm_a53_cg&lt;BR /&gt;500000000 0 | | | | `-- arm_a53_div&lt;BR /&gt;500000000 0 | | | |-- usb_bus&lt;BR /&gt;500000000 0 | | | | `-- usb1_ctrl_root_clk&lt;BR /&gt;500000000 0 | | | `-- nand&lt;BR /&gt;500000000 0 | | | `-- nand_root_clk&lt;BR /&gt;1000000000 0 | | `-- sys_pll2_1000m&lt;BR /&gt;500000000 0 | | `-- disp_axi&lt;BR /&gt;500000000 0 | | `-- disp_axi_root_clk&lt;BR /&gt;24000000 0 | |-- sys_pll3_ref_sel&lt;BR /&gt;600000000 0 | | `-- sys_pll3&lt;BR /&gt;600000000 0 | | `-- sys_pll3_bypass&lt;BR /&gt;600000000 0 | | `-- sys_pll3_out&lt;BR /&gt;24000000 2 | |-- i2c1&lt;BR /&gt;24000000 2 | | `-- i2c1_root_clk&lt;BR /&gt;24000000 2 | |-- i2c2&lt;BR /&gt;24000000 2 | | `-- i2c2_root_clk&lt;BR /&gt;24000000 0 | |-- i2c3&lt;BR /&gt;24000000 0 | | `-- i2c3_root_clk&lt;BR /&gt;24000000 0 | |-- i2c4&lt;BR /&gt;24000000 0 | | `-- i2c4_root_clk&lt;BR /&gt;24000000 0 | |-- wdog&lt;BR /&gt;24000000 0 | | |-- wdog1_root_clk&lt;BR /&gt;24000000 0 | | |-- wdog2_root_clk&lt;BR /&gt;24000000 0 | | `-- wdog3_root_clk&lt;BR /&gt;24000000 0 | |-- usb_core_ref&lt;BR /&gt;24000000 0 | |-- disp_pixel&lt;BR /&gt;24000000 0 | | `-- disp_pixel_clk&lt;BR /&gt;24000000 0 | |-- dsi_dbi&lt;BR /&gt;24000000 0 | `-- camera_pixel&lt;BR /&gt;24000000 0 | `-- camera_pixel_clk&lt;BR /&gt;133000000 0 |-- clock-ext1&lt;BR /&gt;133000000 0 |-- clock-ext2&lt;BR /&gt;133000000 0 |-- clock-ext3&lt;BR /&gt;133000000 0 |-- clock-ext4&lt;BR /&gt;u-boot=&amp;gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Feb 2025 01:53:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2039646#M233714</guid>
      <dc:creator>justin-inno</dc:creator>
      <dc:date>2025-02-07T01:53:30Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2041203#M233831</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;All UART, at least in our BSP, uses SYS_PLL1_80M&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Feb 2025 22:27:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2041203#M233831</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2025-02-10T22:27:58Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2041227#M233833</link>
      <description>Hi AldoG&lt;BR /&gt;&lt;BR /&gt;Thanks for your reply.&lt;BR /&gt;&lt;BR /&gt;you mean uart clock is hardwired with SYS_PLL1_80M, or configured.&lt;BR /&gt;if it's hardwired, Could you let me know how to check it with register ?&lt;BR /&gt;-Best Regards-</description>
      <pubDate>Mon, 10 Feb 2025 23:57:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2041227#M233833</guid>
      <dc:creator>justin-inno</dc:creator>
      <dc:date>2025-02-10T23:57:58Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2043979#M233995</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;It is configured that way, even one could check the root clock on the CCM register, by reading the register 3038_44B0 (CCM_CCGR75).&lt;/P&gt;
&lt;P&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Feb 2025 22:42:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2043979#M233995</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2025-02-13T22:42:12Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2046159#M234128</link>
      <description>&lt;P&gt;u-boot=&amp;gt; md 0x303844b0 1&lt;BR /&gt;303844b0: 00000003 ....&lt;BR /&gt;u-boot=&amp;gt;&lt;/P&gt;&lt;P&gt;I can't catch the meaning of 0x00000003 for address 303844b0.&lt;BR /&gt;could you guide me how to find the clock of uart3 with this ?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="justininno_0-1739868648142.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/324474iAD5AFC27237D2716/image-size/medium?v=v2&amp;amp;px=400" role="button" title="justininno_0-1739868648142.png" alt="justininno_0-1739868648142.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;-Best Regards-&lt;/P&gt;&lt;P&gt;Justin-Inno&lt;/P&gt;</description>
      <pubDate>Tue, 18 Feb 2025 08:52:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2046159#M234128</guid>
      <dc:creator>justin-inno</dc:creator>
      <dc:date>2025-02-18T08:52:19Z</dc:date>
    </item>
    <item>
      <title>Re: [imx8mn ddr3l evk] error during  uart3 init on u-boot</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2046807#M234174</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Please do accept my apologize for the confusion it is a different register, it should be:&amp;nbsp;&lt;BR /&gt;3038_A580 Target Register (CCM_TARGET_ROOT75)&lt;BR /&gt;&lt;BR /&gt;Best regards/Saludos,&lt;BR /&gt;Aldo.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2025 02:38:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/imx8mn-ddr3l-evk-error-during-uart3-init-on-u-boot/m-p/2046807#M234174</guid>
      <dc:creator>AldoG</dc:creator>
      <dc:date>2025-02-19T02:38:01Z</dc:date>
    </item>
  </channel>
</rss>

