[PATCH v1] sunxi: board: Move USB ethernet initialization to board_late_init()

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH v1] sunxi: board: Move USB ethernet initialization to board_late_init()

Andy Shevchenko-2
For the sake of consistency (*) and order of initialization, i.e.
after we have got the ethernet address, interrupt and timer initialized,
try to initialize USB ethernet gadget.

*) for example, zynqmp uses same order.

Signed-off-by: Andy Shevchenko <[hidden email]>
---
 arch/arm/Kconfig    | 1 +
 board/sunxi/board.c | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5903c093705a..3d9be8a7507e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1045,6 +1045,7 @@ config ARCH_SUNXI
  select SPL_USE_TINY_PRINTF
  select USE_PREBOOT
  select SYS_RELOC_GD_ENV_ADDR
+ imply BOARD_LATE_INIT
  imply CMD_DM
  imply CMD_GPT
  imply CMD_UBI if MTD_RAW_NAND
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 708a27ed78e9..77e464718846 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -890,6 +890,11 @@ int misc_init_r(void)
 
  setup_environment(gd->fdt_blob);
 
+ return 0;
+}
+
+int board_late_init(void)
+{
 #ifdef CONFIG_USB_ETHER
  usb_ether_init();
 #endif
--
2.29.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v1] sunxi: board: Move USB ethernet initialization to board_late_init()

André Przywara
On 08/12/2020 15:45, Andy Shevchenko wrote:
> For the sake of consistency (*) and order of initialization, i.e.
> after we have got the ethernet address, interrupt and timer initialized,
> try to initialize USB ethernet gadget.
>
> *) for example, zynqmp uses same order.

Looks alright, but we need some testing, to check for possible side
effects. (It's those seemingly innocent changes that tend to break things).
Will get back to you later.

Cheers,
Andre

>
> Signed-off-by: Andy Shevchenko <[hidden email]>
> ---
>  arch/arm/Kconfig    | 1 +
>  board/sunxi/board.c | 5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5903c093705a..3d9be8a7507e 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1045,6 +1045,7 @@ config ARCH_SUNXI
>   select SPL_USE_TINY_PRINTF
>   select USE_PREBOOT
>   select SYS_RELOC_GD_ENV_ADDR
> + imply BOARD_LATE_INIT
>   imply CMD_DM
>   imply CMD_GPT
>   imply CMD_UBI if MTD_RAW_NAND
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index 708a27ed78e9..77e464718846 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -890,6 +890,11 @@ int misc_init_r(void)
>  
>   setup_environment(gd->fdt_blob);
>  
> + return 0;
> +}
> +
> +int board_late_init(void)
> +{
>  #ifdef CONFIG_USB_ETHER
>   usb_ether_init();
>  #endif
>

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v1] sunxi: board: Move USB ethernet initialization to board_late_init()

Andy Shevchenko
On Tue, Dec 8, 2020 at 7:14 PM André Przywara <[hidden email]> wrote:
> On 08/12/2020 15:45, Andy Shevchenko wrote:
> > For the sake of consistency (*) and order of initialization, i.e.
> > after we have got the ethernet address, interrupt and timer initialized,
> > try to initialize USB ethernet gadget.
> >
> > *) for example, zynqmp uses same order.
>
> Looks alright, but we need some testing, to check for possible side
> effects. (It's those seemingly innocent changes that tend to break things).

Right. I made a patch purely based on reading the U-Boot initialization code.

> Will get back to you later.

Take your time and thanks!

--
With Best Regards,
Andy Shevchenko
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH v1] sunxi: board: Move USB ethernet initialization to board_late_init()

André Przywara
In reply to this post by Andy Shevchenko-2
On 08/12/2020 15:45, Andy Shevchenko wrote:

Hi,

> For the sake of consistency (*) and order of initialization, i.e.
> after we have got the ethernet address, interrupt and timer initialized,
> try to initialize USB ethernet gadget.
>
> *) for example, zynqmp uses same order.
>
> Signed-off-by: Andy Shevchenko <[hidden email]>

Reviewed-by: Andre Przywara <[hidden email]>
Tested-by: Andre Przywara <[hidden email]>

I tried on: Pine64-LTS, Pine H64, OrangePi Zero, Banana Pi M1. Could do
TFTP correctly. Also compared the MAC addresses before and after.

I will queue this for the merge window, to get some more exposure.

Cheers,
Andre

> ---
>  arch/arm/Kconfig    | 1 +
>  board/sunxi/board.c | 5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5903c093705a..3d9be8a7507e 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1045,6 +1045,7 @@ config ARCH_SUNXI
>   select SPL_USE_TINY_PRINTF
>   select USE_PREBOOT
>   select SYS_RELOC_GD_ENV_ADDR
> + imply BOARD_LATE_INIT
>   imply CMD_DM
>   imply CMD_GPT
>   imply CMD_UBI if MTD_RAW_NAND
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index 708a27ed78e9..77e464718846 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -890,6 +890,11 @@ int misc_init_r(void)
>  
>   setup_environment(gd->fdt_blob);
>  
> + return 0;
> +}
> +
> +int board_late_init(void)
> +{
>  #ifdef CONFIG_USB_ETHER
>   usb_ether_init();
>  #endif
>