Debian 我的定制披风&x27;s devicetree在引导时无法加载,但可以手动加载

Debian 我的定制披风&x27;s devicetree在引导时无法加载,但可以手动加载,debian,beagleboneblack,device-tree,Debian,Beagleboneblack,Device Tree,如果我从shell加载我自己的设备树覆盖,它可以正常加载,但如果我尝试在引导时加载,它不会这样做。我错过了什么 这是我用bone-debian-7.4-2014-04-23-2gb.img.xz设置的debian BeagleBone黑色 Linux beaglebone 3.8.13-bone47#1 SMP周五4月11日01:36:09 UTC 2014 armv7l GNU/Linux 下面是我对/boot/uboot/uEnv.txt所做的更改: optargs=capemgr.enab

如果我从shell加载我自己的设备树覆盖,它可以正常加载,但如果我尝试在引导时加载,它不会这样做。我错过了什么

这是我用bone-debian-7.4-2014-04-23-2gb.img.xz设置的debian BeagleBone黑色 Linux beaglebone 3.8.13-bone47#1 SMP周五4月11日01:36:09 UTC 2014 armv7l GNU/Linux

下面是我对/boot/uboot/uEnv.txt所做的更改:

optargs=capemgr.enable\u partno=BB-FOO-GPIO

这是dmesg | grep bone capemgr的输出:

底板:“A335BNLT,00A54049BBBK7400”
兼容基板=钛,beaglebone黑色
插槽#0:未找到披风
插槽1:未找到披风
插槽2:未找到披风
插槽3:未找到披风
插槽4:特定覆盖
骨骼:在插槽4使用覆盖eeprom数据
插槽4:“Bone-LT-eMMC-2G,00A0,德克萨斯仪器,BB-Bone-eMMC-2G”
插槽5:特定覆盖
骨骼:在插槽5处使用覆盖eeprom数据
插槽#5:‘骨黑HDMI,00A0,德克萨斯仪器,BB-BONELT-HDMI’
插槽6:特定覆盖
骨骼:在插槽6使用覆盖eeprom数据
插槽#6:‘骨黑HDMIN,00A0,德克萨斯仪器,BB-BONELT-HDMIN’
已启用\u零件号'BB-FOO-GPIO',版本'N/A',优先级'0'
插槽#7:通用覆盖
骨骼:在插槽7处使用覆盖eeprom数据
插槽#7:'覆盖板名,00A0,覆盖制造,BB-FOO-GPIO'
装载机:插槽4 BB-BONE-EMMC-2G之前:00A0(优先级1)
加载器:检查插槽4 BB-BONE-EMMC-2G:00A0(优先级1)
加载器:插槽5 BB-BONELT-HDMI之前:00A0(优先级1)
加载器:检查插槽5 BB-BONELT-HDMI:00A0(优先级1)
加载器:插槽6之前BB-BONELT-HDMIN:00A0(优先级2)
加载器:检查插槽6 BB-BONELT-HDMIN:00A0(优先级2)
初始化正常。
加载器:检查插槽4 BB-BONE-EMMC-2G:00A0(优先级1)
加载器:检查插槽5 BB-BONELT-HDMI:00A0(优先级1)
加载器:检查插槽6 BB-BONELT-HDMIN:00A0(优先级2)
加载器:插槽7 BB-FOO-GPIO之前:00A0(优先级0)
加载器:检查插槽7 BB-FOO-GPIO:00A0(优先级0)
加载器:在插槽7 BB-FOO-GPIO之后:00A0(优先级0)
插槽#7:请求基于“BB-FOO-GPIO-00A0.dtbo”的零件号/版本 插槽#7:请求板名“覆盖板名”版本“00A0”的固件“BB-FOO-GPIO-00A0.dtbo”
无法加载固件“BB-FOO-GPIO-00A0.dtbo”
加载程序:无法加载插槽7 BB-FOO-GPIO:00A0(优先级0)
加载器:检查插槽6 BB-BONELT-HDMIN:00A0(优先级2)
加载器:检查插槽5 BB-BONELT-HDMI:00A0(优先级1)
加载器:插槽5 BB-BONELT-HDMI之后:00A0(优先级1)
插槽5:请求板名为“骨黑hdmi”,版本为“00A0”的固件“cape-boneblack-hdmi-00A0.dtbo”
插槽#5:dtbo‘cape-boneblack-hdmi-00A0.dtbo’已加载;正在转换为活动树
槽5:#4个覆盖层
加载器:检查插槽4 BB-BONE-EMMC-2G:00A0(优先级1)
加载器:在插槽4 BB-BONE-EMMC-2G之后:00A0(优先级1)
插槽4:请求板名“bone-LT-eMMC-2g”版本“00A0”的固件“cape-bone-2g-emmc1.dtbo”
插槽#4:dtbo‘cape-bone-2g-emmc1.dtbo’已加载;正在转换为活动树
槽4:#2个覆盖层
槽4:应用2层覆盖层。
装载机:完成插槽4 BB-BONE-EMMC-2G:00A0(优先级1)
加载器:检查插槽6 BB-BONELT-HDMIN:00A0(优先级2)
槽5:应用4个覆盖层。
加载器:完成插槽5 BB-BONELT-HDMI:00A0(优先级1)
加载器:检查插槽6 BB-BONELT-HDMIN:00A0(优先级2)
加载器:在插槽6 BB-BONELT-HDMIN:00A0(优先级2)之后
插槽#6:请求板名为“Bone Black hdmin”,版本为“00A0”的固件“cape-boneblack-hdmin-00A0.dtbo”
插槽#6:dtbo'cape-boneblack-hdmin-00A0.dtbo'已加载;正在转换为活动树
插槽#6:BB-BONELT-HDMIN冲突P8.45(#5:BB-BONELT-HDMI)
插槽6:验证失败
加载程序:无法加载插槽6 BB-BONELT-HDMIN:00A0(优先级2)

以下是我的设备树覆盖的源文件:

/dts-v1/;
/plugin/;

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black";

    /* Identification */
    part-number = "BB-FOO-GPIO";
    version = "00A0";

    /* Resources required */
    exclusive-use =
        "P9.27",        /* XXX */
        "P9.23",        /* XXX */
        "gpio3_19",     /* XXX */
        "gpio1_17";     /* XXX */

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            foo_gpio_pins: pinmux_gpio_helper_pins {
                pinctrl-single,pins = <
                    0x1a4 0x0f      /* P9.27 GPIO3_19: MODE7 - OUTPUT */
                    0x044 0x2f      /* P9.23 GPIO1_17: MODE7 - INPUT */
                >;
            };
        };
    };

    fragment@1 {
        target = <&ocp>;    /* On-chip Peripherals */
        __overlay__ {

            foo_gpio_helper {
                compatible = "gpio-of-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&foo_gpio_pins>;
                status = "okay";

                foo_test_output {
                    gpio-name = "foo_test_output";
                    gpio = <&gpio4 19 0x00>;            /* gpio4 => GPIO-3 */
                    output;
                    init-high;
                };

                foo_test_input {
                    gpio-name = "foo_test_input";
                    gpio = <&gpio2 17 0x00>;            /* gpio2 => GPIO-1 */
                    input;
                    count-rising-edge;
                    count-falling-edge;
                };
            };
        };
    };
};
/dts-v1/;
/插件/;
/ {
compatible=“ti,beaglebone”,“ti,beaglebone black”;
/*鉴定*/
零件号=“BB-FOO-GPIO”;
version=“00A0”;
/*所需资源*/
专用=
“第9.27页,/*XXX*/
“P9.23”,/*XXX*/
“gpio3_19”,/*XXX*/
“gpio1_17”;/*XXX*/
fragment@0 {
目标=;
__覆盖层{
foo_gpio_引脚:pinmux_gpio_helper_引脚{
pinctrl单端,引脚=<
0x1a4 0x0f/*P9.27 GPIO3_19:模式7-输出*/
0x044 0x2f/*P9.23 GPIO1_17:模式7-输入*/
>;
};
};
};
fragment@1 {
目标=;/*片上外围设备*/
__覆盖层{
foo_gpio_助手{
compatible=“助手的gpio”;
pinctrl names=“默认”;
pinctrl-0=;
status=“好”;
foo_测试_输出{
gpio name=“foo_测试_输出”;
gpio=;/*gpio4=>gpio-3*/
产出;
初始高;
};
foo_测试输入{
gpio name=“foo\u测试\u输入”;
gpio=;/*gpio2=>gpio-1*/
输入;
计数上升沿;
计算下降沿;
};
};
};
};
};
~
(我是这样编译的:dtc-odtbtb-ob-FOO-GPIO-00A0.dtbo-b0-@BB-FOO-GPIO-00A0.dts}

现在,使用echo BB-FOO-GPIO>$SLOTS手动加载它“
它加载良好..
dmesg-c给了我:

bone capemgr bone_capemgr.9:零件号“BB-FOO-GPIO”,版本“N/A”
add "CAPE=BB-FOO-GPIO" to /etc/default/capemgr
 0: 54:P---L BEAGLE-GO-CAPE,00A0,FH-Aachen/FZJ,cape-beaglego
 1: 55:PF--- 
 2: 56:PF--- 
 3: 57:PF--- 
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN