← Back to team overview

linaro-release team mailing list archive

[Bug 839541] Re: mx51evk can't find rootfs by UUID, LABEL or device node, then drop to initramfs

 

This problem has prevented working releases for Linaro 2011.07 and 08 so
it would be great to have this fixed for 09.

I believe the problem here is that the mmc driver is not getting
initialized.  If I understand things correctly, there are two possible
ways for this driver to get probed.  It either needs to be a platform
driver CONFIG_MMC_SDHCI_PLTFM or an OpenFirmware driver
CONFIG_MMC_SDHCI_OF_ESDHC.

If I enable CONFIG_MMC_SDHCI_PLTFM I get a build error:
  LD      .tmp_vmlinux1
drivers/built-in.o:(.rodata+0xfa74): undefined reference to `sdhci_tegra_dt_pdata'
make[2]: *** [.tmp_vmlinux1] Error 1
make[1]: *** [sub-make] Error 2

Which when I poke around seems to be caused by the fact that the platform case really only works for tegra at the moment.  Here is a snippet from drivers/mmc/host/sdhci-pltfm.c:
#if defined(CONFIG_OF)
#include <linux/of_device.h>
static const struct of_device_id sdhci_dt_ids[] = {
	{ .compatible = "nvidia,tegra20-sdhci", .data = &sdhci_tegra_dt_pdata },
	{ }
};
MODULE_DEVICE_TABLE(platform, sdhci_dt_ids);

static const struct of_device_id *sdhci_get_of_device_id(struct platform_device *pdev)
{
	return of_match_device(sdhci_dt_ids, &pdev->dev);
}
#else
#define sdhci_dt_ids NULL
static inline struct of_device_id *sdhci_get_of_device_id(struct platform_device *pdev)
{
	return NULL;
}
#endif

For the OpenFirmware case case to work the device needs a node in the
device tree.  However the device tree for imx51 is pretty much empty:

/*
 * Copyright 2011 Linaro Ltd.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "skeleton.dtsi"

/ {
	model = "Freescale i.MX51 Babbage";
	compatible = "fsl,mx51-babbage", "fsl,mx51";

	memory {
		reg = <0x90000000 0x20000000>;
	};
};

** Also affects: linaro-landing-team-freescale
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Linaro
Release Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/839541

Title:
  mx51evk can't find rootfs by UUID, LABEL or device node, then drop to
  initramfs

Status in Linaro Freescale Landing Team Project:
  New
Status in “linux-linaro-mx51” package in Ubuntu:
  Confirmed

Bug description:
  Use an old uboot to bootup, find UUID, LABEL, device node rootfs can't
  be found.

  Environment:
  11.08 release

  Log:

  Begin: Running /scripts/init-premount ... done.
  Begin: Mounting root file system ... [    1.637092] hub 1-1:1.0: USB hub found
  [    1.699904] hub 1-1:1.0: 7 ports detected
  Begin: Running /scripts/local-top ... done.
  [    4.935483] usb 1-1.6: new high speed USB device number 3 using mxc-ehci
  Gave up waiting for root device.  Common problems:
   - Boot args (cat /proc/cmdline)
     - Check rootdelay= (did the system wait long enough?)
     - Check root= (did the system wait for the right device?)
   - Missing modules (cat /proc/modules; ls /dev)
  ALERT!  /dev/disk/by-uuid/1146c852-2afa-443a-93cf-015a33ec3b10 does not exist.  Dropping to a shell!

  
  BusyBox v1.17.1 (Ubuntu 1:1.17.1-10ubuntu1) built-in shell (ash)
  Enter 'help' for a list of built-in commands.

  (initramfs)

To manage notifications about this bug go to:
https://bugs.launchpad.net/linaro-landing-team-freescale/+bug/839541/+subscriptions