This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VL-Q1:TDA4VL U-Boot:在生产环境中通过 tftpboot 将映像刷写到 EMMC

Guru**** 2390875 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1498592/tda4vl-q1-tda4vl-u-boot-flash-images-to-the-emmc-via-tftpboot-in-production-environment

器件型号:TDA4VL-Q1
主题中讨论的其他器件:TDA4VL

工具/软件:

背景

我们能够通过 USB-DFU 引导至 u-boot。 TI 支持团队已经帮助我们在此票证中实现了这一点:
TDA4VL-Q1:J721S2 USB-DFU U-Boot、用于在生产环境中快速刷写 eMMC -处理器论坛-处理器- TI E2E 支持论坛

现在、我们希望通过在 u-boot 中使用 tftpboot 来加快数据传输。  与 此常见问题解答类似:
[常见问题解答] TDA4VM:如何使用 tftp 将映像刷写到 EMMC Boot 0分区? -处理器论坛-处理器- TI E2E 支持论坛

TI-u-boot 设置

  具有最少更改的标准 ti-processor-sdk-linux-adas-j721s2-evm-10_01_00_04有关更多信息、请参阅上一标签。

以太网 PHY 是 DP83TC812R、连接到 MCU_RGMII1。

UART 输出

[...]
Net:   Could not get PHY for mdio@f00: addr 0
am65_cpsw_nuss_port ethernet@46000000port@1: phy_connect() failed
No ethernet found.
[...]

问题

  • 需要对 u-boot 进行哪些更改才能启用 PHY?
  • 这种方法可以实现哪些转移时间?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我发现以太网 PHY 处于复位状态并连接到 TDA4VL 线路 MCU_OSPI1_LBCLK0 (GPIO 引脚 B20)。

    您能告诉我如何 通过"Set-GPIO"在 u-boot 中分配这条线路吗? 任何其他方法来控制此 GPIO 也没关系。

    此致、

    Andreas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andreas:

    我已指派了有关这一问题的专家。

    此致

    Gokul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andreas:

    这可以通过在"reset-GPIO"属性中添加特定的 GPIO 或使用 gpio-hog 来实现。 对于这两者、您首先需要定义一个具有该 GPIO 引脚的 GPIO 节点。

    您能否与您的客户核实是否已添加。 之后、  

    • 对于 RESET-GPIO、您可以在 MDIO 节点中添加以下行
      • Reset-GPIOs =<${GPIO_node} ${GPIO_OFFSET} GPIO_ACTIVE_HIGH>
    • 对于 gpio-hog、在 GPIO 节点本身中、可以添加以下节点
      • eth-phy-hog {
        	gpio-hog;
        	gpios = <${gpio_offset} GPIO_ACTIVE_HIGH>;
        	output-low; // or output-high depending on reset type
        };

    此致、
    Tanmay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tanmay、

    根据 k3-j721s2-common-proc-board.dts、B20 GPIO 配置为 PIN_INPUT:

    &wkup_pmx1 {
    	mcu_fss0_ospi1_pins_default: mcu-fss0-ospi1-default-pins {
    		pinctrl-single,pins = <
    			J721S2_WKUP_IOPAD(0x008, PIN_OUTPUT, 0) /* (A19) MCU_OSPI1_CLK */
    			J721S2_WKUP_IOPAD(0x024, PIN_OUTPUT, 0) /* (D20) MCU_OSPI1_CSn0 */
    			J721S2_WKUP_IOPAD(0x014, PIN_INPUT, 0) /* (D21) MCU_OSPI1_D0 */
    			J721S2_WKUP_IOPAD(0x018, PIN_INPUT, 0) /* (G20) MCU_OSPI1_D1 */
    			J721S2_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (C20) MCU_OSPI1_D2 */
    			J721S2_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (A20) MCU_OSPI1_D3 */
    			J721S2_WKUP_IOPAD(0x010, PIN_INPUT, 0) /* (B19) MCU_OSPI1_DQS */
    			J721S2_WKUP_IOPAD(0x00c, PIN_INPUT, 0) /* (B20) MCU_OSPI1_LBCLKO */
    		>;
    	};
    };

    我想我必须更改它、在下一步中、使用此引脚配置来执行 RESET-GPIO 语句、对吧?

    我想这样的事情:

    &davinci_mdio {
        reset-gpios = <&wkup_pmx1 xxx GPIO_ACTIVE_LOW>;
    	phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&phy0>;
    };

    此外、我可以使用哪个数字来指代该 GPIO?

    您能否与您的客户确认是否已添加。

    否、尚未在提供的 DTS 中对其进行配置。

    您能给我一个更详细的分步说明如何实现这一点吗?

    此致、

    Andreas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andreas:

    如果引脚 B20用作 OSPI 引脚、如何将其用于 phy 复位。 如果我们为 phy-rest 配置此引脚、您将失去 OSPI 功能。 您能再次确认一下。

    但如果你想继续,你应该坚定地从现有节点删除 B20 pinctrl。

    对于 gpio-hog、在 wkup_gpio0节点中、应添加以下内容:

    	eth-phy-hog { 
    		gpio-hog;
    		gpios = <20 GPIO_ACTIVE_LOW>;
    		output-low;
    	}
    	
    	

    在 wkup_pmx1节点中、应添加节点:

    ethphy_reset_pins_default: ethphy-reset-pins-default {
    		pinctrl-single,pins = <
    			J721S2_WKUP_IOPAD(0x00c, PIN_OUTPUT, 7) /* (B20) MCU_OSPI1_LBCLKO */
    		>;
    };

    在 mcu_cpsw 节点中、向现有的"pinctrl-0 =<&mcu_cpsw_pins_default>、<&mcu_mdio_pins_default>;"添加新添加的引脚多路复用、如下所示:

    pinctrl-0 =<&MCU_cpsw_pins_default>、<&MCU_MDIO_pins_default>、<&ethphy_reset_pins_default>;

    此致、
    Tanmay