Discussion:
DA850 - SD access not working on 3.15 or git master?
Peter Howard
2014-06-15 23:40:21 UTC
Permalink
I'm finding that, while the SD driver initialises and the card is
detected, that's where things stop.

The (cut down) boot log is as follows:

brd: module loaded
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffffe
libphy: davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[0]: device davinci_mdio-0:00, driver unknown
input: gpio-keys-polled as /devices/platform/gpio-keys-polled.1/input/input0
i2c /dev entries driver
davinci_mmc da830-mmc.0: Using DMA, 4-bit mode
TCP: cubic registered
NET: Registered protocol family 17
LDO2: incomplete constraints, leaving on
LDO1: incomplete constraints, leaving on
VDCDC3: incomplete constraints, leaving on
VDCDC2: incomplete constraints, leaving on
VDCDC1: incomplete constraints, leaving on
console [netcon0] enabled
netconsole: network logging started
davinci_emac davinci_emac.1: using random MAC addr: 66:e9:e3:43:07:13
mmc0: new high speed SDHC card at address 0007
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
net eth0: Request IRQ 33
net eth0: Request IRQ 34
net eth0: Request IRQ 35
net eth0: Request IRQ 36
davinci_mdio davinci_mdio.0: resetting idled controller
net eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=davinci_mdio-0:00)
davinci_emac davinci_emac.1 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.1.17, my address is 192.168.0.150
IP-Config: Complete:
device=eth0, hwaddr=66:e9:e3:43:07:13, ipaddr=192.168.0.150, mask=255.255.4
host=192.168.0.150, domain=gme.net.au, nis-domain=(none)
bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=
nameserver0=192.168.1.14, nameserver1=192.168.1.17
Waiting for root device /dev/mmcblk0p2...
random: nonblocking pool is initialized


I haven't done any further debugging yet to see what happens (or doesn't
happen) after

mmc0: new high speed SDHC card at address 0007


The build sequence was:
* tar xf linux-3.15.tar.xz
* cd linux-3.15
* cp arch/arm/configs/davinci_all_defconfig .config
* make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig
(only change was to make MMC/SD support and the relevant driver
built-in instead of in a module)
* make ARCH=arm LOADADDR=0xc0008000
CROSS_COMPILE=arm-arago-linux-gnueabi- uImage -j9

The image was then copied to the SD card and then booted. I'm assuming
that it *should* work. The same process on the master branch of the
repo at git.kernel.org produces the same behavior.

I would bisect to try to track it down but there's already this problem
(http://linux.davincidsp.com/pipermail/davinci-linux-open-source/2014-April/028783.html) in 3.14 which would interfere with the process. So could someone suggest a debugging approach from here? Is there a post-3.14 commit anyone can confirm SD access was definitely working on the DA850 I can use as a start for a bisect?

Thanks.
--
Peter Howard <pjh at northern-ridge.com.au>
Sekhar Nori
2014-06-16 14:19:27 UTC
Permalink
Post by Peter Howard
I'm finding that, while the SD driver initialises and the card is
detected, that's where things stop.
brd: module loaded
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffffe
libphy: davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[0]: device davinci_mdio-0:00, driver unknown
input: gpio-keys-polled as /devices/platform/gpio-keys-polled.1/input/input0
i2c /dev entries driver
davinci_mmc da830-mmc.0: Using DMA, 4-bit mode
TCP: cubic registered
NET: Registered protocol family 17
LDO2: incomplete constraints, leaving on
LDO1: incomplete constraints, leaving on
VDCDC3: incomplete constraints, leaving on
VDCDC2: incomplete constraints, leaving on
VDCDC1: incomplete constraints, leaving on
console [netcon0] enabled
netconsole: network logging started
davinci_emac davinci_emac.1: using random MAC addr: 66:e9:e3:43:07:13
mmc0: new high speed SDHC card at address 0007
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
net eth0: Request IRQ 33
net eth0: Request IRQ 34
net eth0: Request IRQ 35
net eth0: Request IRQ 36
davinci_mdio davinci_mdio.0: resetting idled controller
net eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=davinci_mdio-0:00)
davinci_emac davinci_emac.1 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.1.17, my address is 192.168.0.150
device=eth0, hwaddr=66:e9:e3:43:07:13, ipaddr=192.168.0.150, mask=255.255.4
host=192.168.0.150, domain=gme.net.au, nis-domain=(none)
bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=
nameserver0=192.168.1.14, nameserver1=192.168.1.17
Waiting for root device /dev/mmcblk0p2...
random: nonblocking pool is initialized
I haven't done any further debugging yet to see what happens (or doesn't
happen) after
mmc0: new high speed SDHC card at address 0007
* tar xf linux-3.15.tar.xz
* cd linux-3.15
* cp arch/arm/configs/davinci_all_defconfig .config
* make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig
(only change was to make MMC/SD support and the relevant driver
built-in instead of in a module)
* make ARCH=arm LOADADDR=0xc0008000
CROSS_COMPILE=arm-arago-linux-gnueabi- uImage -j9
The image was then copied to the SD card and then booted. I'm assuming
that it *should* work. The same process on the master branch of the
repo at git.kernel.org produces the same behavior.
Can you make sure CONFIG_MMC_BLOCK=y in .config?

If that does not help, can you check the output of /proc/interrupts. Do
you see EDMA interrupts incrementing? Also, just to rule out other
issues, can you build with CONFIG_TI_EDMA=n? This will force the driver
into PIO mode.

Switching on CONFIG_MMC_DEBUG might also help throw more light on what
the issue is.

Thanks,
Sekhar
Peter Howard
2014-06-16 22:16:43 UTC
Permalink
Post by Sekhar Nori
Post by Peter Howard
I'm finding that, while the SD driver initialises and the card is
detected, that's where things stop.
brd: module loaded
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffffe
libphy: davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[0]: device davinci_mdio-0:00, driver unknown
input: gpio-keys-polled as /devices/platform/gpio-keys-polled.1/input/input0
i2c /dev entries driver
davinci_mmc da830-mmc.0: Using DMA, 4-bit mode
TCP: cubic registered
NET: Registered protocol family 17
LDO2: incomplete constraints, leaving on
LDO1: incomplete constraints, leaving on
VDCDC3: incomplete constraints, leaving on
VDCDC2: incomplete constraints, leaving on
VDCDC1: incomplete constraints, leaving on
console [netcon0] enabled
netconsole: network logging started
davinci_emac davinci_emac.1: using random MAC addr: 66:e9:e3:43:07:13
mmc0: new high speed SDHC card at address 0007
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
net eth0: Request IRQ 33
net eth0: Request IRQ 34
net eth0: Request IRQ 35
net eth0: Request IRQ 36
davinci_mdio davinci_mdio.0: resetting idled controller
net eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=davinci_mdio-0:00)
davinci_emac davinci_emac.1 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.1.17, my address is 192.168.0.150
device=eth0, hwaddr=66:e9:e3:43:07:13, ipaddr=192.168.0.150, mask=255.255.4
host=192.168.0.150, domain=gme.net.au, nis-domain=(none)
bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=
nameserver0=192.168.1.14, nameserver1=192.168.1.17
Waiting for root device /dev/mmcblk0p2...
random: nonblocking pool is initialized
I haven't done any further debugging yet to see what happens (or doesn't
happen) after
mmc0: new high speed SDHC card at address 0007
* tar xf linux-3.15.tar.xz
* cd linux-3.15
* cp arch/arm/configs/davinci_all_defconfig .config
* make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig
(only change was to make MMC/SD support and the relevant driver
built-in instead of in a module)
* make ARCH=arm LOADADDR=0xc0008000
CROSS_COMPILE=arm-arago-linux-gnueabi- uImage -j9
The image was then copied to the SD card and then booted. I'm assuming
that it *should* work. The same process on the master branch of the
repo at git.kernel.org produces the same behavior.
Can you make sure CONFIG_MMC_BLOCK=y in .config?
ARGH!

Yes, I left CONFIG_MMC_BLOCK=m. PEBKAC.

Apologies. Thanks for pointing out the obvious mistake.
--
Peter Howard <pjh at northern-ridge.com.au>
Loading...