All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Michael Walle <michael@walle.cc>
Cc: "Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, u-boot@lists.denx.de,
	"Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH 6/6] nvmem: u-boot-env: post process "ethaddr" env variable
Date: Tue, 10 Jan 2023 13:41:36 +0100	[thread overview]
Message-ID: <6b30d7ae-ea99-61ba-6d41-15d1a5de7729@gmail.com> (raw)
In-Reply-To: <c4cc5b274745fe9dcb83747e74879582@walle.cc>

On 10.01.2023 13:19, Michael Walle wrote:
> Hi,
> 
> Am 2023-01-10 11:54, schrieb Rafał Miłecki:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> U-Boot environment variables are stored in ASCII format so "ethaddr"
>> requires parsing into binary to make it work with Ethernet interfaces.
>>
>> This includes support for indexes to support #nvmem-cell-cells = <1>.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>>  drivers/nvmem/layouts/Kconfig      |  1 +
>>  drivers/nvmem/layouts/u-boot-env.c | 24 ++++++++++++++++++++++++
>>  2 files changed, 25 insertions(+)
>>
>> diff --git a/drivers/nvmem/layouts/Kconfig b/drivers/nvmem/layouts/Kconfig
>> index 8a38c514943a..566b4f25630d 100644
>> --- a/drivers/nvmem/layouts/Kconfig
>> +++ b/drivers/nvmem/layouts/Kconfig
>> @@ -23,6 +23,7 @@ config NVMEM_LAYOUT_ONIE_TLV
>>  config NVMEM_LAYOUT_U_BOOT_ENV
>>      bool "U-Boot environment variables support"
>>      select CRC32
>> +    select GENERIC_NET_UTILS
>>      help
>>        U-Boot stores its setup as environment variables. This driver adds
>>        support for verifying & exporting such data. It also exposes variables
>> diff --git a/drivers/nvmem/layouts/u-boot-env.c
>> b/drivers/nvmem/layouts/u-boot-env.c
>> index 95c314553952..63baeb18bd56 100644
>> --- a/drivers/nvmem/layouts/u-boot-env.c
>> +++ b/drivers/nvmem/layouts/u-boot-env.c
>> @@ -4,6 +4,8 @@
>>   */
>>
>>  #include <linux/crc32.h>
>> +#include <linux/etherdevice.h>
>> +#include <linux/if_ether.h>
>>  #include <linux/mod_devicetable.h>
>>  #include <linux/module.h>
>>  #include <linux/nvmem-consumer.h>
>> @@ -36,6 +38,26 @@ struct u_boot_env_image_broadcom {
>>      uint8_t data[];
>>  } __packed;
>>
>> +static int u_boot_env_read_post_process_ethaddr(void *context, const
>> char *id, int index,
>> +                        unsigned int offset, void *data, size_t *bytes)
>> +{
>> +    u8 mac[ETH_ALEN];
>> +
>> +    if (*bytes != 3 * ETH_ALEN - 1)
>> +        return -EINVAL;
>> +
>> +    if (!mac_pton(data, mac))
>> +        return -EINVAL;
>> +
>> +    if (index)
>> +        eth_addr_add(mac, index);
>> +
>> +    ether_addr_copy(data, mac);
>> +    *bytes = ETH_ALEN;
> 
> I don't know how to feel about this. This will only work if the new
> size is smaller than the old one. Can't we have a correct size in
> the first place? I.e. while adding the cells.

I didn't think about such solution. I like that idea. Will do.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Michael Walle <michael@walle.cc>
Cc: "Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, u-boot@lists.denx.de,
	"Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH 6/6] nvmem: u-boot-env: post process "ethaddr" env variable
Date: Tue, 10 Jan 2023 13:41:36 +0100	[thread overview]
Message-ID: <6b30d7ae-ea99-61ba-6d41-15d1a5de7729@gmail.com> (raw)
In-Reply-To: <c4cc5b274745fe9dcb83747e74879582@walle.cc>

On 10.01.2023 13:19, Michael Walle wrote:
> Hi,
> 
> Am 2023-01-10 11:54, schrieb Rafał Miłecki:
>> From: Rafał Miłecki <rafal@milecki.pl>
>>
>> U-Boot environment variables are stored in ASCII format so "ethaddr"
>> requires parsing into binary to make it work with Ethernet interfaces.
>>
>> This includes support for indexes to support #nvmem-cell-cells = <1>.
>>
>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
>> ---
>>  drivers/nvmem/layouts/Kconfig      |  1 +
>>  drivers/nvmem/layouts/u-boot-env.c | 24 ++++++++++++++++++++++++
>>  2 files changed, 25 insertions(+)
>>
>> diff --git a/drivers/nvmem/layouts/Kconfig b/drivers/nvmem/layouts/Kconfig
>> index 8a38c514943a..566b4f25630d 100644
>> --- a/drivers/nvmem/layouts/Kconfig
>> +++ b/drivers/nvmem/layouts/Kconfig
>> @@ -23,6 +23,7 @@ config NVMEM_LAYOUT_ONIE_TLV
>>  config NVMEM_LAYOUT_U_BOOT_ENV
>>      bool "U-Boot environment variables support"
>>      select CRC32
>> +    select GENERIC_NET_UTILS
>>      help
>>        U-Boot stores its setup as environment variables. This driver adds
>>        support for verifying & exporting such data. It also exposes variables
>> diff --git a/drivers/nvmem/layouts/u-boot-env.c
>> b/drivers/nvmem/layouts/u-boot-env.c
>> index 95c314553952..63baeb18bd56 100644
>> --- a/drivers/nvmem/layouts/u-boot-env.c
>> +++ b/drivers/nvmem/layouts/u-boot-env.c
>> @@ -4,6 +4,8 @@
>>   */
>>
>>  #include <linux/crc32.h>
>> +#include <linux/etherdevice.h>
>> +#include <linux/if_ether.h>
>>  #include <linux/mod_devicetable.h>
>>  #include <linux/module.h>
>>  #include <linux/nvmem-consumer.h>
>> @@ -36,6 +38,26 @@ struct u_boot_env_image_broadcom {
>>      uint8_t data[];
>>  } __packed;
>>
>> +static int u_boot_env_read_post_process_ethaddr(void *context, const
>> char *id, int index,
>> +                        unsigned int offset, void *data, size_t *bytes)
>> +{
>> +    u8 mac[ETH_ALEN];
>> +
>> +    if (*bytes != 3 * ETH_ALEN - 1)
>> +        return -EINVAL;
>> +
>> +    if (!mac_pton(data, mac))
>> +        return -EINVAL;
>> +
>> +    if (index)
>> +        eth_addr_add(mac, index);
>> +
>> +    ether_addr_copy(data, mac);
>> +    *bytes = ETH_ALEN;
> 
> I don't know how to feel about this. This will only work if the new
> size is smaller than the old one. Can't we have a correct size in
> the first place? I.e. while adding the cells.

I didn't think about such solution. I like that idea. Will do.

  reply	other threads:[~2023-01-10 12:42 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-10 10:54 [PATCH 1/6] nvmem: core: add nvmem_dev_size() helper Rafał Miłecki
2023-01-10 10:54 ` Rafał Miłecki
2023-01-10 10:54 ` [PATCH 2/6] nvmem: core: allow .read_post_process() callbacks to adjust data length Rafał Miłecki
2023-01-10 10:54   ` Rafał Miłecki
2023-01-10 10:54 ` [PATCH 3/6] dt-bindings: nvmem: convert U-Boot env vars to NVMEM layout Rafał Miłecki
2023-01-10 10:54   ` Rafał Miłecki
2023-01-10 10:54 ` [PATCH 4/6] nvmem: u-boot-env: convert to layout driver Rafał Miłecki
2023-01-10 10:54   ` Rafał Miłecki
2023-01-10 10:54 ` [PATCH 5/6] dt-bindings: nvmem: u-boot,env: add MAC's #nvmem-cell-cells Rafał Miłecki
2023-01-10 10:54   ` [PATCH 5/6] dt-bindings: nvmem: u-boot, env: " Rafał Miłecki
2023-01-10 10:54   ` [PATCH 5/6] dt-bindings: nvmem: u-boot,env: " Rafał Miłecki
2023-01-10 10:54 ` [PATCH 6/6] nvmem: u-boot-env: post process "ethaddr" env variable Rafał Miłecki
2023-01-10 10:54   ` Rafał Miłecki
2023-01-10 12:19   ` Michael Walle
2023-01-10 12:19     ` Michael Walle
2023-01-10 12:41     ` Rafał Miłecki [this message]
2023-01-10 12:41       ` Rafał Miłecki
2023-01-10 13:22 ` [PATCH 1/6] nvmem: core: add nvmem_dev_size() helper kernel test robot
2023-01-11  6:03 ` kernel test robot
2023-01-11  6:52 ` Ahmad Fatoum
2023-01-11  6:52   ` Ahmad Fatoum
2023-02-11 13:45 ` kernel test robot
2023-02-11 13:45   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6b30d7ae-ea99-61ba-6d41-15d1a5de7729@gmail.com \
    --to=zajec5@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@walle.cc \
    --cc=miquel.raynal@bootlin.com \
    --cc=rafal@milecki.pl \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.