hisi平台rmii网络模式下内核制作

RMII网络的系统固件制作说明书

1. 修改配置文件并使配置文件生效
a. make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
b. 修改项
Device Drivers   --->    
[*] Network device support   ---> 
[*]    Ethernet (10 or 100Mbit)   ---> 
<*>    hieth(switch fabric) family network device support   --->    
(1)    hieth mii/rmii mode for up port (mii:0/rmii:1) 
(1)    hieth mii/rmii mode for down port (mii:0/rmii:1) 
2. 修改驱动中网络时钟
a. 修改文件
linux-3.0.y/drivers/net/hieth-sf/net.c
b. 修改点
在函数static void phy_quirk(struct hieth_mdio_local *mdio, int phyaddr)中加入以下内容
/* PHY-8201 */ 
if ((phy_id & 0xFFFFFFF0) == 0x1cc810) 

if (CONFIG_HIETH_MII_RMII_MODE_U == 1) //1 means rmii mode 

hieth_mdio_write(mdio, phyaddr, 0x1F, 0x7); 
 
reg = hieth_mdio_read(mdio, phyaddr, 0x10); 
reg |= (1 << 12); 
hieth_mdio_write(mdio, phyaddr, 0x10, reg); 
 
hieth_mdio_write(mdio, phyaddr, 0x1F, 0x0); 

}
3. 加入LED闪烁代码
a. 修改文件
drivers/net/hieth-sf/sys-3518.c
b. 修改项
在该文件尾加入以下函数
void config_led_shine(void)
{
#define IO_MDIO_RWCTRL IO_ADDRESS(CONFIG_HIETH_IOBASE + MDIO_RWCTRL)
#define tmp_mdio_ready()   (readl(IO_MDIO_RWCTRL) & (0x1 << 15))


unsigned int reg_value = 0;
/* select page 7 */
do {
reg_value = 0x0007215f; //配置LED的寄存器在page7
writel(reg_value, IO_MDIO_RWCTRL);
udelay(10);
} while (!tmp_mdio_ready());
/* enable LED modify function */
do {
reg_value = 0xc00c2153; //写phy的19号寄存器,配置各LED功能:00=LED0:ACTall;LED1:LINK100
writel(reg_value, IO_MDIO_RWCTRL);
udelay(10);
} while (!tmp_mdio_ready());
/* set green LED shine all the while when link up,
* yellow LED blink when data coming
*/
do {
reg_value = 0x00382151; //写phy的17号寄存器,配置LED动作:一个link即亮,一个有数据即闪
writel(reg_value, IO_MDIO_RWCTRL);
udelay(10);
} while (!tmp_mdio_ready());


return;
}
c. 修改文件
drivers/net/hieth-sf/sys.c
d. 修改项
在void hieth_sys_init(void)函数中加入以下行
hieth_reset(0); //前一行
86         config_led_shine(); //加入该行
revise_led_shine(); //后一行
4. 编译
a. make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage
5. 文件
a. 编译成功后会生成文件arch/arm/boot/zImage(最终系统文件,3M多)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值