public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
@ 2017-09-12 23:54 Stefan Agner
  2017-09-12 23:54 ` [U-Boot] [PATCH v3 2/2] imx_common: detect USB serial downloader reliably Stefan Agner
  2017-09-13  0:30 ` [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Eric Nelson
  0 siblings, 2 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-12 23:54 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

This macro allows to detect whether the USB PHY is active. This
is helpful to detect if the boot ROM has previously started the
USB serial downloader.

The idea is taken from the mfgtool support in the NXP U-Boot:
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
---

Changes in v3: None
Changes in v2:
- Move macro to sys_proto.h
- Renamed from is_boot_from_usb() to is_usbphy_active()
- Use defines for register offset and field
- Remove tab after define
- Remove comment since the actual "magic" is happening and
  documented at usage side

 arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
index 14f5d948c9..9d4b1d6768 100644
--- a/arch/arm/include/asm/arch-mx6/sys_proto.h
+++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
@@ -6,3 +6,10 @@
  */
 
 #include <asm/mach-imx/sys_proto.h>
+
+#define USBPHY_PWD		0x00000000
+
+#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
+
+#define is_usbphy_active(void)	(!(readl(USB_PHY0_BASE_ADDR + USBPHY_PWD) & \
+				   USBPHY_PWD_RXPWDRX))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 2/2] imx_common: detect USB serial downloader reliably
  2017-09-12 23:54 [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Stefan Agner
@ 2017-09-12 23:54 ` Stefan Agner
  2017-09-13  0:30 ` [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Eric Nelson
  1 sibling, 0 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-12 23:54 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

The current mechanism using SCR/GPR registers work well when
the serial downloader boot mode has been selected explicitly
(either via boot mode pins or using bmode command). However,
in case the system entered boot ROM due to unbootable primary
boot devices (e.g. empty eMMC), the SPL fails to detect that
it has been downloaded through serial loader and tries to
continue booting from eMMC:
  Trying to boot from MMC1
  mmc_load_image_raw_sector: mmc block read error
  SPL: failed to boot from all boot devices
  ### ERROR ### Please RESET the board ###

The only known way to reliably detect USB serial downloader
is by checking the USB PHY receiver block power state...

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
---

Changes in v3:
- Fix spelling and grammar

Changes in v2:
- Add comment that we infer boot ROM behavior from USB PHY state

 arch/arm/mach-imx/spl.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
index 258578ac25..522ab9f260 100644
--- a/arch/arm/mach-imx/spl.c
+++ b/arch/arm/mach-imx/spl.c
@@ -31,6 +31,18 @@ u32 spl_boot_device(void)
 	if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */
 		return BOOT_DEVICE_BOARD;
 
+	/*
+	 * The above method does not detect that the boot ROM used
+	 * serial downloader in case the boot ROM decided to use the
+	 * serial downloader as a fall back (primary boot source failed).
+	 *
+	 * Infer that the boot ROM used the USB serial downloader by
+	 * checking whether the USB PHY is currently active... This
+	 * assumes that SPL did not (yet) initialize the USB PHY...
+	 */
+	if (is_usbphy_active())
+		return BOOT_DEVICE_BOARD;
+
 	/* BOOT_CFG1[7:4] - see IMX6DQRM Table 8-8 */
 	switch ((reg & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) {
 	 /* EIM: See 8.5.1, Table 8-9 */
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-12 23:54 [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Stefan Agner
  2017-09-12 23:54 ` [U-Boot] [PATCH v3 2/2] imx_common: detect USB serial downloader reliably Stefan Agner
@ 2017-09-13  0:30 ` Eric Nelson
  2017-09-13  9:19   ` Stefano Babic
  1 sibling, 1 reply; 12+ messages in thread
From: Eric Nelson @ 2017-09-13  0:30 UTC (permalink / raw)
  To: u-boot

Hi Stefan,

I hate to be fussy about this, but I don't think I saw a reply
to my earlier comment about the term "USB PHY".

https://lists.denx.de/pipermail/u-boot/2017-September/305123.html

Since i.MX6 SoCs have USB **Host** Phy's as well as the USB OTG Phy,
this patch is a bit misleading.

There's no reference to OTG anywhere in this or patch 2.

On 09/12/2017 04:54 PM, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
> 
> This macro allows to detect whether the USB PHY is active. This
> is helpful to detect if the boot ROM has previously started the
> USB serial downloader.
> 
> The idea is taken from the mfgtool support in the NXP U-Boot:
> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
> 
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
> - Move macro to sys_proto.h
> - Renamed from is_boot_from_usb() to is_usbphy_active()
> - Use defines for register offset and field
> - Remove tab after define
> - Remove comment since the actual "magic" is happening and
>    documented at usage side
> 
>   arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
> index 14f5d948c9..9d4b1d6768 100644
> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
> @@ -6,3 +6,10 @@
>    */
>   
>   #include <asm/mach-imx/sys_proto.h>
> +
> +#define USBPHY_PWD		0x00000000
> +
> +#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
> +
> +#define is_usbphy_active(void)	(!(readl(USB_PHY0_BASE_ADDR + USBPHY_PWD) & \
> +				   USBPHY_PWD_RXPWDRX))
> 

Regards,


Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13  0:30 ` [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Eric Nelson
@ 2017-09-13  9:19   ` Stefano Babic
  2017-09-13 19:47     ` Stefan Agner
  0 siblings, 1 reply; 12+ messages in thread
From: Stefano Babic @ 2017-09-13  9:19 UTC (permalink / raw)
  To: u-boot

Hi Eric, Stefan,

On 13/09/2017 02:30, Eric Nelson wrote:
> Hi Stefan,
> 
> I hate to be fussy about this, but I don't think I saw a reply
> to my earlier comment about the term "USB PHY".
> 
> https://lists.denx.de/pipermail/u-boot/2017-September/305123.html
> 
> Since i.MX6 SoCs have USB **Host** Phy's as well as the USB OTG Phy,
> this patch is a bit misleading.
> 
> There's no reference to OTG anywhere in this or patch 2.
> 

To be consistent with the names, Eric is right. We have PHY0 for OTG and
PHY1 for Host. If you still want to use as name is_usbphy_active, then
this should take as parameter the phy number, or you switch to a "otg"
name to ensure that it is only for the OTG interface.

Best regards,
Stefano

> On 09/12/2017 04:54 PM, Stefan Agner wrote:
>> From: Stefan Agner <stefan.agner@toradex.com>
>>
>> This macro allows to detect whether the USB PHY is active. This
>> is helpful to detect if the boot ROM has previously started the
>> USB serial downloader.
>>
>> The idea is taken from the mfgtool support in the NXP U-Boot:
>> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
>>
>>
>> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
>> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
>> ---
>>
>> Changes in v3: None
>> Changes in v2:
>> - Move macro to sys_proto.h
>> - Renamed from is_boot_from_usb() to is_usbphy_active()
>> - Use defines for register offset and field
>> - Remove tab after define
>> - Remove comment since the actual "magic" is happening and
>>    documented at usage side
>>
>>   arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h
>> b/arch/arm/include/asm/arch-mx6/sys_proto.h
>> index 14f5d948c9..9d4b1d6768 100644
>> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
>> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
>> @@ -6,3 +6,10 @@
>>    */
>>     #include <asm/mach-imx/sys_proto.h>
>> +
>> +#define USBPHY_PWD        0x00000000
>> +
>> +#define USBPHY_PWD_RXPWDRX    (1 << 20) /* receiver block power down */
>> +
>> +#define is_usbphy_active(void)    (!(readl(USB_PHY0_BASE_ADDR +
>> USBPHY_PWD) & \
>> +                   USBPHY_PWD_RXPWDRX))
>>
> 
> Regards,
> 
> 
> Eric


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13  9:19   ` Stefano Babic
@ 2017-09-13 19:47     ` Stefan Agner
  2017-09-13 21:07       ` Fabio Estevam
  2017-09-13 21:14       ` Eric Nelson
  0 siblings, 2 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-13 19:47 UTC (permalink / raw)
  To: u-boot

On 2017-09-13 02:19, Stefano Babic wrote:
> Hi Eric, Stefan,
> 
> On 13/09/2017 02:30, Eric Nelson wrote:
>> Hi Stefan,
>>
>> I hate to be fussy about this, but I don't think I saw a reply
>> to my earlier comment about the term "USB PHY".
>>
>> https://lists.denx.de/pipermail/u-boot/2017-September/305123.html
>>
>> Since i.MX6 SoCs have USB **Host** Phy's as well as the USB OTG Phy,
>> this patch is a bit misleading.
>>
>> There's no reference to OTG anywhere in this or patch 2.
>>

Hm, sorry I missed that.

> 
> To be consistent with the names, Eric is right. We have PHY0 for OTG and
> PHY1 for Host. If you still want to use as name is_usbphy_active, then
> this should take as parameter the phy number, or you switch to a "otg"
> name to ensure that it is only for the OTG interface.

For the registers itself I followed the notation used in chapter 66 and
arch/arm/include/asm/arch-mx6/imx-regs.h.

Renaming the function macro makes sense I agree.

The USB serial downloader only works with the OTG USB PHY anyway, so I
will rename it. I like to have USB still in there, how about:

is_usbotg_phy_active()

--
Stefan

> 
> Best regards,
> Stefano
> 
>> On 09/12/2017 04:54 PM, Stefan Agner wrote:
>>> From: Stefan Agner <stefan.agner@toradex.com>
>>>
>>> This macro allows to detect whether the USB PHY is active. This
>>> is helpful to detect if the boot ROM has previously started the
>>> USB serial downloader.
>>>
>>> The idea is taken from the mfgtool support in the NXP U-Boot:
>>> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
>>>
>>>
>>> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
>>> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>>> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
>>> ---
>>>
>>> Changes in v3: None
>>> Changes in v2:
>>> - Move macro to sys_proto.h
>>> - Renamed from is_boot_from_usb() to is_usbphy_active()
>>> - Use defines for register offset and field
>>> - Remove tab after define
>>> - Remove comment since the actual "magic" is happening and
>>>    documented at usage side
>>>
>>>   arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>>>   1 file changed, 7 insertions(+)
>>>
>>> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h
>>> b/arch/arm/include/asm/arch-mx6/sys_proto.h
>>> index 14f5d948c9..9d4b1d6768 100644
>>> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
>>> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
>>> @@ -6,3 +6,10 @@
>>>    */
>>>     #include <asm/mach-imx/sys_proto.h>
>>> +
>>> +#define USBPHY_PWD        0x00000000
>>> +
>>> +#define USBPHY_PWD_RXPWDRX    (1 << 20) /* receiver block power down */
>>> +
>>> +#define is_usbphy_active(void)    (!(readl(USB_PHY0_BASE_ADDR +
>>> USBPHY_PWD) & \
>>> +                   USBPHY_PWD_RXPWDRX))
>>>
>>
>> Regards,
>>
>>
>> Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13 19:47     ` Stefan Agner
@ 2017-09-13 21:07       ` Fabio Estevam
  2017-09-13 21:14       ` Eric Nelson
  1 sibling, 0 replies; 12+ messages in thread
From: Fabio Estevam @ 2017-09-13 21:07 UTC (permalink / raw)
  To: u-boot

On Wed, Sep 13, 2017 at 4:47 PM, Stefan Agner <stefan@agner.ch> wrote:

> The USB serial downloader only works with the OTG USB PHY anyway, so I
> will rename it. I like to have USB still in there, how about:
>
> is_usbotg_phy_active()

Looks fine. Please send a v4 with it and we should be good :-)

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13 19:47     ` Stefan Agner
  2017-09-13 21:07       ` Fabio Estevam
@ 2017-09-13 21:14       ` Eric Nelson
  1 sibling, 0 replies; 12+ messages in thread
From: Eric Nelson @ 2017-09-13 21:14 UTC (permalink / raw)
  To: u-boot

Hi Stefan,

On 09/13/2017 12:47 PM, Stefan Agner wrote:
> On 2017-09-13 02:19, Stefano Babic wrote:
>> Hi Eric, Stefan,
>>
>> On 13/09/2017 02:30, Eric Nelson wrote:
>>> Hi Stefan,
>>>
>>> I hate to be fussy about this, but I don't think I saw a reply
>>> to my earlier comment about the term "USB PHY".
>>>
>>> https://lists.denx.de/pipermail/u-boot/2017-September/305123.html
>>>
>>> Since i.MX6 SoCs have USB **Host** Phy's as well as the USB OTG Phy,
>>> this patch is a bit misleading.
>>>
>>> There's no reference to OTG anywhere in this or patch 2.
>>>
> 
> Hm, sorry I missed that.
> 
No worries. We're here to nag...

>>
>> To be consistent with the names, Eric is right. We have PHY0 for OTG and
>> PHY1 for Host. If you still want to use as name is_usbphy_active, then
>> this should take as parameter the phy number, or you switch to a "otg"
>> name to ensure that it is only for the OTG interface.
> 
> For the registers itself I followed the notation used in chapter 66 and
> arch/arm/include/asm/arch-mx6/imx-regs.h.
> 
> Renaming the function macro makes sense I agree.
> 
> The USB serial downloader only works with the OTG USB PHY anyway, so I
> will rename it. I like to have USB still in there, how about:
> 
> is_usbotg_phy_active()
> 

Perfect.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13 21:29 Stefan Agner
@ 2017-09-13 21:28 ` Stefan Agner
  2017-09-14  5:23 ` Eric Nelson
  2017-09-20 13:36 ` Stefano Babic
  2 siblings, 0 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-13 21:28 UTC (permalink / raw)
  To: u-boot

Sorry, the subject should have been v4.

--
Stefan

On 2017-09-13 14:29, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
> 
> This macro allows to detect whether the USB PHY is active. This
> is helpful to detect if the boot ROM has previously started the
> USB serial downloader.
> 
> The idea is taken from the mfgtool support in the NXP U-Boot:
> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
> 
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> 
> Changes in v4:
> - Rename macro to is_usbotg_phy_active()
> 
> Changes in v3: None
> Changes in v2:
> - Move macro to sys_proto.h
> - Renamed from is_boot_from_usb() to is_usbphy_active()
> - Use defines for register offset and field
> - Remove tab after define
> - Remove comment since the actual "magic" is happening and
>   documented at usage side
> 
>  arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h
> b/arch/arm/include/asm/arch-mx6/sys_proto.h
> index 14f5d948c9..ba73943260 100644
> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
> @@ -6,3 +6,10 @@
>   */
>  
>  #include <asm/mach-imx/sys_proto.h>
> +
> +#define USBPHY_PWD		0x00000000
> +
> +#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
> +
> +#define is_usbotg_phy_active(void) (!(readl(USB_PHY0_BASE_ADDR +
> USBPHY_PWD) & \
> +				   USBPHY_PWD_RXPWDRX))


On 2017-09-13 14:29, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
> 
> This macro allows to detect whether the USB PHY is active. This
> is helpful to detect if the boot ROM has previously started the
> USB serial downloader.
> 
> The idea is taken from the mfgtool support in the NXP U-Boot:
> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
> 
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> 
> Changes in v4:
> - Rename macro to is_usbotg_phy_active()
> 
> Changes in v3: None
> Changes in v2:
> - Move macro to sys_proto.h
> - Renamed from is_boot_from_usb() to is_usbphy_active()
> - Use defines for register offset and field
> - Remove tab after define
> - Remove comment since the actual "magic" is happening and
>   documented at usage side
> 
>  arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h
> b/arch/arm/include/asm/arch-mx6/sys_proto.h
> index 14f5d948c9..ba73943260 100644
> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
> @@ -6,3 +6,10 @@
>   */
>  
>  #include <asm/mach-imx/sys_proto.h>
> +
> +#define USBPHY_PWD		0x00000000
> +
> +#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
> +
> +#define is_usbotg_phy_active(void) (!(readl(USB_PHY0_BASE_ADDR +
> USBPHY_PWD) & \
> +				   USBPHY_PWD_RXPWDRX))

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
@ 2017-09-13 21:29 Stefan Agner
  2017-09-13 21:28 ` Stefan Agner
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-13 21:29 UTC (permalink / raw)
  To: u-boot

From: Stefan Agner <stefan.agner@toradex.com>

This macro allows to detect whether the USB PHY is active. This
is helpful to detect if the boot ROM has previously started the
USB serial downloader.

The idea is taken from the mfgtool support in the NXP U-Boot:
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
---

Changes in v4:
- Rename macro to is_usbotg_phy_active()

Changes in v3: None
Changes in v2:
- Move macro to sys_proto.h
- Renamed from is_boot_from_usb() to is_usbphy_active()
- Use defines for register offset and field
- Remove tab after define
- Remove comment since the actual "magic" is happening and
  documented at usage side

 arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
index 14f5d948c9..ba73943260 100644
--- a/arch/arm/include/asm/arch-mx6/sys_proto.h
+++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
@@ -6,3 +6,10 @@
  */
 
 #include <asm/mach-imx/sys_proto.h>
+
+#define USBPHY_PWD		0x00000000
+
+#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
+
+#define is_usbotg_phy_active(void) (!(readl(USB_PHY0_BASE_ADDR + USBPHY_PWD) & \
+				   USBPHY_PWD_RXPWDRX))
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13 21:29 Stefan Agner
  2017-09-13 21:28 ` Stefan Agner
@ 2017-09-14  5:23 ` Eric Nelson
  2017-09-14  6:13   ` Stefan Agner
  2017-09-20 13:36 ` Stefano Babic
  2 siblings, 1 reply; 12+ messages in thread
From: Eric Nelson @ 2017-09-14  5:23 UTC (permalink / raw)
  To: u-boot

On 09/13/2017 02:29 PM, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
> 
> This macro allows to detect whether the USB PHY is active. This
> is helpful to detect if the boot ROM has previously started the
> USB serial downloader.
> 
> The idea is taken from the mfgtool support in the NXP U-Boot:
> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
> 
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> 
> Changes in v4:
> - Rename macro to is_usbotg_phy_active()
> 
> Changes in v3: None
> Changes in v2:
> - Move macro to sys_proto.h
> - Renamed from is_boot_from_usb() to is_usbphy_active()
> - Use defines for register offset and field
> - Remove tab after define
> - Remove comment since the actual "magic" is happening and
>    documented at usage side
> 
>   arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
> index 14f5d948c9..ba73943260 100644
> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
> @@ -6,3 +6,10 @@
>    */
>   
>   #include <asm/mach-imx/sys_proto.h>

I'd be more worried about these macro names (asking that they also
include "OTG") if they weren't defined in such close proximity to
their only use.

> +
> +#define USBPHY_PWD		0x00000000
> +
> +#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
> +
> +#define is_usbotg_phy_active(void) (!(readl(USB_PHY0_BASE_ADDR + USBPHY_PWD) & \
> +				   USBPHY_PWD_RXPWDRX))
> 

Otherwise,

Reviewed-by: Eric Nelson <eric@nelint.com>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-14  5:23 ` Eric Nelson
@ 2017-09-14  6:13   ` Stefan Agner
  0 siblings, 0 replies; 12+ messages in thread
From: Stefan Agner @ 2017-09-14  6:13 UTC (permalink / raw)
  To: u-boot

On 2017-09-13 22:23, Eric Nelson wrote:
> On 09/13/2017 02:29 PM, Stefan Agner wrote:
>> From: Stefan Agner <stefan.agner@toradex.com>
>>
>> This macro allows to detect whether the USB PHY is active. This
>> is helpful to detect if the boot ROM has previously started the
>> USB serial downloader.
>>
>> The idea is taken from the mfgtool support in the NXP U-Boot:
>> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
>>
>> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
>> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
>> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
>> ---
>>
>> Changes in v4:
>> - Rename macro to is_usbotg_phy_active()
>>
>> Changes in v3: None
>> Changes in v2:
>> - Move macro to sys_proto.h
>> - Renamed from is_boot_from_usb() to is_usbphy_active()
>> - Use defines for register offset and field
>> - Remove tab after define
>> - Remove comment since the actual "magic" is happening and
>>    documented at usage side
>>
>>   arch/arm/include/asm/arch-mx6/sys_proto.h | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h
>> index 14f5d948c9..ba73943260 100644
>> --- a/arch/arm/include/asm/arch-mx6/sys_proto.h
>> +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h
>> @@ -6,3 +6,10 @@
>>    */
>>     #include <asm/mach-imx/sys_proto.h>
> 
> I'd be more worried about these macro names (asking that they also
> include "OTG") if they weren't defined in such close proximity to
> their only use.
> 

The registers for the host and otg phy are the same, one might reuse
them for host...

>> +
>> +#define USBPHY_PWD		0x00000000
>> +
>> +#define USBPHY_PWD_RXPWDRX	(1 << 20) /* receiver block power down */
>> +
>> +#define is_usbotg_phy_active(void) (!(readl(USB_PHY0_BASE_ADDR + USBPHY_PWD) & \
>> +				   USBPHY_PWD_RXPWDRX))
>>

In contrast, this function define is really OTG phy specific since we
use PHY0.

> 
> Otherwise,
> 
> Reviewed-by: Eric Nelson <eric@nelint.com>

Thx!

--
Stefan

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active
  2017-09-13 21:29 Stefan Agner
  2017-09-13 21:28 ` Stefan Agner
  2017-09-14  5:23 ` Eric Nelson
@ 2017-09-20 13:36 ` Stefano Babic
  2 siblings, 0 replies; 12+ messages in thread
From: Stefano Babic @ 2017-09-20 13:36 UTC (permalink / raw)
  To: u-boot

On 13/09/2017 23:29, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
> 
> This macro allows to detect whether the USB PHY is active. This
> is helpful to detect if the boot ROM has previously started the
> USB serial downloader.
> 
> The idea is taken from the mfgtool support in the NXP U-Boot:
> http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/commit/?h=imx_v2016.03_4.1.15_2.0.0_ga&id=a352ed3c5184b95c4c9f7468f5fbb5f43de5e412
> 
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
> Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-09-20 13:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-12 23:54 [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Stefan Agner
2017-09-12 23:54 ` [U-Boot] [PATCH v3 2/2] imx_common: detect USB serial downloader reliably Stefan Agner
2017-09-13  0:30 ` [U-Boot] [PATCH v3 1/2] imx: add macro to detect whether USB PHY is active Eric Nelson
2017-09-13  9:19   ` Stefano Babic
2017-09-13 19:47     ` Stefan Agner
2017-09-13 21:07       ` Fabio Estevam
2017-09-13 21:14       ` Eric Nelson
  -- strict thread matches above, loose matches on Subject: below --
2017-09-13 21:29 Stefan Agner
2017-09-13 21:28 ` Stefan Agner
2017-09-14  5:23 ` Eric Nelson
2017-09-14  6:13   ` Stefan Agner
2017-09-20 13:36 ` Stefano Babic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox