[U-Boot] Initilize IDE prior environment

Heiko Schocher hs at denx.de
Fri Jun 23 04:10:26 UTC 2017


Hello,

Am 23.06.2017 um 01:49 schrieb Tom Rini:
> On Thu, Jun 22, 2017 at 10:05:48AM -0600, Simon Glass wrote:
>> Hi Bin,
>>
>> On 20 June 2017 at 17:19, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>
>>> +Simon
>>>
>>> On Wed, Jun 21, 2017 at 4:08 AM, Otavio Salvador
>>> <otavio.salvador at ossystems.com.br> wrote:
>>>> On Tue, Jun 20, 2017 at 2:42 PM, Tom Rini <trini at konsulko.com> wrote:
>>>>> On Mon, Jun 19, 2017 at 11:56:04AM -0300, Otavio Salvador wrote:
>>>>>
>>>>>> To allow the loading of environment from IDE (for example, using FAT)
>>>>>> the initilization of IDE subsystem must come before the environment
>>>>>> one.
>>>>>>
>>>>>> Successfully tested on QEMU x86.
>>>>>>
>>>>>> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
>>>>>> ---
>>>>>>
>>>>>>   common/board_r.c | 6 +++---
>>>>>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>>>>>
>>>>>> diff --git a/common/board_r.c b/common/board_r.c
>>>>>> index adc1f1937e..247a6668fc 100644
>>>>>> --- a/common/board_r.c
>>>>>> +++ b/common/board_r.c
>>>>>> @@ -806,6 +806,9 @@ static init_fnc_t init_sequence_r[] = {
>>>>>>   #ifdef CONFIG_MMC
>>>>>>        initr_mmc,
>>>>>>   #endif
>>>>>> +#if defined(CONFIG_IDE)
>>>>>> +     initr_ide,
>>>>>> +#endif
>>>>>>   #ifdef CONFIG_HAS_DATAFLASH
>>>>>>        initr_dataflash,
>>>>>>   #endif
>>>>>> @@ -878,9 +881,6 @@ static init_fnc_t init_sequence_r[] = {
>>>>>>   #if defined(CONFIG_CMD_PCMCIA) && !defined(CONFIG_IDE)
>>>>>>        initr_pcmcia,
>>>>>>   #endif
>>>>>> -#if defined(CONFIG_IDE)
>>>>>> -     initr_ide,
>>>>>> -#endif
>>>>>>   #ifdef CONFIG_LAST_STAGE_INIT
>>>>>>        INIT_FUNC_WATCHDOG_RESET
>>>>>>        /*
>>>>>
>>>>> Looking at the gap between these two areas, I see that we would
>>>>> initialize PCI between the two areas.  So there's probably boards with
>>>>> PCI IDE devices that'll regress if I take this now.  What's the answer?
>>>>> Long term, device model.  Short term?  Is there a specific upstream
>>>>> platform that you're seeing the problem or, or just custom / out of
>>>>> tree?
>>>
>>> I agree with Tom. Eventually we need convert IDE driver to driver model.
>>>
>>>>
>>>> I am using this with QEMU. I enabled environment inside FAT and it
>>>> needs the IDE fix so the environment is properly loaded.
>>>>
>>>
>>> With driver model, IDE driver can be probed when U-Boot tries to load
>>> environment from IDE.

Yup, that would be the best.

>>> For short term, not sure if we can accept this, Simon?
>>
>> If it does not break qemu and any platforms that use IDE (without PCI)
>> then I think it is fine.
>>
>> It probably is not much work to convert IDE to driver model. Less if
>> we can remove more users :-)
>
> So, I see configs with both CONFIG_IDE and CONFIG_PCI set, so I'm not
> going to take this patch.  We can move env on qemu easily enough I
> think.  Sorry.

May a short workaround ...
Why not loading an env.txt over ide after U-Boot is up and import it?

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list