diff mbox series

[v1,2/5] riscv: Update Microchip MPFS Icicle Kit support

Message ID 20211022085648.134655-3-padmarao.begari@microchip.com
State Superseded
Delegated to: Andes
Headers show
Series Update Microchip PolarFire SoC support | expand

Commit Message

Padmarao Begari Oct. 22, 2021, 8:56 a.m. UTC
This patch updates Microchip MPFS Icicle Kit support. For now,
add Microchip I2C driver, set environment variables for
mac addesses and default build for SBI_V02.

Signed-off-by: Padmarao Begari <padmarao.begari@microchip.com>
---
 board/microchip/mpfs_icicle/Kconfig       |  5 +++++
 board/microchip/mpfs_icicle/mpfs_icicle.c | 17 ++++++++++++++++-
 configs/microchip_mpfs_icicle_defconfig   |  1 -
 3 files changed, 21 insertions(+), 2 deletions(-)

Comments

Leo Liang Nov. 1, 2021, 8:36 a.m. UTC | #1
Hi Padmarao,
On Fri, Oct 22, 2021 at 02:26:45PM +0530, Padmarao Begari wrote:
> This patch updates Microchip MPFS Icicle Kit support. For now,
> add Microchip I2C driver, set environment variables for
> mac addesses and default build for SBI_V02.
      ^^^^^^^^  
typo: addresses

Otherwise, 
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>

> Signed-off-by: Padmarao Begari <padmarao.begari@microchip.com>
> ---
>  board/microchip/mpfs_icicle/Kconfig       |  5 +++++
>  board/microchip/mpfs_icicle/mpfs_icicle.c | 17 ++++++++++++++++-
>  configs/microchip_mpfs_icicle_defconfig   |  1 -
>  3 files changed, 21 insertions(+), 2 deletions(-)
Bin Meng Nov. 1, 2021, 8:43 a.m. UTC | #2
On Fri, Oct 22, 2021 at 4:58 PM Padmarao Begari
<padmarao.begari@microchip.com> wrote:
>
> This patch updates Microchip MPFS Icicle Kit support. For now,
> add Microchip I2C driver, set environment variables for
> mac addesses and default build for SBI_V02.
>
> Signed-off-by: Padmarao Begari <padmarao.begari@microchip.com>
> ---
>  board/microchip/mpfs_icicle/Kconfig       |  5 +++++
>  board/microchip/mpfs_icicle/mpfs_icicle.c | 17 ++++++++++++++++-
>  configs/microchip_mpfs_icicle_defconfig   |  1 -
>  3 files changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/board/microchip/mpfs_icicle/Kconfig b/board/microchip/mpfs_icicle/Kconfig
> index 4678462378..092e411215 100644
> --- a/board/microchip/mpfs_icicle/Kconfig
> +++ b/board/microchip/mpfs_icicle/Kconfig
> @@ -45,5 +45,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
>         imply MMC_WRITE
>         imply MMC_SDHCI
>         imply MMC_SDHCI_CADENCE
> +       imply MMC_SDHCI_ADMA
> +       imply MMC_HS200_SUPPORT
> +       imply CMD_I2C
> +       imply DM_I2C
> +       imply SYS_I2C_MICROCHIP
>
>  endif
> diff --git a/board/microchip/mpfs_icicle/mpfs_icicle.c b/board/microchip/mpfs_icicle/mpfs_icicle.c
> index afef719dff..e74c9fb03c 100644
> --- a/board/microchip/mpfs_icicle/mpfs_icicle.c
> +++ b/board/microchip/mpfs_icicle/mpfs_icicle.c
> @@ -119,7 +119,22 @@ int board_late_init(void)
>                 if (icicle_mac_addr[idx] == ':')
>                         icicle_mac_addr[idx] = ' ';
>         }
> -       env_set("icicle_mac_addr", icicle_mac_addr);
> +       env_set("icicle_mac_addr0", icicle_mac_addr);

What's this environment for? Shouldn't the U-Boot standard environment
variable "ethaddr" be set here?

> +
> +       mac_addr[5] = device_serial_number[0] + 1;
> +
> +       icicle_mac_addr[0] = '[';
> +
> +       sprintf(&icicle_mac_addr[1], "%pM", mac_addr);

"eth1addr"?

> +
> +       icicle_mac_addr[18] = ']';
> +       icicle_mac_addr[19] = '\0';
> +
> +       for (idx = 0; idx < 20; idx++) {
> +               if (icicle_mac_addr[idx] == ':')
> +                       icicle_mac_addr[idx] = ' ';
> +       }
> +       env_set("icicle_mac_addr1", icicle_mac_addr);
>
>         return 0;
>  }
> diff --git a/configs/microchip_mpfs_icicle_defconfig b/configs/microchip_mpfs_icicle_defconfig
> index 90ae76cc12..b3c7e6db8f 100644
> --- a/configs/microchip_mpfs_icicle_defconfig
> +++ b/configs/microchip_mpfs_icicle_defconfig
> @@ -6,7 +6,6 @@ CONFIG_DEFAULT_DEVICE_TREE="microchip-mpfs-icicle-kit"
>  CONFIG_TARGET_MICROCHIP_ICICLE=y
>  CONFIG_ARCH_RV64I=y
>  CONFIG_RISCV_SMODE=y
> -CONFIG_SBI_V01=y
>  CONFIG_DISTRO_DEFAULTS=y
>  CONFIG_SYS_LOAD_ADDR=0x80200000
>  CONFIG_FIT=y
> --

Regards,
Bin
Padmarao Begari Nov. 2, 2021, 10:38 a.m. UTC | #3
On Mon, Nov 1, 2021 at 2:13 PM Bin Meng <bmeng.cn@gmail.com> wrote:

> On Fri, Oct 22, 2021 at 4:58 PM Padmarao Begari
> <padmarao.begari@microchip.com> wrote:
> >
> > This patch updates Microchip MPFS Icicle Kit support. For now,
> > add Microchip I2C driver, set environment variables for
> > mac addesses and default build for SBI_V02.
> >
> > Signed-off-by: Padmarao Begari <padmarao.begari@microchip.com>
> > ---
> >  board/microchip/mpfs_icicle/Kconfig       |  5 +++++
> >  board/microchip/mpfs_icicle/mpfs_icicle.c | 17 ++++++++++++++++-
> >  configs/microchip_mpfs_icicle_defconfig   |  1 -
> >  3 files changed, 21 insertions(+), 2 deletions(-)
> >
> > diff --git a/board/microchip/mpfs_icicle/Kconfig
> b/board/microchip/mpfs_icicle/Kconfig
> > index 4678462378..092e411215 100644
> > --- a/board/microchip/mpfs_icicle/Kconfig
> > +++ b/board/microchip/mpfs_icicle/Kconfig
> > @@ -45,5 +45,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
> >         imply MMC_WRITE
> >         imply MMC_SDHCI
> >         imply MMC_SDHCI_CADENCE
> > +       imply MMC_SDHCI_ADMA
> > +       imply MMC_HS200_SUPPORT
> > +       imply CMD_I2C
> > +       imply DM_I2C
> > +       imply SYS_I2C_MICROCHIP
> >
> >  endif
> > diff --git a/board/microchip/mpfs_icicle/mpfs_icicle.c
> b/board/microchip/mpfs_icicle/mpfs_icicle.c
> > index afef719dff..e74c9fb03c 100644
> > --- a/board/microchip/mpfs_icicle/mpfs_icicle.c
> > +++ b/board/microchip/mpfs_icicle/mpfs_icicle.c
> > @@ -119,7 +119,22 @@ int board_late_init(void)
> >                 if (icicle_mac_addr[idx] == ':')
> >                         icicle_mac_addr[idx] = ' ';
> >         }
> > -       env_set("icicle_mac_addr", icicle_mac_addr);
> > +       env_set("icicle_mac_addr0", icicle_mac_addr);
>
> What's this environment for? Shouldn't the U-Boot standard environment
> variable "ethaddr" be set here?
>
>
The "icicle_mac_addr0" and "icicle_mac_addr1" environment variables are
used for updating the mac
addresses(mac0 and mac1) in the FIT image using fdt overlays like below.

   fdt addr ${fdt_addr_r}
   fdt set /soc/ethernet@20112000 local-mac-address ${icicle_mac_addr0}
   fdt set /soc/ethernet@20110000 local-mac-address ${icicle_mac_addr1}

The "ethaddr" variable comes in the U-Boot like "00:04:a3:d6:45:94" but we
want "[00 04 a3 d6 45 94]" to update the mac address in the FIT Image.

>
> > +
> > +       mac_addr[5] = device_serial_number[0] + 1;
> > +
> > +       icicle_mac_addr[0] = '[';
> > +
> > +       sprintf(&icicle_mac_addr[1], "%pM", mac_addr);
>
> "eth1addr"?
>
>
No, a second mac address environment variable "icicle_mac_addr1".
only one MAC address is used in the U-Boot and two MAC's in the Linux.


> > +
> > +       icicle_mac_addr[18] = ']';
> > +       icicle_mac_addr[19] = '\0';
> > +
> > +       for (idx = 0; idx < 20; idx++) {
> > +               if (icicle_mac_addr[idx] == ':')
> > +                       icicle_mac_addr[idx] = ' ';
> > +       }
> > +       env_set("icicle_mac_addr1", icicle_mac_addr);
> >
> >         return 0;
> >  }
> > diff --git a/configs/microchip_mpfs_icicle_defconfig
> b/configs/microchip_mpfs_icicle_defconfig
> > index 90ae76cc12..b3c7e6db8f 100644
> > --- a/configs/microchip_mpfs_icicle_defconfig
> > +++ b/configs/microchip_mpfs_icicle_defconfig
> > @@ -6,7 +6,6 @@ CONFIG_DEFAULT_DEVICE_TREE="microchip-mpfs-icicle-kit"
> >  CONFIG_TARGET_MICROCHIP_ICICLE=y
> >  CONFIG_ARCH_RV64I=y
> >  CONFIG_RISCV_SMODE=y
> > -CONFIG_SBI_V01=y
> >  CONFIG_DISTRO_DEFAULTS=y
> >  CONFIG_SYS_LOAD_ADDR=0x80200000
> >  CONFIG_FIT=y
> > --
>
> Regards,
> Bin
>
diff mbox series

Patch

diff --git a/board/microchip/mpfs_icicle/Kconfig b/board/microchip/mpfs_icicle/Kconfig
index 4678462378..092e411215 100644
--- a/board/microchip/mpfs_icicle/Kconfig
+++ b/board/microchip/mpfs_icicle/Kconfig
@@ -45,5 +45,10 @@  config BOARD_SPECIFIC_OPTIONS # dummy
 	imply MMC_WRITE
 	imply MMC_SDHCI
 	imply MMC_SDHCI_CADENCE
+	imply MMC_SDHCI_ADMA
+	imply MMC_HS200_SUPPORT
+	imply CMD_I2C
+	imply DM_I2C
+	imply SYS_I2C_MICROCHIP
 
 endif
diff --git a/board/microchip/mpfs_icicle/mpfs_icicle.c b/board/microchip/mpfs_icicle/mpfs_icicle.c
index afef719dff..e74c9fb03c 100644
--- a/board/microchip/mpfs_icicle/mpfs_icicle.c
+++ b/board/microchip/mpfs_icicle/mpfs_icicle.c
@@ -119,7 +119,22 @@  int board_late_init(void)
 		if (icicle_mac_addr[idx] == ':')
 			icicle_mac_addr[idx] = ' ';
 	}
-	env_set("icicle_mac_addr", icicle_mac_addr);
+	env_set("icicle_mac_addr0", icicle_mac_addr);
+
+	mac_addr[5] = device_serial_number[0] + 1;
+
+	icicle_mac_addr[0] = '[';
+
+	sprintf(&icicle_mac_addr[1], "%pM", mac_addr);
+
+	icicle_mac_addr[18] = ']';
+	icicle_mac_addr[19] = '\0';
+
+	for (idx = 0; idx < 20; idx++) {
+		if (icicle_mac_addr[idx] == ':')
+			icicle_mac_addr[idx] = ' ';
+	}
+	env_set("icicle_mac_addr1", icicle_mac_addr);
 
 	return 0;
 }
diff --git a/configs/microchip_mpfs_icicle_defconfig b/configs/microchip_mpfs_icicle_defconfig
index 90ae76cc12..b3c7e6db8f 100644
--- a/configs/microchip_mpfs_icicle_defconfig
+++ b/configs/microchip_mpfs_icicle_defconfig
@@ -6,7 +6,6 @@  CONFIG_DEFAULT_DEVICE_TREE="microchip-mpfs-icicle-kit"
 CONFIG_TARGET_MICROCHIP_ICICLE=y
 CONFIG_ARCH_RV64I=y
 CONFIG_RISCV_SMODE=y
-CONFIG_SBI_V01=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_LOAD_ADDR=0x80200000
 CONFIG_FIT=y