Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143116
  • 博文数量: 60
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-05 15:39
文章存档

2016年(6)

2015年(36)

2014年(13)

2013年(5)

我的朋友

分类: LINUX

2015-12-04 10:56:14

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多)
阅读(2415) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~