为Beaglebone debian加载UART时遇到的问题

时间:2019-05-02 10:10:03

标签: linux debian uart partition u-boot

我在为Beaglebone Debian加载uart端口时遇到问题。

以下是我的配置:

我在Debian OS上拥有beaglebone。我有一个带有4个分区的SD卡。

分区1(mmcblk0p1)包含以下引导加载程序配置:-

  1. /boot/dtbs/4.14.71-ti-r80/am335x-bonegreen-wireless.dtb
  2. /boot/vmlinuz-4.14.71-ti-r80
  3. /boot/uEnv.txt
  4. /boot/initrd.img-4.14.71-ti-r80
  5. /lib/firmware/BB-UART4-00A0.dtbo
  6. /lib/firmware/BB-UART1-00A0.dtbo
  7. /lib/firmware/BB-I2C2-00A0.dtbo
  8. /lib/firmware/AM335X-PRU-UIO-00A0.dtbo
  9. /lib/firmware/BB-BBGW-WL1835-00A0.dtbo
  10. /lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo
  11. /lib/firmware/BB-ADC-00A0.dtbo
  12. /uEnv.txt

分区2(mmcblk0p2)包含Debian OS。

分区3(mmcblk0p3)包含另一个Debian OS。

分区4(mmcblk0p4)决定从哪个分区启动?

/ mmcblk0p1中的/uEnv.txt从mmcblk0p4中读取并确定要从哪个分区启动。

这是我的/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;

在/boot/uEnv.txt中,我启用了以下配置:

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

我的启动日志:

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

问题:

现在,当我启动分区并检查UART端口时,找不到它们。

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

我期望的输出是:

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

0 个答案:

没有答案