Tool/software: Linux
I am facing issue in loading uart port for Beaglebone Debian.
Following are my configurations:
I have a beaglebone with Debian OS. I have an sd card with 4 Partitions.
Partition 1 ( mmcblk0p1 ) contains following bootloader configurations:-
- /boot/dtbs/4.14.71-ti-r80/am335x-bonegreen-wireless.dtb
- /boot/vmlinuz-4.14.71-ti-r80
- /boot/uEnv.txt
- /boot/initrd.img-4.14.71-ti-r80
- /lib/firmware/BB-UART4-00A0.dtbo
- /lib/firmware/BB-UART1-00A0.dtbo
- /lib/firmware/BB-I2C2-00A0.dtbo
- /lib/firmware/AM335X-PRU-UIO-00A0.dtbo
- /lib/firmware/BB-BBGW-WL1835-00A0.dtbo
- /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo
- /lib/firmware/BB-ADC-00A0.dtbo
- /uEnv.txt
Partition 2 ( mmcblk0p2 ) contains the Debian OS.
Partition 3 ( mmcblk0p3 ) contains another Debian OS.
Partition 4 ( mmcblk0p4 ) decides from Which partition to boot?
/uEnv.txt from mmcblk0p1 reads from mmcblk0p4 and decides from which partition to boot.
This is my /uEnv.txt:
rdaddr=0x88080000
initrd_high=0xffffffff
fdt_high=0xffffffff
loadxrd=echo debug: [/boot/initrd.img-${uname_r}] ... ; load mmc 0:1 ${rdaddr} /boot/initrd.img-${uname_r}; setenv rdsize ${filesize}
loaduEnvtxt=load mmc 0:1 ${loadaddr} /boot/uEnv.txt ; env import -t ${loadaddr} ${filesize};
check_dtb=if test -n ${dtb}; then setenv fdtfile ${dtb};fi;
check_uboot_overlays=if test -n ${enable_uboot_overlays}; then setenv enable_uboot_overlays ;fi;
loadall=run loaduEnvtxt; run check_dtb; run check_uboot_overlays; run loadxrd;
rootpart=0:2
flagpart=0:4
bootdir=/boot
bootfile=vmlinuz-4.14.71-ti-r80
console=ttyO0,115200n8
fdtaddr=0x88000000
fdtfile=am335x-bonegreen-wireless.dtb
loadaddr=0x82000000
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait
mmcargs=setenv bootargs console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline}
loadfdt=echo debug: [/boot/dtbs/${uname_r}/${fdtfile}] ... ;load mmc 0:1 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}
loadimage=echo debug: [/boot/vmlinuz-${uname_r}] ... ; load mmc 0:1 ${loadaddr} /boot/vmlinuz-${uname_r}
boot_three=setenv rootpart 0:3; setenv mmcroot /dev/mmcblk0p3 ro
findroot=\
if test -e mmc $flagpart three; then \
if test -e mmc $flagpart three_ok; then \
run boot_three; \
elif test ! -e mmc $flagpart three_tried; then \
fatwrite mmc $flagpart $loadaddr three_tried 4; \
run boot_three; \
fi; \
elif test -e mmc $flagpart two; then \
if test ! -e mmc $flagpart two_ok; then \
if test -e mmc $flagpart two_tried; then \
run boot_three; \
else \
fatwrite mmc $flagpart $loadaddr two_tried 4; \
fi; \
fi; \
fi;
uenvcmd=\
run loadall; \
run findroot; \
echo Using root partition ${rootpart}; \
if run loadfdt; then \
echo Loaded ${fdtfile}; \
if run loadimage; then \
run mmcargs; \
bootz ${loadaddr} - ${fdtaddr}; \
fi; \
fi;
In /boot/uEnv.txt I have enabled the following Configs:
uname_r=4.14.71-ti-r80 enable_uboot_overlays=1 uboot_overlay_addr0=/lib/firmware/BB-UART4-00A0.dtbo uboot_overlay_addr1=/lib/firmware/BB-UART1-00A0.dtbo uboot_overlay_addr2=/lib/firmware/BB-I2C2-00A0.dtbo uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo enable_uboot_cape_universal=1 cmdline=coherent_pool=1M net.ifnames=0 quiet
My Boot logs:
U-Boot SPL 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500) Trying to boot from MMC2 Loading Environment from EXT4... ** Unable to use mmc 0:1 for loading the env ** U-Boot 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500), Build: jenkins-github_Bootloader-Builder-65 CPU : AM335X-GP rev 2.1 I2C: ready DRAM: 512 MiB No match for driver 'omap_hsmmc' No match for driver 'omap_hsmmc' Some drivers were not found Reset Source: Power-on reset has occurred. RTC 32KCLK Source: External. MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 Loading Environment from EXT4... ** Unable to use mmc 0:1 for loading the env ** Board: BeagleBone Black <ethaddr> not set. Validating first E-fuse MAC BeagleBone Black: Model: SeeedStudio BeagleBone Green Wireless: BeagleBone: cape eeprom: i2c_probe: 0x54: BeagleBone: cape eeprom: i2c_probe: 0x55: BeagleBone: cape eeprom: i2c_probe: 0x56: BeagleBone: cape eeprom: i2c_probe: 0x57: Net: eth0: MII MODE Could not get PHY for cpsw: addr 0 cpsw, usb_ether Press SPACE to abort autoboot in 2 seconds board_name=[A335BNLT] ... board_rev=[GW1A] ... switch to partitions #0, OK mmc0 is current device SD/MMC found on device 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... 60067 bytes read in 6 ms (9.5 MiB/s) gpio: pin 56 (gpio 56) value is 0 gpio: pin 55 (gpio 55) value is 0 gpio: pin 54 (gpio 54) value is 0 gpio: pin 53 (gpio 53) value is 1 switch to partitions #0, OK mmc0 is current device gpio: pin 54 (gpio 54) value is 1 Checking for: /uEnv.txt ... 2628 bytes read in 2 ms (1.3 MiB/s) gpio: pin 55 (gpio 55) value is 1 Loaded environment from /uEnv.txt Importing environment from mmc ... Checking if uenvcmd is set ... gpio: pin 56 (gpio 56) value is 1 Running uenvcmd ... 2113 bytes read in 3 ms (687.5 KiB/s) debug: [/boot/initrd.img-4.14.71-ti-r80] ... 4799493 bytes read in 303 ms (15.1 MiB/s) Using root partition 0:2 debug: [/boot/dtbs/4.14.71-ti-r80/am335x-bonegreen-wireless.dtb] ... 60067 bytes read in 8 ms (7.2 MiB/s) Loaded am335x-bonegreen-wireless.dtb debug: [/boot/vmlinuz-4.14.71-ti-r80] ... 10416640 bytes read in 652 ms (15.2 MiB/s) ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 Using Device Tree in place at 88000000, end 88011aa2 Starting kernel ... [ 0.000749] timer_probe: no matching timers found [ 0.783193] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle [ 1.073624] omap_voltage_late_init: Voltage driver support not added [ 1.080550] PM: Cannot get wkup_m3_ipc handle
Question:
Now when I boot into the partition and check for the UART port I am unable to find them.
ls -l /dev/ttyO* lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO0 -> ttyS0 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO2 -> ttyS2
The output I am expecting is:
lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO0 -> ttyS0 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO1 -> ttyS1 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO2 -> ttyS2 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO3 -> ttyS3 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO4 -> ttyS4 lrwxrwxrwx 1 root root 5 Nov 3 2016 /dev/ttyO5 -> ttyS5