From patchwork Mon Apr 15 09:32:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 1085542 X-Patchwork-Delegate: twarren@nvidia.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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NusS312+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44jNtj1kq4z9s3q for ; Mon, 15 Apr 2019 19:46:37 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id ECD5FC21EE5; Mon, 15 Apr 2019 09:41:44 +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=FREEMAIL_FROM, 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 C188AC21EBB; Mon, 15 Apr 2019 09:34:15 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 19528C21EA1; Mon, 15 Apr 2019 09:33:15 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id E6E24C21DB3 for ; Mon, 15 Apr 2019 09:33:11 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id n25so19446218wmk.4 for ; Mon, 15 Apr 2019 02:33:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OaJsSVlJakwzqLQovz+C3vHa+sUh9iEEYRR5Eo1CJ6A=; b=NusS312+N8Wg5gmVkKvH8UKKUIFitecPuI8WdHkeYR8vnlbn05MKhiGDCj9hN/frvL ifdQJ1me01Elj35jcum2GMHBYsD8bNOl2sbPRcNEkiISOwnmzUO/VwNcnO/DJdEybp6J lsSpmMGC1UBF2mbXswqimFK3WJ5h+fAfkSAe0ABsVNEg3Pxq0RvB33PUBCCzazuxaHfI 78QmeswOgPod+qzq9EFqVruNgEhoV/p5Sx6ceQZhqsD45U8PPtov/2h2oT3zyvuSUNfn mn82BkHh3CU9DFLBZNKf/PuwMLZzDDPZf9pCFJKWJ1W0GfFLhURZ8Jfsb4MmON6Zv+kY BL3A== 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:mime-version:content-transfer-encoding; bh=OaJsSVlJakwzqLQovz+C3vHa+sUh9iEEYRR5Eo1CJ6A=; b=p7GByDNesD5MBbHtfAzXg/45uHxom+T5trhU6l8AAbxt/0ZY+dTn62oQ9crs8SRfHC eHd0CmAY5O7FgkFqIUjZDKY9LNE9FgS+rLVm1MyceRb05ZDrcHpwwkM9+ZCAfg8QlQ0F dPCTRBm8akpSMl9s94JFXqa0ZRG8Hf+AbIUc0E9eoBGFkQX3WLz+aPw+xHsEE+xVJZoa j4dO84DAgege6b2A9a8vNM4N5xdZrvKuxTD/FnYMzgLOtwW0+RZ6/YDXO1mOvUKvJxPb JoOVkqFp842pVAXZND6EU0IYnVDb7BYicQagnthtFU8R6z8WWoCfc4Q8K7ML9+UxUTp7 nbwA== X-Gm-Message-State: APjAAAUkK1vQ56ikMtyDjH5eWHMeRA0wn/GahxmOHMdY3ePOHYwMf92k ChJMoqWGJfikMUAkc9akcl4= X-Google-Smtp-Source: APXvYqzS5ePUDoCSDglwcT4NYsvrG3whwF7nrLNR9uwjUTvMnZBaz5QpwD3i3wNs5aeyVS9/GowANQ== X-Received: by 2002:a1c:4cf:: with SMTP id 198mr21133304wme.125.1555320791530; Mon, 15 Apr 2019 02:33:11 -0700 (PDT) Received: from localhost (p2E5BE61D.dip0.t-ipconnect.de. [46.91.230.29]) by smtp.gmail.com with ESMTPSA id g13sm13524308wmh.11.2019.04.15.02.33.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Apr 2019 02:33:10 -0700 (PDT) From: Thierry Reding To: Tom Warren , Simon Glass Date: Mon, 15 Apr 2019 11:32:34 +0200 Message-Id: <20190415093239.27509-23-thierry.reding@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190415093239.27509-1-thierry.reding@gmail.com> References: <20190415093239.27509-1-thierry.reding@gmail.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Jon Hunter Subject: [U-Boot] [PATCH v5 22/27] p2771-0000: Pass Ethernet MAC to the kernel 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" From: Thierry Reding Pass the ethernet MAC address to the kernel upon boot. This passes both the local-mac-address property (as passed to U-Boot from cboot) and the currently set MAC address via the mac-address property. The latter will only be set if it is different from the address that was already passed via the local-mac-address property. Signed-off-by: Thierry Reding --- board/nvidia/p2771-0000/p2771-0000.c | 43 ++++++++++++++++++++++++++++ configs/p2771-0000-000_defconfig | 1 + configs/p2771-0000-500_defconfig | 1 + 3 files changed, 45 insertions(+) diff --git a/board/nvidia/p2771-0000/p2771-0000.c b/board/nvidia/p2771-0000/p2771-0000.c index 6f88010c18c3..fe22067f6571 100644 --- a/board/nvidia/p2771-0000/p2771-0000.c +++ b/board/nvidia/p2771-0000/p2771-0000.c @@ -4,7 +4,10 @@ */ #include +#include #include +#include +#include #include "../p2571/max77620_init.h" void pin_mux_mmc(void) @@ -52,3 +55,43 @@ int tegra_pcie_board_init(void) return 0; } #endif + +int ft_board_setup(void *fdt, bd_t *bd) +{ + const void *cboot_fdt = (const void *)cboot_boot_x0; + uint8_t mac[ETH_ALEN], local_mac[ETH_ALEN]; + const char *path; + int offset, err; + + err = cboot_get_ethaddr(cboot_fdt, local_mac); + if (err < 0) + memset(local_mac, 0, ETH_ALEN); + + path = fdt_get_alias(fdt, "ethernet"); + if (!path) + return 0; + + debug("ethernet alias found: %s\n", path); + + offset = fdt_path_offset(fdt, path); + if (offset < 0) + return 0; + + if (is_valid_ethaddr(local_mac)) { + err = fdt_setprop(fdt, offset, "local-mac-address", local_mac, + ETH_ALEN); + if (!err) + debug("Local MAC address set: %pM\n", local_mac); + } + + if (eth_env_get_enetaddr("ethaddr", mac)) { + if (memcmp(local_mac, mac, ETH_ALEN) != 0) { + err = fdt_setprop(fdt, offset, "mac-address", mac, + ETH_ALEN); + if (!err) + debug("MAC address set: %pM\n", mac); + } + } + + return 0; +} diff --git a/configs/p2771-0000-000_defconfig b/configs/p2771-0000-000_defconfig index ad0802067e73..91896e39a10f 100644 --- a/configs/p2771-0000-000_defconfig +++ b/configs/p2771-0000-000_defconfig @@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80080000 CONFIG_TEGRA186=y CONFIG_NR_DRAM_BANKS=1026 CONFIG_OF_SYSTEM_SETUP=y +CONFIG_OF_BOARD_SETUP=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_STDIO_DEREGISTER=y CONFIG_SYS_PROMPT="Tegra186 (P2771-0000-000) # " diff --git a/configs/p2771-0000-500_defconfig b/configs/p2771-0000-500_defconfig index 459b67fd195f..20d4393838d6 100644 --- a/configs/p2771-0000-500_defconfig +++ b/configs/p2771-0000-500_defconfig @@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x80080000 CONFIG_TEGRA186=y CONFIG_NR_DRAM_BANKS=1026 CONFIG_OF_SYSTEM_SETUP=y +CONFIG_OF_BOARD_SETUP=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_STDIO_DEREGISTER=y CONFIG_SYS_PROMPT="Tegra186 (P2771-0000-500) # "