From patchwork Fri Sep 1 08:26:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenyou Yang X-Patchwork-Id: 808582 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xkCDl4sf8z9sPk for ; Fri, 1 Sep 2017 18:33:11 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 5F303C21DC5; Fri, 1 Sep 2017 08:31:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id C9D12C21F00; Fri, 1 Sep 2017 08:31:30 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A57E5C21EE1; Fri, 1 Sep 2017 08:30:27 +0000 (UTC) Received: from DVREDG01.corp.atmel.com (nasmtp01.atmel.com [192.199.1.245]) by lists.denx.de (Postfix) with ESMTPS id 88F6FC21EB4 for ; Fri, 1 Sep 2017 08:30:24 +0000 (UTC) Received: from apsmtp01.atmel.com (10.168.254.30) by DVREDG01.corp.atmel.com (10.42.103.30) with Microsoft SMTP Server (TLS) id 14.3.235.1; Fri, 1 Sep 2017 02:29:44 -0600 Received: from shaarm01.corp.atmel.com (10.168.254.13) by apsmtp01.corp.atmel.com (10.168.254.30) with Microsoft SMTP Server id 14.3.235.1; Fri, 1 Sep 2017 16:33:46 +0800 From: Wenyou Yang To: U-Boot Mailing List Date: Fri, 1 Sep 2017 16:26:16 +0800 Message-ID: <20170901082618.30622-2-wenyou.yang@microchip.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170901082618.30622-1-wenyou.yang@microchip.com> References: <20170901082618.30622-1-wenyou.yang@microchip.com> MIME-Version: 1.0 Cc: Tom Rini Subject: [U-Boot] [PATCH v4 1/3] board: atmel: Create board/$(VENDOR)/common folder X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Create board/$(VENDOR)/common folder to accommodate the common code shared by other atmel boards, now put the code to set ethernet mac address from eeprom, which uses the i2c eeprom driver. Signed-off-by: Wenyou Yang Reviewed-by: Simon Glass --- Changes in v4: - Follow up the env function renaming. Changes in v3: None Changes in v2: None arch/arm/mach-at91/include/mach/at91_common.h | 2 ++ board/atmel/common/Makefile | 11 ++++++++ board/atmel/common/board.c | 12 +++++++++ board/atmel/common/mac_eeprom.c | 36 +++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 board/atmel/common/Makefile create mode 100644 board/atmel/common/board.c create mode 100644 board/atmel/common/mac_eeprom.c diff --git a/arch/arm/mach-at91/include/mach/at91_common.h b/arch/arm/mach-at91/include/mach/at91_common.h index 0742ffc56f..a95fe41610 100644 --- a/arch/arm/mach-at91/include/mach/at91_common.h +++ b/arch/arm/mach-at91/include/mach/at91_common.h @@ -36,4 +36,6 @@ void matrix_init(void); void redirect_int_from_saic_to_aic(void); void configure_2nd_sram_as_l2_cache(void); +int at91_set_ethaddr(int offset); + #endif /* AT91_COMMON_H */ diff --git a/board/atmel/common/Makefile b/board/atmel/common/Makefile new file mode 100644 index 0000000000..6d9c6850b5 --- /dev/null +++ b/board/atmel/common/Makefile @@ -0,0 +1,11 @@ +# +# Copyright (C) 2017 Microchip +# Wenyou Yang +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += board.o +ifndef CONFIG_SPL_BUILD +obj-$(CONFIG_I2C_EEPROM) += mac_eeprom.o +endif diff --git a/board/atmel/common/board.c b/board/atmel/common/board.c new file mode 100644 index 0000000000..7e326d925b --- /dev/null +++ b/board/atmel/common/board.c @@ -0,0 +1,12 @@ +/* + * Copyright (C) 2017 Microchip + * Wenyou Yang + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include + +void dummy(void) +{ +} diff --git a/board/atmel/common/mac_eeprom.c b/board/atmel/common/mac_eeprom.c new file mode 100644 index 0000000000..60ddf00d45 --- /dev/null +++ b/board/atmel/common/mac_eeprom.c @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2017 Microchip + * Wenyou Yang + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include + +int at91_set_ethaddr(int offset) +{ + const int ETH_ADDR_LEN = 6; + unsigned char ethaddr[ETH_ADDR_LEN]; + const char *ETHADDR_NAME = "ethaddr"; + struct udevice *dev; + int ret; + + if (env_get(ETHADDR_NAME)) + return 0; + + ret = uclass_first_device_err(UCLASS_I2C_EEPROM, &dev); + if (ret) + return ret; + + ret = i2c_eeprom_read(dev, offset, ethaddr, 6); + if (ret) + return ret; + + if (is_valid_ethaddr(ethaddr)) + eth_env_set_enetaddr(ETHADDR_NAME, ethaddr); + + return 0; +} From patchwork Fri Sep 1 08:26:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenyou Yang X-Patchwork-Id: 808581 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xkCDC6g0Sz9sPk for ; Fri, 1 Sep 2017 18:32:43 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id AC231C21EFF; Fri, 1 Sep 2017 08:31:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 5C70DC21EE1; Fri, 1 Sep 2017 08:31:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DA06EC21EB1; Fri, 1 Sep 2017 08:30:43 +0000 (UTC) Received: from DVREDG02.corp.atmel.com (nasmtp01.atmel.com [192.199.1.246]) by lists.denx.de (Postfix) with ESMTPS id 26CF4C21ED4 for ; Fri, 1 Sep 2017 08:30:39 +0000 (UTC) Received: from apsmtp01.atmel.com (10.168.254.30) by DVREDG02.corp.atmel.com (10.42.103.31) with Microsoft SMTP Server (TLS) id 14.3.235.1; Fri, 1 Sep 2017 02:29:59 -0600 Received: from shaarm01.corp.atmel.com (10.168.254.13) by apsmtp01.corp.atmel.com (10.168.254.30) with Microsoft SMTP Server id 14.3.235.1; Fri, 1 Sep 2017 16:33:59 +0800 From: Wenyou Yang To: U-Boot Mailing List Date: Fri, 1 Sep 2017 16:26:17 +0800 Message-ID: <20170901082618.30622-3-wenyou.yang@microchip.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170901082618.30622-1-wenyou.yang@microchip.com> References: <20170901082618.30622-1-wenyou.yang@microchip.com> MIME-Version: 1.0 Cc: Tom Rini Subject: [U-Boot] [PATCH v4 2/3] board: sama5d2_xplained: Replace code to set mac address X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Replace the code to set the ethernet mac address with the code from the common folder. Signed-off-by: Wenyou Yang Reviewed-by: Simon Glass --- Changes in v4: None Changes in v3: None Changes in v2: None arch/arm/dts/at91-sama5d2_xplained.dts | 5 +++ board/atmel/sama5d2_xplained/sama5d2_xplained.c | 46 +++---------------------- configs/sama5d2_xplained_mmc_defconfig | 1 + configs/sama5d2_xplained_spiflash_defconfig | 1 + include/configs/sama5d2_xplained.h | 4 --- 5 files changed, 11 insertions(+), 46 deletions(-) diff --git a/arch/arm/dts/at91-sama5d2_xplained.dts b/arch/arm/dts/at91-sama5d2_xplained.dts index 3e624f142c..b00aaa2c79 100644 --- a/arch/arm/dts/at91-sama5d2_xplained.dts +++ b/arch/arm/dts/at91-sama5d2_xplained.dts @@ -102,6 +102,11 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_default>; status = "okay"; + + i2c_eeprom: i2c_eeprom@5c { + compatible = "atmel,24mac402"; + reg = <0x5c>; + }; }; pioA: gpio@fc038000 { diff --git a/board/atmel/sama5d2_xplained/sama5d2_xplained.c b/board/atmel/sama5d2_xplained/sama5d2_xplained.c index 3f0860c555..7e0cb4228f 100644 --- a/board/atmel/sama5d2_xplained/sama5d2_xplained.c +++ b/board/atmel/sama5d2_xplained/sama5d2_xplained.c @@ -8,8 +8,6 @@ #include #include #include -#include -#include #include #include #include @@ -161,50 +159,14 @@ int dram_init(void) return 0; } -#ifdef CONFIG_CMD_I2C -static int set_ethaddr_from_eeprom(void) -{ - const int ETH_ADDR_LEN = 6; - unsigned char ethaddr[ETH_ADDR_LEN]; - const char *ETHADDR_NAME = "ethaddr"; - struct udevice *bus, *dev; - - if (env_get(ETHADDR_NAME)) - return 0; - - if (uclass_get_device_by_seq(UCLASS_I2C, 1, &bus)) { - printf("Cannot find I2C bus 1\n"); - return -1; - } - - if (dm_i2c_probe(bus, AT24MAC_ADDR, 0, &dev)) { - printf("Failed to probe I2C chip\n"); - return -1; - } - - if (dm_i2c_read(dev, AT24MAC_REG, ethaddr, ETH_ADDR_LEN)) { - printf("Failed to read ethernet address from EEPROM\n"); - return -1; - } - - if (!is_valid_ethaddr(ethaddr)) { - printf("The ethernet address read from EEPROM is not valid!\n"); - return -1; - } - - return eth_env_set_enetaddr(ETHADDR_NAME, ethaddr); -} -#else -static int set_ethaddr_from_eeprom(void) -{ - return 0; -} -#endif +#define AT24MAC_MAC_OFFSET 0x9a #ifdef CONFIG_MISC_INIT_R int misc_init_r(void) { - set_ethaddr_from_eeprom(); +#ifdef CONFIG_I2C_EEPROM + at91_set_ethaddr(AT24MAC_MAC_OFFSET); +#endif return 0; } diff --git a/configs/sama5d2_xplained_mmc_defconfig b/configs/sama5d2_xplained_mmc_defconfig index d59fd8216c..fb7c242b1c 100644 --- a/configs/sama5d2_xplained_mmc_defconfig +++ b/configs/sama5d2_xplained_mmc_defconfig @@ -51,6 +51,7 @@ CONFIG_DM_GPIO=y CONFIG_ATMEL_PIO4=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_AT91=y +CONFIG_I2C_EEPROM=y CONFIG_DM_MMC=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ATMEL=y diff --git a/configs/sama5d2_xplained_spiflash_defconfig b/configs/sama5d2_xplained_spiflash_defconfig index a997aa74bd..24698876ba 100644 --- a/configs/sama5d2_xplained_spiflash_defconfig +++ b/configs/sama5d2_xplained_spiflash_defconfig @@ -49,6 +49,7 @@ CONFIG_DM_GPIO=y CONFIG_ATMEL_PIO4=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_AT91=y +CONFIG_I2C_EEPROM=y CONFIG_DM_MMC=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ATMEL=y diff --git a/include/configs/sama5d2_xplained.h b/include/configs/sama5d2_xplained.h index 9ceb91924d..891218d83e 100644 --- a/include/configs/sama5d2_xplained.h +++ b/include/configs/sama5d2_xplained.h @@ -35,10 +35,6 @@ #define CONFIG_SF_DEFAULT_SPEED 30000000 #endif -/* I2C */ -#define AT24MAC_ADDR 0x5c -#define AT24MAC_REG 0x9a - /* LCD */ #ifdef CONFIG_LCD From patchwork Fri Sep 1 08:26:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenyou Yang X-Patchwork-Id: 808580 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xkCCy6z9Rz9t1t for ; Fri, 1 Sep 2017 18:32:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A7D6AC21EF1; Fri, 1 Sep 2017 08:31:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 008A2C21EF0; Fri, 1 Sep 2017 08:31:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AF7C2C21EF0; Fri, 1 Sep 2017 08:30:48 +0000 (UTC) Received: from eusmtp01.atmel.com (eusmtp01.atmel.com [212.144.249.242]) by lists.denx.de (Postfix) with ESMTPS id 924E4C21EA8 for ; Fri, 1 Sep 2017 08:30:48 +0000 (UTC) Received: from apsmtp01.atmel.com (10.168.254.30) by eusmtp01.atmel.com (10.145.145.30) with Microsoft SMTP Server id 14.3.235.1; Fri, 1 Sep 2017 10:30:11 +0200 Received: from shaarm01.corp.atmel.com (10.168.254.13) by apsmtp01.corp.atmel.com (10.168.254.30) with Microsoft SMTP Server id 14.3.235.1; Fri, 1 Sep 2017 16:34:12 +0800 From: Wenyou Yang To: U-Boot Mailing List Date: Fri, 1 Sep 2017 16:26:18 +0800 Message-ID: <20170901082618.30622-4-wenyou.yang@microchip.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170901082618.30622-1-wenyou.yang@microchip.com> References: <20170901082618.30622-1-wenyou.yang@microchip.com> MIME-Version: 1.0 Cc: Tom Rini Subject: [U-Boot] [PATCH v4 3/3] board: sama5d4_xplained: Set mac address from eeprom X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add the code to set the ethernet mac address from eeprom by using the common code from the common folder. Signed-off-by: Wenyou Yang Reviewed-by: Simon Glass --- Changes in v4: - Rebase the latest commit(8b3cec7da) on uboot/master. Changes in v3: - remove CONFIG_SPL_I2C_SUPPORT=y from the default configuration files. - rebase on [PATCH] misc: Makefile: Add condition on build i2c_eeprom. https://lists.denx.de/pipermail/u-boot/2017-August/300783.html Changes in v2: - Add a new patch to create board/$(VENDOR)/common folder to accommodate the common code and put the code to set the ethernet mac address from eeprom here. - Use the i2c_eeprom driver to read the mac address, instead of the dm i2c API directly. arch/arm/dts/at91-sama5d4_xplained.dts | 5 +++++ board/atmel/sama5d4_xplained/sama5d4_xplained.c | 12 ++++++++++++ configs/sama5d4_xplained_mmc_defconfig | 3 +++ configs/sama5d4_xplained_nandflash_defconfig | 3 +++ configs/sama5d4_xplained_spiflash_defconfig | 3 +++ include/configs/sama5d4_xplained.h | 2 ++ 6 files changed, 28 insertions(+) diff --git a/arch/arm/dts/at91-sama5d4_xplained.dts b/arch/arm/dts/at91-sama5d4_xplained.dts index ca6aff28e5..0592b31b91 100644 --- a/arch/arm/dts/at91-sama5d4_xplained.dts +++ b/arch/arm/dts/at91-sama5d4_xplained.dts @@ -88,6 +88,11 @@ i2c0: i2c@f8014000 { status = "okay"; + + i2c_eeprom: i2c_eeprom@5c { + compatible = "atmel,24mac402"; + reg = <0x5c>; + }; }; macb0: ethernet@f8020000 { diff --git a/board/atmel/sama5d4_xplained/sama5d4_xplained.c b/board/atmel/sama5d4_xplained/sama5d4_xplained.c index 854afcb622..248a31b8c4 100644 --- a/board/atmel/sama5d4_xplained/sama5d4_xplained.c +++ b/board/atmel/sama5d4_xplained/sama5d4_xplained.c @@ -192,6 +192,18 @@ int board_early_init_f(void) } #endif +#define AT24MAC_MAC_OFFSET 0x9a + +#ifdef CONFIG_MISC_INIT_R +int misc_init_r(void) +{ +#ifdef CONFIG_I2C_EEPROM + at91_set_ethaddr(AT24MAC_MAC_OFFSET); +#endif + return 0; +} +#endif + int board_init(void) { /* adress of boot parameters */ diff --git a/configs/sama5d4_xplained_mmc_defconfig b/configs/sama5d4_xplained_mmc_defconfig index de0ce40a56..792d011718 100644 --- a/configs/sama5d4_xplained_mmc_defconfig +++ b/configs/sama5d4_xplained_mmc_defconfig @@ -47,6 +47,9 @@ CONFIG_AT91_UTMI=y CONFIG_AT91_H32MX=y CONFIG_DM_GPIO=y CONFIG_AT91_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_AT91=y +CONFIG_I2C_EEPROM=y CONFIG_DM_MMC=y CONFIG_GENERIC_ATMEL_MCI=y CONFIG_DM_SPI_FLASH=y diff --git a/configs/sama5d4_xplained_nandflash_defconfig b/configs/sama5d4_xplained_nandflash_defconfig index cba3c8b640..3b0af5bf00 100644 --- a/configs/sama5d4_xplained_nandflash_defconfig +++ b/configs/sama5d4_xplained_nandflash_defconfig @@ -44,6 +44,9 @@ CONFIG_AT91_UTMI=y CONFIG_AT91_H32MX=y CONFIG_DM_GPIO=y CONFIG_AT91_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_AT91=y +CONFIG_I2C_EEPROM=y CONFIG_DM_MMC=y CONFIG_GENERIC_ATMEL_MCI=y CONFIG_DM_SPI_FLASH=y diff --git a/configs/sama5d4_xplained_spiflash_defconfig b/configs/sama5d4_xplained_spiflash_defconfig index 174e2bc5ba..26eb00598c 100644 --- a/configs/sama5d4_xplained_spiflash_defconfig +++ b/configs/sama5d4_xplained_spiflash_defconfig @@ -46,6 +46,9 @@ CONFIG_AT91_UTMI=y CONFIG_AT91_H32MX=y CONFIG_DM_GPIO=y CONFIG_AT91_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_AT91=y +CONFIG_I2C_EEPROM=y CONFIG_DM_MMC=y CONFIG_GENERIC_ATMEL_MCI=y CONFIG_DM_SPI_FLASH=y diff --git a/include/configs/sama5d4_xplained.h b/include/configs/sama5d4_xplained.h index c8462b0b64..08f865016d 100644 --- a/include/configs/sama5d4_xplained.h +++ b/include/configs/sama5d4_xplained.h @@ -12,6 +12,8 @@ #include "at91-sama5_common.h" +#define CONFIG_MISC_INIT_R + /* SDRAM */ #define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_DDRCS