UART not working from Linux on Kernel 6.12 for the BBAI64 or Beagley-ai??

I am working with the AI64, although I gather whatever applies to the Y-AI on this matter also applies to the AI64…Outside some DT specifics.

Anyway, I can not get a UART working from Linux with either firmware 6.6 or 6.12. The symlinks at /dev/bone/uart are not showing up. With 6.6, sometimes I do not even see my UART devices show up at /sys/bus/serial-base/devices.

Things of note:

Has anyone gotten UART working from Linux with kernel 6.12? What do I need to do to make it work. I gather with the 6.12 setup, I need to do some udev rule magic. Does anyone know which udev file I would need to edit?

I have a pretty low understanding of the connection between Linux drivers and how they host symlinks/files for interaction. Pretty lost here on what to do. How to even learn what I need? Any guidance is appreciated.

Running dmesg | grep -i serial I was able to figure out the default file handles for UART. I tested, the handles are working.

So, 2860000.serial is UART6. For my case here, as seen in the screenshot, its handle is /dev/ttyS1.

These handles can change, in-fact, I believe they may even change between reboots. With this, it is time to figure out some udev rule magic…still trying to understand this stuff.

I found I can get my desired symlink for UART6 with cat /sys/devices/platform/bus@100000/2860000.serial/of_node/symlink. This desired symlink is parsed from my DT overlay.
image

Does anybody have any guidance on setting up the needed udev rules? Is there a specific file I should be editing, if any? Where should I submit a PR with my new udev rule settings? Why did things break?

New Github issue on the problem UART symlinks not getting made on the BeagleboneAI64 with kernel 6 · Issue #9 · mvduin/py-uio · GitHub