Issue when enabling UART pins on BBB with Ubuntu

Hi to all,

[Sorry if a double topic has been issued, I messed up when posting]

I am working with a Beaglebone Black (A5C) on which I installed Ubuntu 16.04 and I have a hard time enabling the UART ports/pins. They seem to be disabled by default but every action I took resulted in the BBB either not caring about my modifications in the uEnv.txt file (or directly with a command) or either stalling when booting.

For example, if I try to use config-pin, it gives me this:

root@arm:/home/ubuntu# config-pin -q p9.11
P9_11 pinmux file not found!
cape-universal overlay not found
run “config-pin overlay cape-universal” to load the cape
root@arm:/home/ubuntu# config-pin overlay cape-universal
Loading cape-universal overlay
Segmentation fault
Error loading device tree overlay file: cape-universal
root@arm:/home/ubuntu# config-pin -q p9.11
P9_11 pinmux file not found!
cape-universal already loaded
Please verify your device tree file

Or I tried to add optargs=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5
to my /boot/uEnv.txt file but in vain.

Initially my goal is to control UART4 but I can use any other UART if needed.

For information:

ubuntu@arm:~$ uname -a
Linux arm 4.14.11-ti-r22 #1 SMP Fri Jan 5 02:51:48 UTC 2018 armv7l armv7l armv7l GNU/Linux

ubuntu@arm:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial

ubuntu@arm:~$ ll /dev/ttyS*
crw–w---- 1 root tty 4, 64 Mar 31 09:41 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Mar 31 09:36 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Mar 31 09:36 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Mar 31 09:36 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Mar 31 09:36 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Mar 31 09:36 /dev/ttyS5

ubuntu@arm:~$ sudo cat /proc/tty/driver/serial

serinfo:1.0 driver revision:
0: uart:8250 mmio:0x44E09000 irq:30 tx:66312 rx:0 RTS|CTS|DTR|DSR
1: uart:unknown port:00000000 irq:0
2: uart:unknown port:00000000 irq:0
3: uart:unknown port:00000000 irq:0
4: uart:unknown port:00000000 irq:0
5: uart:unknown port:00000000 irq:0

ubuntu@arm:~$ sudo cat /sys/devices/platform/bone_capemgr/slots
[sudo] password for ubuntu:
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1

ubuntu@arm:~$ sudo setserial -g /dev/ttyS[0-5]
[sudo] password for ubuntu:
/dev/ttyS0, UART: 8250, Port: 0x0000, IRQ: 30
/dev/ttyS1, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS2, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS4, UART: unknown, Port: 0x0000, IRQ: 0
/dev/ttyS5, UART: unknown, Port: 0x0000, IRQ: 0

ubuntu@arm:~$ dmesg | grep tty
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet
[ 0.001222] WARNING: Your ‘console=ttyO0’ has been replaced by ‘ttyS0’
[ 0.910559] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[ 0.926989] console [ttyS0] enabled

ubuntu@arm:~$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[70edebd65fe6ea7de16ea8efe3c48b2a4062034a]
eeprom:[A335BNLT0A5C3313BBBK2131]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[rcn-ee.net console Ubuntu Image 2018-01-05]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.03-00002-g254339602c]:[location: dd MBR]
kernel:[4.14.11-ti-r22]
pkg:[bb-cape-overlays]:[4.4.20180104.0-0rcnee1~xenial+20180104]
pkg:[bb-wl18xx-firmware]:[1.20170829-0rcnee2~xenial+20180104]
WARNING:pkg:[firmware-ti-connectivity]:[NOT_INSTALLED]
groups:[ubuntu : ubuntu adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal netdev i2c gpio pwm eqep admin spi tisdk weston-launch xenomai bluetooth cloud9ide]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 0.902605] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[ 0.903864] gpio-of-helper ocp:cape-universal: ready
END

The only thing I managed to modify successfully is doing $ echo BB-UART1 > /sys/devices/platform/bone_capemgr/slots and $ echo BB-UART4 > /sys/devices/platform/bone_capemgr/slots
which stalls the terminal in which I’m doing it but by checking with another terminal, the output of $ sudo cat /sys/devices/platform/bone_capemgr/slots changes a bit:

ubuntu@arm:~$ sudo cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O— -1 Override Board Name,00A0,Override Manuf,cape-universal
5: P-O— -1 Override Board Name,00A0,Override Manuf,BB-UART1
6: P-O— -1 Override Board Name,00A0,Override Manuf,BB-UART4

Does anyone having an idea of how to deal with this issue?

Thanks,
Marwan