add header for Android sparse image format
PATCH 1/1 add header for Android sparse image format
Add a BSD-3 relicensed version of the Android sparse format image header from:
https://android.googlesource.com/platform/system/core/+/28fa5bc347390480fe190294c6c385b6a9f0d68b/libsparse/sparse_format.h
Unchanged except for the license header.
Cc Tom Rini <[email protected]>
Signed-off-by Colin Cross <[email protected]>
--- include/sparse_format.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 include/sparse_format.h
include/sparse_format.h new file +49 -0
@@ -0,0 +1,49 @@ +/* +* This is from the Android Project, +* Repository: https://android.googlesource.com/platform/system/core +* File: libsparse/sparse_format.h +* Commit: 28fa5bc347390480fe190294c6c385b6a9f0d68b +* Copyright (C) 2010 The Android Open Source Project +* +* SPDX-License-Identifier: BSD-3-Clause +*/ + +#ifndef _LIBSPARSE_SPARSE_FORMAT_H_ +#define _LIBSPARSE_SPARSE_FORMAT_H_ +#include "sparse_defs.h" + +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
Signature · 1 line
2.1.0.rc2.206.gedb03e5
Quoted 7 lines · Colin Cross
Add a BSD-3 relicensed version of the Android sparse format image header from:
https://android.googlesource.com/platform/system/core/+/28fa5bc347390480fe190294c6c385b6a9f0d68b/libsparse/sparse_format.h
Unchanged except for the license header.Cc Tom Rini <[email protected]>Signed-off-by Colin Cross <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140823/b7cfd203/attachment.pgp>