IXP425 U-boot移植

 

IXP425 U-boot移植

学习总结 2008-09-29 11:24:51 阅读176 评论1字号:

前段时间做了IXP425的uboot的移植,移植没有总结,现在总结一下要点和自己移植过程中走的弯路。

移植过程及要点(使用的uboot1.3.3)

1、准备工作:首先需要从网上下载一个IxNpeMicrocode.c,放在u-boot-1.3.3/cpu/ixp/npe/目录下,这个是Intel的微码,二进制形式的,由于Intel没有对这部份开发源码所以uboot里没有包含。由u-boot-1.3.3/cpu/ixp/npe/include/IxNpeMicrocode.h确定IxNpeMicrocode.c的版本为 IXP400 SW Release version 2.0,该文件好像在redboot的里面由。这里提供一个下载路径http://svn.dd-wrt.com:8000/dd-wrt/browser/redboot/packages/devs/eth/intel/npe/npeDl/v2_01/src/IxNpeMicrocode.c?rev=6159&format=raw

2、移植工作:需要修改一下文件(以IXDPG425作为参考设计,同时参考IXDP425.h)

    1)ixdpg425.h:

         a、依据原理图修改CONFIG_PHY1_ADDR和CONFIG_PHY_ADDR,这两个为PHY的地址。依据PHY的addr信号线确定;

          b、 增加以下定义:

                 #define CONFIG_ETHADDR          08:00:3e:26:0a:5c
                 #define CONFIG_ETH1ADDR          08:00:3e:26:0a:5b//两个MAC的mac地址
                 #define CONFIG_NETMASK          255.255.255.0      //子网掩码
                 #define CONFIG_IPADDR           192.168.1.21         //IP地址
                 #define CONFIG_SERVERIP         192.168.1.148     //服务器IP地址,用于tftpboot下载、网络文件系统

         c、/include/configs/ixdpg425.h中将
              #define CFG_MONITOR_LEN  (256 << 10)
             改为
              #define CFG_MONITOR_LEN  (512 << 10)
              因为增加了NPE部分微码之后u-boot增加到400K左右
             相应的更改环境变量的首地址
              #define CFG_ENV_ADDR  (PHYS_FLASH_1 + 0x40000)
              改为
             #define CFG_ENV_ADDR  (PHYS_FLASH_1 + 0x80000)

        d、另外依据使用的Flash的扇区数确定下面的定义是否需要修改,如果使用的Flash扇区数大于128需要修改。

              #define CFG_MAX_FLASH_SECT      128   /*max number of sectors on one chip    */

    2)u-boot-1.3.3/cpu/ixp/npe/include/IxNpeMicrocode.h

          将以下内容注释掉,否则在uboot中还是无法使用网络。

             #undef IX_NPEDL_NPEIMAGE_NPEA_HSS0
             #undef IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_SPHY_1_PORT
             #undef IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_MPHY_1_PORT
             #undef IX_NPEDL_NPEIMAGE_NPEA_ATM_MPHY_12_PORT
             #undef IX_NPEDL_NPEIMAGE_NPEA_DMA
             #undef IX_NPEDL_NPEIMAGE_NPEA_HSS_2_PORT
             #undef IX_NPEDL_NPEIMAGE_NPEA_ETH
             #undef IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL
             #undef IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
              #undef IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
              #undef IX_NPEDL_NPEIMAGE_NPEB_ETH
              #undef IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL
              /* #undef IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS */
             #undef IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
             #undef IX_NPEDL_NPEIMAGE_NPEB_DMA
              #undef IX_NPEDL_NPEIMAGE_NPEC_ETH
              #undef IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL
              /* #undef IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS */
              #undef IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
              #undef IX_NPEDL_NPEIMAGE_NPEC_DMA

3、自己走过的弯路:

     经过上面的工作,uboot编译可以顺利通过,下载到板子中也可以起来,貌似移植成功了。可是在我的板子上还是无法访问网络,经过对uboot的深入追踪也没有发现程序有问题。用逻辑分析仪扑捉,执行Mii命令时PHY就是没有响应。经过几天的折腾实在找不到问题所在,只得暂停。

      一个偶然的机会,在阅读原理图是发现PHY的复位信号使用的是GPIO!!而在uboot的GPIO设置中没对该GPIO设置,恍然大巫!PHY一直处于复位状态。

      在uboot中对该GPIO进行设置,果然网络通了。

 

    另外还有一点,编译uboot新版本是使用的交叉编译器版本不能太低,否则编译通不过。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值