gpt4 book ai didi

debian - 我的自定义 Cape 的 devicetree 无法在启动时加载,但可以手动加载

转载 作者:行者123 更新时间:2023-12-02 03:46:42 26 4
gpt4 key购买 nike

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

这是我使用bone-debian-7.4-2014-04-23-2gb.img.xz设置的debian BeagleBone Black
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_partno=BB-FOO-GPIO

这是dmesg | 的输出grep 骨-capemgr:

Baseboard: 'A335BNLT,00A5,4049BBBK7400'
compatible-baseboard=ti,beaglebone-black
slot #0: No cape found
slot #1: No cape found
slot #2: No cape found
slot #3: No cape found
slot #4: specific override
bone: Using override eeprom data at slot 4
slot #4: 'Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G'
slot #5: specific override
bone: Using override eeprom data at slot 5
slot #5: 'Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI'
slot #6: specific override
bone: Using override eeprom data at slot 6
slot #6: 'Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN'
enabled_partno part_number 'BB-FOO-GPIO', version 'N/A', prio '0'
slot #7: generic override
bone: Using override eeprom data at slot 7
slot #7: 'Override Board Name,00A0,Override Manuf,BB-FOO-GPIO'
loader: before slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
loader: check slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
loader: before slot-5 BB-BONELT-HDMI:00A0 (prio 1)
loader: check slot-5 BB-BONELT-HDMI:00A0 (prio 1)
loader: before slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
initialized OK.
loader: check slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
loader: check slot-5 BB-BONELT-HDMI:00A0 (prio 1)
loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
loader: before slot-7 BB-FOO-GPIO:00A0 (prio 0)
loader: check slot-7 BB-FOO-GPIO:00A0 (prio 0)
loader: after slot-7 BB-FOO-GPIO:00A0 (prio 0)
slot #7: Requesting part number/version based 'BB-FOO-GPIO-00A0.dtbo
slot #7: Requesting firmware 'BB-FOO-GPIO-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
failed to load firmware 'BB-FOO-GPIO-00A0.dtbo'
loader: failed to load slot-7 BB-FOO-GPIO:00A0 (prio 0)
loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
loader: check slot-5 BB-BONELT-HDMI:00A0 (prio 1)
loader: after slot-5 BB-BONELT-HDMI:00A0 (prio 1)
slot #5: Requesting firmware 'cape-boneblack-hdmi-00A0.dtbo' for board-name 'Bone-Black-HDMI', version '00A0'
slot #5: dtbo 'cape-boneblack-hdmi-00A0.dtbo' loaded; converting to live tree
slot #5: #4 overlays
loader: check slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
loader: after slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
slot #4: Requesting firmware 'cape-bone-2g-emmc1.dtbo' for board-name 'Bone-LT-eMMC-2G', version '00A0'
slot #4: dtbo 'cape-bone-2g-emmc1.dtbo' loaded; converting to live tree
slot #4: #2 overlays
slot #4: Applied #2 overlays.
loader: done slot-4 BB-BONE-EMMC-2G:00A0 (prio 1)
loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
slot #5: Applied #4 overlays.
loader: done slot-5 BB-BONELT-HDMI:00A0 (prio 1)
loader: check slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
loader: after slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
slot #6: Requesting firmware 'cape-boneblack-hdmin-00A0.dtbo' for board-name 'Bone-Black-HDMIN', version '00A0'
slot #6: dtbo 'cape-boneblack-hdmin-00A0.dtbo' loaded; converting to live tree
slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
slot #6: Failed verification
loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 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;
};
};
};
};
};

~
(我这样编译:dtc -O dtb -o BB-FOO-GPIO-00A0.dtbo -b 0 -@ BB-FOO-GPIO-00A0.dts}

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

bone-capemgr bone_capemgr.9: part_number 'BB-FOO-GPIO', version 'N/A'
bone-capemgr bone_capemgr.9: slot #8: generic override
bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 8
bone-capemgr bone_capemgr.9: slot #8: 'Override Board Name,00A0,Override Manuf,BB-FOO-GPIO'
bone-capemgr bone_capemgr.9: slot #8: Requesting part number/version based 'BB-FOO-GPIO-00A0.dtbo
bone-capemgr bone_capemgr.9: slot #8: Requesting firmware 'BB-FOO-GPIO-00A0.dtbo' for board-name 'Override Board Name', version '00A0'
bone-capemgr bone_capemgr.9: slot #8: dtbo 'BB-FOO-GPIO-00A0.dtbo' loaded; converting to live tree
bone-capemgr bone_capemgr.9: slot #8: #2 overlays
of_get_named_gpio_flags exited with status 17
gpio-of-helper foo_gpio_helper.15: Allocated GPIO id=0
of_get_named_gpio_flags exited with status 115
gpio-of-helper foo_gpio_helper.15: Allocated GPIO id=1
gpio-of-helper foo_gpio_helper.15: ready
bone-capemgr bone_capemgr.9: slot #8: Applied #2 overlays.

cat/sys/devices/bone_capemgr.9/slots 给了我我想要的东西:

0:54:PF---
1:55:PF---
2:56:PF---
3:57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,德州仪器,BB-BONE-EMMC-2G
5:ff:P-O-L Bone-Black-HDMI,00A0,德州仪器,BB-BONELT-HDMI
8: ff:P-O-L 覆盖板名称,00A0,覆盖制造商,BB-FOO-GPIO

那么,我错过了什么?为什么它不会在启动时加载,但会从 shell 加载?该问题似乎与未加载固件有关...我不明白。

最佳答案

这是一个问题,链接中描述了解决方案:http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Loading_custom_capes

希望对你有帮助乔治

关于debian - 我的自定义 Cape 的 devicetree 无法在启动时加载,但可以手动加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com