From patchwork Mon Oct 14 07:38:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 1176036 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::140; helo=mail-lf1-x140.google.com; envelope-from=swupdate+bncbcxploxj6ikrb76msdwqkgqeham2iti@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="SIXGYaz5"; dkim-atps=neutral Received: from mail-lf1-x140.google.com (mail-lf1-x140.google.com [IPv6:2a00:1450:4864:20::140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46s9Tg2Gbwz9sPc for ; Mon, 14 Oct 2019 18:40:53 +1100 (AEDT) Received: by mail-lf1-x140.google.com with SMTP id q3sf2794184lfc.5 for ; Mon, 14 Oct 2019 00:40:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1571038847; cv=pass; d=google.com; s=arc-20160816; b=oVFctnzTBC4jqV63Y0AbTVZFLyA1zt0rszjip9hvSqzyjdBBxWMasb0xUxPULWmoW+ mGGLIPw/LIbrmir9mG8lqzSgK15rpDvUuMM/P/RWBhgVnTCKdREMTEMdTPgAY8mEugLh nKsAFYnxSZQW6lSetjXUssBC0bP4Tvpw0yE32gHi6DeqXV5xIOHdHFBf5qpmb0cddLN7 AhI09PdX55I2Aa0J+mxtR28n5XLCkYZLJV/DLSSqphMHVr1e+GEsmoy8f1qiHgp8FUf4 3NZdLFtwv1IvXuXvNroeytmr1+pckGMLZaE6ZEUmOA+Hr7y00xDTdvFYg/1ulnFbW8lV JQUg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:message-id:date:subject:cc:to:from :mime-version:sender:dkim-signature; bh=UD6fVArKibeUIS5Sr6b263enT9JHihOvDcTk7CIC8LM=; b=LjHkXG5+qMHYxRrWUcHrp+mpodqpnTMZ6sjxxT/5qqy2NcuMZvSVXUwT6js9ZIgSvl 61p02k1LAP68zjlBvjUwkCWYr5cxaYscuvzJpQ60EHyazNiZAz2pHQzZazCgrsJHsLq4 Lll3XC58IoGMTAp1AIila2WsxRA1ym11q5QinAl8+NPvaP4ETBsELD8P1SUXIgW+D6Zv p+FVLxI73TDlLlix9ip1DmDiCNBo97hZRSg8+G9uToCVyoXk+GNWnV9vU/qtiwcFHOcy ZmD6+DnGFEDncGBd1w0ZVQSanrYhSi7Ew5f6tKqmZJBNXmuUKkkhGMHAgeKhShaxSxFi pZZQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=UD6fVArKibeUIS5Sr6b263enT9JHihOvDcTk7CIC8LM=; b=SIXGYaz5BndHMXkdBZRNh485Dc1Cr1Vp9ZH3GnA29bwFk7z9swDp3HfgK9nCQPmKU0 N4Z9nsJt/WGY9V9wkIUimKZLiEDOM5aFcqwp1tsYDFKyi8DFqaJMztWBqGOOTggdyKfJ s8SoSX4R11bKt5csQy0vuggIrCVFMU8bXYvQ1QHVSeLS2hFnNvnGO1loXNe9BdjSZMvA 1RvjFn/LPPf41NVr46YUs+dBY8zCILFZOBuzy+1W5h9lJ4kjJ2zvs5Pj8XlixbTELb+l YPU2kky9LAxMrUv1wuB2o05mUuVOTcW7L00VoT2GkqmR7B0A02RZ/qqULhrQuqQ16QkT Ii7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=UD6fVArKibeUIS5Sr6b263enT9JHihOvDcTk7CIC8LM=; b=I3ietjnOUJotHaTBnl5Zu5Xc0ZfafT6N0TxWcn78AY8AeIPDJF3LH+DBftoMAnmVb7 KWkY4aUYo0PBYD/LtA/Bal/fV98dHwtLb7DhrrfK0g5uisDyiEfYx+yYTr9kqVW9pBqt uHmUdxHZEu2QT5anNiUlFRP6X4mKyTIfOnkJEU1+aCJR3j+igoAb9fZvuEkkoIO+wZ2T Co4HhJ38Rex7BS8zxJys1zcttLyFXRFE1zCU5iFFvjqC9DvURWg3l7SWQoPbrTaZg6I7 19kuSxIONxdr/n/OyMNiRi/BhXoDFEcmVlZBAbDei3DuA29jT/OPyuSTyfIGyVF72Hod n1nw== Sender: swupdate@googlegroups.com X-Gm-Message-State: APjAAAXVIGGmH2a2JUYJO9KdWO6addmdh8Ua/7OFjda3hZZYr6C55Ib8 AoOo2PLp06upVwe6PX0rlas= X-Google-Smtp-Source: APXvYqxGUgcTNxYILpBCMohWmxnSG9hGXVcPMMt7wB4/HLG1RgMn1TwhxBDy4nVVhRXyfFQiP0UOaw== X-Received: by 2002:a2e:8310:: with SMTP id a16mr11882677ljh.48.1571038847249; Mon, 14 Oct 2019 00:40:47 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 2002:a19:c709:: with SMTP id x9ls1188892lff.12.gmail; Mon, 14 Oct 2019 00:40:46 -0700 (PDT) X-Received: by 2002:ac2:4c83:: with SMTP id d3mr16382394lfl.102.1571038846601; Mon, 14 Oct 2019 00:40:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571038846; cv=none; d=google.com; s=arc-20160816; b=NQBSCROL+GapsbS5p1fvh8oeTaVYa6D9DZ8L8EFxz9/fg2Ny/OMPGinGUpMplvhCeQ p4ubRc2DO8gAd84Oy24wazHCkJeTy0uSCvHjlR0WPfGXH0WNZY5ttKhH1v/7M4J0tWNH IkS5ne0mGrK37RavRfG8tJ6EKPb6RquQrYKKeyZNZvjbejKyY6GulGalzF105MzYe4wJ VvVcYjLfstIfm1UXx0iQecUNl6zFolY0h/WQVXOJMBrGvxptuODozwCTdtVL1euHufpv hE2Ve4lCNvs2LMdm+TA8nTo7yIqlJhFRiVaT63jJjH7B/NC3N9yB1uqVxk7W8KR8w1CS e7OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from; bh=rg8T0gn+yRRCNU96beQywE8LqJp7L8jvrpGEpbVAUQI=; b=Y5/4VrMCQ1vH+GSPUy7y5J7c6vj0ytovyiPm8gPe064XFaalBOSvV05WpNl7j9ZYJX XeKjVwQFbb1vCSz3EhFtLIDJ4RAl8+hl9m4s1VaMC9VgBJSpWSWpGMl27yee4omV+k/R cVV2iSNG9dtPQkJEo4FTsdEPVpsYjQxEqKE4QNSw/QM03LxA4rIuxsklFcFUK42at2Xp mSxVhJhma9JIyuPzs5ScP4ilpVXFJ/iGCEgXZ43IqIj3Kyr4MGus36ocs1OE+dHUp9qe TJQxSRakQngEJOrfXSa49H2OeNYnDeDbgFQJQJ3ePKRW3Jf1/EGik49EG45F7y+AerhM rgrA== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.9]) by gmr-mx.google.com with ESMTPS id d3si477768lfq.1.2019.10.14.00.40.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 14 Oct 2019 00:40:46 -0700 (PDT) Received-SPF: neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=212.18.0.9; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 46s9TV04zzz1qqkJ; Mon, 14 Oct 2019 09:40:46 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 46s9TT70RLz1qqkG; Mon, 14 Oct 2019 09:40:45 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id NC6TmDS-RVUy; Mon, 14 Oct 2019 09:40:44 +0200 (CEST) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 14 Oct 2019 09:40:44 +0200 (CEST) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id D97CA4540435; Mon, 14 Oct 2019 09:40:43 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PbJXqe4v1FkJ; Mon, 14 Oct 2019 09:40:40 +0200 (CEST) Received: from localhost.localdomain (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id 7DF394540430; Mon, 14 Oct 2019 09:40:40 +0200 (CEST) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic Subject: [swupdate] [PATCH 1/2] doc: add links to single and double copy scenarios Date: Mon, 14 Oct 2019 09:38:37 +0200 Message-Id: <20191014073838.8901-1-sbabic@denx.de> X-Mailer: git-send-email 2.17.1 X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Signed-off-by: Stefano Babic --- doc/source/overview.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/source/overview.rst b/doc/source/overview.rst index 3854a7a..dc82239 100644 --- a/doc/source/overview.rst +++ b/doc/source/overview.rst @@ -152,6 +152,8 @@ scripts, and so on. Different strategies can be used, depending on the system's resources. I am listing some of them. +.. _double_copy: + Double copy with fall-back -------------------------- @@ -192,6 +194,8 @@ it is always possible to upgrade the not running copy. SWUpdate will set bootloader's variable to signal the that a new image is successfully installed. +.. _single_copy: + Single copy - running as standalone image ----------------------------------------- From patchwork Mon Oct 14 07:38:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 1176037 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::33a; helo=mail-wm1-x33a.google.com; envelope-from=swupdate+bncbcxploxj6ikrbbwnsdwqkgqewsusuzy@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="YPsuezcE"; dkim-atps=neutral Received: from mail-wm1-x33a.google.com (mail-wm1-x33a.google.com [IPv6:2a00:1450:4864:20::33a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46s9Tk0S0yz9sPc for ; Mon, 14 Oct 2019 18:40:57 +1100 (AEDT) Received: by mail-wm1-x33a.google.com with SMTP id n3sf6775975wmf.3 for ; Mon, 14 Oct 2019 00:40:57 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1571038855; cv=pass; d=google.com; s=arc-20160816; b=VlvUgJ4hf/xTPtk4/Tnz6zJDKwBs8G/ilGCuuIiztAXgbFhr0fIsRN6Cxh+t02SThx C7pocI39CPHzdSm29F7SCF83IiVVOQ4QS73Vy40l0+lvs9X8cD/jlUQpTFJ9bYqGANX/ ewOH2wnM4pghJCvxpBxAnZw7kUllWjEq6cxCDALVN5VUOX8QLfROBRWfKr5Yl/xzTcSp /ra578so4PqpEPGfXuqlvJaxiYWIWMRRwtrp4TDGDLfTORjxYMUeWjgdjRUXAw8ijt/H 1nymi2nTZz4Y2DVzUVFmdD7y1VvOSXOPuN5LA6oUJA9cKITnppGXlK41fhIY+THaDem+ SCMg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:mime-version:sender:dkim-signature; bh=hw5wFYMGTZNcGC87iOahPOgawAMCBqMXlvtt2oQLMrI=; b=byozAwq05hx1Cdcn7JASnQXvAg2wiQ2a41/wnTp47hpdCRiQkfhhLnP+oEh7PSIrBJ clEyoUYFSSPZuAQFPiSi0G2oNFTg8s2xf/XNv3waO4pk/58/nSZJEizvlBa+VaSRgvVz 87pdVhPQV78Gj0seJ4gWL/2Fp/QjzLZY0NAnoR/MXkr1xX3mbY0qzwznp87qta8al6hj 1LbGm5xjEX6YnZ+HxhWWCcsc/PAcgkDM9NgaIl+06sntrzjqz5NLXnPiOmrQhn953L78 anBUArEGVBxTSw/5WF5jdpLwOr974AWuA1GeSRsDg0xregBU9RGlDq0KMYJslhHrTMkI 4MJg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id:in-reply-to :references:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=hw5wFYMGTZNcGC87iOahPOgawAMCBqMXlvtt2oQLMrI=; b=YPsuezcEvX3zQBljB4zRwrifAYLvowzK5BGdO7JTLy5qbYyDf0R+sjeqoX9KaogxVN XBY7Lgwzagr+FK6cYJnPW0umAiRthgnuC8/X/rJhmDNpj4P3tSeJNiTH72lmQGZB3Fw4 f2U+tpKHVmkTPTLEoeTvv/ExjSB+US2S/auO2dxy9r9N8/hB3fowap++M+K0RnxpmjNr coteNOcTIpyOrJrQOypY6B9UehkfY7cxH45xCIbnzDbd5MAuHQ7lbcI4f1NWLno/oEl1 92qjR+5IcWYbFPDxfvxTnuUAZ4FhvqfZSDK0vNNwJWObawRZ9c7dzwJTi1LnfMnIleW0 OCUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:in-reply-to:references:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=hw5wFYMGTZNcGC87iOahPOgawAMCBqMXlvtt2oQLMrI=; b=UXiGi4Kl6b/CW+R4COc3wUv55C+MuLW8/A5KLhQ4en62nAiiZ4yMdCFE8KcYZNjRFr pV65EtacPoWqBzX9Ayvx3Ag7IMFInKqqzsOmiNsU8p8rywCxXkdB4ZBlemWKJkFomHD8 3CkOefhS4+R0ZEr9BKPWGTs5BvQxJBtWSkaVHPOXJ98padaOgURfGsD6qQ8x2C6fL5gJ us2gEc/Pg5aCzjgKKjzq0ansJPwhOwh+TnUrEjHwKpnyWyzwZCRfQpjmUXqfZ/IfKxuZ ++ZXPDOJ1D5txt0fcR3u2aGxzEKsMGBpBYxQ7Ihj5kDVHsyfwW7cQE2qcfy+2QK1jhox LKtQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: APjAAAUB6gmmtLv57XDmqTM4zc+RsxFoU0aY14yzbCW0syDjnUUYCTyg PTeYmDTzh/hYzAmUJbMzqTY= X-Google-Smtp-Source: APXvYqyOs/DLldQ7o0njuFdkhUX7w52Q5v+gT37xkNDjg2VZuNo4S9Y7+yvj4QTq7LUZBB9i1XrtxA== X-Received: by 2002:a7b:c3d2:: with SMTP id t18mr14592382wmj.66.1571038854618; Mon, 14 Oct 2019 00:40:54 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 2002:a1c:1a96:: with SMTP id a144ls5751179wma.3.gmail; Mon, 14 Oct 2019 00:40:53 -0700 (PDT) X-Received: by 2002:a7b:c5c9:: with SMTP id n9mr14606208wmk.28.1571038853713; Mon, 14 Oct 2019 00:40:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571038853; cv=none; d=google.com; s=arc-20160816; b=qQjJfux1DhmoXV7KhIKGIdu6lMkN2mMjiaR2OrF23kRnspo0UMQ2pS1sU7eE59rM9t Xbai4jyoyk/HS+rogL+v1GtDUoKHbLSgym27mvL7hYFtfhalTwbZHumzXwJX7vofKsif UC4bqtCPreAOcf89DasgXKxdM3r1K7VRAV+4pjkThJtwbLwGOG0A09iqztgOgNU9C+ta +WHcDh4HcQvcg4UIKcydciJ6COTKn3N8Z/W5M3+Tc4w/4WQel/R+sP2Yw63liYf0Dpgl Ntvt3SHlTX+xnM4cc5G7/TFnWiGCs9QgxPh1ttYOag3VguGitL1IxDyr1APYmySnN9Pg +N7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from; bh=MLsRDvd2iDtf/dmNNkIR7R+dIYG8vkqTgNVQpUdirXE=; b=alLGpNCdZvwYP+QmROYQuirkKuPAc6gTflLimYg5D7LHgXjHyte93MbFngK+7ZVE6j 1LQukJx+r1RpTwe/D3/zSQ7iPEH3KYQZRt6K8PcPriefxB89PvptMOeER2A7hwN/F5Tn i5PjmK3kq6ktgKFMSE2X0aZ9+RwsSvZoZitLCrqwGQPvUaoCR1IrCJ/Ex4aYZCqNUYb7 uhlIdABpPuWLuxUlIIvdnbI/Xe0XNGJlphgx5wnaIKj0mN2asML1UgLqEWNVTibtT2zr aNg2P+UPDKslJFQmBrgN/Fy6kCIxnIYUzPWHPPWkh5nziOXzb1vld7dzv67nE72hrsQ/ d+/Q== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.9]) by gmr-mx.google.com with ESMTPS id q185si778141wme.1.2019.10.14.00.40.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 14 Oct 2019 00:40:53 -0700 (PDT) Received-SPF: neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=212.18.0.9; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 46s9Td3Qmkz1qqkJ; Mon, 14 Oct 2019 09:40:53 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 46s9Td3BLLz1qqkC; Mon, 14 Oct 2019 09:40:53 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 821eRIGb8Mcf; Mon, 14 Oct 2019 09:40:47 +0200 (CEST) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 14 Oct 2019 09:40:47 +0200 (CEST) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 2C2AC4540430; Mon, 14 Oct 2019 09:40:47 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hVBx4Lu3KJLp; Mon, 14 Oct 2019 09:40:41 +0200 (CEST) Received: from localhost.localdomain (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id CDC284540432; Mon, 14 Oct 2019 09:40:40 +0200 (CEST) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic Subject: [swupdate] [PATCH 2/2] doc: add scenarios how to use SWUpdate Date: Mon, 14 Oct 2019 09:38:38 +0200 Message-Id: <20191014073838.8901-2-sbabic@denx.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191014073838.8901-1-sbabic@denx.de> References: <20191014073838.8901-1-sbabic@denx.de> X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Signed-off-by: Stefano Babic --- doc/source/images/swupdate-application.png | Bin 0 -> 30793 bytes .../images/swupdate-rescue+double-copy.png | Bin 0 -> 43880 bytes doc/source/index.rst | 1 + doc/source/scenarios.rst | 53 ++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 doc/source/images/swupdate-application.png create mode 100644 doc/source/images/swupdate-rescue+double-copy.png create mode 100644 doc/source/scenarios.rst diff --git a/doc/source/images/swupdate-application.png b/doc/source/images/swupdate-application.png new file mode 100644 index 0000000000000000000000000000000000000000..646b82703841ead836bb2390d0645becb3cad471 GIT binary patch literal 30793 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

6_QN$D2)+><*_j-F%{`NG- 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

FnVRr8z*o2#q8EZgKK@Oy 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 literal 0 HcmV?d00001 diff --git a/doc/source/index.rst b/doc/source/index.rst index 64041e6..b5d1d51 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -33,6 +33,7 @@ SWUpdate Documentation :maxdepth: 2 swupdate.rst + scenarios.rst sw-description.rst signed_images.rst encrypted_images.rst diff --git a/doc/source/scenarios.rst b/doc/source/scenarios.rst new file mode 100644 index 0000000..480778b --- /dev/null +++ b/doc/source/scenarios.rst @@ -0,0 +1,53 @@ +Update strategy examples +======================== + +SWUpdate is a building block and it allows to design and implementing its own +update strategy. +Even if many projects have common ways for updating, it is possible to high customize +the update for each project. +The most common strategies (single-copy and dual-copy) were already described at the +beginning of this documentation and of course are well supported in SWUpdate. + + +Single copy - running as standalone image +----------------------------------------- + +See :ref:`single_copy`. + +Double copy with fall-back +-------------------------- + +See :ref:`double_copy`. + +Combine double-copy with rescue system +-------------------------------------- + +This provides a recovery procedure to cover update failure in severe cases when software is damaged. +In case none of the copy can be started, the bootloader will start the rescue system (possibly stored +on another storage as the main system) to try to rescue the board. + +.. image:: images/swupdate-rescue+double-copy.png + +The rescue system can be updated as well during a standard update. + + +Split system update with application update +------------------------------------------- + +Updating a whole image is quite straightforward, but this means to transfer bigger amount +of data if just a few files are updated. It is possible to split theupdate in several smaller +parts to reduce the transfer size. This requires a special care to take care of compatibility +between system and application, that can be solved with customized Lua scripts in the sw-description file. +SWUpdate supports versioning for each artefact, and anyone can add own rules to verify compatibility +between components. + +.. image:: images/swupdate-application.png + +Configuration update +-------------------- + +Thought to update the software, SWUpdate can be used to install configuration data as well. +Build system can create configuration SWU with files / data for the configuration of the system. +There is no requirements what these SWU should contains - it is duty of the integrator to build +them and make them suitable for his own project. Again, configuration data can be updated as +separate process using one of the above scenarios.