[PATCH] arm: rpi: explicitly enumerate mmc boot targets

Peter Robinson pbrobinson at gmail.com
Tue Oct 10 12:39:34 CEST 2023


On Sun, Oct 8, 2023 at 11:32 PM Ben Wolsieffer <benwolsieffer at gmail.com> wrote:
>
> Hi Peter,
>
> On Sun, Oct 08, 2023 at 07:21:57PM +0100, Peter Robinson wrote:
> > On Sat, Oct 7, 2023 at 4:55 PM Ben Wolsieffer <benwolsieffer at gmail.com> wrote:
> > >
> > > Using the unqualified "mmc" boot target causes the Raspberry Pi 4 to
> > > fail to boot. c771e5b explains this approach as follows:
> > >
> > > > We don't need to specify the mmc devices individually, since they are
> > > > used in order from 0 to 2, and standard boot uses that order anyway.
> > >
> > > In practice, U-Boot first attempts to boot from the unconnected mmc1
> > > interface, and, when this fails, moves on to attempt the USB and network
> > > boot targets rather than trying mmc0.
> >
> > Really? It shouldn't be enumerating it if it's not defined in device
> > tree, I've not seen this in my testing.
>
> It does seem odd, but U-Boot definitely sees two MMC interfaces:
>
> U-Boot> mmc list
> mmcnr at 7e300000: 1
> mmc at 7e340000: 0 (SD)

The WiFi interface is connected by SDHCI/SDIO which AFAICT is the
first interface.

> >
> > > This patch explicitly enumerates the mmc interfaces, causing each to be
> > > attempted in turn. This matches what is done on other boards, and allows
> > > the system to boot successfully.
> > >
> > > Fixes: c771e5b8c2 ("arm: rpi: Switch to standard boot")
> > > Signed-off-by: Ben Wolsieffer <benwolsieffer at gmail.com>
> > > ---
> > >  board/raspberrypi/rpi/rpi.env | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env
> > > index 30228285ed..02210b97b5 100644
> > > --- a/board/raspberrypi/rpi/rpi.env
> > > +++ b/board/raspberrypi/rpi/rpi.env
> > > @@ -74,4 +74,4 @@ pxefile_addr_r=0x02500000
> > >  fdt_addr_r=0x02600000
> > >  ramdisk_addr_r=0x02700000
> > >
> > > -boot_targets=mmc usb pxe dhcp
> > > +boot_targets=mmc0 mmc1 mmc2 usb pxe dhcp
> >
> > Why are you adding mmc1 and mmc2 if they're not connected?
>
> I was trying to match the old distro boot behavior, which had three MMC
> interfaces listed.


More information about the U-Boot mailing list