阿白

阿白

1个粉丝

7

问答

0

专栏

0

资料

阿白  发布于  2023-05-11 10:22:22
采纳率 0%
7个问答
1780

ss928 sd3403 使用原厂SDK编译 的uboot,内核下载到板子,一直出现网络错误??

     



有大佬知道什么问题吗??为啥下载到内核的时候会网络不通??
是uboot要修改网络驱动吗??还是网口硬件有问题?
按理说原厂sdk直接编译直接烧写没问题的啊
网线啥的换过,也和电脑直连过,都不行,也没有占用69端口,换了其他的电脑也不行。。。。

我来回答
回答5个
时间排序
认可量排序

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2023-05-11 11:19:44
认可0

*对比修改后的UBOOT和内核发现有以下改动:
①.修改了GMAC数量
include/configs/ss928v100.h

define CONFIG_GMAC_NUMS 2

define CONFIG_GMAC_PHY1_ADDR 1

②.内核配置项多了CONFIG_MII=y,以及CONFIG_USB_DRD0_IN_HOST=y

③.增加Flash下EMMC支持以及mdio1地址
arch/arm64/boot/dts/vendor/ss928v100-demb-flash.dts
&mmc0 {
bus-width = <4>;
status = “okay”;
};

arch/arm64/boot/dts/vendor/ss928v100-demb.dts
&mdio1 {
ethphy1: ethernet-phy@1 {
reg = <1>;
};
}

对比uboot发现u-boot-2020.01\drivers\net\gmacv300\gmac.c有修改

/ PHY-RTL8211F by-3 /
if (phy_id == PHY_ID_RTL8211FS) {
unsigned int val = 0;
miiphy_write(devname, phyaddr, 0x1F, 0xD08);
miiphy_read(devname, phyaddr,17,&val);
val |= bit(8);
miiphy_write(devname, phyaddr,17,val);
miiphy_write(devname, phyaddr, 0x1F, 0); //set to page 0
}

内核修改

linux-4.19.y\drivers\net\ethernet\vendor\gmac\gmac.h
linux-4.19.y\drivers\net\ethernet\vendor\gmac\util.c
static int rtl8211fs_phy_fix(struct phy_device *phy_dev)
{
u32 v;
// RX or TX delay
phy_write(phy_dev, 0x1F, 0xd08);
v = phy_read(phy_dev, 17);
v |= (1<<8);
phy_write(phy_dev, 17, v);

// change back to page0 
phy_write(phy_dev, 0x1F, 0);
return 0;

}

void gmac_phy_register_fixups(void)
{
phy_register_fixup_for_uid(PHY_ID_UNKNOWN, DEFAULT_PHY_MASK,
unknown_phy_fix);
phy_register_fixup_for_uid(PHY_ID_KSZ8051MNL, DEFAULT_PHY_MASK,
ksz8051mnl_phy_fix);
phy_register_fixup_for_uid(PHY_ID_KSZ8081RNB, DEFAULT_PHY_MASK,
ksz8081rnb_phy_fix);
phy_register_fixup_for_uid(REALTEK_PHY_ID_8211E, REALTEK_PHY_MASK,
rtl8211e_phy_fix);
phy_register_fixup_for_uid(REALTEK_PHY_ID_8211FS, REALTEK_PHY_MASK,
rtl8211fs_phy_fix);

}

void gmac_phy_unregister_fixups(void)
{
phy_unregister_fixup_for_uid(PHY_ID_UNKNOWN, DEFAULT_PHY_MASK);
phy_unregister_fixup_for_uid(PHY_ID_KSZ8051MNL, DEFAULT_PHY_MASK);
phy_unregister_fixup_for_uid(PHY_ID_KSZ8081RNB, DEFAULT_PHY_MASK);
phy_unregister_fixup_for_uid(REALTEK_PHY_ID_8211E, REALTEK_PHY_MASK);
phy_unregister_fixup_for_uid(REALTEK_PHY_ID_8211FS, REALTEK_PHY_MASK);
}

阿白
阿白   回复   UncleRoderick  2023-05-11 15:24:07
0

这个在下载阶段应该和内核没啥关系,易佰纳的板子是两个网口,所以ss928v100.h文件里面define CONFIG_GMAC_NUMS 2将这个宏改为了2,我现在的板子是1一个网口的,所以不用改,至于gmac.c里面的修改我也加了上去,用的网口芯片也是RTL8211F,但还是不管用。。。。。
/ PHY-RTL8211F by-3 /
if (phy_id == PHY_ID_RTL8211FS) {
unsigned int val = 0;
miiphy_write(devname, phyaddr, 0x1F, 0xD08);
miiphy_read(devname, phyaddr,17,&val);
val |= bit(8);
miiphy_write(devname, phyaddr,17,val);
miiphy_write(devname, phyaddr, 0x1F, 0); //set to page 0
}

UncleRoderick
UncleRoderick   回复   阿白  2023-05-11 16:17:40
0

我发的是内核和UBOOT都要改,UBOOT是跟下载直接相关的。

阿白
阿白   回复   UncleRoderick  2023-05-11 16:32:44
0

易佰纳制作好的emmc也烧录过,也是一样的问题,烧不进去。。。。因为以前搞hi3519av100直接用原厂SDK编译的就能烧写,,,

徐安

1个粉丝

1

问答

0

专栏

0

资料

徐安 2024-01-10 11:40:26
认可1

你的代码从哪里获取,楼主能分享一份么?

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区