您好、TI、
让我先说明一下我的问题。 在 u-boot 下、我已成功将 ICSSG0 ehternet 与以下脚本结合使用。
setenv firmware_dir '/lib/firmware/ti-pruss
setenv ethact pruss0_eth
setenv get_firmware_mmc 'load mmc 1:2 ${loadaddr}${firmware_dir}/${firmware_file}'
setenv start_icssg0 'rproc start 0;rproc start 1 '
setenv load_icssg0_pru0_fw 'etenv firmware_file am65x-pru0-prueth-Fw.elf;setenv loadaddr 0x89000000;运行 get_firmcc;rproc load 0 0x89000000 13040;rproc start 0'
setenv load_icssg0_rtu0_fw 'etenv firmware_file am65x-rtu0-prueth-fw.elf;setenv loadaddr 0x8a000000;运行 get_firmware_mmc;rproc load 1 0x8a000000 5676;rproc start 1'
setenv init_icssg0 'rproc init;运行 load_icssg0_pru0_fw;运行 load_icssg0_rtu0_fw'
首先、我执行'run init_icssg0'来启动 icssg0。 然后、我发现每次使用 icssg0之前、我必须执行此命令'run start_icssg0'、例如使用 u-boot 命令 shell 中的命令'ping'或'nfs'!
这太麻烦了。 是否可以以允许我只执行一次'run start_icssg0'的方式使用 icssg0?
我尝试修改驱动程序源代码、以便 START 命令仅运行一次而不运行 STOP 命令。 ‘我在“u-boot/drivers/net/ti/icssg-prueth.c”中进行了以下更改
diff --git a/drivers/net/ti/icssg-prueth.c b/drivers/net/ti/icssg-prueth.c
索引67bbfb4ca6..c5c010dbdb 100644
-- a/drivers/net/ti/icssg-prueth.c
++ b/drivers/net/ti/icssg-prueth.c
@@-193、6 +193、13 @@ static int prueth_start (struct udevice *dev)
Int ret、I;
char TX_CHN_NAME[16];
char Rx_CHN_NAME[16];
+静态字符标志= 0;
+
+ if (flag){
+返回0;
+}
+
+ FLAG = 1;
icssg_class_set_mac_addr (priv->miig_rt[priv->ination_icssg]、
PRIV->INALOW_SLICE、
@@-308、6 +315、8 @@静态空 prueth_stop (struct udevice *dev)
struct prueth *priv=dev_get_priv(dev);
int icssg = priv->inege_icssg、slice = priv->inegin_slice;
+返回;
+
icssg_class_disable (priv->miig_rt[icssg]、slice);
phy_shutdown (priv->phydev);
进行上述更改后,在 u-boot 下,在使用 ICSSG0之前,不再需要运行'start_icssg0',但 icssg0以太网在引导内核期间不起作用。
您是否有解决方案来保存此问题?