From patchwork Thu Jun 19 20:52:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Rae X-Patchwork-Id: 32250 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-oa0-f71.google.com (mail-oa0-f71.google.com [209.85.219.71]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 01A1D203F4 for ; Thu, 19 Jun 2014 20:52:25 +0000 (UTC) Received: by mail-oa0-f71.google.com with SMTP id n16sf19242065oag.10 for ; Thu, 19 Jun 2014 13:52:25 -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=0VcmwA7NhA+SBSGQc/aC7bOwoflBOLV7HIjA/K0Gz9M=; b=mrXTDt8EZiDkCTTnDx+wGkOAmsbhy65/w9CawaPkPRv9zvLhaR1SfwcvhvVyWyUxd+ PAS82p6fbsHdbQQS9ehj48BmAI3vOGSShb9rcgvMczo9uCRKKEccD1Gi9MiDQ7cGfY9U 0Jr1nZfuKv72EkRGJGNPsbtcL8/Hd3iSAovzrUdyeW9aAqCglW/WXXImPaq6pPwGURrs XremHNnqEGaYoxJsjlI2RRTQIehQ5zGwWm5e9G4fH879+yw+2YD5xYrPH4NeRGAzWj4s YJIISu7Kft5lHf1erp9/oZADpevhXpFI2KEApVA6+q4VNl5o1VnFWZfIi3+alTvFtMlD DCyg== X-Gm-Message-State: ALoCoQnpuLqnCVmzoxPdPOhPwSO9odNRSWr9dIayxhMPJssWh6NTtZ1Ejnou55ZW2kGAHbkLZgm6 X-Received: by 10.50.55.35 with SMTP id o3mr5551741igp.6.1403211145372; Thu, 19 Jun 2014 13:52:25 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.26.40 with SMTP id 37ls726651qgu.23.gmail; Thu, 19 Jun 2014 13:52:25 -0700 (PDT) X-Received: by 10.58.160.164 with SMTP id xl4mr2904559veb.38.1403211145059; Thu, 19 Jun 2014 13:52:25 -0700 (PDT) Received: from mail-vc0-f171.google.com (mail-vc0-f171.google.com [209.85.220.171]) by mx.google.com with ESMTPS id n7si2940369vdw.89.2014.06.19.13.52.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 19 Jun 2014 13:52:25 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.171 as permitted sender) client-ip=209.85.220.171; Received: by mail-vc0-f171.google.com with SMTP id id10so2724884vcb.2 for ; Thu, 19 Jun 2014 13:52:25 -0700 (PDT) X-Received: by 10.58.112.65 with SMTP id io1mr173110veb.61.1403211144956; Thu, 19 Jun 2014 13:52:24 -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.54.6 with SMTP id vs6csp390455vcb; Thu, 19 Jun 2014 13:52:24 -0700 (PDT) X-Received: by 10.180.72.15 with SMTP id z15mr9547839wiu.46.1403211144110; Thu, 19 Jun 2014 13:52:24 -0700 (PDT) Received: from theia.denx.de (theia.denx.de. [85.214.87.163]) by mx.google.com with ESMTP id ec3si317947wib.0.2014.06.19.13.52.23 for ; Thu, 19 Jun 2014 13:52:24 -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 547A3A7410; Thu, 19 Jun 2014 22:52:20 +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 Q-2HjCiEc2CD; Thu, 19 Jun 2014 22:52:20 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 8C7354B826; Thu, 19 Jun 2014 22:52:09 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 673684B81F for ; Thu, 19 Jun 2014 22:52:00 +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 3Y02u989kzOK for ; Thu, 19 Jun 2014 22:51:57 +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 64EAA4B811 for ; Thu, 19 Jun 2014 22:51:51 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.01,508,1400050800"; d="scan'208";a="35030797" Received: from irvexchcas08.broadcom.com (HELO IRVEXCHCAS08.corp.ad.broadcom.com) ([10.9.208.57]) by mail-gw3-out.broadcom.com with ESMTP; 19 Jun 2014 13:57:04 -0700 Received: from IRVEXCHSMTP1.corp.ad.broadcom.com (10.9.207.51) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 19 Jun 2014 13:51:45 -0700 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP1.corp.ad.broadcom.com (10.9.207.51) with Microsoft SMTP Server id 14.3.174.1; Thu, 19 Jun 2014 13:51:46 -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 6D1F99F9F7; Thu, 19 Jun 2014 13:51:45 -0700 (PDT) From: Steve Rae To: Rob Herring , Sebastian Siewior Date: Thu, 19 Jun 2014 13:52:06 -0700 Message-ID: <1403211128-19631-2-git-send-email-srae@broadcom.com> X-Mailer: git-send-email 1.8.5 In-Reply-To: <1403211128-19631-1-git-send-email-srae@broadcom.com> References: <1403211128-19631-1-git-send-email-srae@broadcom.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de, Steve Rae , Pantelis Antoniou Subject: [U-Boot] [RFC PATCH 1/3] 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.171 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. 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