TDMSSK3358 and Bone Debian

I’m trying to figure out how to get the TDMSSK3358 (or AM335x Starter Kit) working with Bone Debian. There is a devicetree overlay that is set up to supposedly use it, am335x-evmsk.dts, but I have not been able to get it to work even with the latest build.

When it runs, it loads u-boot just fine, but dumps to Linux shell after attempting to load the Kernel. I’ve attached my putty log. I’ve found similar issues in forum posts that were supposedly a faulty voltage supply or bent pin for the uSD Card. I do not think this is the case as the Linux Arago (built via Yocto) still runs fine… that it comes with.

A little more info for context:

This Dev System runs only from uSD Card, it does not utilize the emmc. When it fails, the linux shell stays shown on the display (Linux Icon with blinking cursor). I do have basic shell commands.

I think the fault lies in that the devicetree is still not correct. It is somewhat set up as a traditional device for using emmc first and if the uSD Card Detect (CD) goes low it will switch the boot up order. Typical Beaglebone Black requires a SW be pressed also to switch the boot up order upon boot up.

The failure is basically the Kernel doesn’t see /dev/mmcblk0p1 for rootfs. I can check /dev in shell but no memory location is there… not mmcblk, sda, sdb, or other. The original Arago OS uses a separate Boot/Root partition (unlike Bone Debian) but that shouldn’t matter as boot is actually running. It’s almost as if it tries to access the SD Card pins for what’s designated for mmc2 in the pinmux but can’t read the data.

Has anyone else tackled this and had it work, or can someone provide more insight?

[ 2.899401] omap_hsmmc 48060000.mmc: Got CD GPIO

Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mmcblk0p1 does not exist. Dropping to a shell!

Any help is appreciated on this.

Raymond Willis Jr.

Ooops. Now I attached the log file. :slight_smile:

tmdssk335x_putty.log (20.4 KB)

The BBB hasn't required use of the boot-select switch for eMMC/uSD for
quite some time -- like the last release of Wheezy (Debian 7). As long as
the eMMC has been flashed with a "modern" image, u-boot (while loading from
eMMC) will switch to using the uSD card to complete the boot process
(device tree, etc.).

There's an override for a 2 partition setup: in /boot/uEnv.txt



I don’t want this to run via separate root / boot partitions as it did way back. There should be no reason (anything hardware) that it shouldn’t run with the newest Debian with am335x-evmsk.dts.

I ran debug in the command line options of uEnv.txt and got the following. This was right before it defaulting to shell:

  • mkdir -m 0755 /run/initramfs
  • [ -n /run/initramfs/initramfs.debug ]
  • exec
    [ 3.070539] systemd-udevd[123]: Starting version 241
    [ 3.085221] systemd-udevd[124]: Network interface NamePolicy= disabled on kernel command line, ignoring.
    [ 3.108769] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:18: Invalid GROUP operation
    [ 3.133753] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:19: Invalid GROUP operation
    [ 3.153806] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:20: Invalid GROUP operation
    [ 3.173970] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:21: Invalid GROUP operation
    [ 3.193984] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:22: Invalid GROUP operation
    [ 3.213997] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:23: Invalid GROUP operation
    [ 3.234000] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:24: Invalid GROUP operation

[ 3.253952] systemd-udevd[124]: /usr/lib/udev/rules.d/50-udev-default.rules:25: Invalid GROUP operation

This is 50-udev-defualt.rules file:

do not edit this file, it will be overwritten on update

run a command on remove events

ACTION==“remove”, ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
ACTION==“remove”, GOTO=“default_end”

SUBSYSTEM==“virtio-ports”, KERNEL==“vport*”, ATTR{name}=="?*", SYMLINK+=“virtio-ports/$attr{name}”

select “system RTC” or just use the first one

SUBSYSTEM==“rtc”, ATTR{hctosys}==“1”, SYMLINK+=“rtc”
SUBSYSTEM==“rtc”, KERNEL==“rtc0”, SYMLINK+=“rtc”, OPTIONS+=“link_priority=-100”

SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, IMPORT{builtin}=“usb_id”, IMPORT{builtin}=“hwdb --subsystem=usb”
ENV{MODALIAS}!="", IMPORT{builtin}=“hwdb --subsystem=$env{SUBSYSTEM}”

ACTION!=“add”, GOTO=“default_end”

SUBSYSTEM==“tty”, KERNEL==“ptmx”, GROUP=“tty”, MODE=“0666”
SUBSYSTEM==“tty”, KERNEL==“tty”, GROUP=“tty”, MODE=“0666”
SUBSYSTEM==“tty”, KERNEL==“tty[0-9]", GROUP=“tty”, MODE=“0620”
SUBSYSTEM==“tty”, KERNEL=="sclp_line[0-9]
”, GROUP=“tty”, MODE=“0620”
SUBSYSTEM==“tty”, KERNEL==“ttysclp[0-9]", GROUP=“tty”, MODE=“0620”
SUBSYSTEM==“tty”, KERNEL=="3270/tty[0-9]
”, GROUP=“tty”, MODE=“0620”
SUBSYSTEM==“vc”, KERNEL==“vcs*|vcsa*”, GROUP=“tty”
KERNEL==“tty[A-Z][0-9]|ttymxc[0-9]|pppox[0-9]|ircomm[0-9]|noz[0-9]|rfcomm[0-9]”, GROUP=“dialout”

SUBSYSTEM==“mem”, KERNEL==“mem|kmem|port”, GROUP=“kmem”, MODE=“0640”

SUBSYSTEM==“input”, GROUP=“input”
SUBSYSTEM==“input”, KERNEL==“js[0-9]*”, MODE=“0664”

SUBSYSTEM==“video4linux”, GROUP=“video”
SUBSYSTEM==“graphics”, GROUP=“video”
SUBSYSTEM==“drm”, KERNEL!=“renderD*”, GROUP=“video”
SUBSYSTEM==“dvb”, GROUP=“video”
SUBSYSTEM==“media”, GROUP=“video”
SUBSYSTEM==“cec”, GROUP=“video”

SUBSYSTEM==“drm”, KERNEL==“renderD*”, GROUP=“render”, MODE=“0660”
SUBSYSTEM==“kfd”, GROUP=“render”, MODE=“0660”

SUBSYSTEM==“sound”, GROUP=“audio”,
OPTIONS+=“static_node=snd/seq”, OPTIONS+=“static_node=snd/timer”

SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, MODE=“0664”

SUBSYSTEM==“firewire”, ATTR{units}==“0x00a02d:0x00010”, GROUP=“video”
SUBSYSTEM==“firewire”, ATTR{units}==“0x00b09d:0x00010”, GROUP=“video”
SUBSYSTEM==“firewire”, ATTR{units}==“0x00a02d:0x010001”, GROUP=“video”
SUBSYSTEM==“firewire”, ATTR{units}==“0x00a02d:0x014001”, GROUP=“video”

KERNEL==“parport[0-9]", GROUP=“lp”
SUBSYSTEM==“printer”, KERNEL=="lp
”, GROUP=“lp”
SUBSYSTEM==“ppdev”, GROUP=“lp”
KERNEL==“lp[0-9]", GROUP=“lp”
”, GROUP=“lp”
SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, ENV{ID_USB_INTERFACES}==":0701??:", GROUP=“lp”

SUBSYSTEM==“block”, GROUP=“disk”
SUBSYSTEM==“block”, KERNEL==“sr[0-9]", GROUP=“cdrom”
SUBSYSTEM==“scsi_generic”, SUBSYSTEMS==“scsi”, ATTRS{type}==“4|5”, GROUP=“cdrom”
”, GROUP=“cdrom”
KERNEL==“pktcdvd[0-9]*”, GROUP=“cdrom”
KERNEL==“pktcdvd”, GROUP=“cdrom”

SUBSYSTEM==“scsi_generic|scsi_tape”, SUBSYSTEMS==“scsi”, ATTRS{type}==“1|8”, GROUP=“tape”
SUBSYSTEM==“scsi_generic”, SUBSYSTEMS==“scsi”, ATTRS{type}==“0”, GROUP=“disk”
KERNEL==“qft[0-9]|nqft[0-9]|zqft[0-9]|nzqft[0-9]|rawqft[0-9]|nrawqft[0-9]”, GROUP=“disk”
KERNEL==“loop-control”, GROUP=“disk”, OPTIONS+=“static_node=loop-control”
KERNEL==“btrfs-control”, GROUP=“disk”
KERNEL==“rawctl”, GROUP=“disk”
SUBSYSTEM==“raw”, KERNEL==“raw[0-9]*”, GROUP=“disk”
SUBSYSTEM==“aoe”, GROUP=“disk”, MODE=“0220”
SUBSYSTEM==“aoe”, KERNEL==“err”, MODE=“0440”

KERNEL==“rfkill”, MODE=“0664”
KERNEL==“tun”, MODE=“0666”, OPTIONS+=“static_node=net/tun”

KERNEL==“fuse”, MODE=“0666”, OPTIONS+=“static_node=fuse”

The static_node is required on s390x and ppc (they are using MODULE_ALIAS)

KERNEL==“kvm”, GROUP=“kvm”, MODE=“0660”, OPTIONS+=“static_node=kvm”

SUBSYSTEM==“ptp”, ATTR{clock_name}==“KVM virtual PTP”, SYMLINK += “ptp_kvm”


If I go off of those line numbers and GROUP failure… it doesn’t like GROUP=“video” for some reason. I’ll disable video in uEnv.txt and see if that makes a difference. But I doubt that’s it. I’m also trying a different uSD Card (manufacturer) just in case.