前言
记录记录,是个和MAC地址相关的信息。
一 尝试尝试
[ 0.093958] vddsoc: supplied by regulator-dummy
[ 0.126215] failed to find ocotp node
[ 0.126744] No ATAGs?
经过分析,拆分为两个问题:
[ 0.126215] failed to find ocotp node
该信息位于文件:
arch/arm/mach-imx/common.c:72: pr_warn("failed to find ocotp node\n");
打开文件,跳转到第72行,修改代码如下所示:就是打印ocotp_compat的值
71 if (!ocotp_np) {
72 pr_warn("ocotp_compat:%s\n",ocotp_compat);
73 pr_warn("failed to find ocotp node\n");
74 goto put_enet_node;
75 }
重新编译后:
[ 0.126409] ocotp_compat:fsl,imx6ul-ocotp
[ 0.126469] failed to find ocotp node
在设备树中添加如下节点:
&ocotp {
compatible = "fsl,imx6ul-ocotp", "syscon";
};
修改完了以后,报了另一个错误:
[ 0.517750] imx_soc_device_init: failed to find fsl,imx6ull-ocotp regmap!
在imx6ull.dtsi中,有定义,如果直接向上面这样修改,肯定会覆盖旧的值
所以,再添加一个节点呢?为什么呢?我也不知道啊。就是不停的尝试呗。添加到chosen后面。因为chosen位置比较好找,放到这里不容易迷路。
编译并运行:报错如下
[ 0.126612] failed to map ocotp
搜索位置:
arch/arm/mach-imx/common.c:79: pr_warn("failed to map ocotp\n");
依然位于函数imx6_enet_mac_init,这个函数本身就是初始化MAC地址的。如果MAC地址已经处理,这个错误无需理会,(⊙o⊙)…鸡肋。
二 No ATAGs?
将红框里这个xxx ATAGS xxx不选中。
三 网卡的设备树
这里涉及到MAC地址,这个MAC地址,我在uboot中修改过,就不去分析了。
这是设备树中找不到octop节点
首先在设备树fec1节点中添加:local-mac-address
&fec1 {
local-mac-address = [00 00 de ad be ef];
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1
&pinctrl_fec1_reset>;
phy-mode = "rmii";
phy-handle = <ðphy0>;
phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
phy-reset-duration = <50>;
status = "okay";
mdio {
#address-cells = <1>;
#size-cells = <0>;
ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
smsc,disable-energy-detect;
reg = <0>;
};
};
};
小结
记录改变思考方式。