On Tue, Dec 04, 2018 at 10:12:27AM +0100, Stefan Riedmueller wrote:
> From: Christian Hemp
>
> The i.MX 6UL/ULL has fuses for two MAC addresses. Both MAC addresses
> share the fuse address 0x23.
>
> -
> 0x22| MAC0 | MAC0 | MAC0 | MAC0 |
> -
> 0x23| MAC0 | MAC0 | MAC1 | MAC1 |
> -
> 0x24| MAC1 | MAC1 | MAC1 | MAC1 |
> -
>
> So to read the second MAC address the first two bytes of 0x23 need to be
> skipped.
>
> Signed-off-by: Christian Hemp
> Signed-off-by: Stefan Riedmueller
> ---
Applied, thanks
Sascha
> drivers/nvmem/ocotp.c | 17 +++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/nvmem/ocotp.c b/drivers/nvmem/ocotp.c
> index e689559ee362..e0cf35f0b73c 100644
> --- a/drivers/nvmem/ocotp.c
> +++ b/drivers/nvmem/ocotp.c
> @@ -70,6 +70,7 @@
> #define IMX6_OTP_DATA_ERROR_VAL 0xBADABADA
> #define DEF_RELAX20
> #define MAC_OFFSET_0 (0x22 * 4)
> +#define IMX6UL_MAC_OFFSET_1 (0x23 * 4)
> #define MAC_OFFSET_1 (0x24 * 4)
> #define MAX_MAC_OFFSETS 2
> #define MAC_BYTES8
> @@ -421,10 +422,14 @@ static int imx_ocotp_read_mac(const struct
> imx_ocotp_data *data,
> int ret;
>
> ret = regmap_bulk_read(map, offset, buf, MAC_BYTES);
> +
> if (ret < 0)
> return ret;
>
> - data->format_mac(mac, buf, OCOTP_HW_TO_MAC);
> + if (offset != IMX6UL_MAC_OFFSET_1)
> + data->format_mac(mac, buf, OCOTP_HW_TO_MAC);
> + else
> + data->format_mac(mac, buf + 2, OCOTP_HW_TO_MAC);
>
> return 0;
> }
> @@ -639,6 +644,14 @@ static struct imx_ocotp_data imx6sl_ocotp_data = {
> .format_mac = imx_ocotp_format_mac,
> };
>
> +static struct imx_ocotp_data imx6ul_ocotp_data = {
> + .num_regs = 512,
> + .addr_to_offset = imx6q_addr_to_offset,
> + .mac_offsets_num = 2,
> + .mac_offsets = { MAC_OFFSET_0, IMX6UL_MAC_OFFSET_1 },
> + .format_mac = imx_ocotp_format_mac,
> +};
> +
> static struct imx_ocotp_data vf610_ocotp_data = {
> .num_regs = 512,
> .addr_to_offset = vf610_addr_to_offset,
> @@ -667,7 +680,7 @@ static __maybe_unused struct of_device_id
> imx_ocotp_dt_ids[] = {
> .data = _ocotp_data,
> }, {
> .compatible = "fsl,imx6ul-ocotp",
> - .data = _ocotp_data,
> + .data = _ocotp_data,
> }, {
> .compatible = "fsl,imx8mq-ocotp",
> .data = _ocotp_data,
> --
> 2.7.4
>
>
> ___
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0|
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- |
___
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox