У меня есть проект, использующий BeagleBone Black rev C
с Debian 9.5 2018-10-07 4GB SD IOT
, работающим на ядре 4.14.x-ti
. Я настроил его так, чтобы он использовал am335x-boneblack.dtb
, и я пытаюсь включить пользовательское наложение, которое требует несколько контактов для PRUSS.
Проблема в том, что как DTB, так и оверлей кажутся правильно загруженными при загрузке, но изменения оверлея, кажется, не применяются вообще.
Выводы, которые я хотел использовать, определены в pinmuxs в am335x-bone-common-universal-pins.dtsi
, но, похоже, они фактически не используются никакими периферийными устройствами.
Менеджер накидок отключен в 4.14, поэтому его нельзя использовать для загрузки наложения.
Код / вывод
Связанные части /boot/uEnv.txt
dtb=am335x-boneblack.dtb
dtb_overlay=/lib/firmware/AM335X-PRU-STOPWATCH.dtbo
disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
disable_uboot_overlay_wireless=1
disable_uboot_overlay_adc=1
uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
enable_uboot_cape_universal=0
AM335X-PRU-STOPWATCH.dtso
составлено как /lib/firmware/AM335X-PRU-STOPWATCH.dtbo
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "AM335X-PRU-STOPWATCH";
version = "00A0";
exclusive-use = "P8.11", "P8.15", "P8.28", "P8.29";
fragment@0 {
target = <&pruss>;
__overlay__ {
pinctrl-names = "default";
pinctrl-0 = <&pinmux_P8_11_pruout_pin>;
pinctrl-1 = <&pinmux_P8_15_pruin_pin>;
pinctrl-2 = <&pinmux_P8_28_pruout_pin>;
pinctrl-3 = <&pinmux_P8_29_pruin_pin>;
status = "okay";
};
};
};
/opt/scripts/tools/version.sh
вывод
eeprom:[A335BNLT00C04816BBBK05FF]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-10-07]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51
eee]:[location: dd MBR]
kernel:[4.14.79-ti-r87]
nodejs:[v6.14.4]
device-tree-override:[dtb=am335x-boneblack.dtb]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_emmc=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[disable_uboot_overlay_wireless=1]
uboot_overlay_options:[disable_uboot_overlay_adc=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-
00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=0]
uboot_overlay_options:[dtb_overlay=/lib/firmware/AM335X-PRU-STOPWATCH.dtbo]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.4.20180928.0-0rcnee0~stretch+20180928]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[librobotcontrol]:[1.0.3-git20181005.0-0rcnee0~stretch+20181005]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev us
ers systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk
weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait
coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 0.985371] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[ 0.986573] gpio-of-helper ocp:cape-universal: ready
Ожидаемые результаты
Пин P8_11
как pr1_pru0_pru_r30_15
в режиме 5
Пин P8_15
как pr1_pru0_pru_r31_15
в режиме 6
Пин P8_28
как pr1_pru1_pru_r31_13
в режиме 6
Пин P8_29
как pr1_pru1_pru_r30_12
в режиме 5
Чтобы использовать их в pru0
и pru1
коде.
Фактические результаты
Пины имеют режимы по умолчанию.