[PATCH] arm: kirkwood: iConnect : Add Ethernet support

- Currently, CONFIG_RESET_PHY_R symbol is used in arch/arm/mach-kirkwood/include/mach/config.h for all Kirkwood boards with mv8831116 PHY, with each board defines the function reset_phy(). Undefine it for this board. - Add board_eth_init(), CONFIG_DM_ETH, and CONFIG_PHY_MARVELL to bring up Ethernet. - Miscellaneous changes: Move constants to .c file and remove header file board/iomega/iconnect/iconnect.h. Add CONFIG_HUSH_PARSER, use BIT macro, and cleanup comments.
Signed-off-by: Tony Dinh mibodhi@gmail.com ---
board/iomega/iconnect/iconnect.c | 17 ++++++++++++++--- board/iomega/iconnect/iconnect.h | 24 ------------------------ configs/iconnect_defconfig | 6 +++++- include/configs/iconnect.h | 21 +++++++-------------- 4 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 board/iomega/iconnect/iconnect.h
diff --git a/board/iomega/iconnect/iconnect.c b/board/iomega/iconnect/iconnect.c index 9e123aab00..0387160200 100644 --- a/board/iomega/iconnect/iconnect.c +++ b/board/iomega/iconnect/iconnect.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* + * Copyright (C) 2022 Tony Dinh mibodhi@gmail.com * Copyright (C) 2009-2012 * Wojciech Dubowik wojciech.dubowik@neratec.com * Luka Perkov luka@openwrt.org @@ -7,15 +8,20 @@
#include <common.h> #include <init.h> -#include <miiphy.h> +#include <netdev.h> #include <asm/arch/cpu.h> #include <asm/arch/soc.h> #include <asm/arch/mpp.h> #include <asm/global_data.h> -#include "iconnect.h" +#include <linux/bitops.h>
DECLARE_GLOBAL_DATA_PTR;
+#define ICONNECT_OE_LOW (~BIT(7)) +#define ICONNECT_OE_HIGH (~BIT(10)) +#define ICONNECT_OE_VAL_LOW (0) +#define ICONNECT_OE_VAL_HIGH BIT(10) + int board_early_init_f(void) { /* @@ -85,9 +91,14 @@ int board_early_init_f(void) return 0; }
+int board_eth_init(struct bd_info *bis) +{ + return cpu_eth_init(bis); +} + int board_init(void) { - /* adress of boot parameters */ + /* address of boot parameters */ gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
return 0; diff --git a/board/iomega/iconnect/iconnect.h b/board/iomega/iconnect/iconnect.h deleted file mode 100644 index 4f0be71918..0000000000 --- a/board/iomega/iconnect/iconnect.h +++ /dev/null @@ -1,24 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * Copyright (C) 2009-2012 - * Wojciech Dubowik wojciech.dubowik@neratec.com - * Luka Perkov luka@openwrt.org - */ - -#ifndef __ICONNECT_H -#define __ICONNECT_H - -#define ICONNECT_OE_LOW (~(1 << 7)) -#define ICONNECT_OE_HIGH (~(1 << 10)) -#define ICONNECT_OE_VAL_LOW (0) -#define ICONNECT_OE_VAL_HIGH (1 << 10) - -/* PHY related */ -#define MV88E1116_LED_FCTRL_REG 10 -#define MV88E1116_CPRSP_CR3_REG 21 -#define MV88E1116_MAC_CTRL_REG 21 -#define MV88E1116_PGADR_REG 22 -#define MV88E1116_RGMII_TXTM_CTRL (1 << 4) -#define MV88E1116_RGMII_RXTM_CTRL (1 << 5) - -#endif /* __ICONNECT_H */ diff --git a/configs/iconnect_defconfig b/configs/iconnect_defconfig index 1c9c77a292..336fae270a 100644 --- a/configs/iconnect_defconfig +++ b/configs/iconnect_defconfig @@ -20,7 +20,8 @@ CONFIG_BOOTCOMMAND="setenv bootargs ${console} ${mtdparts} ${bootargs_root}; ubi CONFIG_USE_PREBOOT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_BOARD_LATE_INIT=y -CONFIG_SYS_PROMPT="iconnect => " +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="iConnect> " # CONFIG_CMD_FLASH is not set CONFIG_CMD_NAND=y CONFIG_CMD_PCI=y @@ -39,11 +40,14 @@ CONFIG_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_NAND=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NETCONSOLE=y CONFIG_DM=y # CONFIG_MMC is not set CONFIG_MTD=y CONFIG_MTD_RAW_NAND=y +CONFIG_PHY_MARVELL=y +CONFIG_DM_ETH=y CONFIG_MVGBE=y CONFIG_MII=y CONFIG_PCI=y diff --git a/include/configs/iconnect.h b/include/configs/iconnect.h index f1aad1efde..44a4b4409f 100644 --- a/include/configs/iconnect.h +++ b/include/configs/iconnect.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* + * Copyright (C) 2022 Tony Dinh mibodhi@gmail.com * (C) Copyright 2009-2012 * Wojciech Dubowik wojciech.dubowik@neratec.com * Luka Perkov luka@openwrt.org @@ -10,32 +11,24 @@
#include "mv-common.h"
-/* - * Environment variables configuration - */ - -/* - * Default environment variables - */ - #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \ - "mtdparts="CONFIG_MTDPARTS_DEFAULT \ + "mtdparts=" CONFIG_MTDPARTS_DEFAULT \ "kernel=/boot/uImage\0" \ "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
/* * Ethernet driver configuration + * + * This board has PCIe Wifi card, so allow Ethernet to be disabled */ #ifdef CONFIG_CMD_NET #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ #define CONFIG_PHY_BASE_ADR 11 -#undef CONFIG_RESET_PHY_R +#ifdef CONFIG_RESET_PHY_R +#undef CONFIG_RESET_PHY_R /* remove legacy reset_phy() */ +#endif #endif /* CONFIG_CMD_NET */
-/* - * File system - */ - #endif /* _CONFIG_ICONNECT_H */

On 2/2/22 06:59, Tony Dinh wrote:
- Currently, CONFIG_RESET_PHY_R symbol is used in
arch/arm/mach-kirkwood/include/mach/config.h for all Kirkwood boards with mv8831116 PHY, with each board defines the function reset_phy(). Undefine it for this board.
- Add board_eth_init(), CONFIG_DM_ETH, and CONFIG_PHY_MARVELL
to bring up Ethernet.
- Miscellaneous changes: Move constants to .c file and remove header file
board/iomega/iconnect/iconnect.h. Add CONFIG_HUSH_PARSER, use BIT macro, and cleanup comments.
Signed-off-by: Tony Dinh mibodhi@gmail.com
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
board/iomega/iconnect/iconnect.c | 17 ++++++++++++++--- board/iomega/iconnect/iconnect.h | 24 ------------------------ configs/iconnect_defconfig | 6 +++++- include/configs/iconnect.h | 21 +++++++-------------- 4 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 board/iomega/iconnect/iconnect.h
diff --git a/board/iomega/iconnect/iconnect.c b/board/iomega/iconnect/iconnect.c index 9e123aab00..0387160200 100644 --- a/board/iomega/iconnect/iconnect.c +++ b/board/iomega/iconnect/iconnect.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /*
- Copyright (C) 2022 Tony Dinh mibodhi@gmail.com
- Copyright (C) 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
@@ -7,15 +8,20 @@
#include <common.h> #include <init.h> -#include <miiphy.h> +#include <netdev.h> #include <asm/arch/cpu.h> #include <asm/arch/soc.h> #include <asm/arch/mpp.h> #include <asm/global_data.h> -#include "iconnect.h" +#include <linux/bitops.h>
DECLARE_GLOBAL_DATA_PTR;
+#define ICONNECT_OE_LOW (~BIT(7)) +#define ICONNECT_OE_HIGH (~BIT(10)) +#define ICONNECT_OE_VAL_LOW (0) +#define ICONNECT_OE_VAL_HIGH BIT(10)
- int board_early_init_f(void) { /*
@@ -85,9 +91,14 @@ int board_early_init_f(void) return 0; }
+int board_eth_init(struct bd_info *bis) +{
- return cpu_eth_init(bis);
+}
- int board_init(void) {
- /* adress of boot parameters */
/* address of boot parameters */ gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
return 0;
diff --git a/board/iomega/iconnect/iconnect.h b/board/iomega/iconnect/iconnect.h deleted file mode 100644 index 4f0be71918..0000000000 --- a/board/iomega/iconnect/iconnect.h +++ /dev/null @@ -1,24 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/*
- Copyright (C) 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
- */
-#ifndef __ICONNECT_H -#define __ICONNECT_H
-#define ICONNECT_OE_LOW (~(1 << 7)) -#define ICONNECT_OE_HIGH (~(1 << 10)) -#define ICONNECT_OE_VAL_LOW (0) -#define ICONNECT_OE_VAL_HIGH (1 << 10)
-/* PHY related */ -#define MV88E1116_LED_FCTRL_REG 10 -#define MV88E1116_CPRSP_CR3_REG 21 -#define MV88E1116_MAC_CTRL_REG 21 -#define MV88E1116_PGADR_REG 22 -#define MV88E1116_RGMII_TXTM_CTRL (1 << 4) -#define MV88E1116_RGMII_RXTM_CTRL (1 << 5)
-#endif /* __ICONNECT_H */ diff --git a/configs/iconnect_defconfig b/configs/iconnect_defconfig index 1c9c77a292..336fae270a 100644 --- a/configs/iconnect_defconfig +++ b/configs/iconnect_defconfig @@ -20,7 +20,8 @@ CONFIG_BOOTCOMMAND="setenv bootargs ${console} ${mtdparts} ${bootargs_root}; ubi CONFIG_USE_PREBOOT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_BOARD_LATE_INIT=y -CONFIG_SYS_PROMPT="iconnect => " +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="iConnect> " # CONFIG_CMD_FLASH is not set CONFIG_CMD_NAND=y CONFIG_CMD_PCI=y @@ -39,11 +40,14 @@ CONFIG_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_NAND=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NETCONSOLE=y CONFIG_DM=y # CONFIG_MMC is not set CONFIG_MTD=y CONFIG_MTD_RAW_NAND=y +CONFIG_PHY_MARVELL=y +CONFIG_DM_ETH=y CONFIG_MVGBE=y CONFIG_MII=y CONFIG_PCI=y diff --git a/include/configs/iconnect.h b/include/configs/iconnect.h index f1aad1efde..44a4b4409f 100644 --- a/include/configs/iconnect.h +++ b/include/configs/iconnect.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /*
- Copyright (C) 2022 Tony Dinh mibodhi@gmail.com
- (C) Copyright 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
@@ -10,32 +11,24 @@
#include "mv-common.h"
-/*
- Environment variables configuration
- */
-/*
- Default environment variables
- */
- #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \
- "mtdparts="CONFIG_MTDPARTS_DEFAULT \
"mtdparts=" CONFIG_MTDPARTS_DEFAULT \ "kernel=/boot/uImage\0" \ "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
/*
- Ethernet driver configuration
- This board has PCIe Wifi card, so allow Ethernet to be disabled
*/ #ifdef CONFIG_CMD_NET #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ #define CONFIG_PHY_BASE_ADR 11
-#undef CONFIG_RESET_PHY_R +#ifdef CONFIG_RESET_PHY_R +#undef CONFIG_RESET_PHY_R /* remove legacy reset_phy() */ +#endif #endif /* CONFIG_CMD_NET */
-/*
- File system
- */
- #endif /* _CONFIG_ICONNECT_H */
Viele Grüße, Stefan Roese

On 2/2/22 06:59, Tony Dinh wrote:
- Currently, CONFIG_RESET_PHY_R symbol is used in
arch/arm/mach-kirkwood/include/mach/config.h for all Kirkwood boards with mv8831116 PHY, with each board defines the function reset_phy(). Undefine it for this board.
- Add board_eth_init(), CONFIG_DM_ETH, and CONFIG_PHY_MARVELL
to bring up Ethernet.
- Miscellaneous changes: Move constants to .c file and remove header file
board/iomega/iconnect/iconnect.h. Add CONFIG_HUSH_PARSER, use BIT macro, and cleanup comments.
Signed-off-by: Tony Dinh mibodhi@gmail.com
Applied to u-boot-marvell/master
Thanks, Stefan
board/iomega/iconnect/iconnect.c | 17 ++++++++++++++--- board/iomega/iconnect/iconnect.h | 24 ------------------------ configs/iconnect_defconfig | 6 +++++- include/configs/iconnect.h | 21 +++++++-------------- 4 files changed, 26 insertions(+), 42 deletions(-) delete mode 100644 board/iomega/iconnect/iconnect.h
diff --git a/board/iomega/iconnect/iconnect.c b/board/iomega/iconnect/iconnect.c index 9e123aab00..0387160200 100644 --- a/board/iomega/iconnect/iconnect.c +++ b/board/iomega/iconnect/iconnect.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /*
- Copyright (C) 2022 Tony Dinh mibodhi@gmail.com
- Copyright (C) 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
@@ -7,15 +8,20 @@
#include <common.h> #include <init.h> -#include <miiphy.h> +#include <netdev.h> #include <asm/arch/cpu.h> #include <asm/arch/soc.h> #include <asm/arch/mpp.h> #include <asm/global_data.h> -#include "iconnect.h" +#include <linux/bitops.h>
DECLARE_GLOBAL_DATA_PTR;
+#define ICONNECT_OE_LOW (~BIT(7)) +#define ICONNECT_OE_HIGH (~BIT(10)) +#define ICONNECT_OE_VAL_LOW (0) +#define ICONNECT_OE_VAL_HIGH BIT(10)
- int board_early_init_f(void) { /*
@@ -85,9 +91,14 @@ int board_early_init_f(void) return 0; }
+int board_eth_init(struct bd_info *bis) +{
- return cpu_eth_init(bis);
+}
- int board_init(void) {
- /* adress of boot parameters */
/* address of boot parameters */ gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
return 0;
diff --git a/board/iomega/iconnect/iconnect.h b/board/iomega/iconnect/iconnect.h deleted file mode 100644 index 4f0be71918..0000000000 --- a/board/iomega/iconnect/iconnect.h +++ /dev/null @@ -1,24 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/*
- Copyright (C) 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
- */
-#ifndef __ICONNECT_H -#define __ICONNECT_H
-#define ICONNECT_OE_LOW (~(1 << 7)) -#define ICONNECT_OE_HIGH (~(1 << 10)) -#define ICONNECT_OE_VAL_LOW (0) -#define ICONNECT_OE_VAL_HIGH (1 << 10)
-/* PHY related */ -#define MV88E1116_LED_FCTRL_REG 10 -#define MV88E1116_CPRSP_CR3_REG 21 -#define MV88E1116_MAC_CTRL_REG 21 -#define MV88E1116_PGADR_REG 22 -#define MV88E1116_RGMII_TXTM_CTRL (1 << 4) -#define MV88E1116_RGMII_RXTM_CTRL (1 << 5)
-#endif /* __ICONNECT_H */ diff --git a/configs/iconnect_defconfig b/configs/iconnect_defconfig index 1c9c77a292..336fae270a 100644 --- a/configs/iconnect_defconfig +++ b/configs/iconnect_defconfig @@ -20,7 +20,8 @@ CONFIG_BOOTCOMMAND="setenv bootargs ${console} ${mtdparts} ${bootargs_root}; ubi CONFIG_USE_PREBOOT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_BOARD_LATE_INIT=y -CONFIG_SYS_PROMPT="iconnect => " +CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="iConnect> " # CONFIG_CMD_FLASH is not set CONFIG_CMD_NAND=y CONFIG_CMD_PCI=y @@ -39,11 +40,14 @@ CONFIG_OF_CONTROL=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_NAND=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NETCONSOLE=y CONFIG_DM=y # CONFIG_MMC is not set CONFIG_MTD=y CONFIG_MTD_RAW_NAND=y +CONFIG_PHY_MARVELL=y +CONFIG_DM_ETH=y CONFIG_MVGBE=y CONFIG_MII=y CONFIG_PCI=y diff --git a/include/configs/iconnect.h b/include/configs/iconnect.h index f1aad1efde..44a4b4409f 100644 --- a/include/configs/iconnect.h +++ b/include/configs/iconnect.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /*
- Copyright (C) 2022 Tony Dinh mibodhi@gmail.com
- (C) Copyright 2009-2012
- Wojciech Dubowik wojciech.dubowik@neratec.com
- Luka Perkov luka@openwrt.org
@@ -10,32 +11,24 @@
#include "mv-common.h"
-/*
- Environment variables configuration
- */
-/*
- Default environment variables
- */
- #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \
- "mtdparts="CONFIG_MTDPARTS_DEFAULT \
"mtdparts=" CONFIG_MTDPARTS_DEFAULT \ "kernel=/boot/uImage\0" \ "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
/*
- Ethernet driver configuration
- This board has PCIe Wifi card, so allow Ethernet to be disabled
*/ #ifdef CONFIG_CMD_NET #define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */ #define CONFIG_PHY_BASE_ADR 11
-#undef CONFIG_RESET_PHY_R +#ifdef CONFIG_RESET_PHY_R +#undef CONFIG_RESET_PHY_R /* remove legacy reset_phy() */ +#endif #endif /* CONFIG_CMD_NET */
-/*
- File system
- */
- #endif /* _CONFIG_ICONNECT_H */
Viele Grüße, Stefan Roese
participants (2)
-
Stefan Roese
-
Tony Dinh