On Mon, Nov 27, 2023 at 06:56:53PM +0600, Maxim Uvarov wrote:

> Implement port of lwIP stack to the U-Boot. lwIP is well known full IP stack
> which provides wide functionality, various examples, API closer to linux 
> userland.
> Rich debug printing and possibility to run lwIP apps under linux make it
> easier to develop and debug apps.
> U-Boot implementation keeps the original file structure widely used for lwIP 
> ports.
> (i.e. port/if.c port/sys-arch.c). That should allow us to easy port apps to or
> from U-Boot. Multiply ethernet devices are supported and "ethact" env variable
> chooses the active device.
> Having a rich IP stack inside U-Boot will allow us to have such applications
> as http or https clients.
[snip]
> diff --git a/lib/Kconfig b/lib/Kconfig
> index 19649517a3..915402e843 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -258,7 +258,7 @@ config REGEX
>  choice
>       prompt "Pseudo-random library support type"
>       depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
> -                RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
> +                RNG_SANDBOX || UT_LIB && AES || FAT_WRITE || LWIP
>       default LIB_RAND
>       help
>         Select the library to provide pseudo-random number generator

So here we say that you must configure one of the "random" providers,
either software-based or hardware-based.

> diff --git a/net/eth-uclass.c b/net/eth-uclass.c
> index 3d0ec91dfa..f57da423f5 100644
> --- a/net/eth-uclass.c
> +++ b/net/eth-uclass.c
[snip]
> @@ -587,18 +602,26 @@ static int eth_post_probe(struct udevice *dev)
>               /* Override the ROM MAC address */
>               memcpy(pdata->enetaddr, env_enetaddr, ARP_HLEN);
>       } else if (is_valid_ethaddr(pdata->enetaddr)) {
> -             eth_env_set_enetaddr_by_index("eth", dev_seq(dev),
> -                                           pdata->enetaddr);
> +             ret = eth_env_set_enetaddr_by_index("eth", dev_seq(dev),
> +                                                 pdata->enetaddr);
> +             if (ret) {
> +                     log_err("Error update env for eth%d\n", dev_seq(dev));
> +                     return -EINVAL;
> +             }
>       } else if (is_zero_ethaddr(pdata->enetaddr) ||
>                  !is_valid_ethaddr(pdata->enetaddr)) {
>  #ifdef CONFIG_NET_RANDOM_ETHADDR
>               net_random_ethaddr(pdata->enetaddr);
>               printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
>                      dev->name, dev_seq(dev), pdata->enetaddr);
> -             eth_env_set_enetaddr_by_index("eth", dev_seq(dev),
> -                                           pdata->enetaddr);
> +             ret = eth_env_set_enetaddr_by_index("eth", dev_seq(dev),
> +                                                 pdata->enetaddr);
> +             if (ret) {
> +                     log_err("Error update env for eth%d\n", dev_seq(dev));
> +                     return -EINVAL;
> +             }
>  #else
> -             printf("\nError: %s No valid MAC address found.\n",
> +             log_err("\nError: %s No valid MAC address found.\n",
>                      dev->name);
>               return -EINVAL;
>  #endif

This is a general fix, yes?

> diff --git a/net/lwip/Kconfig b/net/lwip/Kconfig
> index 295261a042..9135dee6b4 100644
> --- a/net/lwip/Kconfig
> +++ b/net/lwip/Kconfig
> @@ -1,6 +1,7 @@
>  menu "lwIP"
>  config LWIP
>       bool "Support LWIP library"
> +     select LIB_RAND
>       help
>         Enable the lwIP library code with
>         all dependencies (commands are implemented with lwIP

And this part is wrong. We don't _need_ anything here due to the change
in lib/Kconfig.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to