From patchwork Fri Jun 6 06:41:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894434 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348290wrb; Thu, 5 Jun 2025 23:42:39 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUL49Yi3wEtaDoL3teJn10FK+Ss4qcO1rZB1mTDlCiLFkNjFiiDOVvjMDA1kyLmDk6aAyvzJg==@linaro.org X-Google-Smtp-Source: AGHT+IFsR+O5vxrwekteUoDfkWsbS0xriXXxQCLmbLSppkqEWmFP7o3Jzn4YhPar6Q0wEXFkoVXS X-Received: by 2002:a17:906:6a16:b0:ade:7c3:7e14 with SMTP id a640c23a62f3a-ade1ab8771dmr174063366b.46.1749192158684; Thu, 05 Jun 2025 23:42:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192158; cv=none; d=google.com; s=arc-20240605; b=StUkxqKPdCh1x5wvOugU9Fue99FgKB7o+lFGNv9joc5vBmUF2fo+TNTx79dfTmesSR ApoQrQxSh9bInOwPdWEFiWfLfsyYKwuHvpZ2vPSs9PmbkTwdUHBXZBrjy72uMrG6IXSs U8eexRXOcX77zpX4TxQToSOrO2iKbZFCPoH8ra+gD/OQU+pyRHtK8PqW4yom6ORy3IEt GFaNBm/r4T4kRykmu5OfDBy4eHmt0lBprhyevEIiAP+JpOBPr7S2gPVpXwuvBvJrCBpi /C2x6Bvl6m0yabrU9gaM10hJF/8HgV5+CyJMaCnHGeRPIT6Qp21uX5mu4HQ9FXNNIQOM P10Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=bYi6B8XbvaXoTC2nr5gEQHtipxuPsWt8g4Y9tMLOqxY=; fh=SaRt7jmIQ8IaazYOaoOXl1I3O1/3fElm3a6j0U4lRh4=; b=P1QIy1QitRmKaBI3GKQCMhVjxP1PIV7238jz8cxdU1fDAxq2GpejxZPtiZXyembmkU rQZAxg7lv07lk2gB3LrDKuYsalwzlXy6TcgPXvC7S++kCRkDS90e/oLTpmrpPG5VFsNk 0BqywpQsFnH3BJiF0tZXCArXhibM6Lgw5l1XTOAwadSo23/6Bzqf664DgvenCCxbUH1l mtifOIXJwUXzR9rXWiy5khFzSLbWVL2XsOsQFzccqLkPxEBtoHaMItZpbh3EDSYgoLum OKvCDkjReVAiADRkkZLf4xXyDA3Mi4eQHQIGpPcI1DU8SJwTaN6Pt6V2/n8KI8tzLYgm y67g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eQdfLPJN; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1d7552cdsi83640266b.111.2025.06.05.23.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:38 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eQdfLPJN; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8111B82A8D; Fri, 6 Jun 2025 08:42:28 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="eQdfLPJN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7B73182977; Fri, 6 Jun 2025 08:42:27 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 70838807B1 for ; Fri, 6 Jun 2025 08:42:25 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-450ccda1a6eso16154955e9.2 for ; Thu, 05 Jun 2025 23:42:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192145; x=1749796945; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bYi6B8XbvaXoTC2nr5gEQHtipxuPsWt8g4Y9tMLOqxY=; b=eQdfLPJNZM4az5j7UWREZp2vwoZBy/ysiyNJR/Ei12g8o+GuvIifpWCV9X9jAkyj7Z p4RQtwHQXEdeF5ckE3f8D6GiXMsOLQ59sDk2iCs1o0QhngrdusMc8eygK73Z9bzO+72O DqB32wefh+6OZe8k7j13bh6ToEkcZRb35sY5d87gyZjVjpjZBdT2BSSj2+Avgkwmxrub nHn/dy0Qx7pvHTEciUbhD9VAyEHiM94hXbypOIpuZlBhWdRp24ajvW+NHAbH8wa5CSNd o1u1riZfEQ+Ik76EFj+DKjUPW0Z99cbQrKvewT9oSHpXe7bAqOX1AlETfHt7RGrjX5bW jUvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192145; x=1749796945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bYi6B8XbvaXoTC2nr5gEQHtipxuPsWt8g4Y9tMLOqxY=; b=SzQqt7enj7zwKXEqlPeEC0xp5XhCJ9F0h0SvB1t1CD0m2FAvZnTL2XD4GT1t61TUS/ 0rzPwuBugSy2x29VImPv5cwj/0hQLB6NIEQ/fr8reudE+c4GyDZ9g5VQ9jvECJK63Cdi X0LZFyg/J/otHE2FYmTde57YdUEhWgWJBWD8R5viTF04qSVYfPsA3Mqjvs85qAb/eHhj rHGoIGXD+k/ooCOIb3JOl0CfMS8QbD7AXiCuqQVy2xEbhO/2Rw7Z1yYK55Ia2eNGJuYd Zskmx01lvA22xHF502IFdjs1Ikv5AOjJ0L67sFqtSz5mXBWODgN8z4aMOKOThFBPdL9+ w8nw== X-Gm-Message-State: AOJu0YyYmXTcP0oyyoFuudtgACXBq47Ej7vti6cNj5CsRjk/q3tGXuM7 enKvjiEklWyg4ia6HcoQu7UCP8EL6Zgg01GaMyg0/dAcw9LWpQcTg73yZmaQDWiMVeW5be9j34k 6g0ju X-Gm-Gg: ASbGncv+lPV2WSa+PjHmtieBuRngXxnPsWDaoErfzvcy3ccd34v3xOf483c3PEStKCe X1h5UrGNUB8qGvZab22dwDoOZk5fiEjprlF0cHfFhtcJqo7qvr1hsVt49d6qumoZ4KntP1Gr4J1 KgV1/F2MZCSdcxvrS9DvDx/9AkiF6vDFRqv3paCE09Inz/V10UiPyVE0EJCQfttVsHLaIN2DGk1 N+WCB3cPX06rX7j8l9vb3DjRHokoesGsoh9vPaCTB1GrjCE6JEOT+IbIVR/RBIsCntzrhkm3ke8 /UctNjNpEwULPcC4g/p/1bASI7AC0vJSgFnFMa2wn/bSzwYr8yf4+Y4UgQ2FhNRG+OKHmzE= X-Received: by 2002:a05:6000:4023:b0:3a4:e68e:d33c with SMTP id ffacd0b85a97d-3a531ab7294mr1498600f8f.47.1749192144659; Thu, 05 Jun 2025 23:42:24 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:24 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Ilias Apalodimas , Joe Hershberger , Ramon Fried , Tom Rini Subject: [PATCH v2 01/13] lwip: remove net/lwip/eth_internal.h Date: Fri, 6 Jun 2025 08:41:37 +0200 Message-ID: <20250606064211.3091237-2-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean net/lwip/eth_internal.h is not used. Remove it. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch net/lwip/eth_internal.h | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 net/lwip/eth_internal.h diff --git a/net/lwip/eth_internal.h b/net/lwip/eth_internal.h deleted file mode 100644 index 87561d5b214..00000000000 --- a/net/lwip/eth_internal.h +++ /dev/null @@ -1,35 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * (C) Copyright 2001-2015 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * Joe Hershberger, National Instruments - */ - -#ifndef __ETH_INTERNAL_H -#define __ETH_INTERNAL_H - -/* Do init that is common to driver model and legacy networking */ -void eth_common_init(void); - -/** - * eth_env_set_enetaddr_by_index() - set the MAC address environment variable - * - * This sets up an environment variable with the given MAC address (@enetaddr). - * The environment variable to be set is defined by <@base_name><@index>addr. - * If @index is 0 it is omitted. For common Ethernet this means ethaddr, - * eth1addr, etc. - * - * @base_name: Base name for variable, typically "eth" - * @index: Index of interface being updated (>=0) - * @enetaddr: Pointer to MAC address to put into the variable - * Return: 0 if OK, other value on error - */ -int eth_env_set_enetaddr_by_index(const char *base_name, int index, - uchar *enetaddr); - -int eth_mac_skip(int index); -void eth_current_changed(void); -void eth_set_dev(struct udevice *dev); -void eth_set_current_to_next(void); - -#endif From patchwork Fri Jun 6 06:41:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894435 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348336wrb; Thu, 5 Jun 2025 23:42:47 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUXeeK72nZ6n/bQMmUZ8nG/2BojiYkdUC+Vp/HQCo210wKVluaVdnADNSIS29rQGUyEEk1YRg==@linaro.org X-Google-Smtp-Source: AGHT+IG5zkjSFMmNAWQ6/YYI/qYyuGPNfSXhOaKbTYOzI34NXupqcIyze0y8DP0XqezNbMIkXpwH X-Received: by 2002:a17:907:72c1:b0:ad5:3a7b:de91 with SMTP id a640c23a62f3a-ade1a978546mr204098766b.27.1749192167002; Thu, 05 Jun 2025 23:42:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192166; cv=none; d=google.com; s=arc-20240605; b=HUbMPtkLj10ZPFV03O63DLG6Yxb7dD3/L+//pyKnM6VylVjxP5JIECPXZKiKB2kA14 HMVG2qkucy8o5maO+3JOqDxhx/HEgFf8PZMmIjmKqa7PL6C4cgCnQtc63ezd4+HIMirx o4/3acHwAYNuoF4lOGw9qoGcf8kOBp1rXIvhSPfRiXHuJaUNSMNSjJooJv3T94nwGbzf 0g7Y7w7zHCuPkMJYHzwdKg905d6yAqDjSKk/67Um+f6YjyGxSYgcRgf6JwzPMFBHJy0K Xo95v1ZZd4WN3sNCjBI5eacWAy8sY+zLRD8jyxNhq3JzhrudvuTG8v4ZGrUgzmS2u723 EpYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=V3GiFy3MOKqfvDVM3FS6mZwtRpoFy5beRX9E8hZvdmI=; fh=EV9+CiwqE32vBl+ZKT+TbIRrp4j14rmmPHjWmRflbOw=; b=YRmSmhnkuJ/H0FmeNM4gecCE6qUG+m60tGoqbON/Fz2IYKQtCBoQE3hwXRmA/T68lC 1Dzt4v9C/oetniQKi809xTMB9Xzj7nnqT0x6Y7rzhvavq6eGa0ceANMKDJPZrxIhSQVY ARPXEPjfaTB+lfMwKum6G8T4ObgWMT2cfVbW72vyNtSaPE6UFcDGjNAQ8nCzcmKaCEOY D2/DF94Adi3Suzn39KwcsmJwbOCkO5yglKtmU557JKLJg4k3inIqiSoHeIaU+rW89Dt8 oJLQAThWKivTISXrm+sg47ryGHGGEsqLfQiIh/zgcmUbut1jQ3s8HGEs+KM/bS18scwI ieTA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gXWRUYpC; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1d754674si87821966b.150.2025.06.05.23.42.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:46 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gXWRUYpC; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D148B82AAF; Fri, 6 Jun 2025 08:42:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="gXWRUYpC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C517882AAF; Fri, 6 Jun 2025 08:42:28 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B73EF828A2 for ; Fri, 6 Jun 2025 08:42:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-3a51481a598so1028965f8f.3 for ; Thu, 05 Jun 2025 23:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192146; x=1749796946; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V3GiFy3MOKqfvDVM3FS6mZwtRpoFy5beRX9E8hZvdmI=; b=gXWRUYpCAEteDUO/PVqeyNICIpvCZMUfG+rQZZl/71ImoN5trzRqzSFCx+1YTvpNav J1cq9a1FYnZ8v0G2rLSP5T99qnVZSUJ7uAGjdDVG5CJVuPjtjh+7CPrTA+Ucch68sMmV yJoyP06/fxjBZWRe2939C5O9MiINWoZoTmU7yXhse/fEpjonYupxzT2txH6y7xvPP25K Xy8xRYHum3l5fgFq7iqu+EDmWkfbI3rJezlCdI7DjyyG2onu16czEQtNDHcNb6qLv4wX JX+lLzD8EFDqGeSadpPNpB2le3JyW/gxv6OMvVsP9J/2d8Va+C20CRYDP7ep+QynvYYf v1Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192146; x=1749796946; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V3GiFy3MOKqfvDVM3FS6mZwtRpoFy5beRX9E8hZvdmI=; b=qd+wWWih04x5hMnJluLtc301FqUlNg1tnP4GrulsSHhi1drHg2Gjiu1isO/chSUKfM hKLvl8iweox5JJiVWYO3lxee9CzLKKU1SiXDDqCVtM9JtfwUsNIRI5xzSLb8AaRXWie/ 4ZVYpQ5XsDyi62Ns6+sxWYjNvZmO1OF7i0sqUuXUtjaXf/QaGkQMjy18B+3KA9ZVc9LZ 1Se43RmPb8dRyRhsHGF5+lZ910h5NSzTdExubfe8UYZae0STAaSL7GpBGPwhwheJxbO7 8z1ywEm9GGjH5qSryI98D1snHR0EQlsmv80t+Up9irL9YBRadi9/BtH6RqAmpGuRY+sM VKcw== X-Gm-Message-State: AOJu0Yx/oR9+8B6rhnp1VXMOekr47mZGeyQZyLVEYmTXPIvNfHo9UD5g 8L1vEFrOvxceYqgumMxPJf+UxXJvPwZq4yaznMPeUW/CtQECz+8Zj94jvDTPSJhs1krhTWsfwmi 5ZA/1 X-Gm-Gg: ASbGnctOYi/YDHJFDyfdtp8seyC305RbVbRlfGq69LvCaw+VqRTNazWR2T5/H0VJc7x Y2rBaC7Np0VJbCLdrr+Q5Nj9mYbPBuYF/+mfNIUiXvcKGAUKkZlS4G2o2E6VHexGteq0sYVzs8I tMuv8yo3rCiYmPSSHAfPpj/b0T530VZZ5jyULjOiY7cVO5pz0aD73b4OuWTDAW5mFlgGzq/Qdwb ojqwm6RQ8Tv7zIQWlakQecT+NWHrm2r0buBD66hPVk098ttJpJ87go8emw3gvo/Ax2hrY7gsqXH onAQP6FShB8vXgBjVOCCaw5iKfbOriPQoBmVecqhxABID+Yv79O3dNeYKBNkaM1e5dRWgCw= X-Received: by 2002:a05:6000:26cb:b0:3a4:f66a:9d31 with SMTP id ffacd0b85a97d-3a5317868b5mr1629249f8f.16.1749192145610; Thu, 05 Jun 2025 23:42:25 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:25 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Heinrich Schuchardt , Dmitry Rokosov , Greg Malysa , Igor Opaniuk , Ilias Apalodimas , Mattijs Korpershoek , Michael Walle , Nathan Barrett-Morrison , Oliver Gaskell , Patrice Chotard , Robert Marko , Sebastian Reichel , Simon Glass , Sumit Garg , Tom Rini Subject: [PATCH v2 02/13] lwip: split cmd/net-lwip.c into one file per command Date: Fri, 6 Jun 2025 08:41:38 +0200 Message-ID: <20250606064211.3091237-3-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Move each command in cmd/net-lwip.c into its own file (cmd/lwip/${cmd}.c). Suggested-by: Heinrich Schuchardt Signed-off-by: Jerome Forissier Reviewed-by: Tom Rini --- Changes in v2: - New patch MAINTAINERS | 1 + cmd/Makefile | 2 +- cmd/lwip/Makefile | 5 +++++ cmd/lwip/dhcp.c | 9 +++++++++ cmd/lwip/dns.c | 8 ++++++++ cmd/lwip/ping.c | 8 ++++++++ cmd/lwip/tftp.c | 9 +++++++++ cmd/{net-lwip.c => lwip/wget.c} | 26 +------------------------- 8 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 cmd/lwip/Makefile create mode 100644 cmd/lwip/dhcp.c create mode 100644 cmd/lwip/dns.c create mode 100644 cmd/lwip/ping.c create mode 100644 cmd/lwip/tftp.c rename cmd/{net-lwip.c => lwip/wget.c} (51%) diff --git a/MAINTAINERS b/MAINTAINERS index d62dd35a385..e8f644fc75b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1409,6 +1409,7 @@ F: net/ NETWORK (LWIP) M: Jerome Forissier S: Maintained +F: cmd/lwip/ F: cmd/net-lwip.c F: configs/qemu_arm64_lwip_defconfig F: drivers/net/sandbox-lwip.c diff --git a/cmd/Makefile b/cmd/Makefile index 80cf70b7fe8..2c6b13ffc5c 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -133,7 +133,7 @@ obj-$(CONFIG_CMD_NAND) += nand.o ifdef CONFIG_NET obj-$(CONFIG_CMD_NET) += net.o net-common.o else ifdef CONFIG_NET_LWIP -obj-$(CONFIG_CMD_NET) += net-lwip.o net-common.o +obj-$(CONFIG_CMD_NET) += lwip/ net-common.o endif obj-$(CONFIG_ENV_SUPPORT) += nvedit.o obj-$(CONFIG_CMD_NVEDIT_EFI) += nvedit_efi.o diff --git a/cmd/lwip/Makefile b/cmd/lwip/Makefile new file mode 100644 index 00000000000..4c28d2b28e5 --- /dev/null +++ b/cmd/lwip/Makefile @@ -0,0 +1,5 @@ +obj-$(CONFIG_CMD_DHCP) += dhcp.o +obj-$(CONFIG_CMD_DNS) += dns.o +obj-$(CONFIG_CMD_PING) += ping.o +obj-$(CONFIG_CMD_TFTPBOOT) += tftp.o +obj-$(CONFIG_CMD_WGET) += wget.o diff --git a/cmd/lwip/dhcp.c b/cmd/lwip/dhcp.c new file mode 100644 index 00000000000..3894d71f654 --- /dev/null +++ b/cmd/lwip/dhcp.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* Copyright (C) 2024-2025 Linaro Ltd. */ + +#include +#include + +U_BOOT_CMD(dhcp, 3, 1, do_dhcp, + "boot image via network using DHCP/TFTP protocol", + "[loadAddress] [[hostIPaddr:]bootfilename]"); diff --git a/cmd/lwip/dns.c b/cmd/lwip/dns.c new file mode 100644 index 00000000000..31642b864af --- /dev/null +++ b/cmd/lwip/dns.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* Copyright (C) 2024-2025 Linaro Ltd. */ + +#include +#include + +U_BOOT_CMD(dns, 3, 1, do_dns, "lookup the IP of a hostname", + "hostname [envvar]"); diff --git a/cmd/lwip/ping.c b/cmd/lwip/ping.c new file mode 100644 index 00000000000..af5c022f55f --- /dev/null +++ b/cmd/lwip/ping.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* Copyright (C) 2024-2025 Linaro Ltd. */ + +#include +#include + +U_BOOT_CMD(ping, 2, 1, do_ping, "send ICMP ECHO_REQUEST to network host", + "pingAddress"); diff --git a/cmd/lwip/tftp.c b/cmd/lwip/tftp.c new file mode 100644 index 00000000000..6bb7a3733a2 --- /dev/null +++ b/cmd/lwip/tftp.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* Copyright (C) 2024-2025 Linaro Ltd. */ + +#include +#include + +U_BOOT_CMD(tftpboot, 3, 0, do_tftpb, + "boot image via network using TFTP protocol", + "[loadAddress] [[hostIPaddr:]bootfilename]"); diff --git a/cmd/net-lwip.c b/cmd/lwip/wget.c similarity index 51% rename from cmd/net-lwip.c rename to cmd/lwip/wget.c index cecf8d02555..3f5b9952c93 100644 --- a/cmd/net-lwip.c +++ b/cmd/lwip/wget.c @@ -1,32 +1,9 @@ // SPDX-License-Identifier: GPL-2.0+ -/* Copyright (C) 2024 Linaro Ltd. */ +/* Copyright (C) 2024-2025 Linaro Ltd. */ #include #include -#if defined(CONFIG_CMD_DHCP) -U_BOOT_CMD(dhcp, 3, 1, do_dhcp, - "boot image via network using DHCP/TFTP protocol", - "[loadAddress] [[hostIPaddr:]bootfilename]"); -#endif - -#if defined(CONFIG_CMD_PING) -U_BOOT_CMD(ping, 2, 1, do_ping, "send ICMP ECHO_REQUEST to network host", - "pingAddress"); -#endif - -#if defined(CONFIG_CMD_TFTPBOOT) -U_BOOT_CMD(tftpboot, 3, 0, do_tftpb, - "boot image via network using TFTP protocol", - "[loadAddress] [[hostIPaddr:]bootfilename]"); -#endif - -#if defined(CONFIG_CMD_DNS) -U_BOOT_CMD(dns, 3, 1, do_dns, "lookup the IP of a hostname", - "hostname [envvar]"); -#endif - -#if defined(CONFIG_CMD_WGET) U_BOOT_CMD(wget, 4, 1, do_wget, "boot image via network using HTTP/HTTPS protocol" #if defined(CONFIG_WGET_CACERT) @@ -47,4 +24,3 @@ U_BOOT_CMD(wget, 4, 1, do_wget, #endif #endif ); -#endif From patchwork Fri Jun 6 06:41:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894436 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348381wrb; Thu, 5 Jun 2025 23:42:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVlxu5ZweFY7ZcQtYd8xXX8aRRmwTMlegJN3V3fg1U8yt/xj10icekZenv3UDVy4obPytpS2Q==@linaro.org X-Google-Smtp-Source: AGHT+IG9XEoG5UTn1eFRG1H9HWUcadKpBv/152FdEQ7d6rhEydxwz/Mp7LA+qwEPT9yuOhg46kIH X-Received: by 2002:a17:907:868b:b0:ad5:5114:f538 with SMTP id a640c23a62f3a-ade0762f0admr643029766b.13.1749192174930; Thu, 05 Jun 2025 23:42:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192174; cv=none; d=google.com; s=arc-20240605; b=A1CIZuhHLuE4Lwqvps0BqrKGO5Z8WSUcd7kUJkGO8jkCCnui8voiBQh1TYOgA30fpE 23DnBmeHufw6UewwlkPU55miqE7UkrV4+lyr+fx3bvrefIiEi73Q00zLWk15hsCgBZor BT72zmLQe5DMZyAaqFzcAywrl+9+hj+nX+Gz1lRacTd9Zrr9TYwgKJUfdQLHppcmlksj ZCBHdp0Sz0P/Xj8uNHX7lFF6Reh2/++5sgO2XXaOC20Dusnfkd40QKL942B9Sz1YQhRa yjwI6gXfXsWHswfGXEz97TIyq30+uRSM7xJckaaRFJ5de7upG03RRQyVqc2Xt8XtcCVG GPLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Kw9a2XLk8kXpQxlBmMgzUu7g4Vpcw/5hcgrEpS0z510=; fh=cNlUmhrmVLZdtx7mxwbBkxH9DxScOKBYk8BJHHA/bw4=; b=F8LNdb/8QPzMCNgRxss7GHamymsdJA777scG5clTHjj6AC4ehRQdgnJAZ8guUCn0i+ 7l50oCPysnXa0ZoIK8Bj9xhiPPpRUBwSyBRq28vso686TbCxhryJuD2fdCXy/yCMzph6 ZnQeACKo5awO1Pbv8aQBaJfknQjdav7rReO9N7chdVFjBbNVgC4HeAqBTga7KFkxWbjF a1KDfd9r76GrHkEk9Hgn1qvRTWmN6tWbLQcf+O2wLQ//GODmR+Pt8vK7uA776DZSRgPq kbu7Hijx0ryBXrFddkpbxKGGWMXFnOgII5m/Z9cBKFpL9srBYSllpC7L+1QvTL7Pj1H2 8wBQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="cV/4/JX/"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1dc7695fsi81419766b.566.2025.06.05.23.42.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:54 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="cV/4/JX/"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 26F5A82AFC; Fri, 6 Jun 2025 08:42:31 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="cV/4/JX/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9A54082AAF; Fri, 6 Jun 2025 08:42:29 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 65A13800C1 for ; Fri, 6 Jun 2025 08:42:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3a4e742dc97so1818225f8f.0 for ; Thu, 05 Jun 2025 23:42:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192147; x=1749796947; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Kw9a2XLk8kXpQxlBmMgzUu7g4Vpcw/5hcgrEpS0z510=; b=cV/4/JX/TikZGv1fO22ONsUaglHedOPTSvcLBoqrfk6IX9DSipTNevaLshv+WMuAC8 jpceVvNqMjcurCHnPzVKtTwDv8dQoLlRzbLFKp7GG5XNCdxSDp+Wxu05jOEL5aIFiyek Vruh7SFtUOQqIeaFGJFEoYesIYckGOF4LCE0gu/y3TQHlv68EPC6gxpWW+Ro3VYysDaF +DwMROT0T6bx7KcQ9XKzCVNvQTze6Qq6jJwEO51rApyWi55EP7Br3jczn1E37QJGvE+g wlsWgUc5HMXgr0Kiw8y3N91wDmWyAbgcsgkOwpF8RECjE12rIwvguzqQPntjCos/S/Kh CFdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192147; x=1749796947; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Kw9a2XLk8kXpQxlBmMgzUu7g4Vpcw/5hcgrEpS0z510=; b=m3LR27+B25y8Z0nFm9kWhvysmQWpE1kb73v37xI/j5B/rtALWzrmNH14negvfSC3J4 zR5YG8VPi1Qqx94KVn1b8zbpnvkKEWTNMNRV9kQonqSPktbIUZzAv9WdoxqsSAd9PjzO x7Ed5Q2FcMyG7I2Gt4A+VPgRHMUa49U2QLhOe97uj7lsylQHFGcnIRWAqAcN0z82mDTb k0rUlR1J75kt2+Sy0lk/S9LOPXRBLfmrbVDybOBoHrMzZ3vGgXfo1yjhf9OoIWeftAj2 uW8IP36RvjyaYw+w8fWuTtoYcXtAeRwD9bppJaN1GhBg6i4kryHR1gciesTENT202s+J nhPw== X-Gm-Message-State: AOJu0YwKyMHX2avk5+7DrNW1X3Ht2E25ELXo8Tpia855LHPv9X/P5eJN J/Mc45TrbI2PQiFJp8qr/NjGz0qz8in9eejJuPB8OXZvspCoDVkueZBcffYFaSwZxwu+E47gVND g47ZP X-Gm-Gg: ASbGncv1YoOb46BSGoEz3h95v6xkEWAvOvajW/KvyoQPM57DIcZ8BG24bgC1zsaH13/ oL6dQ9Tkcehh4Ulutlcs8jH+WDuBjBq3g8Qh7jOdeRgzwrli5w1bj9+i6s8t/kv5g9iPFwXEd7j 7lElfWdayyEYIlbIkEkcyeVT3AebC9taj1VN1O19TbElPcMQuJP2dmX3J8z04IVB5Htbbu/RBgC rsWepzGO31JdmIOQh3Gxjp2//wwwkk8ANe6Ab7FZVo86/Hg6orlb3ZxsTKJGjDEYuOESY1e8PNs dwC1lmHtI64TgrBHeCdVL3iB+CTPGIVgCHf08soiSBlR6aNg/8pjG3LzCrHQ X-Received: by 2002:a05:6000:400c:b0:3a5:23c6:eeee with SMTP id ffacd0b85a97d-3a531434352mr1887531f8f.21.1749192146521; Thu, 05 Jun 2025 23:42:26 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:26 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Heinrich Schuchardt , Ilias Apalodimas , Joe Hershberger , Michael Walle , Ramon Fried , Simon Glass , Tom Rini Subject: [PATCH v2 03/13] lwip: split net/lwip/wget.c Date: Fri, 6 Jun 2025 08:41:39 +0200 Message-ID: <20250606064211.3091237-4-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Split net/lwip/wget.c in two: one part which implements CONFIG_WGET stays in net/ while the part that implements CONFIG_CMD_WGET is moved into cmd/. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/wget.c | 192 ++++++++++++++++++++++++++++++++++++++++++ include/net-lwip.h | 13 +++ net/lwip/wget.c | 206 +-------------------------------------------- 3 files changed, 209 insertions(+), 202 deletions(-) diff --git a/cmd/lwip/wget.c b/cmd/lwip/wget.c index 3f5b9952c93..5baad2e0f19 100644 --- a/cmd/lwip/wget.c +++ b/cmd/lwip/wget.c @@ -2,7 +2,9 @@ /* Copyright (C) 2024-2025 Linaro Ltd. */ #include +#include #include +#include U_BOOT_CMD(wget, 4, 1, do_wget, "boot image via network using HTTP/HTTPS protocol" @@ -24,3 +26,193 @@ U_BOOT_CMD(wget, 4, 1, do_wget, #endif #endif ); + +#if CONFIG_IS_ENABLED(WGET_CACERT) +char *cacert; +size_t cacert_size; +enum auth_mode cacert_auth_mode = AUTH_OPTIONAL; + +static int set_auth(enum auth_mode auth) +{ + cacert_auth_mode = auth; + + return CMD_RET_SUCCESS; +} + +#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) +static const char builtin_cacert[]; +static const size_t builtin_cacert_size; +static bool cacert_initialized; +#endif + +static int _set_cacert(const void *addr, size_t sz) +{ + mbedtls_x509_crt crt; + void *p; + int ret; + + if (cacert) + free(cacert); + + if (!addr) { + cacert = NULL; + cacert_size = 0; + return CMD_RET_SUCCESS; + } + + p = malloc(sz); + if (!p) + return CMD_RET_FAILURE; + cacert = p; + cacert_size = sz; + + memcpy(cacert, (void *)addr, sz); + + mbedtls_x509_crt_init(&crt); + ret = mbedtls_x509_crt_parse(&crt, cacert, cacert_size); + if (ret) { + if (!wget_info->silent) + printf("Could not parse certificates (%d)\n", ret); + free(cacert); + cacert = NULL; + cacert_size = 0; + return CMD_RET_FAILURE; + } + +#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) + cacert_initialized = true; +#endif + return CMD_RET_SUCCESS; +} + +#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) +static int set_cacert_builtin(void) +{ + return _set_cacert(builtin_cacert, builtin_cacert_size); +} +#endif + +static int set_cacert(char * const saddr, char * const ssz) +{ + ulong addr, sz; + + addr = hextoul(saddr, NULL); + sz = hextoul(ssz, NULL); + + return _set_cacert((void *)addr, sz); +} +#endif /* CONFIG_WGET_CACERT */ + +/* + * Legacy syntax support + * Convert [:]filename into a URL if needed + */ +static int parse_legacy_arg(char *arg, char *nurl, size_t rem) +{ + char *p = nurl; + size_t n; + char *col = strchr(arg, ':'); + char *env; + char *server; + char *path; + + if (strstr(arg, "http") == arg) { + n = snprintf(nurl, rem, "%s", arg); + if (n < 0 || n > rem) + return -1; + return 0; + } + + n = snprintf(p, rem, "%s", "http://"); + if (n < 0 || n > rem) + return -1; + p += n; + rem -= n; + + if (col) { + n = col - arg; + server = arg; + path = col + 1; + } else { + env = env_get("httpserverip"); + if (!env) + env = env_get("serverip"); + if (!env) { + log_err("error: httpserver/serverip has to be set\n"); + return -1; + } + n = strlen(env); + server = env; + path = arg; + } + + if (rem < n) + return -1; + strncpy(p, server, n); + p += n; + rem -= n; + if (rem < 1) + return -1; + *p = '/'; + p++; + rem--; + n = strlen(path); + if (rem < n) + return -1; + strncpy(p, path, n); + p += n; + rem -= n; + if (rem < 1) + return -1; + *p = '\0'; + + return 0; +} + +int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]) +{ + char *end; + char *url; + ulong dst_addr; + char nurl[1024]; + +#if CONFIG_IS_ENABLED(WGET_CACERT) + if (argc == 4 && !strncmp(argv[1], "cacert", strlen("cacert"))) + return set_cacert(argv[2], argv[3]); + if (argc == 3 && !strncmp(argv[1], "cacert", strlen("cacert"))) { +#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) + if (!strncmp(argv[2], "builtin", strlen("builtin"))) + return set_cacert_builtin(); +#endif + if (!strncmp(argv[2], "none", strlen("none"))) + return set_auth(AUTH_NONE); + if (!strncmp(argv[2], "optional", strlen("optional"))) + return set_auth(AUTH_OPTIONAL); + if (!strncmp(argv[2], "required", strlen("required"))) + return set_auth(AUTH_REQUIRED); + return CMD_RET_USAGE; + } +#endif + + if (argc < 2 || argc > 3) + return CMD_RET_USAGE; + + dst_addr = hextoul(argv[1], &end); + if (end == (argv[1] + strlen(argv[1]))) { + if (argc < 3) + return CMD_RET_USAGE; + url = argv[2]; + } else { + dst_addr = image_load_addr; + url = argv[1]; + } + + if (parse_legacy_arg(url, nurl, sizeof(nurl))) + return CMD_RET_FAILURE; + + wget_info = &default_wget_info; + if (wget_do_request(dst_addr, nurl)) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} diff --git a/include/net-lwip.h b/include/net-lwip.h index b762956e8fd..cf3cf513b2b 100644 --- a/include/net-lwip.h +++ b/include/net-lwip.h @@ -6,6 +6,19 @@ #include #include +#if CONFIG_IS_ENABLED(WGET_CACERT) +/* HTTPS authentication mode */ +enum auth_mode { + AUTH_NONE, + AUTH_OPTIONAL, + AUTH_REQUIRED, +}; + +extern char *cacert; +extern size_t cacert_size; +extern enum auth_mode cacert_auth_mode; +#endif + enum proto_t { TFTPGET }; diff --git a/net/lwip/wget.c b/net/lwip/wget.c index ea1113e18b1..78f28c56410 100644 --- a/net/lwip/wget.c +++ b/net/lwip/wget.c @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include "lwip/altcp_tls.h" @@ -137,72 +136,6 @@ static int parse_url(char *url, char *host, u16 *port, char **path, return 0; } -/* - * Legacy syntax support - * Convert [:]filename into a URL if needed - */ -static int parse_legacy_arg(char *arg, char *nurl, size_t rem) -{ - char *p = nurl; - size_t n; - char *col = strchr(arg, ':'); - char *env; - char *server; - char *path; - - if (strstr(arg, "http") == arg) { - n = snprintf(nurl, rem, "%s", arg); - if (n < 0 || n > rem) - return -1; - return 0; - } - - n = snprintf(p, rem, "%s", "http://"); - if (n < 0 || n > rem) - return -1; - p += n; - rem -= n; - - if (col) { - n = col - arg; - server = arg; - path = col + 1; - } else { - env = env_get("httpserverip"); - if (!env) - env = env_get("serverip"); - if (!env) { - log_err("error: httpserver/serverip has to be set\n"); - return -1; - } - n = strlen(env); - server = env; - path = arg; - } - - if (rem < n) - return -1; - strncpy(p, server, n); - p += n; - rem -= n; - if (rem < 1) - return -1; - *p = '/'; - p++; - rem--; - n = strlen(path); - if (rem < n) - return -1; - strncpy(p, path, n); - p += n; - rem -= n; - if (rem < 1) - return -1; - *p = '\0'; - - return 0; -} - /** * store_block() - copy received data * @@ -337,93 +270,9 @@ static err_t httpc_headers_done_cb(httpc_state_t *connection, void *arg, struct return ERR_OK; } -#if CONFIG_IS_ENABLED(WGET_HTTPS) -enum auth_mode { - AUTH_NONE, - AUTH_OPTIONAL, - AUTH_REQUIRED, -}; - -static char *cacert; -static size_t cacert_size; -static enum auth_mode cacert_auth_mode = AUTH_OPTIONAL; -#endif - -#if CONFIG_IS_ENABLED(WGET_CACERT) -static int set_auth(enum auth_mode auth) -{ - cacert_auth_mode = auth; - - return CMD_RET_SUCCESS; -} -#endif - -#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) -extern const char builtin_cacert[]; -extern const size_t builtin_cacert_size; -static bool cacert_initialized; -#endif - -#if CONFIG_IS_ENABLED(WGET_CACERT) || CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) -static int _set_cacert(const void *addr, size_t sz) -{ - mbedtls_x509_crt crt; - void *p; - int ret; - - if (cacert) - free(cacert); - - if (!addr) { - cacert = NULL; - cacert_size = 0; - return CMD_RET_SUCCESS; - } - - p = malloc(sz); - if (!p) - return CMD_RET_FAILURE; - cacert = p; - cacert_size = sz; - - memcpy(cacert, (void *)addr, sz); - - mbedtls_x509_crt_init(&crt); - ret = mbedtls_x509_crt_parse(&crt, cacert, cacert_size); - if (ret) { - if (!wget_info->silent) - printf("Could not parse certificates (%d)\n", ret); - free(cacert); - cacert = NULL; - cacert_size = 0; - return CMD_RET_FAILURE; - } - -#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) - cacert_initialized = true; -#endif - return CMD_RET_SUCCESS; -} - -#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) -static int set_cacert_builtin(void) -{ - return _set_cacert(builtin_cacert, builtin_cacert_size); -} -#endif #if CONFIG_IS_ENABLED(WGET_CACERT) -static int set_cacert(char * const saddr, char * const ssz) -{ - ulong addr, sz; - - addr = hextoul(saddr, NULL); - sz = hextoul(ssz, NULL); - - return _set_cacert((void *)addr, sz); -} #endif -#endif /* CONFIG_WGET_CACERT || CONFIG_WGET_BUILTIN_CACERT */ int wget_do_request(ulong dst_addr, char *uri) { @@ -463,9 +312,10 @@ int wget_do_request(ulong dst_addr, char *uri) memset(&conn, 0, sizeof(conn)); #if CONFIG_IS_ENABLED(WGET_HTTPS) if (is_https) { - char *ca; - size_t ca_sz; + char *ca = NULL; + size_t ca_sz = 0; +#if CONFIG_IS_ENABLED(WGET_CACERT) #if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) if (!cacert_initialized) set_cacert_builtin(); @@ -492,7 +342,7 @@ int wget_do_request(ulong dst_addr, char *uri) * with no verification if not. */ } - +#endif if (!ca && !wget_info->silent) { printf("WARNING: no CA certificates, "); printf("HTTPS connections not authenticated\n"); @@ -541,54 +391,6 @@ int wget_do_request(ulong dst_addr, char *uri) return -1; } -int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]) -{ - char *end; - char *url; - ulong dst_addr; - char nurl[1024]; - -#if CONFIG_IS_ENABLED(WGET_CACERT) - if (argc == 4 && !strncmp(argv[1], "cacert", strlen("cacert"))) - return set_cacert(argv[2], argv[3]); - if (argc == 3 && !strncmp(argv[1], "cacert", strlen("cacert"))) { -#if CONFIG_IS_ENABLED(WGET_BUILTIN_CACERT) - if (!strncmp(argv[2], "builtin", strlen("builtin"))) - return set_cacert_builtin(); -#endif - if (!strncmp(argv[2], "none", strlen("none"))) - return set_auth(AUTH_NONE); - if (!strncmp(argv[2], "optional", strlen("optional"))) - return set_auth(AUTH_OPTIONAL); - if (!strncmp(argv[2], "required", strlen("required"))) - return set_auth(AUTH_REQUIRED); - return CMD_RET_USAGE; - } -#endif - - if (argc < 2 || argc > 3) - return CMD_RET_USAGE; - - dst_addr = hextoul(argv[1], &end); - if (end == (argv[1] + strlen(argv[1]))) { - if (argc < 3) - return CMD_RET_USAGE; - url = argv[2]; - } else { - dst_addr = image_load_addr; - url = argv[1]; - } - - if (parse_legacy_arg(url, nurl, sizeof(nurl))) - return CMD_RET_FAILURE; - - wget_info = &default_wget_info; - if (wget_do_request(dst_addr, nurl)) - return CMD_RET_FAILURE; - - return CMD_RET_SUCCESS; -} - /** * wget_validate_uri() - validate the uri for wget * From patchwork Fri Jun 6 06:41:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894437 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348417wrb; Thu, 5 Jun 2025 23:43:03 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVZI2mWS/2aXw0EM+FlK9AsHt3HMiNejvCrBr2hK6fUchDWmX+J+rmZMrU0OviE28CuIjuW2w==@linaro.org X-Google-Smtp-Source: AGHT+IEuusq3ACYN9l+XZaOoXdtQVs66ZBEOIWbVuz8aLG7mU76saTchmlgYMY0cIyhsUA6WjPTI X-Received: by 2002:a17:907:9688:b0:ad8:9257:5737 with SMTP id a640c23a62f3a-ade1aab6caamr188468066b.25.1749192182955; Thu, 05 Jun 2025 23:43:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192182; cv=none; d=google.com; s=arc-20240605; b=UN2JFbIL64sfDRweS2+q8DKoOBo0/8kRn7lW6BfeBkMYTfmR0v62AKN5l5gmLI8zPS QEilxA10HhaImG1gT3TdJ9lskOdChRFW+4GMJ3/T7StgLIQ3WULDG4fXr4Dg/OvnfsMv sScLfeQfkq4KznffnfLICf/2YlSR9PZf6Ry1GLu/IRzAQWNBfHolX9BgViOE4LJUEtcc q7e4D1qNZVt7/nNB3nPltyQTq2azOExxe1RvADlLgPUVrJrfN0cUmsCwlbkFP2a6OrQt TqDess2oZoFRk60I0PhSTTOhOuyMxnr+WkKmGpk3PJF+NFWJQenv3amwhTVM7tH9s4MA snUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OtFyoCe52O7bO5f3J4thUTSaZ+n8yqsiDvoMPvl6Nuk=; fh=+TzJuMMnKDMsbGyXcXAynrdn4hYe+uVLmq5NLJkVciY=; b=QZnornZ5JxVGOkM4/ROxb9ecE0/c7b49y4wDfrmDUGwXtBXSj4Rnn3jhh3F8vfK1Zp V/Vw+cV1SM7J8Hq+8sT3DHYSGmZ0JhGUKkmNnOa97A0c+1AB3ZjL3qiRn3ZKeTQX5G6w zO+BHr7u13iU/p8Br9tscNnyC0n9H1VCmkuhINes0Q4/i0VzQyRC2Cz9rfRs7znF4Q7f JA1EiFUyNsAAoMmMuHnM3tUh2/J2ZpsZ+y2UEYxvXVeRQnLfZnmbyHx687ldDMuKtOmO QYUOpag8MxEXVkSeomnQk3KVDi/kdO5zStYQuu9hMNUPIGbjCP4nMBNC5NwSosWbNesq hQgA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MWrlgUpa; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1e36c63csi79825866b.783.2025.06.05.23.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:02 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MWrlgUpa; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 72CAA82998; Fri, 6 Jun 2025 08:42:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="MWrlgUpa"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6D41682AF6; Fri, 6 Jun 2025 08:42:30 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5E9AF82998 for ; Fri, 6 Jun 2025 08:42:28 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3a507e88b0aso1623518f8f.1 for ; Thu, 05 Jun 2025 23:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192148; x=1749796948; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OtFyoCe52O7bO5f3J4thUTSaZ+n8yqsiDvoMPvl6Nuk=; b=MWrlgUpa8/Hdv9EJdLdzcWRxPQBV2sv8IgrGOrnexq8qtYKbyWdsW2UIP8eJN/OkoH G3dUXXAV8sdzVdoRVfyYqIfeyK9qKUTmXqmCy8D29nHS8FYfRFuiYwpN8jpdLfrKLzTr k/V1KZmapLcucPbl7HT5r8i5JqBWo+/yjYUnqOO+KQHRa2w6ge/n7JvoEr+5+czB/AFP XnTzQBqA3PwDPIcSitDBVJe8bjWOsRPPln5Y/KKQU4RBmv+MwbMworiq9ZJhp8n4u8gd cIx9rSeGXDqNf95AQbG3sZTJPH1iJjU/orSWI1/YASYhLL4uJm8jb8VrhE86+RU6GYA2 hpHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192148; x=1749796948; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OtFyoCe52O7bO5f3J4thUTSaZ+n8yqsiDvoMPvl6Nuk=; b=O78+4Yp3UaYJT4+GXOpvL+z7WnITA1MWhM0wdWaXotrrLfspm0zwPGYmlCVdSGB4KW 6OtPinJtxP11qa0/ViqfCDZLJzY7L2lzUw8zpmqWlkmW9eA2mL5eqwNGAQXUF9lrn++a S3AWNluCN4sQg7aCyDXdmLjmfVi+hBCNAvZEuUfL88zOaH+5yPf4VLbnxiYME9VSKCN3 2RpCrp5qYXhMd5MdLpNFXMg6+kJIolmguTHAsZ+GMUAjapZ+6mmT5xBlxSZBLmbpAoPc AmGlgtP+wctkD3JRzqlxM6MzELKZHnocl2uC/UAW35J8eMAJzZ0pRduiJMN4qFhL+T7T 0e+Q== X-Gm-Message-State: AOJu0YxWpIdqTvtJmbQYPx2ADtLmp2Minu2+k9oYhqJH9Er+6AOaD8Gx sBrTNs8SnGSrQVhs1c0pNQYBehkFJtW3iVmMMNttziOfPmN3lcgW2tFE+XqAzoi0sxvo8TwQN2L RmdMD X-Gm-Gg: ASbGncs4641XFjBMoYsqvFt6/kGdBbZBIXIEgQkP30SQ/C3vJnFv/QwC0g1Ch0OqFfa q2ng24tp780TKr7kTSrrcD6t8dfFwX95yMoi09u5NHyx9VHsAZ6rGyFMdxoOy4MiVpPi1ViofBx 2ZN7iDYOPA/qj7vTljQ4tTVAT/9vngViGCm+0lbA/d3nUxKO39fI7npL7nEXXFaWABeIzOR8iOz uNZLb6aLeHGYkIPcuTKjDFKpmm2ZL3fRDj3yIk8IgEen7ui/88LW41jAWooAk+eKMbJTLbI8Laz 7CYq9tJ1ZR8EGsLgDjns9k56sFDURAKILc0F+Aao6o8Ue0kwN8vyzq2OJIW0 X-Received: by 2002:a05:6000:18ab:b0:3a5:2ef8:3512 with SMTP id ffacd0b85a97d-3a53188d037mr1804394f8f.14.1749192147551; Thu, 05 Jun 2025 23:42:27 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:27 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Heinrich Schuchardt , Ilias Apalodimas , Joe Hershberger , Ramon Fried , Simon Glass , Tom Rini Subject: [PATCH v2 04/13] lwip: move net/lwip/dns.c to cmd/lwip Date: Fri, 6 Jun 2025 08:41:40 +0200 Message-ID: <20250606064211.3091237-5-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Move the implementation of the dns command under cmd/. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/dns.c | 123 ++++++++++++++++++++++++++++++++++++++++++++ net/lwip/Makefile | 1 - net/lwip/dns.c | 128 ---------------------------------------------- 3 files changed, 123 insertions(+), 129 deletions(-) delete mode 100644 net/lwip/dns.c diff --git a/cmd/lwip/dns.c b/cmd/lwip/dns.c index 31642b864af..be57a4d1b88 100644 --- a/cmd/lwip/dns.c +++ b/cmd/lwip/dns.c @@ -2,7 +2,130 @@ /* Copyright (C) 2024-2025 Linaro Ltd. */ #include +#include +#include +#include #include +#include U_BOOT_CMD(dns, 3, 1, do_dns, "lookup the IP of a hostname", "hostname [envvar]"); + +#define DNS_RESEND_MS 1000 +#define DNS_TIMEOUT_MS 10000 + +struct dns_cb_arg { + ip_addr_t host_ipaddr; + const char *var; + bool done; +}; + +static void do_dns_tmr(void *arg) +{ + dns_tmr(); +} + +static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg) +{ + struct dns_cb_arg *dns_cb_arg = arg; + char *ipstr = ip4addr_ntoa(ipaddr); + + dns_cb_arg->done = true; + + if (!ipaddr) { + printf("DNS: host not found\n"); + dns_cb_arg->host_ipaddr.addr = 0; + return; + } + + if (dns_cb_arg->var) + env_set(dns_cb_arg->var, ipstr); + + printf("%s\n", ipstr); +} + +static int dns_loop(struct udevice *udev, const char *name, const char *var) +{ + struct dns_cb_arg dns_cb_arg = { }; + bool has_server = false; + struct netif *netif; + ip_addr_t ipaddr; + ip_addr_t ns; + ulong start; + char *nsenv; + int ret; + + dns_cb_arg.var = var; + + netif = net_lwip_new_netif(udev); + if (!netif) + return CMD_RET_FAILURE; + + dns_init(); + + nsenv = env_get("dnsip"); + if (nsenv && ipaddr_aton(nsenv, &ns)) { + dns_setserver(0, &ns); + has_server = true; + } + + nsenv = env_get("dnsip2"); + if (nsenv && ipaddr_aton(nsenv, &ns)) { + dns_setserver(1, &ns); + has_server = true; + } + + if (!has_server) { + log_err("No valid name server (dnsip/dnsip2)\n"); + net_lwip_remove_netif(netif); + return CMD_RET_FAILURE; + } + + dns_cb_arg.done = false; + + ret = dns_gethostbyname(name, &ipaddr, dns_cb, &dns_cb_arg); + + if (ret == ERR_OK) { + dns_cb(name, &ipaddr, &dns_cb_arg); + } else if (ret == ERR_INPROGRESS) { + start = get_timer(0); + sys_timeout(DNS_RESEND_MS, do_dns_tmr, NULL); + do { + net_lwip_rx(udev, netif); + if (dns_cb_arg.done) + break; + sys_check_timeouts(); + if (ctrlc()) { + printf("\nAbort\n"); + break; + } + } while (get_timer(start) < DNS_TIMEOUT_MS); + sys_untimeout(do_dns_tmr, NULL); + } + + net_lwip_remove_netif(netif); + + if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) + return CMD_RET_SUCCESS; + + return CMD_RET_FAILURE; +} + +int do_dns(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + char *name; + char *var = NULL; + + if (argc == 1 || argc > 3) + return CMD_RET_USAGE; + + name = argv[1]; + + if (argc == 3) + var = argv[2]; + + if (net_lwip_eth_start() < 0) + return CMD_RET_FAILURE; + + return dns_loop(eth_get_dev(), name, var); +} diff --git a/net/lwip/Makefile b/net/lwip/Makefile index 5df222589b8..255c7d018b0 100644 --- a/net/lwip/Makefile +++ b/net/lwip/Makefile @@ -2,7 +2,6 @@ ccflags-y += -I$(srctree)/lib/lwip/lwip/src/include -I$(srctree)/lib/lwip/u-boot obj-$(CONFIG_$(PHASE_)DM_ETH) += net-lwip.o obj-$(CONFIG_CMD_DHCP) += dhcp.o -obj-$(CONFIG_CMD_DNS) += dns.o obj-$(CONFIG_CMD_PING) += ping.o obj-$(CONFIG_CMD_TFTPBOOT) += tftp.o obj-$(CONFIG_WGET) += wget.o diff --git a/net/lwip/dns.c b/net/lwip/dns.c deleted file mode 100644 index 19172ac959a..00000000000 --- a/net/lwip/dns.c +++ /dev/null @@ -1,128 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* Copyright (C) 2024 Linaro Ltd. */ - -#include -#include -#include -#include -#include -#include - -#define DNS_RESEND_MS 1000 -#define DNS_TIMEOUT_MS 10000 - -struct dns_cb_arg { - ip_addr_t host_ipaddr; - const char *var; - bool done; -}; - -static void do_dns_tmr(void *arg) -{ - dns_tmr(); -} - -static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg) -{ - struct dns_cb_arg *dns_cb_arg = arg; - char *ipstr = ip4addr_ntoa(ipaddr); - - dns_cb_arg->done = true; - - if (!ipaddr) { - printf("DNS: host not found\n"); - dns_cb_arg->host_ipaddr.addr = 0; - return; - } - - if (dns_cb_arg->var) - env_set(dns_cb_arg->var, ipstr); - - printf("%s\n", ipstr); -} - -static int dns_loop(struct udevice *udev, const char *name, const char *var) -{ - struct dns_cb_arg dns_cb_arg = { }; - bool has_server = false; - struct netif *netif; - ip_addr_t ipaddr; - ip_addr_t ns; - ulong start; - char *nsenv; - int ret; - - dns_cb_arg.var = var; - - netif = net_lwip_new_netif(udev); - if (!netif) - return CMD_RET_FAILURE; - - dns_init(); - - nsenv = env_get("dnsip"); - if (nsenv && ipaddr_aton(nsenv, &ns)) { - dns_setserver(0, &ns); - has_server = true; - } - - nsenv = env_get("dnsip2"); - if (nsenv && ipaddr_aton(nsenv, &ns)) { - dns_setserver(1, &ns); - has_server = true; - } - - if (!has_server) { - log_err("No valid name server (dnsip/dnsip2)\n"); - net_lwip_remove_netif(netif); - return CMD_RET_FAILURE; - } - - dns_cb_arg.done = false; - - ret = dns_gethostbyname(name, &ipaddr, dns_cb, &dns_cb_arg); - - if (ret == ERR_OK) { - dns_cb(name, &ipaddr, &dns_cb_arg); - } else if (ret == ERR_INPROGRESS) { - start = get_timer(0); - sys_timeout(DNS_RESEND_MS, do_dns_tmr, NULL); - do { - net_lwip_rx(udev, netif); - if (dns_cb_arg.done) - break; - sys_check_timeouts(); - if (ctrlc()) { - printf("\nAbort\n"); - break; - } - } while (get_timer(start) < DNS_TIMEOUT_MS); - sys_untimeout(do_dns_tmr, NULL); - } - - net_lwip_remove_netif(netif); - - if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) - return CMD_RET_SUCCESS; - - return CMD_RET_FAILURE; -} - -int do_dns(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) -{ - char *name; - char *var = NULL; - - if (argc == 1 || argc > 3) - return CMD_RET_USAGE; - - name = argv[1]; - - if (argc == 3) - var = argv[2]; - - if (net_lwip_eth_start() < 0) - return CMD_RET_FAILURE; - - return dns_loop(eth_get_dev(), name, var); -} From patchwork Fri Jun 6 06:41:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894438 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348469wrb; Thu, 5 Jun 2025 23:43:12 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUhFerR2y/bETS/+ogklnCOHswhCD/W5rpWze6uoNocBGfAOKWbr2YcC2kwoyEc5Zft+M4JcA==@linaro.org X-Google-Smtp-Source: AGHT+IHhd/2V0vQ7Pyyj6FykGYWlRkabgBW11OTVGLCH/D95Pj7jTwEUFMs9uku24b0eTiKsc1DQ X-Received: by 2002:a17:907:7248:b0:ade:403:da4a with SMTP id a640c23a62f3a-ade1aa06c8amr178312566b.45.1749192192380; Thu, 05 Jun 2025 23:43:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192192; cv=none; d=google.com; s=arc-20240605; b=f5HpP8HmSNAKWgS3mTremclaCNydsHpKYk5NlhTlLE8a+bmYl7rp3wiDp7uBHhubCB Xe0i93DR/u+gTYYMjGPv11jZxYf5xbdAO4fHNvnWL6/OwMu6yT2vpvsCJVm90matNuSI 3toGGMNkNzfct64jky/S9TFB/B6wEg/wbIeXGf8VbErcKOMecIWNKhR2hA/18v4jom3U U9+QGr0KCCljO74xwxk7oaHWOS+dTQ+Kmba3ibPOrxxtFwi1mprZmxF4ZjL1DNIUCgZB 9zZMdbVob9hbF/ymbdhkYcidO3haeILy60EkTm/E5l3A39xVf4g0iejgrbT7XDUFJqMd tskg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=hObdKgzLhPbT1YUCiTVtdT4NqReLZaHxWJZV/E5DEs0=; fh=+TzJuMMnKDMsbGyXcXAynrdn4hYe+uVLmq5NLJkVciY=; b=a0ar60c3cauziYJiz3mQEME7y2mxjJGGiDxXHxnQ08VdKaMOfrhzCo/7q5yc8K/6Od qhWq+NoFv98gUR7pKyLj+nTYvtBDJMs0iKZCxCuiUV/R8Vu/i7L81m7DUtQNfpVMDYaa XANfCrXokw5oW4qU2AxLSydML+OV2p53mwilpn2spw/ptNOuZa9z6RAVKf5UprsdTb0Q b2UXL04SiTOabkvlfhbF8MwC0JYtrwxR/Gs/1s6Tr4nPO5NyxWnao2oiuepf0C4lq34C ew2lT2/l0f3uwXGDPgYm89iMfCpBsqF1MLvmyNIWKAgToT5v7lHGn0C8SCZLP1u7U0aZ 30nQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rUBV1uot; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1e36c47asi83219866b.880.2025.06.05.23.43.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:12 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rUBV1uot; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B9B1B82B18; Fri, 6 Jun 2025 08:42:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="rUBV1uot"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4D1D9803DF; Fri, 6 Jun 2025 08:42:31 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2DC20803DF for ; Fri, 6 Jun 2025 08:42:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3a510432236so1351742f8f.0 for ; Thu, 05 Jun 2025 23:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192148; x=1749796948; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hObdKgzLhPbT1YUCiTVtdT4NqReLZaHxWJZV/E5DEs0=; b=rUBV1uots1h1N4xEqQZIJs1Rm5midkjPyvEUQ1GpjRWXwGyB7PoOeijq3y3pvw+2jH teOLLqchyXTBUFNpp/qu1GS1NOhCzRXFMkIQON15LZ5YFEqS9iHzw3X3Cw8EEpZr8hLa Bcr56vFZDKYcpus+8IRfjY+WT/72iTdxFmFOVgC8o+S237UlWfBGAnU91N/+hHWUaLhx XHVXRQDb+Wp6DOC8vhlBXF+7JzgeoWCNfFw2G9ld95DwaPHNaAAiJDpeYG/wxUkUuMxB ClKVUbhO9s0sFGWJmowXlpM9NDMxOUmY0TjeW4W/IAx6WISeo53eYmexTgTa7Ak2FltO gm5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192148; x=1749796948; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hObdKgzLhPbT1YUCiTVtdT4NqReLZaHxWJZV/E5DEs0=; b=t+5ZlLbsNgCt/HdNK7Qr9hZHnNsFxdZ2IN1tv0G6i77XwvZh3qwuPdbWLqiN2e1eyA en3hZJv4k1YsX8c8CcTmviRHdlCMDdLP8NeZ2wbwRxtL50YNt+BK6nCYN+Hsl1EZ8AVA s5U973am2e+oqmRIeUZqZUAeFhhcEErhiKUqolmI5KbwxZwKxaJizFH6upM9UohgXmK1 t+qY3J2JtWD34sdQMQ1931F4DonqHKYeRM0THX7VH6t9/vFC4S+dMtLtmE83MTm7mBO2 HVhiPXM7nIwddiJkJV4hXVF+yNLfJ/IHT63kZwv89JaQTh6ktWui5sEZCTFewwXSRN4u hKmQ== X-Gm-Message-State: AOJu0YxJp39+AjUVaVzipr50/0ET4n73Bwowmcc8+GoApBLNJRtbPwD1 aU+lXyrZf+Pvgv47BXqRxbOssOZeUUoTpOEVa71xJo925MjOuNoQ3/H8Xz2m+4y8GScCxwYJjv7 R5TES X-Gm-Gg: ASbGncv1TsnbO0AeRtjCvpYWCQ8n6OWJB0Xkqc4OmKKJb468KZa7zRWiH3cvuFykoQL LlTxOPdLxWkKC7LFJf1vrDqkCdrzhjGqvds3LX1FMXhdaC1wmdmRqju2kP42J53AyT7j0ekI0nZ 4fNmQZDk5rnQS3gHMTiZyozTvxpqFVX6gfgOSa3sMq2IrFjbDGDO/wnG2nvuprMDVKcZeRAhBJ1 KtpJQgt1b49z6eH7QNMTOltWz1iTbQ5ByKjqL2JRkV5mc7Ozrk++n57CrfsZXvrU4Dyad674Sbh IZBjF975RnSCI4f9nGGVzfjaE1d/DV9cv9JDJoxQ4DM4FSmDY0NqTFzvN6QukmHQaBYZwSw= X-Received: by 2002:a05:6000:430c:b0:3a4:f038:af76 with SMTP id ffacd0b85a97d-3a531ce75b5mr1819319f8f.53.1749192148362; Thu, 05 Jun 2025 23:42:28 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:28 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Heinrich Schuchardt , Ilias Apalodimas , Joe Hershberger , Ramon Fried , Simon Glass , Tom Rini Subject: [PATCH v2 05/13] lwip: move net/lwip/ping.c to cmd/lwip Date: Fri, 6 Jun 2025 08:41:41 +0200 Message-ID: <20250606064211.3091237-6-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Move the implementation of the ping command under cmd/. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/ping.c | 175 ++++++++++++++++++++++++++++++++++++++++++++ net/lwip/Makefile | 1 - net/lwip/ping.c | 180 ---------------------------------------------- 3 files changed, 175 insertions(+), 181 deletions(-) delete mode 100644 net/lwip/ping.c diff --git a/cmd/lwip/ping.c b/cmd/lwip/ping.c index af5c022f55f..21931821521 100644 --- a/cmd/lwip/ping.c +++ b/cmd/lwip/ping.c @@ -2,7 +2,182 @@ /* Copyright (C) 2024-2025 Linaro Ltd. */ #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include U_BOOT_CMD(ping, 2, 1, do_ping, "send ICMP ECHO_REQUEST to network host", "pingAddress"); + +#define PING_DELAY_MS 1000 +#define PING_COUNT 5 +/* Ping identifier - must fit on a u16_t */ +#define PING_ID 0xAFAF + +struct ping_ctx { + ip_addr_t target; + struct raw_pcb *pcb; + struct icmp_echo_hdr *iecho; + u16 seq_num; + bool alive; +}; + +static u8_t ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p, + const ip_addr_t *addr) +{ + struct ping_ctx *ctx = arg; + struct icmp_echo_hdr *iecho = ctx->iecho; + + if (addr->addr != ctx->target.addr) + return 0; + + if ((p->tot_len >= (IP_HLEN + sizeof(struct icmp_echo_hdr))) && + pbuf_remove_header(p, IP_HLEN) == 0) { + iecho = (struct icmp_echo_hdr *)p->payload; + + if (iecho->id == PING_ID && + iecho->seqno == lwip_htons(ctx->seq_num)) { + ctx->alive = true; + printf("host %s is alive\n", ipaddr_ntoa(addr)); + pbuf_free(p); + return 1; /* eat the packet */ + } + /* not eaten, restore original packet */ + pbuf_add_header(p, IP_HLEN); + } + + return 0; /* don't eat the packet */ +} + +static int ping_raw_init(struct ping_ctx *ctx) +{ + ctx->pcb = raw_new(IP_PROTO_ICMP); + if (!ctx->pcb) + return -ENOMEM; + + raw_recv(ctx->pcb, ping_recv, ctx); + raw_bind(ctx->pcb, IP_ADDR_ANY); + + return 0; +} + +static void ping_raw_stop(struct ping_ctx *ctx) +{ + if (ctx->pcb) + raw_remove(ctx->pcb); +} + +static void ping_prepare_echo(struct ping_ctx *ctx) +{ + struct icmp_echo_hdr *iecho = ctx->iecho; + + ICMPH_TYPE_SET(iecho, ICMP_ECHO); + ICMPH_CODE_SET(iecho, 0); + iecho->chksum = 0; + iecho->id = PING_ID; + iecho->seqno = lwip_htons(ctx->seq_num); + + iecho->chksum = inet_chksum(iecho, sizeof(*iecho)); +} + +static void ping_send_icmp(struct ping_ctx *ctx) +{ + struct pbuf *p; + size_t ping_size = sizeof(struct icmp_echo_hdr); + + p = pbuf_alloc(PBUF_IP, (u16_t)ping_size, PBUF_RAM); + if (!p) + return; + + if (p->len == p->tot_len && !p->next) { + ctx->iecho = (struct icmp_echo_hdr *)p->payload; + ping_prepare_echo(ctx); + raw_sendto(ctx->pcb, p, &ctx->target); + } + + pbuf_free(p); +} + +static void ping_send(void *arg) +{ + struct ping_ctx *ctx = arg; + + ctx->seq_num++; + if (ctx->seq_num <= PING_COUNT) { + ping_send_icmp(ctx); + sys_timeout(PING_DELAY_MS, ping_send, ctx); + } +} + +static int ping_loop(struct udevice *udev, const ip_addr_t *addr) +{ + struct ping_ctx ctx = {}; + struct netif *netif; + int ret; + + netif = net_lwip_new_netif(udev); + if (!netif) + return -ENODEV; + + printf("Using %s device\n", udev->name); + + ret = ping_raw_init(&ctx); + if (ret < 0) { + net_lwip_remove_netif(netif); + return ret; + } + + ctx.target = *addr; + + ping_send(&ctx); + + do { + sys_check_timeouts(); + net_lwip_rx(udev, netif); + if (ctx.alive) + break; + if (ctrlc()) { + printf("\nAbort\n"); + break; + } + } while (ctx.seq_num <= PING_COUNT); + + sys_untimeout(ping_send, &ctx); + ping_raw_stop(&ctx); + + net_lwip_remove_netif(netif); + + if (ctx.alive) + return 0; + + printf("ping failed; host %s is not alive\n", ipaddr_ntoa(addr)); + return -1; +} + +int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + ip_addr_t addr; + + if (argc < 2) + return CMD_RET_USAGE; + + if (!ipaddr_aton(argv[1], &addr)) + return CMD_RET_USAGE; + +restart: + if (net_lwip_eth_start() < 0 || ping_loop(eth_get_dev(), &addr) < 0) { + if (net_start_again() == 0) + goto restart; + else + return CMD_RET_FAILURE; + } + + return CMD_RET_SUCCESS; +} diff --git a/net/lwip/Makefile b/net/lwip/Makefile index 255c7d018b0..97299d9b542 100644 --- a/net/lwip/Makefile +++ b/net/lwip/Makefile @@ -2,7 +2,6 @@ ccflags-y += -I$(srctree)/lib/lwip/lwip/src/include -I$(srctree)/lib/lwip/u-boot obj-$(CONFIG_$(PHASE_)DM_ETH) += net-lwip.o obj-$(CONFIG_CMD_DHCP) += dhcp.o -obj-$(CONFIG_CMD_PING) += ping.o obj-$(CONFIG_CMD_TFTPBOOT) += tftp.o obj-$(CONFIG_WGET) += wget.o diff --git a/net/lwip/ping.c b/net/lwip/ping.c deleted file mode 100644 index d8042ceecf9..00000000000 --- a/net/lwip/ping.c +++ /dev/null @@ -1,180 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* Copyright (C) 2024 Linaro Ltd. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define PING_DELAY_MS 1000 -#define PING_COUNT 5 -/* Ping identifier - must fit on a u16_t */ -#define PING_ID 0xAFAF - -struct ping_ctx { - ip_addr_t target; - struct raw_pcb *pcb; - struct icmp_echo_hdr *iecho; - uint16_t seq_num; - bool alive; -}; - -static u8_t ping_recv(void *arg, struct raw_pcb *pcb, struct pbuf *p, - const ip_addr_t *addr) -{ - struct ping_ctx *ctx = arg; - struct icmp_echo_hdr *iecho = ctx->iecho; - - if (addr->addr != ctx->target.addr) - return 0; - - if ((p->tot_len >= (IP_HLEN + sizeof(struct icmp_echo_hdr))) && - pbuf_remove_header(p, IP_HLEN) == 0) { - iecho = (struct icmp_echo_hdr *)p->payload; - - if (iecho->id == PING_ID && - iecho->seqno == lwip_htons(ctx->seq_num)) { - ctx->alive = true; - printf("host %s is alive\n", ipaddr_ntoa(addr)); - pbuf_free(p); - return 1; /* eat the packet */ - } - /* not eaten, restore original packet */ - pbuf_add_header(p, IP_HLEN); - } - - return 0; /* don't eat the packet */ -} - -static int ping_raw_init(struct ping_ctx *ctx) -{ - ctx->pcb = raw_new(IP_PROTO_ICMP); - if (!ctx->pcb) - return -ENOMEM; - - raw_recv(ctx->pcb, ping_recv, ctx); - raw_bind(ctx->pcb, IP_ADDR_ANY); - - return 0; -} - -static void ping_raw_stop(struct ping_ctx *ctx) -{ - if (ctx->pcb) - raw_remove(ctx->pcb); -} - -static void ping_prepare_echo(struct ping_ctx *ctx) -{ - struct icmp_echo_hdr *iecho = ctx->iecho; - - ICMPH_TYPE_SET(iecho, ICMP_ECHO); - ICMPH_CODE_SET(iecho, 0); - iecho->chksum = 0; - iecho->id = PING_ID; - iecho->seqno = lwip_htons(ctx->seq_num); - - iecho->chksum = inet_chksum(iecho, sizeof(*iecho)); -} - -static void ping_send_icmp(struct ping_ctx *ctx) -{ - struct pbuf *p; - size_t ping_size = sizeof(struct icmp_echo_hdr); - - p = pbuf_alloc(PBUF_IP, (u16_t)ping_size, PBUF_RAM); - if (!p) - return; - - if (p->len == p->tot_len && !p->next) { - ctx->iecho = (struct icmp_echo_hdr *)p->payload; - ping_prepare_echo(ctx); - raw_sendto(ctx->pcb, p, &ctx->target); - } - - pbuf_free(p); -} - -static void ping_send(void *arg) -{ - struct ping_ctx *ctx = arg; - - ctx->seq_num++; - if (ctx->seq_num <= PING_COUNT) { - ping_send_icmp(ctx); - sys_timeout(PING_DELAY_MS, ping_send, ctx); - } -} - -static int ping_loop(struct udevice *udev, const ip_addr_t *addr) -{ - struct ping_ctx ctx = {}; - struct netif *netif; - int ret; - - netif = net_lwip_new_netif(udev); - if (!netif) - return -ENODEV; - - printf("Using %s device\n", udev->name); - - ret = ping_raw_init(&ctx); - if (ret < 0) { - net_lwip_remove_netif(netif); - return ret; - } - - ctx.target = *addr; - - ping_send(&ctx); - - do { - sys_check_timeouts(); - net_lwip_rx(udev, netif); - if (ctx.alive) - break; - if (ctrlc()) { - printf("\nAbort\n"); - break; - } - } while (ctx.seq_num <= PING_COUNT); - - sys_untimeout(ping_send, &ctx); - ping_raw_stop(&ctx); - - net_lwip_remove_netif(netif); - - if (ctx.alive) - return 0; - - printf("ping failed; host %s is not alive\n", ipaddr_ntoa(addr)); - return -1; -} - -int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) -{ - ip_addr_t addr; - - if (argc < 2) - return CMD_RET_USAGE; - - if (!ipaddr_aton(argv[1], &addr)) - return CMD_RET_USAGE; - -restart: - if (net_lwip_eth_start() < 0 || ping_loop(eth_get_dev(), &addr) < 0) { - if (net_start_again() == 0) - goto restart; - else - return CMD_RET_FAILURE; - } - - return CMD_RET_SUCCESS; -} From patchwork Fri Jun 6 06:41:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894439 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348527wrb; Thu, 5 Jun 2025 23:43:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWjl+9z3HwcEeZDUTb7ixBZetZdQckv9whQ2mLi6Q0M31HmExrdnGeC7CZaBdc35e5hu4FzaA==@linaro.org X-Google-Smtp-Source: AGHT+IHAs6PCtGPpoJO/4+lLR06V6+tLlxPJzJaxx1tdREG1ljR590veHdYTnla4z3aA/73EvNq3 X-Received: by 2002:a17:907:7ba1:b0:ad8:93a3:29a0 with SMTP id a640c23a62f3a-ade1a9de788mr187479166b.18.1749192201911; Thu, 05 Jun 2025 23:43:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192201; cv=none; d=google.com; s=arc-20240605; b=UP7/4ltX4RTMrSf7XJBxphmvr4gERSVyK+IBssRu/8c7hXgyqaTVX52ZoFPd10xjZw kxMZMpiTgj9p0ofzNYlXJbH3finluOYDtoMotSldDd5b5+8k5cydhwi/GQdGuFTFF1aF nOE0fSieDGo8bUqePpSSMD+QBSseIYG+hudNbzrdZaoziCxvtVmoZ2GwoY4vDpXRGomC 24CtVh71t/9LuWNleUd61D22z3Ebgy0RwNGgUVNi5nIjyaPJkU5WXozyP1/MjHfzhNgF MhWJdQtbriDK0Xla7tKjytR9J9MQwGhK5a1xO3pnScTryDK+r5B0eXMk7S+ZXi7pZqnQ 7YZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=9GiMb6lpF+cIBQYf2XfKqg059f/V2imKKT8BcFLCJwQ=; fh=sAzVLzKZ1rJCL2SZ+/95rHjWka/6tp2dlfUjm3VIklg=; b=SrLXq/utD1k/JkaY1qVDNpsolu7Fu7haLjYttSKbU0sv1afa9smNDqvcYdlp0mBYeT yUzVCO6BX5BuXpUXGset36KWzyZlGa5MCNRVCAg0eW9i2DpoqS5t67XxCzAyqH4h1TGQ G+WxdFPSygRrYUamnuUyC0tmJSbW+Gs5MFSYRyOr5DIb7/3AVxep1eiXuuiBnBZjZVL4 bS5Uyr1EN7Wy7+UBhloD8XDw9t4ZvGKhaPGaA1c/ljO4QAxPUdFmJRNka6ktiBs+8sUc k6Z2mCg+r4nA2kZ2vNK6zy+27FEALomdiBh1ya7LG6D+NNYBpYs75GRM1ahlCZoNRbs7 UHVQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ieuzU1K4; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1dc343b0si88317066b.380.2025.06.05.23.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:21 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ieuzU1K4; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1A7C8803DF; Fri, 6 Jun 2025 08:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="ieuzU1K4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B7D22803DF; Fri, 6 Jun 2025 08:42:31 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id CFC758291D for ; Fri, 6 Jun 2025 08:42:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-3a4fd1ba177so1276069f8f.0 for ; Thu, 05 Jun 2025 23:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192149; x=1749796949; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9GiMb6lpF+cIBQYf2XfKqg059f/V2imKKT8BcFLCJwQ=; b=ieuzU1K4tZkQMsoy/YeNjVG511tNzkSDcv0TELKWaVhFrH0eMtPCkMbW3nZkkpxZws e2vn4Kl/lidqKhccmby3/2zmjJO2/jxEeDldrcc/nTpoCPLazWG4BjKl7RSC+XWrbObz sQ+eRnH7vCSJENS77N/BMABt8vJcPkKK4cPWp2ttSsMF7RjLbWGn5dIusu8wF/KVD/uU Y9UKrjcfhB4lFCKvgYCqKJA/W1Wm6VdsPW9Ssvrra3gdeidmYeeSaf7ob8WMlijTeSRF mXLF5GMAhOeotU7oh0y1k/Hvr2Su6RbB0GdDQHgnk23UBvKpJBDWKaC/OQ2MIbIoembO HoYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192149; x=1749796949; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9GiMb6lpF+cIBQYf2XfKqg059f/V2imKKT8BcFLCJwQ=; b=IRa547NHLJsDwq4CmTArm5nhQEOZK10xHL0okFduqlAzQUUcHw8mRMg+nj7dwQYxpd tu540MBNw5s3N5VKQ50VIGr5Av0U8xxjpGlBHXR9jLGpl2Gz5AcWbdAlo5PonkIJtpDe 4RjhNRt8qbgFO9anj9lchyW8q/QXpX2reakylngGm/sTER1MFXeTkgG2oQzCyjd5cbT6 D3K3GdWCO5csKtIc3ZXLqNxNWluPWIxpGhtGGqlxoriAbku6TvO53lSyo+ReUsaJBG/D YRPckeXZOm5yKN07DtyYfe3Vk2Y+QWBsEePxrAlYTCtde8NXfM4L91bbPmhT41SPnv/9 2iZg== X-Gm-Message-State: AOJu0Yxt6orTIGI8XQmhS0x1rKBrT5oyNxrgmTsA3nQLY+HOJ9LmewrB obhuQHEouPzsUhsPJ0pXTs4QD60RCRLbYL1LVlX9QR5RtDqk8vUnXhMOBQFcWHyJmUeTmPSFTd/ bckV7 X-Gm-Gg: ASbGncv6tfDX8bKi+ZkySZxT7pGtNFjhmhLaWT79eQz/vYFSlCeftHduzGkSmBJj+s5 TbyBrk2HQHkTioVUSQqV+azSzZyb4I/XQ7F9PB7ExL3adv9W0fVzrvglhgPaZJRXH1jLXccFeq9 5jnlWPuNI9B+FpLMAdALe8aolyZ1dqQ2ur0UIdyiZC/Rs387KhBtAAVl5xDaN8P6TXq2OCxU0Pj B6WM4V0h6Y4OFK6mQEUK5Q1Aj8gKiiQlKkC/qWTg4fV6Z9wPLRQYyWUshfmXeM2YZssUTNgbcec dx3treKlYs9lFziimmkO5id12+wDDshhANGTyPUbO+JvyMSTEA5ezYYh8kz3yFQ9lKyNrvk= X-Received: by 2002:a5d:5f88:0:b0:3a4:d79a:3599 with SMTP id ffacd0b85a97d-3a53131de7amr1971882f8f.11.1749192149126; Thu, 05 Jun 2025 23:42:29 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:28 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Tom Rini Subject: [PATCH v2 06/13] lwip: dns: do not return CMD_RET_FAILURE on successful resolution Date: Fri, 6 Jun 2025 08:41:42 +0200 Message-ID: <20250606064211.3091237-7-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean The DNS loop checks for a non-zero IP address after DNS resolution, but the address is in fact never copied into the context. Fix that. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/dns.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/lwip/dns.c b/cmd/lwip/dns.c index be57a4d1b88..b757638cd1e 100644 --- a/cmd/lwip/dns.c +++ b/cmd/lwip/dns.c @@ -38,6 +38,8 @@ static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg) return; } + dns_cb_arg->host_ipaddr.addr = ipaddr->addr; + if (dns_cb_arg->var) env_set(dns_cb_arg->var, ipstr); From patchwork Fri Jun 6 06:41:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894440 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348556wrb; Thu, 5 Jun 2025 23:43:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVDeFqe9Ay3AqCvRa1YYGIV+nCpa38LokbwWo+SBXamnXXfP4M4P5Xi94ALyqErO+IRqx5LxQ==@linaro.org X-Google-Smtp-Source: AGHT+IGuENKyWfbmWe/BCI08t0XgL1/2iE8sbe9V9/5IHDuplxKczUSgcOleYOFrEmevlB5DqLNt X-Received: by 2002:a05:6402:2106:b0:607:b7e:4a53 with SMTP id 4fb4d7f45d1cf-60774895de7mr1586966a12.30.1749192213151; Thu, 05 Jun 2025 23:43:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192213; cv=none; d=google.com; s=arc-20240605; b=TELI8m6A2qUnpig2my2JhjTeA39JjCfxswhYLhd17T66F9we3HNWLC3K/dxW1c/eXV N86ERzli61iq8k92LjCLM+S6zsYXDCn69v5k/GaDXM3OI5IovyJE3NsyOVrKHHJLCmA+ nMnGJ6jcPr4E5+AC4YbpvDp+OTWRqVRvwRUjsL77CzM5ot4zz7UmC1oZeLuOGQyAjSPv 4vFSPo1Dj1rnXilw5hhEAbJVeiI5mGfgAjcoioJO74A4SOJJNeU8FilMX648HnzOiLar 7OnCAIia8U5/d6iCN274X6lxHN9Bk594aNoEnJD0Nimq1PzgX0UxZbLWRJkJrTF6TckM bLZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CwhTKXVWqhwHFqLYHC5GbHvBwwbAmFalzwdUS9JOsXU=; fh=sAzVLzKZ1rJCL2SZ+/95rHjWka/6tp2dlfUjm3VIklg=; b=UndKToLt/aaSpCBewvUFmJTpiDZMj+OqwWByD6pWF50uMefi3j1d0r2I4nLhb9bLLx AYYngfp7kcfdZP0HWEO6tyLncXD2z3LZtUgMpcHXVONofTjo6zmHOlVxpT65o51mQ6XE MTZzRa6rPgEWQil9q+9yovuYr7ed4jX6VaeewIsa0OU1Z6vVOAXCEQpp0+nhCmrhMx7w tCLkLyTpcdIF8W/kRCSudgMjal61CSC0qRXpjdYfDuMs2RVabqKMkL7UodhJTXBWjwTs 1tAWBW1Gbpz4rGS92cFh7yMuY252wx+xj3SETuEzutllOELarzMX0hJbFspoUks2AtxV B16g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XmwbYqbj; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-60778344f67si961631a12.13.2025.06.05.23.43.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:33 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XmwbYqbj; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5F9BD82B3D; Fri, 6 Jun 2025 08:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="XmwbYqbj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5E1D8807B1; Fri, 6 Jun 2025 08:42:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 79FBB82998 for ; Fri, 6 Jun 2025 08:42:30 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-451d6ade159so15040945e9.1 for ; Thu, 05 Jun 2025 23:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192150; x=1749796950; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CwhTKXVWqhwHFqLYHC5GbHvBwwbAmFalzwdUS9JOsXU=; b=XmwbYqbj6BdtPwqbI0BoWXLKXOb4Kr8SdhduScDLDgf8s32eYVWUjjy/pH0R64c7w0 ck/ZRCRVisgR6LHR1boA1ZwxGBpDsj2NsgvdK6yOcqatA8lQ7opehCHB9dGkmOK7ZI0R J5IxzfXZwGzudr0WC2A/vYTPoP65iaRw7iJVhGx/gHLUIANtDFKD+x0EmPMNhZQHqJsR NdLlb3QAud/xmgg44qTtIn3aU/FiBM0EKLpNYxo5iHiLyVPCmrW+GRf6M262f3pjX/3C gkoz5ezH9cFMoq9Pn06xKMHtQ3YxpwhfnaeRyyDXmlu5JBys9jsjo/pc9XXJ/ysPZQRW Ti7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192150; x=1749796950; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CwhTKXVWqhwHFqLYHC5GbHvBwwbAmFalzwdUS9JOsXU=; b=FR+UrV+YGuRYdsrbrDqeJ3AfIRb+w0IJQCvtEveSSTxjgPFWvrW8LducrhDCPaC71n 9BIM4aZ7aOU9fijZeo01XxHMepx0GSKwnnsxBPpxBkKIgu0iEgq3/PY0E+QJO2C6OYBG PJ/ntGLkL+QFHZzhxZBE+0vMjp6nJq2OaeE7MYupGHC4xV8Nk6spdIDzjuUxMqXZs/ZG gewKa6ylZYSmI9uUxHDnZ37e5PGP5G+GW25AUiCjJJY7RjyWxfDnty8nrxF0ILrmy/y5 JXd3vKSmfYPWKHXJNN0feRBY0HTEwCcHyfxMlAk58wH5IVHg/ciPY2lf6GgWw/yYgGO7 NJew== X-Gm-Message-State: AOJu0YxdxA2q7Z2bO+qV20EbkYj6Hfs5pybEAz7u0it0J6jzF/tHFoAG EqvglznJT4MugwM0E6HIJzAAwm0V/mAM5oU9a3BVic+l8upNsnm/rqatKgH1h791bsSP6t5snCw lhlPB X-Gm-Gg: ASbGncvV2OyxfL0QYbuQ13xf+p0EwHIkb0UO4g2xlLHxFTXkKO+GUBZseAHX5c5uvCV FPgBMk5s+sG/IoUzrcBMkT9s8Rn9ZZkhiTr/fvgfGzfZWJQUQChbSSxV9b9c+EodUW5NXiNMEGU ZWm10qGm5kdjcFYf7XXe7+OQl+4qJUwYF1Nmug52q3Gz8B2mIg3++voD2HYCSddsBGFko7AdaiH EVv7Kl5ydZbP+hACGXxmfeiyaoI3ocYOgbWCeirtCm1gOamRL3bnbYclGvO5ourYid7I2BmYLST 6TZffhQp1JTPybzw+60GhgRrS1oDOOkMu7Fc0l8SG7to+DtFcRiIssjW8qvXZbN9tdxMyic= X-Received: by 2002:a05:6000:2f88:b0:3a4:c8c1:aed8 with SMTP id ffacd0b85a97d-3a5319a6fa1mr1913618f8f.39.1749192149780; Thu, 05 Jun 2025 23:42:29 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:29 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Tom Rini Subject: [PATCH v2 07/13] lwip: dns: do not print IP address when a variable is specified Date: Fri, 6 Jun 2025 08:41:43 +0200 Message-ID: <20250606064211.3091237-8-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean When calling "dns ", do not print out the IP address of onto the console. Print it only when no variable is passed. The reason is to be able to call do_dns() from another command in need of the DNS services without polluting the output. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/dns.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/lwip/dns.c b/cmd/lwip/dns.c index b757638cd1e..0bfd8f198cf 100644 --- a/cmd/lwip/dns.c +++ b/cmd/lwip/dns.c @@ -42,8 +42,6 @@ static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg) if (dns_cb_arg->var) env_set(dns_cb_arg->var, ipstr); - - printf("%s\n", ipstr); } static int dns_loop(struct udevice *udev, const char *name, const char *var) @@ -107,8 +105,11 @@ static int dns_loop(struct udevice *udev, const char *name, const char *var) net_lwip_remove_netif(netif); - if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) + if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) { + if (!var) + printf("%s\n", ipaddr_ntoa(&ipaddr)); return CMD_RET_SUCCESS; + } return CMD_RET_FAILURE; } From patchwork Fri Jun 6 06:41:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894441 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348597wrb; Thu, 5 Jun 2025 23:43:41 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWY+80Gg+2oO3UIL/lcSxlqo9qKBHbkKHjSNFXEZrNbZDzAksLgJaZSr30MnHcOxQJMuhFxow==@linaro.org X-Google-Smtp-Source: AGHT+IFwWc2pKO4xn/lt78VFHgZ72TygFURThCxLbN5Qo0//D/88w4T9A51SkRceVxDCyo6ULbs6 X-Received: by 2002:a05:6402:1ed5:b0:601:3f5b:39ee with SMTP id 4fb4d7f45d1cf-6077341890fmr1883909a12.3.1749192221284; Thu, 05 Jun 2025 23:43:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192221; cv=none; d=google.com; s=arc-20240605; b=KvmfRHtwhlLvEqGldvYUAKZrpFcl69YxAO4qoC6WkmuOiXHlLQaEou47j1b5QfHeXT tQN6OO9+++kxGdVZtBAgC23hvLMlWUO/PRzo/2Lfii8UdcAekZdlwk4JSdzlovnr+Kp1 BVVwyRp0CbrcJYOiLymyhMlRnzlOOzgPAkNsJ3GM9Dbdiiv1gdOA0pLqBTHMpKMmd+8q h85QM8gqz/0im4EkfEizuunWCPz9/ZvarmTyk7aG2+TbAdkKgI0M4uiyC6FYbO6s3qgc rjKHXvZmsyty3pAUSPLbqYagqzEH3RoIPez5F2L7tmSwkYk0ROOgxLkRbK4GqQ+ve6ZB OdBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Ub47U3EQPiKvxy0dJsIaomYQRoXBFHjiWzQis+R7uQY=; fh=ZbASfCYyCrerMZnlp3wxBtwpTsc6/VSitpKjs0aGt1c=; b=bV13rzwmQBTrVbtmhRVUjNvIAisFBeA9JnA3PiqqboRtUVP2LnoNchoY+aeY/l6ian yeuLYOL7N0OBI0tskRIeba4LxslIb5nzFOhddVBY/F0rWv7dB5jEylBdaMgyQEdWD0FP WB4lHQuIeUhpzh9XEXuIaBnXKlMZbOxLIBxT6VIR3QdG1mQq75CZVcbPwtJajRAYwn5R xiV12sV35d8JTxQiyK9bNnyfi7AiYOnyvycqPh3aB6R5nW4DUS6TGQHYCE35gILeUgtw ST8K5qtULKpxKrkKEzmq6tu6g8KjGZqODOPbL588HWbFqtvqICqQLFmxkbbugSXof4mg BVZA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dFK50LU1; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-607783456ddsi904422a12.51.2025.06.05.23.43.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:41 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=dFK50LU1; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A513E82B81; Fri, 6 Jun 2025 08:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="dFK50LU1"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3E6FD82B33; Fri, 6 Jun 2025 08:42:33 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4982082B0F for ; Fri, 6 Jun 2025 08:42:31 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3a51481a598so1029004f8f.3 for ; Thu, 05 Jun 2025 23:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192150; x=1749796950; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ub47U3EQPiKvxy0dJsIaomYQRoXBFHjiWzQis+R7uQY=; b=dFK50LU1cn58ClUNuZsICU34QmHgM3yIHbUxOZjh28RlVoiCPPXVyZxCJ7JUP1zAc8 cjr5qFXDn4tpPfbc7AhveBbrZY7W6kX+YfJGSqudLbFJKa3mgORDxeJkCFvqM5+q3EzT QAo2hQq/MLbCENzvDZs8J9jVXjzT4h3H8VXZasNUzhr2KQM+Sh4iAIfXeWP3HHHolcmR pbxUvavoXnRGv6XfuQtxx7X2skbVUwDVhl54n88TfTMQihVLN7aEj0f/gWjfd/lb1p6l OaMN5nj0AVaYct8kdhwgdS6QQ3s27HxbmXw7/RpF8QaftEmT8NAr/sfhqDzjhYp4pq6z 6oiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192150; x=1749796950; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ub47U3EQPiKvxy0dJsIaomYQRoXBFHjiWzQis+R7uQY=; b=eUnGGXqmVXNBgVpBRnNH6p+0X5ve1ZxcjLR1NtmD3k5OkjxfNJ00EAYTxxKqHn3Sf3 vXISJx4KpJjPUWl/WSLx2QqUoQLU1x6xHPg3j7N3VLqWfapOMBd+Dys4nOCYPKLjd4sS U1bYzn7ZijvDUIVqcNkBF5e+gp3A/vhDxwykK4XhOH3QA64R0NtxEAwv5l7cgqQaHFm7 oMAW/XYcPY5BbGDNz9lTJnErAm84AF4w9wssXCwK80aNve0vspGtJKjlhslacDne0+9A scjsrwgPu+DhSH27XerhtCCQfum+w0JVUUiDCj8v4nGLsKcU6T2cvByzvkk7pow6PXt/ DS8g== X-Gm-Message-State: AOJu0YzybIM/mGdW7omKd9tV9tgmAW/dn0BprD94cHsS25cuyteQYTqw kusTo3APeDIE6coNtfskVEbvIwmy5btpkxMjMpq/ss/UxH6qsseSZl4+5A/QY8jXfWkVGBjEXom hz+QB X-Gm-Gg: ASbGnculS3r4DX8UHz6HH1dv86nG24wA34uKWtvaLj6sd0F4CxmsQFExeFHPC0GmEOh WEMX7Jz27VxIZGPAMQLOqLYTOJXQ6V98/U22Iwn5KIjbiPYUcL18gO3k5+WXrCPPV3HuMv4eVL0 XxZMSwhvRasoRdr+xqLaC7ZTNUoixBjDF2fwh0JdFO+z3a7Ir1vqaNJSYcRxk5a5s1JREe9IfFD uGfrLjOGaek39Oz0wW0m9dIz6iFdB+XEBfyiBGCkldaNEfZ3XRrUR3NTtui/cdKcJ3mHhtX8F0L 8xWzitOJa0mNbYXZA9Hn7E3iVw+Jf3QwrH1RfMaSDFXVMIAFzB8ZtZSgnWNRhVFgc+UKJvw= X-Received: by 2002:a05:6000:2584:b0:3a3:7cbd:39b1 with SMTP id ffacd0b85a97d-3a531885518mr1688915f8f.24.1749192150493; Thu, 05 Jun 2025 23:42:30 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:30 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Ilias Apalodimas , Joe Hershberger , Ramon Fried , Simon Glass , Tom Rini Subject: [PATCH v2 08/13] lwip: add net_lwip_dns_resolve() Date: Fri, 6 Jun 2025 08:41:44 +0200 Message-ID: <20250606064211.3091237-9-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Add a helper fonction to convert an IP address (supplied as a text string) or a host name to an ip_addr_t. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch include/net-lwip.h | 1 + net/lwip/net-lwip.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/include/net-lwip.h b/include/net-lwip.h index cf3cf513b2b..4240aa4b0b2 100644 --- a/include/net-lwip.h +++ b/include/net-lwip.h @@ -36,6 +36,7 @@ struct netif *net_lwip_new_netif_noip(struct udevice *udev); void net_lwip_remove_netif(struct netif *netif); struct netif *net_lwip_get_netif(void); int net_lwip_rx(struct udevice *udev, struct netif *netif); +int net_lwip_dns_resolve(char *name_or_ip, ip_addr_t *ip); /** * wget_validate_uri() - varidate the uri diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c index f05c4cd3f64..c9a7114bbff 100644 --- a/net/lwip/net-lwip.c +++ b/net/lwip/net-lwip.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -315,6 +316,44 @@ int net_lwip_rx(struct udevice *udev, struct netif *netif) return len; } +/** + * net_lwip_dns_resolve() - find IP address from name or IP + * + * @name_or_ip: host name or IP address + * @ip: output IP address + * + * Return value: 0 on success, -1 on failure. + */ +int net_lwip_dns_resolve(char *name_or_ip, ip_addr_t *ip) +{ +#if defined(CONFIG_CMD_DNS) + char *var = "_dnsres"; + char *argv[] = { "dns", name_or_ip, var, NULL }; + int argc = ARRAY_SIZE(argv) - 1; +#endif + + if (ipaddr_aton(name_or_ip, ip)) + return 0; + +#if defined(CONFIG_CMD_DNS) + if (do_dns(NULL, 0, argc, argv) != CMD_RET_SUCCESS) + return -1; + + name_or_ip = env_get(var); + if (!name_or_ip) + return -1; + + if (!ipaddr_aton(name_or_ip, ip)) + return -1; + + env_set(var, NULL); + + return 0; +#else + return -1; +#endif +} + void net_process_received_packet(uchar *in_packet, int len) { #if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER) From patchwork Fri Jun 6 06:41:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894442 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348642wrb; Thu, 5 Jun 2025 23:43:51 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXW6gcwnA5+IduMWQxMA/4G6/aTuLnEoz9eGMaGLiGgyQacZ7GNqwX8P7mFRDKqZwW0y5IOLw==@linaro.org X-Google-Smtp-Source: AGHT+IHUwbYHxodllcaFd/3EfYPzFO0p6AlRXUXphV1aXrhK+zffwllI7kFwZ9h64GGLMuEtOFVC X-Received: by 2002:a17:907:1c1f:b0:ace:cc7f:8abe with SMTP id a640c23a62f3a-ade1aa472bemr183849066b.31.1749192230876; Thu, 05 Jun 2025 23:43:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192230; cv=none; d=google.com; s=arc-20240605; b=WJjD9qsx0rX/1QNy0KCqq0K0jC4qEYsZ6Ejgo1Jh7BIi4zNMbZpZVxNoK9Mui5Quyv w9ZIukvsQ9EiIFghNkmJNLunIIUtm56ABaKv0bs2FsBNRu2S2rvcB1Lc/q9dqvsgoJ1D 2BM46h8bTwYs6ZopirQi81TyEx/6s8bPyw3H1/19L5UERLGDwyF7KXzBuUldREo00c7Q oZwtrJQdXQlGQ4OTclAqeGp30VyFIZqwrDcxyhJQBIWo7GPlTQKp4xCPnHPVWqK1z1yO UgzFtvwcfbYpS1MxhflcwH+L1EGRdIE0mdVabosi6MAQxVIbERRjQcXb9jw2HNIY+7LZ vjIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=crS4ydRIxBSYB0S261pOHW7PXeJ7AFsXNow4Gw/EOeI=; fh=sAzVLzKZ1rJCL2SZ+/95rHjWka/6tp2dlfUjm3VIklg=; b=LABj0fXi9O4OvShClCaVJ34QATl/i0ZCHnZ7gkKGyWq8XB9MqI33jT0D1Aj6lS7jr3 iTFia4w5RvSyogpmzfToe76iB5SthEDIGxOjkKXtq/ndPop5mvVgPZq/9q574OzqjXDV Oim+HYWTUwDRNPR2mUOWEYqFfcHg/y5DqgDfu++j7paOVwn1JRSzpuW3boHixFR5uH48 DEYNUN/VTxJEjnm2XDf6vyrCBcS8u08BOqOXcQESk7//4ZXisI3bGsekRgWAQJhczsHz Gr0+z1bqjiyePNZNpYe+iaLdSl8+kIPXuM4p9S5cThcgnS/7CAgIHoRQdmKvxcdIsyJw 2cAQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wfTz6T5V; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-607783af21dsi908283a12.501.2025.06.05.23.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:50 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wfTz6T5V; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EB2A782BA7; Fri, 6 Jun 2025 08:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="wfTz6T5V"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D33A182B0F; Fri, 6 Jun 2025 08:42:33 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id F0585803DF for ; Fri, 6 Jun 2025 08:42:31 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-442e9c00bf4so13957895e9.3 for ; Thu, 05 Jun 2025 23:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192151; x=1749796951; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=crS4ydRIxBSYB0S261pOHW7PXeJ7AFsXNow4Gw/EOeI=; b=wfTz6T5VzknLWuHEZlozcdxZ8WYPdgK5UNzUfyoA/AamgaaL16ps+iaysG8MlzCFav /fdP2NjRDN1p4hpemIGfhZ0rrjINZnWjMreDE3yByDAlfuFF6GGVlp1dNd/M8JFtPhB1 uKAZJPDRMMEcp7fjTS5e290Bs90yiZTaxZv+zCLvyZCSdgX2leTTRPKslLurspB+kBwC HXh4ind61OjjuQoRdY8wYxVaNC5w82xFEXovgI54480eAqPNTSfbssKYCsvyc1Kj7qRU yMYykwdFU1vT/kojBRlsdEZmhaL8E+SzrJdocW7rTd8XsTZaPsqxqDA0tvU/2fIj84g2 JjPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192151; x=1749796951; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=crS4ydRIxBSYB0S261pOHW7PXeJ7AFsXNow4Gw/EOeI=; b=il+dwrotszqwclTPpgF3wKmY19R0VGxthuafNOOIwPVt16wubRziJMDe6IY3mwPU9m WQiHSBSMPPhCdW+tTcjJuOpXuP8Z+W0E3TtfKMiH3Wd6TlM7h2SlgpQix6cSDXamX6jp gx1h0q71SD+yomPFxNBTikJEXnIz2QN7fVfJj1CLqgghu0MJLCcqEwLKPf31ltwI/WcO LIq6W9feorVfALXoWzyqJ/c1j0ylm1y9FeHWbJsF+4CiqBHMkBEn4mh4+hdfJsjIqhGC uhaun3G6HI6tuzIycbzyuhqaS+UgBfyqwSGPm3pEiLuGmsvnI/ZADCzY/Mw4/XSxILfj SsGg== X-Gm-Message-State: AOJu0YxK3/mTL5oPzDDX84ZsYKVpU52oVY4aTF36J5t9vy82HMbwE4Q8 ka89FDmEsrusfNj0RDoyheR3qjLGraaI1HMsQ0pgPGEeje9hCjdvFZxRMaf3aOk1ivo4vtlOAC2 Xol80 X-Gm-Gg: ASbGncuash+f0SCD1HpFfpeTJc8NwNhypAOjYg1P0bhkaEjd44/ENbrie0Zw7UUCTtY 7ZHF1IhJVMx8wflh590150wPpI97OZ2dGiM8CgWvITTJXQmhZ+dT4TZUUbgZBE4qD/T0Xw+gvMl Wh6dNTI6g42+Giisrnw0asj0EBTUanPB9R0/f/bsXLX99sH4Br0W/NAoT3/4HEErdrMiz81kjip nA+VfsbBoscJtp4v7TBlE2sKStaqUgboU3rQ3mFZoHet5jF1NsWmKmtNhW/e7mlQde+WOPf8YEL /Lxah/0EjiFLKS9Srri3uchO2eZhZVeJipY5PgrFxvis5mPyjNChtc5ubPv3fzjxBTF4gcQ= X-Received: by 2002:a05:6000:2482:b0:3a5:2848:2e78 with SMTP id ffacd0b85a97d-3a53188e2f2mr1626235f8f.28.1749192151229; Thu, 05 Jun 2025 23:42:31 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:30 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Tom Rini Subject: [PATCH v2 09/13] lwip: ping: accept host name when CONFIG_CMD_DNS=y Date: Fri, 6 Jun 2025 08:41:45 +0200 Message-ID: <20250606064211.3091237-10-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Update the ping command so that a host name is accepted in addition to an IP address, provided DNS support is enabled. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch cmd/lwip/ping.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/lwip/ping.c b/cmd/lwip/ping.c index 21931821521..9fe02a21a78 100644 --- a/cmd/lwip/ping.c +++ b/cmd/lwip/ping.c @@ -14,7 +14,7 @@ #include U_BOOT_CMD(ping, 2, 1, do_ping, "send ICMP ECHO_REQUEST to network host", - "pingAddress"); + "pingAddressOrHostName"); #define PING_DELAY_MS 1000 #define PING_COUNT 5 @@ -168,7 +168,7 @@ int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) if (argc < 2) return CMD_RET_USAGE; - if (!ipaddr_aton(argv[1], &addr)) + if (net_lwip_dns_resolve(argv[1], &addr)) return CMD_RET_USAGE; restart: From patchwork Fri Jun 6 06:41:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894443 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348687wrb; Thu, 5 Jun 2025 23:43:59 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUrTo0GgMZHTVeQ/5RsWVdEiOpCswzeaqTn0rJ6hfw1x3PEwNU8Hd9XkQdpzqIEYDA5IterNg==@linaro.org X-Google-Smtp-Source: AGHT+IFbiPyU82X7/SBW0ysGvcNSXvtqXuNjwlsqIZP5lG4dShYauPPE0jtwxu4w+0LGOdnM8Rvz X-Received: by 2002:a17:907:94cc:b0:ad8:9f50:d8c1 with SMTP id a640c23a62f3a-ade1aab97cemr184835466b.31.1749192239339; Thu, 05 Jun 2025 23:43:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192239; cv=none; d=google.com; s=arc-20240605; b=Ny9J1rRvnTVNQcSmnm/QveD9c2b71JrMGZa8EbbXsV5fsOJV/19BQKKI/HNBk2W+jd L47rq7Y+qB713jBnqp0tA4aJ2Tay4ckKOfyl07r8WObN8Kc7qbDr60r2NyM1Qt/wFsKo coAcFHxUXgCFj18QaG7vAbXqVvrVyf5yF5tTxbB9cRwkM9FayrJlNf4qv/mfxEgSjlKg Ahn8qanqptbkEJ9RQ+sH4Uoe8kklRqWz1z2n5/MBo3sOA4aMCFoO+MQzbdXqhl0BxKVr q5R32+ZVnJxrT9K4uFh89sGQPGi7KqvfWzq4E2SCqmq7maEvyN0Q8ppMywrzMr2B2mgn A/XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zBZUy6K3G7k4deHs+hVT5rp+Foz7LScGwYynlpvntA4=; fh=+TzJuMMnKDMsbGyXcXAynrdn4hYe+uVLmq5NLJkVciY=; b=PSPzQ4/wQCTVu3SWO51XT3k3BA+/zzQyU7TWItaLLaon4AbdPk/39ztA9O9cpPLNFP fHMbsoKn4hN5LubE8Y0+5Okmi0BrqeCx02BFXxGOTcAD0wxl31VZgF8/eaRSEmq4vljM Nh35vCwmIeuMHz+qT2d+kKXwi2Ume/bcoCgFTYWMe3wMq7Jl4Aof3/rYGW6yK1au8fM7 EXVHIK3qskx5MRHQgm/w+8EooUnUajG7kMp3mhgNFPRcXzI5lT45jxb0PRReqwY87pJ/ ImtQzeoez7HPgGUgIgyw3pVbTnkp5j4AS6zZUNnp+esEuug7jFNhUye6PDC6DnFGMWTK DIJA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="gx/6Q78v"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1d75523asi79989466b.4.2025.06.05.23.43.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:43:59 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="gx/6Q78v"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 41ECF82AF6; Fri, 6 Jun 2025 08:42:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="gx/6Q78v"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1BBB182BB5; Fri, 6 Jun 2025 08:42:35 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C092B82B19 for ; Fri, 6 Jun 2025 08:42:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3a36748920cso1694700f8f.2 for ; Thu, 05 Jun 2025 23:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192152; x=1749796952; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zBZUy6K3G7k4deHs+hVT5rp+Foz7LScGwYynlpvntA4=; b=gx/6Q78varOvFn9eO/ecHmt1nZ6Ihh8TD3eglChb56FKS7zZkceqEA3rnVGxSYRTQg mClCevD0D7cL5Qe8WtUxosqC+gnAPLa9Mhxtn4uVH0PpG3qXYvupX9oJ6qyUmvNWg37H fQHpdlnl5B5KEBkrywT+YPDyc/MfkgKVhZTywwFrep0wWpdGARba5KH5etXqMe5cuZRA zJ+zVJIN2/zD4Ccs6xE4SQTgOx3VZRMiHT6/NxtdsWr8Xx7rS4fPeJ3qFBjPkzaIwdAM RQP3fUL4+IEmSPVFcd6bqvc3SFjDWUt5WKcuyny2yuV5/5Av0P55RxDXdRCGYF3U8u/p MkpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192152; x=1749796952; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zBZUy6K3G7k4deHs+hVT5rp+Foz7LScGwYynlpvntA4=; b=nNLnNpoQfzHuS3eL1xXTV9OeeF755CjEPq6ZKbAYyg6NGyqXgU2RVGKJhe0rMFO0QG bs/8ihNQpYN783kk3sBvOM/wmeCR4C68X2fsySs2Z9hmF1TPlQnOzW0DksDA1O+tnLnm qifvpJi59+YM30VG7UPdb037itN63BEEbVliuTBKtJVAsHGLc9kmJz9Ob79IuTIyOMgr 6xXc7wTXse8x9xwdVTLizryrNC2zXchAqTpdinrbMv8odwmrwlMyBkuavWF8KJxca36y pG4s7nauNYemqVSb0Nd5dlb57qkkRxFaMJQFWzUXIycN5Gola/mU6dpHtpz5pUNtqmgD xTkQ== X-Gm-Message-State: AOJu0Yz05rbSSBrCqjeoWhIMVTQrhkhr6cvdM9uGzxW2Ba/3dPLtONVu +E1ppI0iDPvfwQcx+AcmVhWlhoU1+WPF5wqiyHYudW2tEHad9oBCOvPnlPJeQAUs2josoNGJawB oKjfY X-Gm-Gg: ASbGnctINgNFmzykwaf4Rj7bcNEpzbPxX1UKKJa5zS2EDPrjvpid674nrdjBn+Ydngp d1nFHhf2W92Tq00AGx5FyOYIMSnTL1wC9eW91Iccl1VTVlrQjfGFJ7zDLl7IkBHevUkxpIhgOI2 eU2juja5snj10UMtNdy6atV62LEJiAFL6/PFdsLQkFKapiXKUOyQBxupqAfvb0TAMKY7rmzRysh /C9qo/nFpCy0oryTAnDyLfoCMLyiJe/8DdGK0ZxmylOKgS0PO2U02NV/oKxKIcjT21M/R6W7JWA zljxkBcPlLQx7wybnGBpvcIFciIs2FZ/QqLuwxXynHzkbQRoekUX98qEH2DCId1lJDSoVIaNn5b QQ4E+bA== X-Received: by 2002:a05:6000:2485:b0:3a5:2ec5:35a3 with SMTP id ffacd0b85a97d-3a531ab6deamr1802562f8f.45.1749192151969; Thu, 05 Jun 2025 23:42:31 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:31 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Heinrich Schuchardt , Ilias Apalodimas , Joe Hershberger , Ramon Fried , Simon Glass , Tom Rini Subject: [PATCH v2 10/13] net: extract function net_sntp_set_rtc() from sntp_handler() Date: Fri, 6 Jun 2025 08:41:46 +0200 Message-ID: <20250606064211.3091237-11-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Extract the code that sets the RTC clock from sntp_handler() in net/sntp.c and make it a new function net_sntp_set_rtc() in net/net-common.c. This will allow re-use with NET_LWIP. According to [1] it is safe to assume that all devices have been converted to DM_RTC so drop the useless code. [1] https://lists.denx.de/pipermail/u-boot/2025-June/591376.html Signed-off-by: Jerome Forissier --- Changes in v2: - Drop the non-RTC case include/net-common.h | 2 ++ net/net-common.c | 23 +++++++++++++++++++++++ net/sntp.c | 23 +++-------------------- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/include/net-common.h b/include/net-common.h index 7853612b237..c212d2f9b3b 100644 --- a/include/net-common.h +++ b/include/net-common.h @@ -588,4 +588,6 @@ extern struct wget_http_info default_wget_info; extern struct wget_http_info *wget_info; int wget_request(ulong dst_addr, char *uri, struct wget_http_info *info); +void net_sntp_set_rtc(u32 seconds); + #endif /* __NET_COMMON_H__ */ diff --git a/net/net-common.c b/net/net-common.c index e01b0da7d7b..b064557d524 100644 --- a/net/net-common.c +++ b/net/net-common.c @@ -1,5 +1,9 @@ // SPDX-License-Identifier: GPL-2.0 + +#include #include +#include +#include void copy_filename(char *dst, const char *src, int size) { @@ -25,3 +29,22 @@ int wget_request(ulong dst_addr, char *uri, struct wget_http_info *info) wget_info = info ? info : &default_wget_info; return wget_do_request(dst_addr, uri); } + +void net_sntp_set_rtc(u32 seconds) +{ + struct rtc_time tm; + struct udevice *dev; + int ret; + + rtc_to_tm(seconds, &tm); + + ret = uclass_get_device(UCLASS_RTC, 0, &dev); + if (ret) + printf("SNTP: cannot find RTC: err=%d\n", ret); + else + dm_rtc_set(dev, &tm); + + printf("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n", + tm.tm_year, tm.tm_mon, tm.tm_mday, + tm.tm_hour, tm.tm_min, tm.tm_sec); +} diff --git a/net/sntp.c b/net/sntp.c index 73d1d87d38b..77cee0046bd 100644 --- a/net/sntp.c +++ b/net/sntp.c @@ -57,8 +57,7 @@ static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip, unsigned src, unsigned len) { struct sntp_pkt_t *rpktp = (struct sntp_pkt_t *)pkt; - struct rtc_time tm; - ulong seconds; + u32 seconds; debug("%s\n", __func__); @@ -69,24 +68,8 @@ static void sntp_handler(uchar *pkt, unsigned dest, struct in_addr sip, * As the RTC's used in U-Boot support second resolution only * we simply ignore the sub-second field. */ - memcpy(&seconds, &rpktp->transmit_timestamp, sizeof(ulong)); - - rtc_to_tm(ntohl(seconds) - 2208988800UL + net_ntp_time_offset, &tm); -#ifdef CONFIG_DM_RTC - struct udevice *dev; - int ret; - - ret = uclass_get_device(UCLASS_RTC, 0, &dev); - if (ret) - printf("SNTP: cannot find RTC: err=%d\n", ret); - else - dm_rtc_set(dev, &tm); -#elif defined(CONFIG_CMD_DATE) - rtc_set(&tm); -#endif - printf("Date: %4d-%02d-%02d Time: %2d:%02d:%02d\n", - tm.tm_year, tm.tm_mon, tm.tm_mday, - tm.tm_hour, tm.tm_min, tm.tm_sec); + memcpy(&seconds, &rpktp->transmit_timestamp, sizeof(seconds)); + net_sntp_set_rtc(ntohl(seconds) - 2208988800UL + net_ntp_time_offset); net_set_state(NETLOOP_SUCCESS); } From patchwork Fri Jun 6 06:41:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894444 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348758wrb; Thu, 5 Jun 2025 23:44:08 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUQz9vKyt8THQfqDLpEcIiCo6wIBajg5yDV6LfFAUmhUIfLBGuCfxSrctlTSoRn3LEhKm9KaQ==@linaro.org X-Google-Smtp-Source: AGHT+IFu5UzrS06qZuiR1KeTcWpwHh1DbMI3D6WWGFbAfpbN7LhKG2/Aqqa0pDeQjgB/fCji5l1b X-Received: by 2002:a05:6402:51ca:b0:601:8481:3268 with SMTP id 4fb4d7f45d1cf-6077479ab81mr1735413a12.25.1749192248387; Thu, 05 Jun 2025 23:44:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192248; cv=none; d=google.com; s=arc-20240605; b=WlDsyu4NFTAWiA/OPm7jEQV/gOY/qUMu7BjOTj9m7iChkaUEdPu2a1s2r0hFQUJ/UR lqY8w5JJbIvXe5i3bU+FGWHAgAmfC9i6EVDr3L9ueLX7abD6n0uPpZotrBg9NBEH9NUW SkQeGtR5sYzxQh8hC1qjo/ZYt1zXa7PGC40+PecoE0KrU1wzYcZkwbOuCrcJpjHEFzJG Of094plkpCFM2dS6L6/uNswmjwd3YOocHSC/3Mo5L0S2/KdsSGNowuaNNKrCiM5UwV+K TsOww9vM6ViyjbUO1CtS+61Ggr3JliA6pgxQtN45MOh9wj8c7ig1Umc7HVeET2Z9Y6JL BiHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6FRdVmrBijhW1AWivYtwFjvoXrM75h+S+QcFgTAOkCA=; fh=TJSl+iGQrF9yEQ4WEdbNi7jdqpnzCA3AiPdCWlfwD0M=; b=igNwoF7p+6xi8Cyaz01Vw1Y/w4N8SEvx44nAJ7OTUV9uHmXEgZmZ0OWcAVUDvwpxPy VY0Gi6M63N5MQgK1y9xaZASOpS16Q/U80TbtXdwuZFoFgU3uxPbPWsry9WhMvFXQUwO4 WrUc0zo2tLxEX2Wuk5xdvCIaMKkxAi1fcEKHSjkLlhXKV2kUPByLAbz2eU+m5RpM3cvo bcjgo8oj2RkgepDQ3C4Va+Qj8kBc915Qqco5f80ROILCbOI8OMawhr49BWi/FBIA8PPo dYDZRlGbirnBF5Uqbs+B3pv+SIJXTwQdhauyQ/l/80Lnrfd61KrLV6EcqgdH/fZQCPMT 2D1A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gqy0KZ9z; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-607783aac08si1024133a12.419.2025.06.05.23.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:44:08 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gqy0KZ9z; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 89C1982B37; Fri, 6 Jun 2025 08:42:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="gqy0KZ9z"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B7EF182B00; Fri, 6 Jun 2025 08:42:35 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id AD852828A2 for ; Fri, 6 Jun 2025 08:42:33 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3a36efcadb8so1530225f8f.0 for ; Thu, 05 Jun 2025 23:42:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192153; x=1749796953; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6FRdVmrBijhW1AWivYtwFjvoXrM75h+S+QcFgTAOkCA=; b=gqy0KZ9znMl2k8QyIm/BgZjAFA+ejw3GHgki/cdR72d5u5ehjiZSK8xeIUIyD3qRpX 1/2k4FJFjd1weP/QYq4yITEx0NeNajN9nHX8rXfBdFMAeduVVM6Lty/faTo+3Q3WM6ZB cdIKkdLy8VbI6913m8O9cYb+r1dvxurFw8FFXLF+KG42XnrnZHrSV+hrDy3ZK5nJecDV e19dp3soz63zUnMgelkVtZTM6wT7xtlsLSLIqn8oM5o6U701kr4t1//zLwzFc9Hi/wxi tDhkoMf+DPBAribQwVauqdsn/nEJY76ytGziV+p93Ynuu2wIvWHzFUzk68uShjFoep2e BUow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192153; x=1749796953; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6FRdVmrBijhW1AWivYtwFjvoXrM75h+S+QcFgTAOkCA=; b=AzAx8uUjJWA9sCiOB6gxuE3wV6Sh9J0vS9KQcUh+CLP0oP/P7J7cewCbW1acXLsr0m 7+ZAgF436XrjV50JMKEmAaxjX9YF4cqK2lv8gszG3XznKAy0/ghfYEGRiWAYtrf/WQ+X 8yV/5xyoEgUkmsDIQdaSrjfouMyg29GKm1WKSvaiSxHyLx5zYjXAxmMpqiUgMvH/8wtt kPkQYwxytW7iPFXkC+zvqCPP84ZzgJCOwMC+yvVcKhOfErafS/PRi0Q/EQXOxl5FgZOV XaHBvJu5oXJmD091jfA08oquFiVsVosziNmcHkHqkXrkHbb3YVRlN2mZ2qWMUCo9mWvy tX8Q== X-Gm-Message-State: AOJu0YxJl0kWlj2uoWBZ/MB5muLsCoPBJpyzWDldra6VDpv3M7GWcYYY BkFvUlzEBcmClDHA45ZvBcEzVm36bXWAN3KpzbS2XAOFKTeNF8ydlTOVveIqtNJc8D0tE4PpP2N 4rD+T X-Gm-Gg: ASbGncsgXP9XOA8FNPQtM006TcoxU5ImDO8eWySiHrXtCLCBCPgyXGqGwuvO3YiIoVG 3eI6Yq8YxZTAJPgXUKBkMW7fef6wXloJPfAs6IJQRMHuLSx7YkMEFQm0J7ilXI4HPHWeHyKeMBB zsG95mCdnlFZ5kPb3kmcxnmDrf+EvyJ405vwDiphMB9qbE4yPYvSU/58z+lQq/bvVUKEsMcOY3U cjxnDykjEV0UULBkzPCjeq+nF7UG7t9RgDWLGHGvyePh/anMZ28/R3Op3v0/BzKS3Ip5EQCdGqm Uf9GWMr/cNO+vBGvdXU7onPCHmkI2xBB11koxh8rciVWa7kC3mVYvsvAwK3MKocUYH2p+EQ= X-Received: by 2002:a05:6000:2210:b0:3a4:d0fe:428a with SMTP id ffacd0b85a97d-3a5319a0d80mr1870600f8f.28.1749192152888; Thu, 05 Jun 2025 23:42:32 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:32 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Adriano Cordova , Heinrich Schuchardt , Ibai Erkiaga , Ilias Apalodimas , Javier Tia , Mattijs Korpershoek , Michal Simek , Simon Glass , Tom Rini Subject: [PATCH v2 11/13] lwip: add sntp command Date: Fri, 6 Jun 2025 08:41:47 +0200 Message-ID: <20250606064211.3091237-12-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Implement the sntp command when NET_LWIP=y. Signed-off-by: Jerome Forissier --- (no changes since v1) cmd/Kconfig | 13 ++-- cmd/lwip/Makefile | 1 + cmd/lwip/sntp.c | 133 +++++++++++++++++++++++++++++++++++++ include/net-common.h | 11 +++ lib/lwip/Makefile | 1 + lib/lwip/u-boot/arch/cc.h | 4 ++ lib/lwip/u-boot/lwipopts.h | 4 ++ 7 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 cmd/lwip/sntp.c diff --git a/cmd/Kconfig b/cmd/Kconfig index f21d27cb27f..58f629e1c34 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -2061,12 +2061,6 @@ config CMD_CDP and to retrieve configuration data including the VLAN id using the proprietary Cisco Discovery Protocol (CDP). -config CMD_SNTP - bool "sntp" - select PROT_UDP - help - Synchronize RTC via network - config CMD_LINK_LOCAL bool "linklocal" depends on (LIB_RAND || LIB_HW_RAND) @@ -2144,6 +2138,13 @@ config CMD_PING help Send ICMP ECHO_REQUEST to network host +config CMD_SNTP + bool "sntp" + select PROT_UDP if NET + select PROT_UDP_LWIP if NET_LWIP + help + Synchronize RTC via network + config CMD_TFTPBOOT bool "tftp" select PROT_UDP_LWIP if NET_LWIP diff --git a/cmd/lwip/Makefile b/cmd/lwip/Makefile index 4c28d2b28e5..a7f8976af3f 100644 --- a/cmd/lwip/Makefile +++ b/cmd/lwip/Makefile @@ -1,5 +1,6 @@ obj-$(CONFIG_CMD_DHCP) += dhcp.o obj-$(CONFIG_CMD_DNS) += dns.o obj-$(CONFIG_CMD_PING) += ping.o +obj-$(CONFIG_CMD_SNTP) += sntp.o obj-$(CONFIG_CMD_TFTPBOOT) += tftp.o obj-$(CONFIG_CMD_WGET) += wget.o diff --git a/cmd/lwip/sntp.c b/cmd/lwip/sntp.c new file mode 100644 index 00000000000..32cbdfbffdf --- /dev/null +++ b/cmd/lwip/sntp.c @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* Copyright (C) 2025 Linaro Ltd. */ + +#include +#include +#include +#include +#include +#include + +U_BOOT_CMD(sntp, 2, 1, do_sntp, "synchronize RTC via network", + "[NTPServerNameOrIp]"); + +#define SNTP_TIMEOUT 10000 + +static enum done_state { + NOT_DONE = 0, + SUCCESS, + ABORTED, + TIMED_OUT +} sntp_state; + +static void no_response(void *arg) +{ + sntp_state = TIMED_OUT; +} + +/* Called by lwIP via the SNTP_SET_SYSTEM_TIME() macro */ +void sntp_set_system_time(uint32_t seconds) +{ + char *toff; + int net_ntp_time_offset = 0; + + toff = env_get("timeoffset"); + if (toff) + net_ntp_time_offset = simple_strtol(toff, NULL, 10); + + net_sntp_set_rtc(seconds + net_ntp_time_offset); + sntp_state = SUCCESS; +} + +static bool ntp_server_known(void) +{ + int i; + + for (i = 0; i < SNTP_MAX_SERVERS; i++) { + const ip_addr_t *ip = sntp_getserver(i); + + if (ip && ip->addr) + return true; + } + + return false; +} + +static int sntp_loop(struct udevice *udev, ip_addr_t *srvip) +{ + struct netif *netif; + + netif = net_lwip_new_netif(udev); + if (!netif) + return -1; + + sntp_state = NOT_DONE; + + sntp_setoperatingmode(SNTP_OPMODE_POLL); + sntp_servermode_dhcp(CONFIG_IS_ENABLED(CMD_DHCP)); + if (srvip) { + sntp_setserver(0, srvip); + } else { + if (!ntp_server_known()) { + log_err("error: ntpserverip not set\n"); + return -1; + } + } + sntp_init(); + + sys_timeout(SNTP_TIMEOUT, no_response, NULL); + while (sntp_state == NOT_DONE) { + net_lwip_rx(udev, netif); + sys_check_timeouts(); + if (ctrlc()) { + printf("\nAbort\n"); + sntp_state = ABORTED; + break; + } + } + sys_untimeout(no_response, NULL); + + sntp_stop(); + net_lwip_remove_netif(netif); + + if (sntp_state == SUCCESS) + return 0; + + return -1; +} + +int do_sntp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + ip_addr_t *srvip; + char *server; + ip_addr_t ipaddr; + + switch (argc) { + case 1: + srvip = NULL; + server = env_get("ntpserverip"); + if (server) { + if (!ipaddr_aton(server, &ipaddr)) { + printf("ntpserverip is invalid\n"); + return CMD_RET_FAILURE; + } + srvip = &ipaddr; + } + break; + case 2: + if (net_lwip_dns_resolve(argv[1], &ipaddr)) + return CMD_RET_FAILURE; + srvip = &ipaddr; + break; + default: + return CMD_RET_USAGE; + } + + if (net_lwip_eth_start() < 0) + return CMD_RET_FAILURE; + + if (sntp_loop(eth_get_dev(), srvip) < 0) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} diff --git a/include/net-common.h b/include/net-common.h index c212d2f9b3b..885ba97fdf3 100644 --- a/include/net-common.h +++ b/include/net-common.h @@ -505,6 +505,17 @@ int dhcp_run(ulong addr, const char *fname, bool autoload); */ int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]); +/** + * do_sntp - Run the sntp command + * + * @cmdtp: Unused + * @flag: Command flags (CMD_FLAG_...) + * @argc: Number of arguments + * @argv: List of arguments + * Return: result (see enum command_ret_t) + */ +int do_sntp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]); + /** * do_tftpb - Run the tftpboot command * diff --git a/lib/lwip/Makefile b/lib/lwip/Makefile index e9e8caee93a..c3f0e916f66 100644 --- a/lib/lwip/Makefile +++ b/lib/lwip/Makefile @@ -13,6 +13,7 @@ obj-y += \ lwip/src/api/sockets.o \ lwip/src/api/tcpip.o \ lwip/src/apps/http/http_client.o \ + lwip/src/apps/sntp/sntp.o \ lwip/src/apps/tftp/tftp.o \ lwip/src/core/altcp_alloc.o \ lwip/src/core/altcp.o \ diff --git a/lib/lwip/u-boot/arch/cc.h b/lib/lwip/u-boot/arch/cc.h index 6104c296f6f..f91127ac565 100644 --- a/lib/lwip/u-boot/arch/cc.h +++ b/lib/lwip/u-boot/arch/cc.h @@ -43,4 +43,8 @@ #define BYTE_ORDER BIG_ENDIAN #endif +#define SNTP_STARTUP_DELAY 0 +void sntp_set_system_time(uint32_t sec); +#define SNTP_SET_SYSTEM_TIME(sec) sntp_set_system_time(sec) + #endif /* LWIP_ARCH_CC_H */ diff --git a/lib/lwip/u-boot/lwipopts.h b/lib/lwip/u-boot/lwipopts.h index edac74ff7a2..14ba7bd7ae2 100644 --- a/lib/lwip/u-boot/lwipopts.h +++ b/lib/lwip/u-boot/lwipopts.h @@ -162,4 +162,8 @@ #define LWIP_ALTCP_TLS_MBEDTLS 1 #endif +#if defined(CONFIG_CMD_SNTP) +#define LWIP_DHCP_GET_NTP_SRV 1 +#endif + #endif /* LWIP_UBOOT_LWIPOPTS_H */ From patchwork Fri Jun 6 06:41:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894445 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348825wrb; Thu, 5 Jun 2025 23:44:17 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVO0qdhKwPbM5o6GHUi8CodnU06Kz7Z+HsWsypAKsSbtiFy/vqZVhPObyXOKyJIt+4QS+xWUQ==@linaro.org X-Google-Smtp-Source: AGHT+IHq3EHVDFpo2wEuKehlyj67olYtfXHHIyJATLshhndjWvllEv9hv9sKrO/FKb4UbW6TBfTD X-Received: by 2002:a17:907:6d0c:b0:ad8:8c09:a51a with SMTP id a640c23a62f3a-ade1aa0fb2cmr170148266b.4.1749192257134; Thu, 05 Jun 2025 23:44:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192257; cv=none; d=google.com; s=arc-20240605; b=Nmc3+0CbAphYze36ticG8QPoF3V5HQZvGZBEqhEmvSZls154sg+sEbfXf70UzFOSOx U/GV43z0ymoYcjnOs4zUSduNUjo4UHdycS/pQlkkAFaVkH3no5S0H1HwE2htsnEi2Mti ulSkph1Vhrz7dLfokRpbKfA/zVX3lJYOVTcloPIZ46JYFSubtf2NufWe6lrSZg0FD5tU 6vCFa05vGwilaq0tRA5abybQj/TCYSIXqfUMdVZYHAGYFQV8O4zIZoHzpIYyZK3YrEfh kjf0feDRMDaxRq2pANF0GyMi1603ERLjoMLfG5Ne9hN0baghYWOPcW674gJdyVfN7KSP q1wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=+bXs58POLdIzbyc9mC98f2ECYsUr8btFnWShoBpeY/0=; fh=sAzVLzKZ1rJCL2SZ+/95rHjWka/6tp2dlfUjm3VIklg=; b=cqgUIzBmjGeeYxXbOE91Epx9qX6oAeKMQbTHN5l7Pb3lR42jo6K1Ox5IpvGv4hrTkQ ex0M3S2IPxuM1DH7PpWYurdUqv6+ugKxhLX/zgJ4dJNiqgv2uDlAqIFa0OH0vVaSzQzx Uwoq4yFB2DMSA+CpkDmj4IFIo6KxjJfO8LHZRl2/XpMVVck1gO/uhUUhNtSMDNQ0nChs DdJRh3RhEw+Mxb7PL8lQLmd0TlTDEemj43b9aqYl1f6f1qdXudRmI5O1DpXvD/ux2Phc IcaQjwMB2PIq10roqSiQlOv+m3Qz4O5kvhkbuyfVuLwYQiCVRpnkCgh5NeCTPeok/nND YfnQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eObtZH1W; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1e36a608si80854666b.807.2025.06.05.23.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:44:17 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eObtZH1W; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D3D7682AE1; Fri, 6 Jun 2025 08:42:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="eObtZH1W"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5C68982BD6; Fri, 6 Jun 2025 08:42:36 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6FAFF82B63 for ; Fri, 6 Jun 2025 08:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3a4fea34e07so1002550f8f.1 for ; Thu, 05 Jun 2025 23:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192154; x=1749796954; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+bXs58POLdIzbyc9mC98f2ECYsUr8btFnWShoBpeY/0=; b=eObtZH1W26Q2j36qo40Rk6pkoujgQqSVkhEfDhB8ZnZRNeTFpVH59pGqBf6jSaIQzS wua5xyAgT/FDanac7feX6ZbxL8pbPOTDqgEeemfozh+51WgNz6TOYV4F9abvSVqjySWj f9X52d3aoJ2lMBGsmf9MMbJRMxsZqenY87f1BnDmJgwJHayswBo4n9dbF8Xq4it8QViz +cV+QewNtxH06+fXnm+iJaa4z7Ac474RwuRP2wqOxObs5JtY1KyQrfU8Td85OwVzwFD9 kaL/WZrpRz9Y0wb/VbJQJwRcmpnnQX6Sszw8d30QFoK+n9xmmXNcQuzcgXZ8mV3LnR+9 cRFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192154; x=1749796954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+bXs58POLdIzbyc9mC98f2ECYsUr8btFnWShoBpeY/0=; b=YXWKHsdp6YjoOn45VmFGmpiS9GoiayccKS32gCKakaV2mx4uaWl6FrC4w5H3euMMv6 d57P7wHNlFc56BroviS/GC2wJ667SJnQWvMxaQ4HxjprldyAZkq+vbBbjHfBBakLhmeb 3YUl2mkehD/EfTmUxi/+RzhJGJhjXr5NkAZb25KImN9zd7hfJtIgUBbwlZ/BtE9APWQ3 QdHMNBl1rDmvXJSSvimBzZ5iMW+RTQiuwRPIqLxttZXm30pylULCur5M6WO28xh7+LBu honpp2aJOJsigXS28dJpGy+Iil1v2W9rOJ3KzJie9SzvxttS3ebQfa7KVIxqm4i9ShTi lcyw== X-Gm-Message-State: AOJu0YzIgZFSjRjVIQ4+6FUKvlXUldJS/CWw/ic+XtNc9Ru78j3h2LXp YVh3SZQ6y8Fi6VZuR6eHH/5KvoXtJeWU2Tc3V1JMYPLACpzB2SwHJ7ZO8MyAr8KMsQk1RfirVih PoopI X-Gm-Gg: ASbGncvSR++9DCSNsyg0FirF54UVgKBejez5l3nQO3O15kbPD4TEcKuVQLoie+BVRKi QcD/Lsl8Zh3JNNQhRQPu8eV/zSYSZa7kfbcozzp0/e/Tmah3TvxemxpZp/KxybUauGA5jbRDi8e CvYghmS6lulwhtefJD0CW/AL+ZzOwR989RU4+0EOCvmT6KFs+LfGmnvv7A/gYMLnAqxPP9cPwkg DLjOxyzarnfBLQGmXy9Io+BtKfI/N8OvXM7rud49wlzCBOiJjtZJuyh2YJmN0W/0BC5q/un3rGT 8k8m5ug8UrSz6rYAMe/ZwVxNQlltwOSoDKK7paI1ZM2Ce5J+Jsr8qnT7WJ9+ X-Received: by 2002:a05:6000:144d:b0:3a4:fc3f:8d5b with SMTP id ffacd0b85a97d-3a531cb76c5mr1615450f8f.47.1749192153680; Thu, 05 Jun 2025 23:42:33 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:33 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Tom Rini Subject: [PATCH v2 12/13] Update doc/README.SNTP Date: Fri, 6 Jun 2025 08:41:48 +0200 Message-ID: <20250606064211.3091237-13-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Fix an error in doc/README.SNTP ("timeoffset") and clarify the differences between CONFIG_NET=y and CONFIG_NET_LWIP=y. Signed-off-by: Jerome Forissier --- Changes in v2: - New patch doc/README.SNTP | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/README.SNTP b/doc/README.SNTP index da9ec459ad4..da68aa318a5 100644 --- a/doc/README.SNTP +++ b/doc/README.SNTP @@ -4,14 +4,23 @@ configuration file of the board. The "sntp" command gets network time from NTP time server and syncronize RTC of the board. This command needs the command line parameter of server's IP address or environment variable -"ntpserverip". The network time is sent as UTC. So if you want to -set local time to RTC, set the offset in second from UTC to the -environment variable "time offset". +"ntpserverip". -If the DHCP server provides time server's IP or time offset, you -don't need to set the above environment variables yourself. +[CONFIG_NET_LWIP=y only] The host name of the NTP server may be +provided instead of its IP address provided that CONFIG_CMD_DNS=y. + +The NTP server address does not need to be given if the DHCP server +provides one. + +The network time is sent as UTC. So if you want to set local time to +RTC, set the offset in second from UTC to the environment variable +"timeoffset". + +[CONFIG_NET=y only] If the DHCP server provides time server's IP +or time offset, you don't need to set the above environment +variables yourself. Current limitations of SNTP support: 1. The roundtrip time is ignored. -2. Only the 1st NTP server IP, in the option ntp-servers of DHCP, will - be used. +2. [CONFIG_NET=y only] Only the 1st NTP server IP, in the option + ntp-servers of DHCP, will be used. From patchwork Fri Jun 6 06:41:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Forissier X-Patchwork-Id: 894446 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:ecd:b0:3a4:ee3f:8f15 with SMTP id ea13csp348867wrb; Thu, 5 Jun 2025 23:44:25 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUnIDgHBceYw0d5I1DYNkasGhL1NqGhx/HtWAozdNu8ahSGyf5mvwvJOUusXKW//oFSdanvUQ==@linaro.org X-Google-Smtp-Source: AGHT+IFlcD4RPpMW3O3jqY0LE3HKF+LeKXcOvR+XWDCAm2mhUXwwl2KX9kmra/JlqFZd3TkJtu7z X-Received: by 2002:a17:907:3e06:b0:add:ede0:b9d4 with SMTP id a640c23a62f3a-ade1a8ced60mr172600366b.0.1749192265712; Thu, 05 Jun 2025 23:44:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1749192265; cv=none; d=google.com; s=arc-20240605; b=A9YIg+BhxYBSTFzm9lQZbHuYfdsYjqFEvzSw27ddcgwdveEQijTDvGs0R89GfuZdOn xTaD/hpamR3cKjypKM8OlmyBv0Ch1+s2H+mrUleVy9DTh9snB/u70PCKcpIVbtVOAXan udnX53spSS6KBeHhhkjv4faX7Zr/vOiivpf17ACZiYtv1YKfL/vRmYJfVihSgQ79N23z S1Vwrzs/j1s9CUlWj/cbxythROIUK9bQXaDROxKYtO+6MesIW48JiwqV7ro1MpqQpra+ St6minBZetqMnQEPw5t3pPGo1cd33PcIQatf3K8A6M7V1u/QziF5FZJMMbRj46z8AbgC 3m7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=TLRcqehQyeudcAfUgQyUPGb8hXSikCjgmrSVEgvIiSM=; fh=Ul4q5/hzFLVUhZ4QLqdjjqDgc62TpfMU7EFHbvGmKV0=; b=Hp8wAdCp2bydKy2M5tKJ2zkH4HvIm8/32ClzQadHutBXhdWFDxib4e5FxH/b9Ka/wp s3fUVGycCxE+wHOPFWRmj1gr4GtjgnCUAxVvmO6MTZ6Pg+uEJonVD0T45/JBhexkZHA9 gdJZFii5FSu81i0tOs2/xROC2dehZSwJaQWmjTFFUXs0N2cl/I0vvYjrYIzlADf8AD79 EcYq5vj5CoMwqPeiPSzuhOTo75t6ubpE+eybnaess7DVjboKC673lTC3mHExnD8uafsT iULBZkrAa/qLipP7KfAkucvdocpMlM++cSyQtMNRh4iTqQGkpQZjfPNNnLYcN3TuDhA0 NDUw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="qEuVyp/r"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id a640c23a62f3a-ade1dc1a1bdsi85818466b.266.2025.06.05.23.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:44:25 -0700 (PDT) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="qEuVyp/r"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2E03C82C03; Fri, 6 Jun 2025 08:42:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="qEuVyp/r"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1D29082B7C; Fri, 6 Jun 2025 08:42:37 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 2D74082B27 for ; Fri, 6 Jun 2025 08:42:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jerome.forissier@linaro.org Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3a4fea34e07so1002555f8f.1 for ; Thu, 05 Jun 2025 23:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1749192154; x=1749796954; darn=lists.denx.de; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TLRcqehQyeudcAfUgQyUPGb8hXSikCjgmrSVEgvIiSM=; b=qEuVyp/rrL726KYiRarLNvi9VXKO2Tt3Z5tR7WY4EMW0zDTQEIwWOSWPRLDnH+4qhR L0ZeZm4hAMjVEEVUBnMzLP5fS8a2IHymNILt3wCtGz3Rd4HegvS2wjdgHd6/+TdDkC46 chHv3MIG/SQKlGzLYsIIGJAaFVO9mhg+6dLQx3oKF9n48utzulSSYJDwfr1p42fjZ5OE sZiQ8W7J4IzzUNDVUbUnKYfy3gUiujS+BzUufCz0SNaLTFFXt70abX9GqXEeFNp1Zftx o3JG1wG33vVFOJ3gFWRGik2pGc6O1ap3YbzupqLHPrNw5P4XWtmTOLM1imhIK9Rt1XCJ S05g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749192154; x=1749796954; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TLRcqehQyeudcAfUgQyUPGb8hXSikCjgmrSVEgvIiSM=; b=AsNkNIZXxRIF/tVMTHdFE8DRzJys3pwHay5ZlDPCnMumYUNR5Uyotvgi8v8nlhblwQ IPYM6zsO7QI0y204Rt3c3h0F0sbkwmRhSH2ZPlGgpwvtS0xG2LHxC4Qgzgxn4/yTxFZ/ 5aBfHwB1jTNxr0GPPk6bCi8G4qKV8rzr5bUFAvSSXcltunw9WTCJtrtxQeLjwfp5mYd6 CBwLANCNJp2chByMjR5TT8p332vJM1klWEpO5nJrj+bdq2FxNG5q2awxWbTQJuQKJ/zE KroEb+19d+CoPEKneM18mwvK8jXHlbMowS7IhSEVDuqrAnzHltZ14NxAJIAJk+r8aqHI 0lTA== X-Gm-Message-State: AOJu0YyTozLmron40H0Y0PHVEQ6q7WOJYN68dcEBWydZjeACGNuEusDR 1T5sO6G0Lgb4+iE/FpK+PNNgjZbXptVp0GkeLw8uCItYlmcheTur8hRl7NavK/vHwMCfaexXN6l 7BTja X-Gm-Gg: ASbGncu+RBe1RdvycvTX8i2oTdF+FQLihwawzZ0db0zujx1/GOSXksoQiAlneNOJ6Jw 6fxPLmAOC3sfjgdXJ5RddDHrGrBc+Su2jz0hpO3mk2QK1OIyztDRE0tmrjCQPaIH6zR9fjXVTyS Sn8CncNgDEasZuKQqWQWERQthckbMyT/4319apapV49Em39hSdr9hYP+91K5Cg6LFY+N7kfhXlt FUR7ZINrbu4YCPuIf5L6djPURygSeYQp716GEzooVF7tHYs5W5m4bERuHL62we9dnqOtGiLfV96 rk99dM7y4hacb3hjD72VwpzaXe8LBz5MPEMokhULWrk1IfmXKb6V4B5T8euj07oOP/KXtR8= X-Received: by 2002:a05:6000:4013:b0:3a4:edf5:b942 with SMTP id ffacd0b85a97d-3a531cc1aaemr1838455f8f.57.1749192154428; Thu, 05 Jun 2025 23:42:34 -0700 (PDT) Received: from builder.. ([2a01:e0a:3cb:7bb0:af71:dfb2:66ef:80c3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a53244d10asm994627f8f.67.2025.06.05.23.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jun 2025 23:42:34 -0700 (PDT) From: Jerome Forissier To: U-Boot mailing list Cc: Jerome Forissier , Ilias Apalodimas , Peter Robinson , Simon Glass , Tom Rini , Tuomas Tynkkynen Subject: [PATCH v2 13/13] configs: qemu_arm64_lwip_defconfig: enable CMD_SNTP Date: Fri, 6 Jun 2025 08:41:49 +0200 Message-ID: <20250606064211.3091237-14-jerome.forissier@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250606064211.3091237-1-jerome.forissier@linaro.org> References: <20250606064211.3091237-1-jerome.forissier@linaro.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Enable the sntp command by default in the arm64 QEMU defconfig for lwIP since this config is meant to have all the features supported by lwIP. Signed-off-by: Jerome Forissier --- (no changes since v1) configs/qemu_arm64_lwip_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/qemu_arm64_lwip_defconfig b/configs/qemu_arm64_lwip_defconfig index 814e98729a3..e8f976efaf7 100644 --- a/configs/qemu_arm64_lwip_defconfig +++ b/configs/qemu_arm64_lwip_defconfig @@ -5,6 +5,7 @@ CONFIG_ARCH_QEMU=y CONFIG_NET_LWIP=y CONFIG_CMD_DNS=y +CONFIG_CMD_SNTP=y CONFIG_CMD_WGET=y CONFIG_EFI_HTTP_BOOT=y CONFIG_WGET_HTTPS=y