
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