diff mbox series

[U-Boot] imx: mx7: Add support for USB boot mode

Message ID 1503871461-18667-1-git-send-email-eric@nelint.com
State Superseded
Delegated to: Stefano Babic
Headers show
Series [U-Boot] imx: mx7: Add support for USB boot mode | expand

Commit Message

Eric Nelson Aug. 27, 2017, 10:04 p.m. UTC
This adds support for USB boot mode on the i.MX7D SoC, which
is most useful when doing U-Boot development on this chip.

i.e., it enables you to enter the ROM boot loader's serial
download protocol using the command:

=> bmode usb

Signed-off-by: Eric Nelson <eric@nelint.com>
---
 arch/arm/mach-imx/mx7/soc.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Troy Kisky Aug. 28, 2017, 4:42 p.m. UTC | #1
On 8/27/2017 3:04 PM, Eric Nelson wrote:
> This adds support for USB boot mode on the i.MX7D SoC, which
> is most useful when doing U-Boot development on this chip.
> 
> i.e., it enables you to enter the ROM boot loader's serial
> download protocol using the command:
> 
> => bmode usb
> 
> Signed-off-by: Eric Nelson <eric@nelint.com>
> ---
>  arch/arm/mach-imx/mx7/soc.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
> index 87bf105..63ee59f 100644
> --- a/arch/arm/mach-imx/mx7/soc.c
> +++ b/arch/arm/mach-imx/mx7/soc.c
> @@ -372,6 +372,8 @@ void set_wdog_reset(struct wdog_regs *wdog)
>   * to SBMR1, which will determine the boot device.
>   */
>  const struct boot_mode soc_boot_modes[] = {

You might want to add

+       {"normal",      MAKE_CFGVAL(0x00, 0x00, 0x00, 0x00)},


while you're at it, to undo with "bmode normal"

> +	{"usb",		MAKE_CFGVAL(0x01, 0x00, 0x00, 0x00)},
> +
>  	{"ecspi1:0",	MAKE_CFGVAL(0x00, 0x60, 0x00, 0x00)},
>  	{"ecspi1:1",	MAKE_CFGVAL(0x40, 0x62, 0x00, 0x00)},
>  	{"ecspi1:2",	MAKE_CFGVAL(0x80, 0x64, 0x00, 0x00)},
> 

Reviewed-by: Troy Kisky <troy.kisky@boundarydevices.com>
Eric Nelson Aug. 29, 2017, 2:37 p.m. UTC | #2
Hi Troy,

On 08/28/2017 09:42 AM, Troy Kisky wrote:
> On 8/27/2017 3:04 PM, Eric Nelson wrote:
>> This adds support for USB boot mode on the i.MX7D SoC, which
>> is most useful when doing U-Boot development on this chip.
>>
>> i.e., it enables you to enter the ROM boot loader's serial
>> download protocol using the command:
>>
>> => bmode usb
>>
>> Signed-off-by: Eric Nelson <eric@nelint.com>
>> ---
>>   arch/arm/mach-imx/mx7/soc.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
>> index 87bf105..63ee59f 100644
>> --- a/arch/arm/mach-imx/mx7/soc.c
>> +++ b/arch/arm/mach-imx/mx7/soc.c
>> @@ -372,6 +372,8 @@ void set_wdog_reset(struct wdog_regs *wdog)
>>    * to SBMR1, which will determine the boot device.
>>    */
>>   const struct boot_mode soc_boot_modes[] = {
> 
> You might want to add
> 
> +       {"normal",      MAKE_CFGVAL(0x00, 0x00, 0x00, 0x00)},
> 
> 
> while you're at it, to undo with "bmode normal"
> 

Normal, meaning "don't override"?

Why would you want to do this?

Please advise,


Eric
Troy Kisky Aug. 29, 2017, 6:55 p.m. UTC | #3
On 8/29/2017 7:37 AM, Eric Nelson wrote:
> Hi Troy,
> 
> On 08/28/2017 09:42 AM, Troy Kisky wrote:
>> On 8/27/2017 3:04 PM, Eric Nelson wrote:
>>> This adds support for USB boot mode on the i.MX7D SoC, which
>>> is most useful when doing U-Boot development on this chip.
>>>
>>> i.e., it enables you to enter the ROM boot loader's serial
>>> download protocol using the command:
>>>
>>> => bmode usb
>>>
>>> Signed-off-by: Eric Nelson <eric@nelint.com>
>>> ---
>>>   arch/arm/mach-imx/mx7/soc.c | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
>>> index 87bf105..63ee59f 100644
>>> --- a/arch/arm/mach-imx/mx7/soc.c
>>> +++ b/arch/arm/mach-imx/mx7/soc.c
>>> @@ -372,6 +372,8 @@ void set_wdog_reset(struct wdog_regs *wdog)
>>>    * to SBMR1, which will determine the boot device.
>>>    */
>>>   const struct boot_mode soc_boot_modes[] = {
>>
>> You might want to add
>>
>> +       {"normal",      MAKE_CFGVAL(0x00, 0x00, 0x00, 0x00)},
>>
>>
>> while you're at it, to undo with "bmode normal"
>>
> 
> Normal, meaning "don't override"?
> 
> Why would you want to do this?
> 
> Please advise,

Hi Eric!


If you do "bmode usb" and then use "imx_usb" to load a new u-boot.
You may want to do "bmode normal", so that a watchdog reset from
the linux kernel or from u-boot will work as expected, instead of
starting the ROM USB downloader again.

BR

Troy
Eric Nelson Aug. 30, 2017, 2:13 p.m. UTC | #4
Hi Troy,

On 08/29/2017 11:55 AM, Troy Kisky wrote:
> On 8/29/2017 7:37 AM, Eric Nelson wrote:
>> Hi Troy,
>>
>> On 08/28/2017 09:42 AM, Troy Kisky wrote:
>>> On 8/27/2017 3:04 PM, Eric Nelson wrote:
>>>> This adds support for USB boot mode on the i.MX7D SoC, which
>>>> is most useful when doing U-Boot development on this chip.
>>>>
>>>> i.e., it enables you to enter the ROM boot loader's serial
>>>> download protocol using the command:
>>>>
>>>> => bmode usb
>>>>
>>>> Signed-off-by: Eric Nelson <eric@nelint.com>
>>>> ---
>>>>    arch/arm/mach-imx/mx7/soc.c | 2 ++
>>>>    1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
>>>> index 87bf105..63ee59f 100644
>>>> --- a/arch/arm/mach-imx/mx7/soc.c
>>>> +++ b/arch/arm/mach-imx/mx7/soc.c
>>>> @@ -372,6 +372,8 @@ void set_wdog_reset(struct wdog_regs *wdog)
>>>>     * to SBMR1, which will determine the boot device.
>>>>     */
>>>>    const struct boot_mode soc_boot_modes[] = {
>>>
>>> You might want to add
>>>
>>> +       {"normal",      MAKE_CFGVAL(0x00, 0x00, 0x00, 0x00)},
>>>
>>>
>>> while you're at it, to undo with "bmode normal"
>>>
>>
>> Normal, meaning "don't override"?
>>
>> Why would you want to do this?
>>
>> Please advise,
> 
> Hi Eric!
> 
> 
> If you do "bmode usb" and then use "imx_usb" to load a new u-boot.
> You may want to do "bmode normal", so that a watchdog reset from
> the linux kernel or from u-boot will work as expected, instead of
> starting the ROM USB downloader again.
> 

Got it.

It keeps you from reaching for the power or reset button after
using "bmode usb" or somesuch.

I'll ship a V2 momentarily.

Regards,


Eric
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
index 87bf105..63ee59f 100644
--- a/arch/arm/mach-imx/mx7/soc.c
+++ b/arch/arm/mach-imx/mx7/soc.c
@@ -372,6 +372,8 @@  void set_wdog_reset(struct wdog_regs *wdog)
  * to SBMR1, which will determine the boot device.
  */
 const struct boot_mode soc_boot_modes[] = {
+	{"usb",		MAKE_CFGVAL(0x01, 0x00, 0x00, 0x00)},
+
 	{"ecspi1:0",	MAKE_CFGVAL(0x00, 0x60, 0x00, 0x00)},
 	{"ecspi1:1",	MAKE_CFGVAL(0x40, 0x62, 0x00, 0x00)},
 	{"ecspi1:2",	MAKE_CFGVAL(0x80, 0x64, 0x00, 0x00)},