From patchwork Thu Jun 26 20:13:21 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Rae X-Patchwork-Id: 32594 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-pd0-f198.google.com (mail-pd0-f198.google.com [209.85.192.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id C0C9C201EF for ; Thu, 26 Jun 2014 20:13:40 +0000 (UTC) Received: by mail-pd0-f198.google.com with SMTP id y10sf13873424pdj.9 for ; Thu, 26 Jun 2014 13:13:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:mime-version:cc:subject:precedence:list-id :list-unsubscribe:list-archive:list-post:list-help:list-subscribe :sender:errors-to:x-original-sender :x-original-authentication-results:mailing-list:content-type :content-transfer-encoding; bh=3Z03b0e2G4GLVTyYoAQMoE5Uv/jJioXrxD7nwZgIA2A=; b=BsLXO6Ix021eJov5e5wm3H16Phu7Ugym55e5SUDOrx0JFd/31xelwa2XWlNXt479li yPldaNsH1tBBOaeGqE9oFhb4jHBAe5amfMFR7q0Qza5QH2My58dv39tpTOK25cdKz6Y8 ViJRJRn3CaJvVTsNcRBxe5fgBCW/Eg+PY7aSY7e/UPwq9LDo+bw2pftu0vr9SOamomBC XUjQ3WY+5m89OKSrWF8cbSBKiPCYKNUKzsfMxiFH3U8DoC4KaJQ9tq1y5F9uxqRDyzp+ SrG1ySSi2/NCEUoSmj+0WSLReTEV6c1IJ5poISlKeS+47V5gmVFQZQoWWO13UnUajrfz eooA== X-Gm-Message-State: ALoCoQkUvEEzL3cnKGi+MJi7Zbl7elN3AVdZclvIPXOlGdmeMv98yOVI79TyklQbYuK8cbwNRGEY X-Received: by 10.66.145.33 with SMTP id sr1mr9180553pab.18.1403813620066; Thu, 26 Jun 2014 13:13:40 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.100.208 with SMTP id s74ls358889qge.68.gmail; Thu, 26 Jun 2014 13:13:39 -0700 (PDT) X-Received: by 10.58.151.68 with SMTP id uo4mr15281795veb.11.1403813619951; Thu, 26 Jun 2014 13:13:39 -0700 (PDT) Received: from mail-vc0-f177.google.com (mail-vc0-f177.google.com [209.85.220.177]) by mx.google.com with ESMTPS id k3si5267788vcg.20.2014.06.26.13.13.39 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 26 Jun 2014 13:13:39 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.177 as permitted sender) client-ip=209.85.220.177; Received: by mail-vc0-f177.google.com with SMTP id ij19so4097088vcb.36 for ; Thu, 26 Jun 2014 13:13:39 -0700 (PDT) X-Received: by 10.58.112.65 with SMTP id io1mr2938411veb.61.1403813619721; Thu, 26 Jun 2014 13:13:39 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.37.5 with SMTP id tc5csp56260vcb; Thu, 26 Jun 2014 13:13:39 -0700 (PDT) X-Received: by 10.180.37.42 with SMTP id v10mr6762095wij.43.1403813618720; Thu, 26 Jun 2014 13:13:38 -0700 (PDT) Received: from theia.denx.de (theia.denx.de. [85.214.87.163]) by mx.google.com with ESMTP id v8si5066841wix.3.2014.06.26.13.13.38 for ; Thu, 26 Jun 2014 13:13:38 -0700 (PDT) Received-SPF: none (google.com: u-boot-bounces@lists.denx.de does not designate permitted sender hosts) client-ip=85.214.87.163; Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9BBD54A046; Thu, 26 Jun 2014 22:13:37 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hgnYPFyXyfKg; Thu, 26 Jun 2014 22:13:37 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8B8A4A775E; Thu, 26 Jun 2014 22:13:33 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 69445A775C for ; Thu, 26 Jun 2014 22:13:30 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CR+grA8BO7vc for ; Thu, 26 Jun 2014 22:13:27 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-gw3-out.broadcom.com (mail-gw3-out.broadcom.com [216.31.210.64]) by theia.denx.de (Postfix) with ESMTP id 688A0A7757 for ; Thu, 26 Jun 2014 22:13:22 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.01,555,1400050800"; d="scan'208";a="36188851" Received: from irvexchcas06.broadcom.com (HELO IRVEXCHCAS06.corp.ad.broadcom.com) ([10.9.208.53]) by mail-gw3-out.broadcom.com with ESMTP; 26 Jun 2014 13:19:41 -0700 Received: from IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) by IRVEXCHCAS06.corp.ad.broadcom.com (10.9.208.53) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 26 Jun 2014 13:13:21 -0700 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP3.corp.ad.broadcom.com (10.9.207.53) with Microsoft SMTP Server id 14.3.174.1; Thu, 26 Jun 2014 13:13:21 -0700 Received: from mail.broadcom.com (lbrmn-vmlnx03.ric.broadcom.com [10.136.4.105]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 971629F9F9; Thu, 26 Jun 2014 13:13:20 -0700 (PDT) From: Steve Rae To: Rob Herring , Sebastian Siewior Date: Thu, 26 Jun 2014 13:13:21 -0700 Message-ID: <1403813604-31685-2-git-send-email-srae@broadcom.com> X-Mailer: git-send-email 1.8.5 In-Reply-To: <1403813604-31685-1-git-send-email-srae@broadcom.com> References: <1403813604-31685-1-git-send-email-srae@broadcom.com> MIME-Version: 1.0 Cc: Marek Vasut , Steve Rae , Pantelis Antoniou , u-boot@lists.denx.de, Tom Rini Subject: [U-Boot] [PATCH v3 1/4] usb/gadget: fastboot: add sparse image definitions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: srae@broadcom.com X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.177 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 - to prepare for the support of fastboot sparse images Signed-off-by: Steve Rae --- This file is ASIS from: https://raw.githubusercontent.com/AOSB/android_system_core/master/libsparse/sparse_format.h (commit 28fa5bc347390480fe190294c6c385b6a9f0d68b) except for the __UBOOT__ conditional include. Changes in v3: None Changes in v2: None include/sparse_format.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 include/sparse_format.h diff --git a/include/sparse_format.h b/include/sparse_format.h new file mode 100644 index 0000000..21fbd05 --- /dev/null +++ b/include/sparse_format.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _LIBSPARSE_SPARSE_FORMAT_H_ +#define _LIBSPARSE_SPARSE_FORMAT_H_ +#define __UBOOT__ +#ifndef __UBOOT__ +#include "sparse_defs.h" +#endif + +typedef struct sparse_header { + __le32 magic; /* 0xed26ff3a */ + __le16 major_version; /* (0x1) - reject images with higher major versions */ + __le16 minor_version; /* (0x0) - allow images with higer minor versions */ + __le16 file_hdr_sz; /* 28 bytes for first revision of the file format */ + __le16 chunk_hdr_sz; /* 12 bytes for first revision of the file format */ + __le32 blk_sz; /* block size in bytes, must be a multiple of 4 (4096) */ + __le32 total_blks; /* total blocks in the non-sparse output image */ + __le32 total_chunks; /* total chunks in the sparse input image */ + __le32 image_checksum; /* CRC32 checksum of the original data, counting "don't care" */ + /* as 0. Standard 802.3 polynomial, use a Public Domain */ + /* table implementation */ +} sparse_header_t; + +#define SPARSE_HEADER_MAGIC 0xed26ff3a + +#define CHUNK_TYPE_RAW 0xCAC1 +#define CHUNK_TYPE_FILL 0xCAC2 +#define CHUNK_TYPE_DONT_CARE 0xCAC3 +#define CHUNK_TYPE_CRC32 0xCAC4 + +typedef struct chunk_header { + __le16 chunk_type; /* 0xCAC1 -> raw; 0xCAC2 -> fill; 0xCAC3 -> don't care */ + __le16 reserved1; + __le32 chunk_sz; /* in blocks in output image */ + __le32 total_sz; /* in bytes of chunk input file including chunk header and data */ +} chunk_header_t; + +/* Following a Raw or Fill or CRC32 chunk is data. + * For a Raw chunk, it's the data in chunk_sz * blk_sz. + * For a Fill chunk, it's 4 bytes of the fill data. + * For a CRC32 chunk, it's 4 bytes of CRC32 + */ + +#endif