Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

DE0-Nano-SoC, Strange error reading SD/MMC

Hi,

Still working on my SoC/FPGA hello world on DE0-Nano-Soc

As I had trouble with Yocto on my ubuntu 17.04 computer, I ended up doing steps of Robert Nelson for the linux part (eg the linux partition + Compil of Kernel) https://eewiki.net/display/linuxonarm/de0-nano-soc+kit

and followed the steps of WS 2 Linux Kernel Intro for Altera SoC devices for preloader + FAT partition (Quartus / Qsys + bsp-editor then make with u-boot.img and Device tree) https://rocketboards.org/foswiki/documentation/ws2linuxkernelintroductionforalterasocdevices

Almost working, but from initialization of the SD/MMC, I get this error all the time... Then boot is very long, and I don't have access to all functionalities of my Linux.

Very strange, because still lot of processes can start successfully (not all) and at the end (after 2mn), I can login to ubuntu installed.

The FPGA part is very simple, it comes from CD of DE0-Nano-Soc to... Make a led blink (FPGA Hello world).

Error starts here (first time it appears):

...

[ 4.239723] can: controller area network core (rev 20120528 abi 9)

[ 4.245936] NET: Registered protocol family 29

[ 4.250361] can: raw protocol (rev 20120528)

[ 4.254611] can: broadcast manager protocol (rev 20161123 t)

[ 4.260266] can: netlink gateway (rev 20130117) max_hops=1

[ 4.265917] 8021q: 802.1Q VLAN Support v1.8

[ 4.270114] Key type dns_resolver registered

[ 4.274433] ThumbEE CPU extension supported.

[ 4.278706] Registering SWP/SWPB emulation handler

[ 4.285760] Btrfs loaded, crc32c=crc32c-generic

[ 4.294464] Key type encrypted registered

[ 4.300019] hctosys: unable to open rtc device (rtc0)

[ 4.305096] of_cfs_init

[ 4.307608] of_cfs_init: OK

[ 4.310999] ttyS0 - failed to request DMA

[ 4.315153] Waiting for root device /dev/mmcblk0p2...

[ 4.424210] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 25000000Hz, actual 25000000HZ div = 4)

[ 4.434020] mmc0: new SDHC card at address aaaa

[ 4.439059] mmcblk0: mmc0:aaaa SL16G 14.8 GiB

[ 4.454123] mmcblk0: p1 p2 p3

[ 4.559859] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem

[ 4.684783] mmcblk0: error -110 sending status command, retrying

[ 4.690830] mmcblk0: error -115 sending stop command, original cmd response 0x900, card status 0x800b00

[ 4.700196] mmcblk0: error -110 transferring data, sector 5376, nr 264, cmd response 0x900, card status 0xb00

[ 4.734718] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 400000Hz, actual 400000HZ div = 250)

[ 4.831370] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 25000000Hz, actual 25000000HZ div = 4)

[ 5.054790] mmcblk0: error -110 sending status command, retrying

[ 5.060836] mmcblk0: error -115 sending stop command, original cmd response 0x900, card status 0x800b00

[ 5.070201] mmcblk0: error -110 transferring data, sector 5376, nr 264, cmd response 0x900, card status 0xb00

[ 5.080224] mmcblk0: retrying using single block read

[ 5.152175] random: fast init done

[ 5.504777] mmcblk0: error -110 sending status command, retrying

[ 5.510823] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x800b00

[ 5.520185] mmcblk0: error -110 transferring data, sector 9528, nr 168, cmd response 0x900, card status 0xb00

...

And I see it thousands of time until first login hint and even after having logged in. [ 121.020854] mmcblk0: error -110 transferring data, sector 2626856, nr 224, cmd response 0x900, card status 0xb00

[ 121.734839] mmcblk0: error -110 sending status command, retrying

[ 121.740901] mmcblk0: error -110 transferring data, sector 3533040, nr 184, cmd response 0x900, card status 0xb00

[ 122.084973] mmcblk0: error -110 sending status command, retrying

[ 122.091030] mmcblk0: error -110 transferring data, sector 3533040, nr 184, cmd response 0x900, card status 0xb00

^M

Ubuntu 16.04.2 LTS arm ttyS0

default username:password is [ubuntu:temppwd]

arm login: ^M

Ubuntu 16.04.2 LTS arm ttyS0

default username:password is [ubuntu:temppwd]

arm login: ubuntu^M

Password:

Last login: Sat Jun 10 23:03:19 UTC 2017 on ttyS0

Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.9.20-socfpga-r1 armv7l)

* Documentation: https://help.ubuntu.com

* Management: https://landscape.canonical.com

* Support: https://ubuntu.com/advantage

[ 261.585238] mmcblk0: error -110 sending status command, retrying

[ 261.591298] mmcblk0: error -110 transferring data, sector 4198680, nr 240, cmd response 0x900, card status 0xb00

[ 261.935231] mmcblk0: error -110 sending status command, retrying

[ 261.941290] mmcblk0: error -110 transferring data, sector 4198680, nr 240, cmd response 0x900, card status 0xb00

[ 262.485219] mmcblk0: error -110 sending status command, retrying

[ 262.491281] mmcblk0: error -110 transferring data, sector 2364672, nr 264, cmd response 0x900, card status 0xb00

[ 262.835214] mmcblk0: error -110 sending status command, retrying

[ 262.841271] mmcblk0: error -110 transferring data, sector 2364672, nr 264, cmd response 0x900, card status 0xb00

ubuntu@arm:~$

I know I'm in a very specific case, but maybe one of you will have the light about what's happening.

Thanks for help and suggestions !

1 Reply

  • DBurg3's avatar
    DBurg3
    Icon for New Contributor rankNew Contributor

    I had similar issues, my SDcard was not picked up. Turns out its a device tree issue with MMC controller.

    See here, looks like your prob too ... https://forum.rocketboards.org/t/linux-altera-4-12-failes-mmc-on-cyclonev-while-ltsi-does-not/1189

    I added the following : CycloneV dts.

    sdmmc_clk_divided: sdmmc_clk_divided {

    #clock-cells = <0>;

    compatible = "altr,socfpga-gate-clk";

    clocks = <&sdmmc_clk>;

    clk-gate = <0xa0 8>;

    fixed-divider = <4>;

    };

    and changed my sdmmc rntry a bit to this :

    hps_0_sdmmc: flash@0xff704000 {

    compatible = "altr,socfpga-dw-mshc";

    reg = <0xff704000 0x00001000>;

    resets = <&hps_0_rstmgr SDMMC_RESET>;

    interrupt-parent = <&hps_0_arm_gic_0>;

    interrupts = <0 139 IRQ_TYPE_LEVEL_HIGH>;

    //clocks = <&l4_mp_clk &sdmmc_clk>;

    clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>;

    clock-names = "biu", "ciu";

    fifo-depth = <1024>; /* embeddedsw.dts.params.fifo-depth type NUMBER */

    #address-cells = <1>;

    #size-cells = <0>;

    status = "okay"; /* embeddedsw.dts.params.status type STRING */

    broken-cd;

    bus-width = <4>;

    cap-mmc-highspeed;

    cap-sd-highspeed;

    }; //end flash@0xff704000 (hps_0_sdmmc)