[U-Boot] [PATCH 4/4] MIPS: call debug_uart_init right before board_init_f

Álvaro Fernández Rojas
2017-04-23T12:04:49Z

Hi Marek,

El 23/04/2017 a las 13:44, Marek Vasut escribió:
> On 04/23/2017 01:31 PM, Álvaro Fernández Rojas wrote:
>> Hi Marek,
>>
>> El 23/04/2017 a las 13:09, Marek Vasut escribió:
>>> On 04/23/2017 12:50 PM, Álvaro Fernández Rojas wrote:
>>>> From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>>>>
>>>> All MIPS boards that support debug uart are calling debug_uart_init right at
>>>> the beginning of board_early_init_f.
>>>> Instead of doing that, let's provide a generic call to debug_uart_init right
>>>> before the call to board_init_f if debug uart is enabled.
>>>>
>>>> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>>>> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
>>>> ---
>>>> arch/mips/cpu/start.S | 6 ++++++
>>>> 1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/arch/mips/cpu/start.S b/arch/mips/cpu/start.S
>>>> index 6740fdf..f7dee81 100644
>>>> --- a/arch/mips/cpu/start.S
>>>> +++ b/arch/mips/cpu/start.S
>>>> @@ -265,6 +265,12 @@ wr_done:
>>>> setup_stack_gd
>>>> #endif
>>>>
>>>> +#ifdef CONFIG_DEBUG_UART
>>>> + PTR_LA t9, debug_uart_init
>>>
>>> This should be called from C code somewhere, in fact, doesn't SPL's
>>> common code call debug_uart_init already ?
>>
>> Why should this be called from C code?
>
> Because the less stuff we have in assembler the better.
... or not.

>
>> BTW, I don't think that SPL common code calls debug_uart_init.
>
> That's where it would make sense, grepping through the source indicates
> a lot of boards call this from their spl code. Also, you enter
> board_init_f right below, so you can start there ...
Actually I was going to do that and Daniel suggested otherwise :)
https://lists.denx.de/pipermail/u-boot/2017-April/287388.html
---
I think we should move this to MIPS start.S to support this for all MIPS
boards in a generic way. Puttings following code between
'setup_stack_gd' and the jump to 'board_init_f' should work:

#ifdef CONFIG_DEBUG_UART
PTR_LA t9, debug_uart_init
jalr t9
nop
#endif
---
BTW, like Daniel I also think this is the proper way to go.

>
>>>
>>>> + jalr t9
>>>> + nop
>>>> +#endif
>>>> +
>>>> move a0, zero # a0 <-- boot_flags = 0
>>>> PTR_LA t9, board_init_f
>>>>
>>>>
>>>
>>>
>>
>> Regards,
>> Álvaro.
>>
>
>

Regards,
Álvaro.