imx6ull下实现烧录MAC地址

mac地址是网络终端的唯一标识,不管是内网还是外网,它都应该是唯一的。在板子带网口的情况下,有些客户要求匹配mac地址,因此我们需要知道如何烧录mac地址。

                            imx6ull下实现烧录MAC地址

在imx6ull平台下,有一些特殊功能的寄存器,称为OCOTP Hardware Register,在数据手册中可以找到关于它的描述:

attachments-2020-04-fZcgriVa5e9829e6d57a4.png

attachments-2020-04-ozG9WxYP5e982a4ac6ba1.png可以找到3个跟MAC 地址有关的寄存器,位置为Bank4 Word2-4:

attachments-2020-04-TDbYTKqA5e982aa597cae.png在系统中,我们也可以找到它们的踪迹:

attachments-2020-04-gERoTSFP5e982adbade3e.png

在kernel源码arch/arm/mach-imx/common.c中,mac地址的获取过程如下:

attachments-2020-04-AZ9nnmXT5e982b25c3012.png接下来验证一下,在uboot中设置那3个寄存器的值(这里我只是测试,所以用fuse override代替fuse prog,因为prog烧录后便不能再更改了),然后让系统启动后执行ifconfig查看mac地址:

attachments-2020-04-Pp1hgtM45e982bd66a82f.png验证成功,从上面的测试可以知道寄存器OCOTP_MAC0-2的值和网口的mac地址之间的关系,而这几个寄存器的值可以通过在uboot中执行fuse prog/override xxxxxxxx xxxxxxxx xxxxxxxx 设置。而在uboot源码中,调用run_command("fuse prog/override 4 2 xxxxxxxx xxxxxxxx xxxxxxxx");来实现。



  • 发表于 2020-04-16 18:15
  • 阅读 ( 1055 )
  • 分类:i.MX6ULL

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
ronnie
ronnie

11 篇文章

作家榜 »

  1. BBelephant 13 文章
  2. ronnie 11 文章
  3. FU 9 文章
  4. toca 4 文章
  5. 大飞 3 文章
  6. Vivek 3 文章
  7. jack-fang 2 文章
  8. Bin 1 文章