23421
- 收藏
- 点赞
- 分享
- 举报
雄迈板子,3535芯片,网络芯片是AR8035,kernel驱动怎么弄
本帖最后由 ngswfx 于 2016-5-23 18:25 编辑
越搞越糊涂了,对PHY硬件连接百思不得其姐。
不是内部已经集成了网络了吗,怎么又搞个8035,通常这种情况下,怎么弄驱动呀。
主要是这个3535是BGA,想测量连接的哪条腿都没法量。不像3520,万用表就搞定了。
是不是在kernel里面,开启MII PHY方式,调试驱动呀? 哪位大侠指点一下,我感觉我在走弯路。
//////////////////////////////////////////////////////////////////最新的动作是,直接将U-boot里面所有网络东西都禁用,仅仅在kernel里面配置网络相关的参数。
//初步计划是彻底放弃Uboot网络支持,使其能支持u盘自动升级即可。但3535 kernel网络AR8035一定要搞过去,因为自我感觉已经到了关键结点了。就差2\3个参数了。流程基本都走通了。
2016_5_11
//////////////////终于搞定了,主要是牵扯的调节项太多,没搞过驱动这种东西,一上来就搞,网上资料没有能照着模仿的,研究了3天,编译刷了1500多次kernel:lol ,没有相关文档,自己摸索,任何一个有用的log信息,都对这次编程解决问题过程,提供很大帮助。
最后主要卡在menuconfig中,那个STMMAC (0x7) STMMAC MDIO INTERFACE ,设置成6不行,必须7才行。不知道啥意思,这个是今天黔驴技穷了,估计是配置寄存器没对,想想干脆用雄迈Uboot,然后进入kernel后,啥寄存器我都不动,尝试。
突然发现雄迈uboot,log中,有一个PHY mode=7的信息。
然后这个板子,最开始估计连接的是MAC1端口,其实连接的是MAC0。主要在menuconfig中,将PHY ID配置成2即可。
另外AT303X.c文件中的,#define AT803X_DEVICE_ADDR 0x03,不用管,保持3即可。开始总觉得这个是不是应该为2,其实不是,就是3。
////////////////////////////////////////////////////////////////////////////////////////////////////////////
附件当中,是at303x.c文件,以及Kconfig,Makefile文件,可以使-*- PHY Device support and infrastructure ---> 中出现 ar3035选择项。
注意:at303x.c文件被我改的很乱,需要自己清空printk ,有些代码还需要整理。
/////////////////////////////
home/ngs/Hi3535_SDK_V1.0.2.0/osdrv/kernel/linux-3.4.y/drivers/net/ethernet/stmmac,这里面的东西应该无需调整,可以直接使用。
/home/ngs/Hi3535_SDK_V1.0.2.0/osdrv/kernel/linux-3.4.y/drivers/net/phy ,目录里面就是用那3个文件,覆盖就行了。
然后就是配置menuconfig。我选定了PHY DMA 等选项,是在3535的小型化配置文件基础上修改的。
#cp arch/arm/configs/hi3535_mini_defconfig .config
////////////////////////////////////////////我的百纳币太少太丢人,只能挣些小钱了,呵呵。
顺便吐槽一下,又爱又恨的海丝。
static int stmmac_syscfg_init(struct platform_device *pdev) 函数里面有一句代码,差点让我吐血。
pr_info("Set system config register 0x200300ec with value 0x003f003f\n");
//这次搞驱动过程中,打印出了这个log信息,这个很明显,已经写入寄存器值,我还挺高兴,结果一看源代码,无语了.......这种信息能随便打印吗:lol
我又掉进坑里了。 而且这个地址寄存器值到底啥意思,我现在也没搞懂,只知道,如果writl直接写这个寄存器,系统就崩溃。代码中得到的寄存器地址,和这个0x200300ec完全不是一回事,差得老远了。不知所谓。
//////////////////////////////////////////////////2016_5_21 调整修改phy.c中void phy_state_machine(struct work_struct *work),使断线检测以及换交换机100M 1000M正常
case PHY_RUNNING:
printk("PHY_RUNNING phydev->irq:%d\n",phydev->irq);
///////////////////////////////////////////////////////////ngs add for 8035
err = genphy_update_link(phydev);
if (err)
break;
if (!phydev->link) {
phydev->state = PHY_NOLINK;
printk("PHY_RUNNING found link off\n");
netif_carrier_off(phydev->attached_dev);
phydev->adjust_link(phydev->attached_dev);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
越搞越糊涂了,对PHY硬件连接百思不得其姐。
不是内部已经集成了网络了吗,怎么又搞个8035,通常这种情况下,怎么弄驱动呀。
主要是这个3535是BGA,想测量连接的哪条腿都没法量。不像3520,万用表就搞定了。
是不是在kernel里面,开启MII PHY方式,调试驱动呀? 哪位大侠指点一下,我感觉我在走弯路。
//////////////////////////////////////////////////////////////////最新的动作是,直接将U-boot里面所有网络东西都禁用,仅仅在kernel里面配置网络相关的参数。
//初步计划是彻底放弃Uboot网络支持,使其能支持u盘自动升级即可。但3535 kernel网络AR8035一定要搞过去,因为自我感觉已经到了关键结点了。就差2\3个参数了。流程基本都走通了。
2016_5_11
//////////////////终于搞定了,主要是牵扯的调节项太多,没搞过驱动这种东西,一上来就搞,网上资料没有能照着模仿的,研究了3天,编译刷了1500多次kernel:lol ,没有相关文档,自己摸索,任何一个有用的log信息,都对这次编程解决问题过程,提供很大帮助。
最后主要卡在menuconfig中,那个STMMAC (0x7) STMMAC MDIO INTERFACE ,设置成6不行,必须7才行。不知道啥意思,这个是今天黔驴技穷了,估计是配置寄存器没对,想想干脆用雄迈Uboot,然后进入kernel后,啥寄存器我都不动,尝试。
突然发现雄迈uboot,log中,有一个PHY mode=7的信息。
然后这个板子,最开始估计连接的是MAC1端口,其实连接的是MAC0。主要在menuconfig中,将PHY ID配置成2即可。
另外AT303X.c文件中的,#define AT803X_DEVICE_ADDR 0x03,不用管,保持3即可。开始总觉得这个是不是应该为2,其实不是,就是3。
////////////////////////////////////////////////////////////////////////////////////////////////////////////
附件当中,是at303x.c文件,以及Kconfig,Makefile文件,可以使-*- PHY Device support and infrastructure ---> 中出现 ar3035选择项。
注意:at303x.c文件被我改的很乱,需要自己清空printk ,有些代码还需要整理。
/////////////////////////////
home/ngs/Hi3535_SDK_V1.0.2.0/osdrv/kernel/linux-3.4.y/drivers/net/ethernet/stmmac,这里面的东西应该无需调整,可以直接使用。
/home/ngs/Hi3535_SDK_V1.0.2.0/osdrv/kernel/linux-3.4.y/drivers/net/phy ,目录里面就是用那3个文件,覆盖就行了。
然后就是配置menuconfig。我选定了PHY DMA 等选项,是在3535的小型化配置文件基础上修改的。
#cp arch/arm/configs/hi3535_mini_defconfig .config
////////////////////////////////////////////我的百纳币太少太丢人,只能挣些小钱了,呵呵。
顺便吐槽一下,又爱又恨的海丝。
static int stmmac_syscfg_init(struct platform_device *pdev) 函数里面有一句代码,差点让我吐血。
pr_info("Set system config register 0x200300ec with value 0x003f003f\n");
//这次搞驱动过程中,打印出了这个log信息,这个很明显,已经写入寄存器值,我还挺高兴,结果一看源代码,无语了.......这种信息能随便打印吗:lol
我又掉进坑里了。 而且这个地址寄存器值到底啥意思,我现在也没搞懂,只知道,如果writl直接写这个寄存器,系统就崩溃。代码中得到的寄存器地址,和这个0x200300ec完全不是一回事,差得老远了。不知所谓。
//////////////////////////////////////////////////2016_5_21 调整修改phy.c中void phy_state_machine(struct work_struct *work),使断线检测以及换交换机100M 1000M正常
case PHY_RUNNING:
printk("PHY_RUNNING phydev->irq:%d\n",phydev->irq);
///////////////////////////////////////////////////////////ngs add for 8035
err = genphy_update_link(phydev);
if (err)
break;
if (!phydev->link) {
phydev->state = PHY_NOLINK;
printk("PHY_RUNNING found link off\n");
netif_carrier_off(phydev->attached_dev);
phydev->adjust_link(phydev->attached_dev);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
文件: at803x.c.tar.gz
下载
我来回答
回答43个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2018-05-11 10:13:42
-
2016-04-29 13:38:58
-
2016-05-08 22:18:09
-
2017-10-11 09:45:08
-
2016-05-20 16:38:42
-
2020-11-09 15:24:59
-
2016-05-18 02:56:22
-
2018-11-11 13:15:23
-
2013-08-22 16:25:09
-
2018-12-17 13:28:32
-
2017-11-01 11:51:15
-
2019-01-02 10:52:04
-
2016-01-22 11:32:00
-
2018-12-27 08:55:09
-
2019-01-29 14:47:32
-
2020-11-22 14:32:12
-
2016-10-30 19:00:28
-
2018-01-31 12:45:55
-
2018-12-31 12:24:41
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认