public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot, v2] env: mmc/fat/ext4: make sure that the MMC sub-system is initialized before using it
Date: Wed, 28 Feb 2018 10:08:46 +0100	[thread overview]
Message-ID: <20180228100846.2f7ec7b7@jawa> (raw)
In-Reply-To: <9f9d9641-5f71-d15c-6e5d-d37645ab8d6a@ti.com>

On Mon, 26 Feb 2018 19:59:46 +0530
Faiz Abbas <faiz_abbas@ti.com> wrote:

> Hi,
> 
> On Sunday 25 February 2018 07:18 PM, Tom Rini wrote:
> > On Sun, Feb 25, 2018 at 09:53:10AM +0100, Wolfgang Denk wrote:  
> >> Dear Tom Rini,
> >>
> >> In message <20180224215325.GQ4311@bill-the-cat> you wrote:  
> >>>  
> >>>> Why do you ignore this NAK, and why do you add this patch so
> >>>> late in the release cycle anyway?  
> >>>
> >>> Sorry, didn't v2 address your concerns?  We don't initialize the
> >>> device because maybe we'll have env there, we initalize mmc
> >>> because we need to check that it is there.  Thanks!  
> >>
> >> No, it does not.  As is, we initialize MMC in the EXT4 code (in
> >> env_ext4_load()). If we go that route, we would have to add similar
> >> init calls to all other file systemn load routines as well.
> >>
> >> This does not make sense to me.  This pollutes the code with
> >> unrelated things - file system code should not depend on any
> >> underlaying driver suport.  It increases code size, makes the code
> >> harder to maintain (if you need to change this, there is good
> >> chances to forget the same change in other file systems), and there
> >> is a good chance that in the end you will initialzie MMC even if
> >> you don't use it.
> >>
> >> We should keep the code clean and orthogonal.  Driver init code has
> >> no place in file system code.
> >>
> >> If needed, the drivers have to make sure to auto--initialize on
> >> first access.
> >>
> >> I hold my NAK on this patch.  It is the wrong thing to do.  
> > 
> > I think you have this a little bit wrong.  But, it's also where we
> > are with the DM conversion.  This _is_ the first place we're trying
> > to access the MMC.  And it's not in the filesystem code, it's in the
> > environment code.
> > 
> > That said, Faiz, what exactly is the failure sequence (and
> > hardware)? Thanks!
> >  
> 
> 
> The failure happens in SPL when booting from a non-MMC device (say
> NAND) and environment is in MMC. I have seen it in am335x_evm (with
> NAND and ethernet boot mode) and in dra7xx_evm (with qspi boot mode).
> 
> The failure sequence is as follows:
> 
> 1. spl_start_uboot() in the appropriate board file calls env_load().

Just out of curiosity - is the env_load() preceded with env_init() ?

Maybe env_init() is the place to resolve the issue with eMMC
init (to call board_mmc_init() for SPL) ?



> 
> 2. Since ENV_IS_IN_FAT and CONFIG_ENV_FAT_INTERFACE=mmc,
> env_fat_load() eventually leads to a call to find_mmc_device() in
> drivers/mmc/mmc_legacy.c or mmc-uclass.c
> 
> 3. Since the mmc devices have not been probed (by a call to
> mmc_initialize()), SPL is not able to get the environment and I get
> this warning message:
> 
> *** Warning - No MMC card found, using default environment
> 
> 
> Note: In case of legacy mode (CONFIG_BLK is not enabled), SPL crashes
> because of dereferencing a NULL pointer (mmc_devices) in
> find_mmc_device().
> 
> 
> Thanks,
> Faiz
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180228/3324f292/attachment.sig>

  reply	other threads:[~2018-02-28  9:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-12 13:54 [U-Boot] [PATCH v2] env: mmc/fat/ext4: make sure that the MMC sub-system is initialized before using it Faiz Abbas
2018-02-19  5:32 ` Faiz Abbas
2018-02-20 22:03 ` [U-Boot] [U-Boot, " Tom Rini
2018-02-24 20:58   ` Wolfgang Denk
2018-02-24 21:53     ` Tom Rini
2018-02-25  8:53       ` Wolfgang Denk
2018-02-25 13:48         ` Tom Rini
2018-02-25 14:50           ` Wolfgang Denk
2018-02-25 18:35             ` Tom Rini
2018-02-25 15:18           ` Lukasz Majewski
2018-02-25 17:38             ` Wolfgang Denk
2018-02-26 14:29           ` Faiz Abbas
2018-02-28  9:08             ` Lukasz Majewski [this message]
2018-03-05  9:59               ` Faiz Abbas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180228100846.2f7ec7b7@jawa \
    --to=lukma@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox