fl2440的U-boot-2010.09移植(三)DM9000网卡及开发板相关配置
2012-06-27 13:43
471 查看
一、在board/fl2440/fl2440.c 中对GPIO和PLL的配置进行修改
(1)修改GPIO和PLL的配置(36行附近)为:
(2)修改board_init函数中的LED和蜂鸣器的GPIO寄存器配置:
(3)为引导linux 内核,修改开发板的类型代码
(4)为使int board_init (void)设置完成后,为了测试Uboot第二阶段工作完成,我加入了LED灯亮起显示,在int board_init (void)的最后添加:
二、添加DM9000网卡的支持
(5)在board/fl2440/fl2440.c 中board_eth_init函数添加对dm9000的支持
(6)然后修改include/configs/fl2440.h文件中关于网卡的宏定义,将原来的:
修改为:
并在98行附近添加
并将104行附近
修改为:
这里是修改开发板的IP地址和主机地址,需要将主机地址修改成“192.168.1.1”
(7)打开driver/net/dm9000x.c文件,修改函数dm9000_halt,防止uboot在ping通主机后又马上断开连接的问题
(1)修改GPIO和PLL的配置(36行附近)为:
#if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */ #define M_MDIV 0xC3 #define M_PDIV 0x4 #define M_SDIV 0x1 #elif FCLK_SPEED==1 #if defined(CONFIG_S3C2410) /* Fout = 202.8MHz */ #define M_MDIV 0xA1 #define M_PDIV 0x3 #define M_SDIV 0x1 #endif #if defined(CONFIG_S3C2440) /* Fout = 405MHZ */ #define M_MDIV 0x7f #define M_PDIV 0x2 #define M_SDIV 0x1 #endif #endif #define USB_CLOCK 1 #if USB_CLOCK==0 #define U_M_MDIV 0xA1 #define U_M_PDIV 0x3 #define U_M_SDIV 0x1 #elif USB_CLOCK==1 #if defined(CONFIG_S3C2410) #define U_M_MDIV 0x48 #define U_M_PDIV 0x3 #define U_M_SDIV 0x2 #endif #if defined(CONFIG_S3C2440)/*见S3C2440数据手册P227*/ #define U_M_MDIV 0x38 #define U_M_PDIV 0x2 #define U_M_SDIV 0x2 #endif #endif
(2)修改board_init函数中的LED和蜂鸣器的GPIO寄存器配置:
#if defined(CONFIG_S3C2440) gpio->GPBCON = 0x001dd7fc;//初始化相应的GPB 口为输出口,为显示LED作准备,之前忘了改导致灯不亮 #else gpio->GPBCON = 0x00044555; #endif …… gpio->GPCCON = 0xAAAA56A9; gpio->GPCUP = 0xFFFFFFFF; …… gpio->GPDUP = 0xFFFFFFFF;
(3)为引导linux 内核,修改开发板的类型代码
#if defined(CONFIG_S3C2410) /* arch number of SMDK2410-Board */ gd->bd->bi_arch_number = MACH_TYPE_SMDK2410; #endif #if defined(CONFIG_S3C2440) /* arch number of fl2440-Board */ gd->bd->bi_arch_number = MACH_TYPE_S3C2440; #endif
(4)为使int board_init (void)设置完成后,为了测试Uboot第二阶段工作完成,我加入了LED灯亮起显示,在int board_init (void)的最后添加:
icache_enable(); dcache_enable(); #if defined(CONFIG_FL2440) gpio->GPBDAT = ((1<<5) | (1<<6) | (1<<8) | (1<<10));//使LED全部熄灭 gpio->GPBDAT &= 0xffe; /*添加关闭蜂鸣器语句*/ gpio->GPBDAT = ~(3<<5); #endif return 0;
二、添加DM9000网卡的支持
(5)在board/fl2440/fl2440.c 中board_eth_init函数添加对dm9000的支持
#ifdef CONFIG_CMD_NET int board_eth_init(bd_t *bis) { int rc = 0; #ifdef CONFIG_CS8900 rc = cs8900_initialize(0, CONFIG_CS8900_BASE); #endif #ifdef CONFIG_DRIVER_DM9000 rc = dm9000_initialize(bis); #endif return rc; } #endif
(6)然后修改include/configs/fl2440.h文件中关于网卡的宏定义,将原来的:
#define CONFIG_NET_MULTI #define CONFIG_CS8900 /* we have a CS8900 on-board */ #define CONFIG_CS8900_BASE 0x19000300 #define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as shorts */
修改为:
#define CONFIG_NET_MULTI 1 #define CONFIG_DRIVER_DM9000 1 #define CONFIG_DM9000_USE_16BIT 1 #define CONFIG_DM9000_BASE 0x20000300 #define DM9000_IO CONFIG_DM9000_BASE #define DM9000_DATA (CONFIG_DM9000_BASE + 4) #define CONFIG_DM9000_NO_SROM 1 //防止dm9000去从srom中读取物理地址信息
并在98行附近添加
#define CONFIG_CMD_DHCP #define CONFIG_CMD_PING /*****add by yanghao*****/ #define CONFIG_CMD_NET /*add by yanghao*/
并将104行附近
/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR 10.0.0.110 #define CONFIG_SERVERIP 10.0.0.1
修改为:
#define CONFIG_ETHADDR 08:00:3e:26:0a:5b #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR 192.168.1.4 #define CONFIG_SERVERIP 192.168.1.1
这里是修改开发板的IP地址和主机地址,需要将主机地址修改成“192.168.1.1”
(7)打开driver/net/dm9000x.c文件,修改函数dm9000_halt,防止uboot在ping通主机后又马上断开连接的问题
static void dm9000_halt(struct eth_device *netdev) { DM9000_DBG("%s\n", __func__); #if 0 //为了防止dm9000建立连接后又马上断开的情况 /* RESET devie */ phy_write(0, 0x8000); /* PHY RESET */ DM9000_iow(DM9000_GPR, 0x01); /* Power-Down PHY */ DM9000_iow(DM9000_IMR, 0x80); /* Disable all interrupt */ DM9000_iow(DM9000_RCR, 0x00); /* Disable RX */ #endif }
相关文章推荐
- <2012 12 05> FL2440开发板的U-boot-2010.09版本移植(五)支持DM9000网卡和板级相关LED等配置
- fl2440 移植u-boot-2010.09全纪录3----------DM9000网卡支持
- <2012 12 05> FL2440开发板的U-boot-2010.09版本移植(八)LCD的支持
- U-Boot在FL2440上移植(四)----支持网卡DM9000和烧写yaffs文件系统
- <2012 12 06> FL2440开发板的U-boot-2010.09版本移植(十一)U-boot引导内核设置、编译linux内核、编译文件系统、加载...
- x210v3开发板u-boot-2012.10移植之十一---添加DM9000网卡支持
- <2012 12 06> FL2440开发板的U-boot-2010.09版本移植(十)支持烧写YAFFS2文件系统
- 移植uboot到fl2440支持DM9000网卡
- <2012 12 05> FL2440开发板的U-boot-2010.09版本移植(四)Nor Flash启动支持
- <2012 12 02> FL2440开发板的U-boot-2010.09版本移植(二)片上系统SoC初始化移植
- <2012 12 02> FL2440开发板的U-boot-2010.09版本移植(三) 如何利用JLINK烧写U-boot到NAND Flash中
- jz2440开发板移植U-boot之修改代码支持DM9000网卡
- <2012 12 06> FL2440开发板的U-boot-2010.09版本移植(九)NAND Flash启动支持的一种新型方法,利用U-Boot自带nand_spl/nand_boot.c
- <2012 10 06> FL2440开发板的U-boot-2010.09版本移植 ____ U-boot中常用参数设定及常用宏(u-boot环境变量、USB、内核引导)
- <2012 12 02> FL2440开发板的U-boot-2010.09版本移植(一)建立特定开发板的U-boot框架
- u-boot2010.03 移植篇(三)-----进一步修改start.S,smdk6410.h,支持nand启动及配置DM9000网卡
- <2012 12 05> FL2440开发板的U-boot-2010.09版本移植(六)uboot架构中NAND Flash驱动修改
- <2012 12 05> FL2440开发板的U-boot-2010.09版本移植(七)NAND Flash启动支持
- u-boot-2012.04.01移植到TQ2440(四):移植网卡DM9000
- 第二章:基于九鼎X210开发板移植2014.10版U-boot之修改配置