From patchwork Wed Oct 18 08:02:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Armstrong X-Patchwork-Id: 827490 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=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="I/EWitF+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3yH4MJ3Xccz9t39 for ; Wed, 18 Oct 2017 19:03:56 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 438ACC21D80; Wed, 18 Oct 2017 08:03:16 +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=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID 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 6CE29C21DE6; Wed, 18 Oct 2017 08:02:32 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D9348C21DC4; Wed, 18 Oct 2017 08:02:26 +0000 (UTC) Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by lists.denx.de (Postfix) with ESMTPS id D0A92C21D7E for ; Wed, 18 Oct 2017 08:02:21 +0000 (UTC) Received: by mail-wm0-f46.google.com with SMTP id u138so8455083wmu.4 for ; Wed, 18 Oct 2017 01:02:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rYqgE5NRwoFNhHuf7ZG+QrdYwJghhmyj7HFeqd8p608=; b=I/EWitF+Mva3RTqcU75n7/5h3IFT0/ljv9cQiSsKpk6sg5jYCzMfHBIfOvTeMwqMQS KrXCZKAXJtIOl3GgewkVHGL/oHphB7G2dRPqCTWDvvFsEpnrxJ65bLuG7KOAk65O4E43 anxlRxTfHjEL1jxS7ZUD+u1erzYsIFOUV2u+E8vWZUh3OLfRA2e8dHZZiCFlG2szS5AQ KqLiJevmWuQnQXEDNTEcIYkArok5bwAX7L/XKtTds9QdlFUX2YeFPJNDkylYLlU7u5jY yl/hwWJSDVD8JDFE6e3AUrIo8594ET1OILD811klNrlDxKE3w8WIVo1iqAjrxC6C5hG+ 4ZoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rYqgE5NRwoFNhHuf7ZG+QrdYwJghhmyj7HFeqd8p608=; b=bw2mFGkN8pPck2VOEhf9eV6nywHVY0bpwgXUZOO8RvXaGm8RCvvX0AGIZxmmcXP1ua qJNnZumlKeptr4Q9p4xbSvozhFuA2k2Zoj1a0IM63kH0u7w18OH6vzf3EdPywPHYvtBQ Ah0NezSn3zBF/RsPPOt7hl54ktyHymcChkcaE2DJuV8mtL0x/FgcGKr5awUyGSyrCb4K 9m9Epcet7sodBTYpoW63Zr9+OzUqIK6dXcjt8jXAGlkz2tiaNKnov2oPucGdfy0/HZOY fydlWxzMGP2dny2+Sxv+oM8xxtn1m5BHtphKallhfDl30E/TvBC9WmEWi6tC+23DSVag Q8SA== X-Gm-Message-State: AMCzsaXFjpZYuGBanhAepva8Qewa9dQIXj/xDesVnqdUDRF2UKeapVJe mkEb0YRPwlD8lQQ7Dny5ua90H5Az6bM= X-Google-Smtp-Source: ABhQp+TxVTc/Ly1QOLTFW/0x2HO2qG7xJFeDyPj2K9WO3fcGkicNAlkt9iKzau11D2L7844OcdTWjA== X-Received: by 10.28.37.195 with SMTP id l186mr5970516wml.144.1508313741195; Wed, 18 Oct 2017 01:02:21 -0700 (PDT) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id v8sm8693254wrg.80.2017.10.18.01.02.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Oct 2017 01:02:20 -0700 (PDT) From: Neil Armstrong To: u-boot@lists.denx.de, albert.u.boot@aribaud.net, joe.hershberger@ni.com Date: Wed, 18 Oct 2017 10:02:12 +0200 Message-Id: <1508313732-19282-4-git-send-email-narmstrong@baylibre.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1508313732-19282-1-git-send-email-narmstrong@baylibre.com> References: <1508313732-19282-1-git-send-email-narmstrong@baylibre.com> Cc: trini@konsulko.com, linux-amlogic@lists.infradead.org Subject: [U-Boot] [PATCH u-boot 3/3] arm: amlogic: p212: Add support for Ethernet with Internal PHY 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch adds support for the Internal RMII Ethernet PHY on the Amlogic P212 Reference Board. Signed-off-by: Neil Armstrong --- board/amlogic/p212/p212.c | 39 ++++++++++++++++++++++++++++++++++++++- configs/p212_defconfig | 4 ++++ include/configs/p212.h | 2 ++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/board/amlogic/p212/p212.c b/board/amlogic/p212/p212.c index 1eeb7f2..ece8096 100644 --- a/board/amlogic/p212/p212.c +++ b/board/amlogic/p212/p212.c @@ -9,6 +9,13 @@ #include #include #include +#include +#include + +#define EFUSE_SN_OFFSET 20 +#define EFUSE_SN_SIZE 16 +#define EFUSE_MAC_OFFSET 52 +#define EFUSE_MAC_SIZE 6 int board_init(void) { @@ -17,5 +24,35 @@ int board_init(void) int misc_init_r(void) { - return 0; + u8 mac_addr[EFUSE_MAC_SIZE]; + char serial[EFUSE_SN_SIZE]; + ssize_t len; + + /* Set RMII mode */ + out_le32(GXBB_ETH_REG_0, GXBB_ETH_REG_0_INVERT_RMII_CLK | + GXBB_ETH_REG_0_CLK_EN); + + /* Use Internal PHY */ + out_le32(GXBB_ETH_REG_2, 0x10110181); + out_le32(GXBB_ETH_REG_3, 0xe40908ff); + + /* Enable power and clock gate */ + setbits_le32(GXBB_GCLK_MPEG_1, GXBB_GCLK_MPEG_1_ETH); + clrbits_le32(GXBB_MEM_PD_REG_0, GXBB_MEM_PD_REG_0_ETH_MASK); + + if (!eth_env_get_enetaddr("ethaddr", mac_addr)) { + len = meson_sm_read_efuse(EFUSE_MAC_OFFSET, + mac_addr, EFUSE_MAC_SIZE); + if (len == EFUSE_MAC_SIZE && is_valid_ethaddr(mac_addr)) + eth_env_set_enetaddr("ethaddr", mac_addr); + } + + if (!env_get("serial#")) { + len = meson_sm_read_efuse(EFUSE_SN_OFFSET, serial, + EFUSE_SN_SIZE); + if (len == EFUSE_SN_SIZE) + env_set("serial#", serial); + } + + return 0; } diff --git a/configs/p212_defconfig b/configs/p212_defconfig index 3c57621..d4b5349 100644 --- a/configs/p212_defconfig +++ b/configs/p212_defconfig @@ -20,6 +20,10 @@ CONFIG_OF_CONTROL=y CONFIG_DM_GPIO=y CONFIG_DM_MMC=y CONFIG_MMC_MESON_GX=y +CONFIG_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_PHY_MESON_GXL=y +CONFIG_NET_RANDOM_ETHADDR=y CONFIG_PINCTRL=y CONFIG_PINCTRL_MESON_GXL=y CONFIG_DEBUG_UART_MESON=y diff --git a/include/configs/p212.h b/include/configs/p212.h index 0477384..793b556 100644 --- a/include/configs/p212.h +++ b/include/configs/p212.h @@ -12,6 +12,8 @@ #define CONFIG_MISC_INIT_R +#define CONFIG_PHY_ADDR 8 + /* Serial setup */ #define CONFIG_CONS_INDEX 0