All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hannes Schmelzer <hannes@schmelzer.or.at>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot, v5, 5/8] omap-common: SYS_BOOT-based fallback boot device selection for peripheral boot
Date: Tue, 25 Aug 2015 14:52:13 +0200	[thread overview]
Message-ID: <55DC64FD.8010808@schmelzer.or.at> (raw)
In-Reply-To: <1440505624.9743.19.camel@collins>

Hi Paul,
thanks for answer.

On 25.08.2015 14:27, Paul Kocialkowski wrote:
> Le mardi 25 ao?t 2015 ? 10:40 +0200, Schmelzer Hannes a ?crit :
>> Hi Paul, Tom,
>>
>> i am failing bring up my AM335x boards (tseries, kwb) with bare UART
>> connection since introducing this change.
> Does this mean that you're trying to get the device to load the full
> U-Boot binary over UART?
Yes i do so. On at least one BuR board this is the only possibility for 
very first startup.
Once U-Boot is loaded via UART we fetch the rest from TFTP and burn it 
into eMMC flash connected to MMC1.
>> For my understanding this function should be called allways if chip
>> has basically support for some BOOT_DEVICE_x  __AND__ there is no
>> implementation for it - the function should prevent target from
>> stalling with selecting another (hopefully working) boot-device.
>> Right ?
> This is a fallback mechanism that allows selecting the boot device from
> the SYS_BOOT pins when the U-Boot SPL was loaded from peripheral booting
> (USB or UART) by the bootrom and that the U-Boot SPL has no support for
> continuing boot through that same peripheral (USB or UART).
>
> It does require omap_sys_boot_device to be implemented for each platform
> (currently, only am33xx doesn't have a proper one). The point is that it
> selects another *memory* (read, not peripheral) boot device that the
> U-Boot SPL may be able to handle.
>
> In any case, it offers a way to *maybe* put the U-Boot SPL on the right
> track instead of being unable to boot at all.
Okay, i understand - this keeps track with my understanding.
>> I am not sure at this time how to deal with the facts ... i see
>> several possibilities:
>>
>> a)
>> i have to implement some "omap_sys_boot_device" function in my boards
>> - this would maybe sometimes comfortable but i think this is not
>> inventors mind. It would be more convenient to implement it in some
>> common place for AM335x or OMAP. But what do with the information
>> about SYS_BOOT pins ? they always represent a boot-order ... which
>> boot-device should it take ?
> That function is not supposed to be board-specific at all, but to be
> platform-specific. This is not the way to select the proper boot device,
> which is done by reading the boot info structure passed by the bootrom
> (first thing in omap-common/lowlevel_init.S).
>
>> b) and/or something is wrong with the #ifdef ... construct at line #67
>> -
>> In fact there is a problem with
>> defined(BOOT_DEVICE_USBETH) && !defined(CONFIG_SPL_USBETH_SUPPORT)
>>
>> basicaly BOOT_DEVICE_USBETH is defined in spl.h but in my
>> configuration there is no #define for CONFIG_SPL_USBETH_SUPPORT and so
>> the following switch/case calls in case of BOOT_DEVICE_UART this weak
>> function.
> If I got everything right, the bootrom is passing BOOT_DEVICE_UART as
> boot device, but you haven't selected CONFIG_SPL_YMODEM_SUPPORT. Thus,
> it falls back to asking omap_sys_boot_device, which is not implemented.
I don't think, there is everything right. Have a closer look to the #ifdef.

#if (defined(BOOT_DEVICE_UART) && !defined(CONFIG_SPL_YMODEM_SUPPORT)) || \
     (defined(BOOT_DEVICE_USB) && !defined(CONFIG_SPL_USB_SUPPORT)) || \
     (defined(BOOT_DEVICE_USBETH) && !defined(CONFIG_SPL_USBETH_SUPPORT))

I have enabled CONFIG_SPL_YMODEM_SUPPORT, look at bur_am335x_common.h.

> The real problem here is that you have not enabled support for loading
> the main U-Boot binary via UART, with CONFIG_SPL_YMODEM_SUPPORT.
>
> UART booting is unrelated to CONFIG_SPL_USBETH_SUPPORT.
No, due to the fact that defined(BOOT_DEVICE_USBETH) is allways true 
(spl.h) and i don't have
CONFIG_SPL_USBETH_SUPPORT enabled, the #ifdef above:

defined(BOOT_DEVICE_USBETH) && !defined(CONFIG_SPL_USBETH_SUPPORT)

becomes true and the followed switch/case does the rest.
>> further i think that this construct isn't complete yet, because it
>> wants to handle all peripheral booting on AM335x or OMAP in general.
>>
>> following peripherals are currently handled:
>>
>> BOOT_DEVICE_UART
>> BOOT_DEVICE_USB
>> BOOT_DEVICE_USBETH
>>
>> but there is also
>> BOOT_DEVICE_CPGMAC
>>
>> Summary i think this changeset isn't complete.
> Can the bootrom indicate that it booted from BOOT_DEVICE_CPGMAC?
> I haven't seen that and don't really know what it corresponds to. But if
> you think it is concerned by this fallback mechanism, you could add
> support for it. I only made this for the omap devices I have (and I
> don't have any am33xx board) and I didn't want to blindly implement too
> much for am33xx.
Yes, thats possible von AM335x.
I will have a close look if it is necessary to implement here some fallback.
But probably not, because the most likely case is that "full" U-Boot 
supports Ethernet and the SPL doesn't and not otherwise :-)


best regards,
Hannes

  reply	other threads:[~2015-08-25 12:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-15 14:02 [U-Boot] [PATCH v5 0/8] omap-common: Common boot code OMAP3 support and SYS_BOOT-based fallback boot device Paul Kocialkowski
2015-07-15 14:02 ` [U-Boot] [PATCH v5 1/8] omap-common: Common boot code OMAP3 support and cleanup Paul Kocialkowski
2015-07-28 14:58   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 2/8] omap: SPL boot devices cleanup and completion Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 3/8] omap-common: Boot device define instead of hardcoded value Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 4/8] siemens-am33x-common: Hardcoded value instead of non-included define Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 5/8] omap-common: SYS_BOOT-based fallback boot device selection for peripheral boot Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-08-25  8:40     ` Schmelzer Hannes
2015-08-25 12:27       ` Paul Kocialkowski
2015-08-25 12:52         ` Hannes Schmelzer [this message]
2015-08-25 14:44           ` Paul Kocialkowski
2015-07-15 14:02 ` [U-Boot] [PATCH v5 6/8] omap3: Definitions for SYS_BOOT-based fallback boot device selection Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 7/8] omap4: " Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-15 14:02 ` [U-Boot] [PATCH v5 8/8] omap5: " Paul Kocialkowski
2015-07-28 14:59   ` [U-Boot] [U-Boot, v5, " Tom Rini
2015-07-26 16:29 ` [U-Boot] [PATCH v5 0/8] omap-common: Common boot code OMAP3 support and SYS_BOOT-based fallback boot device Paul Kocialkowski

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=55DC64FD.8010808@schmelzer.or.at \
    --to=hannes@schmelzer.or.at \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.