Overlays: BeagleBone AI-64 [PWM]

@RobertCNelson I checked and they were loaded. My issue ended up being that I didn’t realize there were 4 extra pins on P9 before normal indexing starts, and it seems both a and b need to be enabled for a given pwmchip. Thank you so much for your help!

@Tron I believe the PWM table here (given earlier by @RobertCNelson) is correct: Beagleboard:BeagleBone cape interface spec - eLinux.org

1 Like

I am using Kernel version 5.10.153-ti-arm64-r84

I exectued all the steps above but failed the verification step.

I get the following
debian@BeagleBone:~$ sudo beagle-version | grep UBOOT
UBOOT: Booted Device-Tree:[k3-j721e-beagleboneai64.dts]

No BONE-PWM0, BONE-PWM1, and BONE-PWM2 was loaded


@klindsayjr please post the output of:

cat /boot/firmware/extlinux/extlinux.conf

Regards,

label Linux microSD
kernel /Image
append console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk1p2 ro rootfstype=ext4 rootwait net.ifnames=0
fdtdir /
fdtoverlays /overlays/BONE-PWM0.dtbo /overlays/BONE-PWM1.dtbo /overlays/BONE-PWM2.dtbo
initrd /initrd.img

debian@BeagleBone:~/$ cat /boot/firmware/extlinux/extlinux.conf | grep fdtoverlays
    #fdtoverlays /overlays/<file>.dtbo
    fdtoverlays /overlays/BONE-PWM0.dtbo /overlays/BONE-PWM1.dtbo /overlays/BONE-PWM2.dtbo
debian@BeagleBone:~/$ sudo beagle-version
eeprom:[BBONEAI-64-B0-B0007801B0000164WW22BBBBBBSSSS]
model:[BeagleBoard.org_BeagleBone_AI-64]
dogtag:[BeagleBoard.org Debian Bullseye Xfce Image 2023-01-02]
bootloader:[/dev/mmcblk0boot0]:[tiboot3.bin]:[U-Boot SPL 2021.01-gc21ddbdf (Nov 28 2022 - 15:42:44 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tiboot3.bin]:[U-Boot SPL 2021.01-gc21ddbdf (Nov 28 2022 - 15:42:44 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tispl.bin]:[U-Boot SPL 2021.01-gc21ddbdf (Nov 28 2022 - 15:42:44 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/u-boot.img]:[U-Boot 2021.01-gc21ddbdf (Nov 28 2022 - 15:42:44 +0000)]
UBOOT: Booted Device-Tree:[k3-j721e-beagleboneai64.dts]
UBOOT: Loaded Overlay:[BONE-PWM0.kernel]
UBOOT: Loaded Overlay:[BONE-PWM1.kernel]
UBOOT: Loaded Overlay:[BONE-PWM2.kernel]
kernel:[5.10.153-ti-arm64-r86]
nodejs:[v12.22.12]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-customizations]:[1.20221230.0-0~bullseye+20221230]
pkg:[bb-usb-gadgets]:[1.20220816.0-0~bullseye+20220816]
cmdline:[root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait net.ifnames=0 quiet]
dmesg | grep remote
[    5.657798] remoteproc remoteproc0: b034000.pru is available
[    5.657999] remoteproc remoteproc1: b004000.rtu is available
[    5.658144] remoteproc remoteproc2: b00a000.txpru is available
[    5.658269] remoteproc remoteproc3: b038000.pru is available
[    5.658775] remoteproc remoteproc4: b006000.rtu is available
[    5.658946] remoteproc remoteproc5: b00c000.txpru is available
[    5.659101] remoteproc remoteproc6: b134000.pru is available
[    5.659250] remoteproc remoteproc7: b104000.rtu is available
[    5.659394] remoteproc remoteproc8: b10a000.txpru is available
[    5.659528] remoteproc remoteproc9: b138000.pru is available
[    5.659676] remoteproc remoteproc10: b106000.rtu is available
[    5.659800] remoteproc remoteproc11: b10c000.txpru is available
[    7.992454] k3-dsp-rproc 4d80800000.dsp: configured DSP for remoteproc mode
[    8.053416] remoteproc remoteproc12: 4d80800000.dsp is available
[    8.054972] k3-dsp-rproc 4d81800000.dsp: configured DSP for remoteproc mode
[    8.070326] remoteproc remoteproc13: 4d81800000.dsp is available
[    8.074953] remoteproc remoteproc12: powering up 4d80800000.dsp
[    8.074964] remoteproc remoteproc12: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c6x_1.out, size 1461044
[    8.077183] k3-dsp-rproc 64800000.dsp: configured DSP for remoteproc mode
[    8.084124] remoteproc remoteproc14: 64800000.dsp is available
[    8.095784] remoteproc remoteproc13: powering up 4d81800000.dsp
[    8.095804] remoteproc remoteproc13: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c6x_2.out, size 1461012
[    8.114731]  remoteproc12#vdev0buffer: assigned reserved memory node vision-apps-c66-dma-memory@a9000000
[    8.114805]  remoteproc12#vdev0buffer: registered virtio0 (type 7)
[    8.114809] remoteproc remoteproc12: remote processor 4d80800000.dsp is now up
[    8.115447]  remoteproc13#vdev0buffer: assigned reserved memory node vision-apps-c66-dma-memory@a8000000
[    8.115566]  remoteproc13#vdev0buffer: registered virtio1 (type 7)
[    8.115571] remoteproc remoteproc13: remote processor 4d81800000.dsp is now up
[    8.182898] remoteproc remoteproc14: powering up 64800000.dsp
[    8.182910] remoteproc remoteproc14: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c7x_1.out, size 13242432
[    8.182984] remoteproc remoteproc14: unsupported resource 65538
[    8.213311]  remoteproc14#vdev0buffer: assigned reserved memory node vision-apps-c71-dma-memory@aa000000
[    8.213411]  remoteproc14#vdev0buffer: registered virtio2 (type 7)
[    8.213416] remoteproc remoteproc14: remote processor 64800000.dsp is now up
[    8.996516] remoteproc remoteproc15: 41000000.r5f is available
[    8.996575] remoteproc remoteproc15: attaching to 41000000.r5f
[    9.004911]  remoteproc15#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a0000000
[    9.005024]  remoteproc15#vdev0buffer: registered virtio3 (type 7)
[    9.005028] remoteproc remoteproc15: remote processor 41000000.r5f is now attached
[    9.054773] platform 5c00000.r5f: configured R5F for remoteproc mode
[    9.077594] remoteproc remoteproc16: 5c00000.r5f is available
[    9.077801] remoteproc remoteproc16: Direct firmware load for vision_apps_eaik/vx_app_rtos_linux_mcu2_0.dontload failed with error -2
[    9.077810] remoteproc remoteproc16: powering up 5c00000.r5f
[    9.077833] remoteproc remoteproc16: Direct firmware load for vision_apps_eaik/vx_app_rtos_linux_mcu2_0.dontload failed with error -2
[    9.077838] remoteproc remoteproc16: request_firmware failed: -2
[    9.078698] platform 5d00000.r5f: configured R5F for remoteproc mode
[    9.123022] remoteproc remoteproc17: 5d00000.r5f is available
[    9.123211] remoteproc remoteproc17: Direct firmware load for vision_apps_eaik/vx_app_rtos_linux_mcu2_1.dontload failed with error -2
[    9.123221] remoteproc remoteproc17: powering up 5d00000.r5f
[    9.123238] remoteproc remoteproc17: Direct firmware load for vision_apps_eaik/vx_app_rtos_linux_mcu2_1.dontload failed with error -2
[    9.123243] remoteproc remoteproc17: request_firmware failed: -2
[    9.134927] platform 5e00000.r5f: configured R5F for remoteproc mode
[    9.150078] remoteproc remoteproc18: 5e00000.r5f is available
[    9.150280] remoteproc remoteproc18: Direct firmware load for j7-main-r5f1_0-fw failed with error -2
[    9.150292] remoteproc remoteproc18: powering up 5e00000.r5f
[    9.150308] remoteproc remoteproc18: Direct firmware load for j7-main-r5f1_0-fw failed with error -2
[    9.150313] remoteproc remoteproc18: request_firmware failed: -2
[    9.159014] platform 5f00000.r5f: configured R5F for remoteproc mode
[    9.176035] remoteproc remoteproc19: 5f00000.r5f is available
[    9.176596] remoteproc remoteproc19: Direct firmware load for j7-main-r5f1_1-fw failed with error -2
[    9.176608] remoteproc remoteproc19: powering up 5f00000.r5f
[    9.176627] remoteproc remoteproc19: Direct firmware load for j7-main-r5f1_1-fw failed with error -2
[    9.176632] remoteproc remoteproc19: request_firmware failed: -2
[    9.353758] remoteproc remoteproc16: powering up 5c00000.r5f
[    9.374163] remoteproc remoteproc16: Booting fw image vision_apps_eaik_8.2/vx_app_rtos_linux_mcu2_0.out, size 572788
[    9.381002]  remoteproc16#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a2000000
[    9.381122]  remoteproc16#vdev0buffer: registered virtio4 (type 7)
[    9.381126] remoteproc remoteproc16: remote processor 5c00000.r5f is now up
[    9.381563] remoteproc remoteproc17: powering up 5d00000.r5f
[    9.384359] remoteproc remoteproc17: Booting fw image vision_apps_eaik_8.2/vx_app_rtos_linux_mcu2_1.out, size 297932
[    9.387936]  remoteproc17#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a4000000
[    9.388039]  remoteproc17#vdev0buffer: registered virtio5 (type 7)
[    9.388043] remoteproc remoteproc17: remote processor 5d00000.r5f is now up
dmesg | grep pru
[    5.657798] remoteproc remoteproc0: b034000.pru is available
[    5.658144] remoteproc remoteproc2: b00a000.txpru is available
[    5.658269] remoteproc remoteproc3: b038000.pru is available
[    5.658946] remoteproc remoteproc5: b00c000.txpru is available
[    5.659101] remoteproc remoteproc6: b134000.pru is available
[    5.659394] remoteproc remoteproc8: b10a000.txpru is available
[    5.659528] remoteproc remoteproc9: b138000.pru is available
[    5.659800] remoteproc remoteproc11: b10c000.txpru is available
dmesg | grep pinctrl-single
[    0.713963] pinctrl-single 4301c000.pinctrl: 94 pins, size 376
[    0.714239] pinctrl-single 11c000.pinctrl: 173 pins, size 692
dmesg | grep gpio-of-helper
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 005: ID 046d:c34b Logitech, Inc. USB Keyboard
Bus 001 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 004: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lspci
00:00.0 PCI bridge: Texas Instruments Device b00d
END

I would guess your version of u-boot is too old…

Regards,

My version is dated 2022-06-14
/boot/firmware/extlinux# beagle-version

eeprom:[BBONEAI-64-B0-B0007801B00001643422BBBBBB1781]
model:[BeagleBoard.org_BeagleBone_AI-64]
dogtag:[BeagleBoard.org Debian Bullseye Xfce Image 2022-06-14]
bootloader:[/dev/mmcblk0boot0]:[tiboot3.bin]:[U-Boot SPL 2021.01-g3419da0b (Jan 13 2022 - 15:29:57 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tiboot3.bin]:[U-Boot SPL 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tispl.bin]:[U-Boot SPL 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/u-boot.img]:[U-Boot 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/tiboot3.bin]:[U-Boot SPL 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/tispl.bin]:[U-Boot SPL 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/u-boot.img]:[U-Boot 2021.01-g09210092 (Jun 01 2022 - 16:48:34 +0000)]
UBOOT: Booted Device-Tree:[k3-j721e-beagleboneai64.dts]
kernel:[5.10.153-ti-arm64-r84]
nodejs:[v12.22.12]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-customizations]:[1.20221108.0-0~bullseye+20221108]
pkg:[bb-usb-gadgets]:[1.20220816.0-0~bullseye+20220816]
cmdline:[console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=/dev/mmcblk1p2 ro rootfstype=ext4 rootwait net.ifnames=0]
dmesg | grep remote
[    9.646179] k3-dsp-rproc 4d80800000.dsp: configured DSP for remoteproc mode
[    9.834082] remoteproc remoteproc0: 4d80800000.dsp is available
[    9.892279] remoteproc remoteproc0: powering up 4d80800000.dsp
[    9.907935] remoteproc remoteproc0: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c6x_1.out, size 1461044
[    9.933390] k3-dsp-rproc 4d81800000.dsp: configured DSP for remoteproc mode
[    9.966322] remoteproc remoteproc1: 4d81800000.dsp is available
[    9.975245]  remoteproc0#vdev0buffer: assigned reserved memory node vision-apps-c66-dma-memory@a9000000
[    9.984820]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
[   10.003736] remoteproc remoteproc0: remote processor 4d80800000.dsp is now up
[   10.027275] k3-dsp-rproc 64800000.dsp: configured DSP for remoteproc mode
[   10.037961] remoteproc remoteproc2: 64800000.dsp is available
[   10.069185] remoteproc remoteproc1: powering up 4d81800000.dsp
[   10.075111] remoteproc remoteproc1: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c6x_2.out, size 1461012
[   10.124053]  remoteproc1#vdev0buffer: assigned reserved memory node vision-apps-c66-dma-memory@a8000000
[   10.133608]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
[   10.139730] remoteproc remoteproc1: remote processor 4d81800000.dsp is now up
[   10.411656] remoteproc remoteproc2: powering up 64800000.dsp
[   10.417357] remoteproc remoteproc2: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c7x_1.out, size 13242432
[   10.433188] remoteproc remoteproc2: unsupported resource 65538
[   10.458545]  remoteproc2#vdev0buffer: assigned reserved memory node vision-apps-c71-dma-memory@aa000000
[   10.468109]  remoteproc2#vdev0buffer: registered virtio2 (type 7)
[   10.474267] remoteproc remoteproc2: remote processor 64800000.dsp is now up
[   10.637035] remoteproc remoteproc3: 41000000.r5f is available
[   10.642848] remoteproc remoteproc3: attaching to 41000000.r5f
[   10.664151]  remoteproc3#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a0000000
[   10.673683]  remoteproc3#vdev0buffer: registered virtio3 (type 7)
[   10.679844] remoteproc remoteproc3: remote processor 41000000.r5f is now attached
[   10.700881] platform 5c00000.r5f: configured R5F for remoteproc mode
[   10.723967] remoteproc remoteproc4: 5c00000.r5f is available
[   10.742110] platform 5d00000.r5f: configured R5F for remoteproc mode
[   10.789969] remoteproc remoteproc4: powering up 5c00000.r5f
[   10.795615] remoteproc remoteproc4: Booting fw image vision_apps_eaik/vx_app_rtos_linux_mcu2_0.out, size 572788
[   10.905562] remoteproc remoteproc5: 5d00000.r5f is available
[   10.921233] remoteproc remoteproc5: powering up 5d00000.r5f
[   10.926860] remoteproc remoteproc5: Booting fw image vision_apps_eaik/vx_app_rtos_linux_mcu2_1.out, size 297932
[   11.044668]  remoteproc4#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a2000000
[   11.058668]  remoteproc4#vdev0buffer: registered virtio4 (type 7)
[   11.070160] remoteproc remoteproc4: remote processor 5c00000.r5f is now up
[   11.138870]  remoteproc5#vdev0buffer: assigned reserved memory node vision-apps-r5f-dma-memory@a4000000
[   11.148644]  remoteproc5#vdev0buffer: registered virtio5 (type 7)
[   11.160222] remoteproc remoteproc5: remote processor 5d00000.r5f is now up
[   11.173333] platform 5e00000.r5f: configured R5F for remoteproc mode
[   11.383173] remoteproc remoteproc6: 5e00000.r5f is available
[   11.389145] remoteproc remoteproc6: Direct firmware load for j7-main-r5f1_0-fw failed with error -2
[   11.398220] remoteproc remoteproc6: powering up 5e00000.r5f
[   11.403857] remoteproc remoteproc6: Direct firmware load for j7-main-r5f1_0-fw failed with error -2
[   11.412917] remoteproc remoteproc6: request_firmware failed: -2
[   11.475368] platform 5f00000.r5f: configured R5F for remoteproc mode
[   11.526850] remoteproc remoteproc7: 5f00000.r5f is available
[   11.533311] remoteproc remoteproc7: Direct firmware load for j7-main-r5f1_1-fw failed with error -2
[   11.542376] remoteproc remoteproc7: powering up 5f00000.r5f
[   11.547993] remoteproc remoteproc7: Direct firmware load for j7-main-r5f1_1-fw failed with error -2
[   11.557063] remoteproc remoteproc7: request_firmware failed: -2
[   12.017694] remoteproc remoteproc8: b034000.pru is available
[   12.023670] remoteproc remoteproc9: b004000.rtu is available
[   12.029657] remoteproc remoteproc10: b00a000.txpru is available
[   12.035859] remoteproc remoteproc11: b038000.pru is available
[   12.041911] remoteproc remoteproc12: b006000.rtu is available
[   12.047963] remoteproc remoteproc13: b00c000.txpru is available
[   12.054197] remoteproc remoteproc14: b134000.pru is available
[   12.060287] remoteproc remoteproc15: b104000.rtu is available
[   12.066362] remoteproc remoteproc16: b10a000.txpru is available
[   12.072569] remoteproc remoteproc17: b138000.pru is available
[   12.078643] remoteproc remoteproc18: b106000.rtu is available
[   12.084690] remoteproc remoteproc19: b10c000.txpru is available
dmesg | grep pru
[   12.017694] remoteproc remoteproc8: b034000.pru is available
[   12.029657] remoteproc remoteproc10: b00a000.txpru is available
[   12.035859] remoteproc remoteproc11: b038000.pru is available
[   12.047963] remoteproc remoteproc13: b00c000.txpru is available
[   12.054197] remoteproc remoteproc14: b134000.pru is available
[   12.066362] remoteproc remoteproc16: b10a000.txpru is available
[   12.072569] remoteproc remoteproc17: b138000.pru is available
[   12.084690] remoteproc remoteproc19: b10c000.txpru is available
dmesg | grep pinctrl-single
[    1.090223] pinctrl-single 4301c000.pinctrl: 94 pins, size 376
[    1.096469] pinctrl-single 11c000.pinctrl: 173 pins, size 692
dmesg | grep gpio-of-helper
lsusb
Bus 002 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lspci
00:00.0 PCI bridge: Texas Instruments Device b00d
END

Your version of u-boot is too old, this should get things to a more sane state…

sudo apt update
sudo apt install --only-upgrade bb-u-boot-beagleboneai64 bb-customizations
sudo systemctl enable bb-symlinks.service
sudo /opt/u-boot/bb-u-boot-beagleboneai64/install-microsd.sh
sudo /opt/u-boot/bb-u-boot-beagleboneai64/install-emmc.sh
sudo reboot

Regards,

Follow up I am not sure if a u-boot config file exists on my system. I upgraded and my kernel version is R86.

That package bb-u-boot-beagleboneai64 should be pre-installed…

Feel free to run those 6 commands shown here: Overlays: BeagleBone AI-64 [PWM] - #22 by RobertCNelson

Regards,

Somehow executing the 6 commands listed I can no longer boot from the SD. I created another SD using the image bbai64-debian-11.3-xfce-arm64-2022-06-14-10gb.img.xz. I am now back up and running from the SD. But I can’t boot from the eMMC when I remove the SD.

In addition I noticed that I had to hold the “boot button” down to boot the SD.

Any ideas as to what I am doing wrong? I am using Ubuntu 22.04 PC “Disk Image Writer” for my SD card. I have no idea what to do with the “balenaEtcher”?

That image (2022-06-14) is too old to run all the bug fixes and other improvements we’ve been adding, to the software stack. There are multiple processors involved in the correct booting of the bbia64

Edit, having different versions of u-boot on the microSD and eMMC makes the processor have a difficult time booting up…

Regards,

Repeated the steps at the beginning of this post and the six commands

Both SD and eMMC have the same image
dogtag:[Beagleboard.org Debian Bullsye Xfce Image 2022-06-14]
kernel:[5.10.153.ti-arm64-r86]

Your image is dated 2023-01-02
dogtag:[BeagleBoard.org Debian Bullseye Xfce Image 2023-01-02]

The only image I can download from [BeagleBoard.org - latest-images] is:
Bullseye XFCE (with graphical desktop) for BeagleBone AI-64 via microSD card

Where do I get the image you have? I noticed that the page with the latest images Last updated by default on Tue Jun 14 2022 12:02:46 GMT-0000 (UTC)

You find newer images in the link @RobertCNelson posted above: Debian 11.x (Bullseye) - Monthly Snapshots (ARM64)

Downloaded monthly snapshot image: bbai64-debian-minimal-arm64-2023-01-07-4gb.img.xz

Steps:
#cd /opt/source/dtb-5.10-ti
#git pull
#make all_arm64
#make install all_arm64
#cd /boot/firmware/extlinux
#nano extlinux.conf and added → ftdoverlays /overlays/BONE-PWM0.dtbo /overlays/BONE-PWM1.dtbo /overlays/BONE-PWM2.dtbo
#reboot

$ sudo beagle-version
eeprom:[BBONEAI-64-B0-B0007801B00001643422BBBBBB1781]
model:[BeagleBoard.org_BeagleBone_AI-64]
dogtag:[BeagleBoard.org Debian Bullseye Minimal Image 2023-01-07]
bootloader:[/dev/mmcblk0boot0]:[tiboot3.bin]:[U-Boot SPL 2021.01-gc21ddbdf (Nov 28 2022 - 15:42:44 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tiboot3.bin]:[U-Boot SPL 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/tispl.bin]:[U-Boot SPL 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
bootloader:[/dev/mmcblk0]:[/boot/firmware/u-boot.img]:[U-Boot 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/tiboot3.bin]:[U-Boot SPL 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/tispl.bin]:[U-Boot SPL 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
bootloader:[/dev/mmcblk1]:[/boot/firmware/u-boot.img]:[U-Boot 2021.01-g8084fe5a (Nov 16 2022 - 15:40:32 +0000)]
UBOOT: Booted Device-Tree:[k3-j721e-beagleboneai64.dts]
UBOOT: Loaded Overlay:[BONE-PWM0.kernel]
UBOOT: Loaded Overlay:[BONE-PWM1.kernel]
UBOOT: Loaded Overlay:[BONE-PWM2.kernel]
kernel:[5.10.153-ti-arm64-r86]

Success Thanks - Now how do I solve the following response to export command
$ sudo echo 0 > /sys/class/pwm/pwmchip0/export
echo: write error: Device or resource busy

I believe when you execute that command, only the echo is done as root, the redirect to the file is done as whatever user you are. If you don’t have permissions it will fail.

You should not need to be root to export a PWM.

if you do ls -l /sys/class/pwm/pwmchip0 what is the group of the files.
Add that group to the debian user, assuming that is what you are logged in with

You can run groups to see what groups you are currently a member of.
To add a missing group to debian user, run

sudo usermod -a -G PWMGROUP debian

logout and then log back in for the changes to take effect. Check with the groups command.

Alternatively, the reason you can’t export the PWM is because something else has already done so. But check permissions first.

That might not be the correct one, use the symlink directory:

/dev/bone/pwm/

This matches: https://elinux.org/Beagleboard:BeagleBone_cape_interface_spec#PWM

Yeah, auto-exported:

debian@BeagleBone:~/$ tree /dev/bone/pwm/
/dev/bone/pwm/
├── 0
│   ├── a -> /sys/class/pwm/pwmchip2/pwm0/
│   └── b -> /sys/class/pwm/pwmchip2/pwm1/
├── 1
│   ├── a -> /sys/class/pwm/pwmchip4/pwm0/
│   └── b -> /sys/class/pwm/pwmchip4/pwm1/
└── 2
    ├── a -> /sys/class/pwm/pwmchip0/pwm0/
    └── b -> /sys/class/pwm/pwmchip0/pwm1/

9 directories, 0 files

Regards,

2 Likes

Got it working thanks.

PWM1, and PWM2 channels A & B are responding correctly on my scope.
PWM0 channel B is responding correctly channel A is not, no output. Is this possibly a bad pin/board or is it something else.

Just for clarity, you ignored those “4” negative (usb) header pins when counting out the pins?

It worked when i commit-ed the overlays, that’s been a few months, something might have regressed…

Regards,

I am referring to PWM0 channel B according to the interface spec I am looking at P8.19 I think you are referring to P9.

I cant find your image - dogtag:[BeagleBoard.org Debian Bullseye Xfce Image 2023-01-02]
the newest Xfce image I can find is the 2022-11-01 image.

Thanks for your time helping me migrate from Beaglebone Black to AI64.

PS: Updated the Xfce image dated 2022-11-01 this morning 2023-10-01. All PWM pins are working correctly including P8.19. Their maybe a difference in the two images, Xfce dated 2022-11-01 and the minimal 2023-01-01. I don’t have sufficient knowledge to understand overlays to look into this.