summaryrefslogtreecommitdiff
path: root/disk/part_toc.h
diff options
context:
space:
mode:
authorPeter Nessrup <peter.nessrup@stericsson.com>2010-08-17 10:39:02 +0200
committerMichael BRANDT <michael.brandt@stericsson.com>2010-09-16 11:52:23 +0200
commitf1f51a277554486f3f46e9a4c16e9a2c78e730de (patch)
tree619bb0990ab232a64109984a4f740711094c9d3b /disk/part_toc.h
parent04678dba604a7b0f459dd50ef717dc86ef4daad4 (diff)
Added TOC partition support
TOC partition support added under disk New files: part_toc.c, part_toc.h CONFIG_TOC_PARTITION needs to be set for it to be activated. ST-Ericsson ID: ER256835 Change-Id: I301b0650cb73b34f04b80dd5f27babdbf7ba09e1 Signed-off-by: Peter Nessrup <peter.nessrup@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/4369 Reviewed-by: Sebastian RASMUSSEN <sebastian.rasmussen@stericsson.com> Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com>
Diffstat (limited to 'disk/part_toc.h')
-rw-r--r--disk/part_toc.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/disk/part_toc.h b/disk/part_toc.h
new file mode 100644
index 000000000..fbe7624ba
--- /dev/null
+++ b/disk/part_toc.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) ST-Ericsson SA 2010
+ * Author: Peter Nessrup <peter.nessrup@stericsson.com> for
+ * ST-Ericsson.
+ * License terms: GNU General Public License (GPL), version 2.
+ */
+#ifndef _DISK_PART_TOC_H
+#define _DISK_PART_TOC_H
+
+#define SUPPORTED_SECTOR_SIZE 512
+#define TOC_MAGIC "ISSW"
+#define TOC_ID_NO_ENTRY "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"
+#define TOC_MAX_ENTRIES (SUPPORTED_SECTOR_SIZE/sizeof(toc_entry_t))
+#define MAX_NUM_TOCS 4
+#define TOC_BOOT_IMAGE_SIZE (0x20000 / SUPPORTED_SECTOR_SIZE)
+#define NO_TOC -1
+#define TOC_ID_LENGTH 12
+
+/* Sub TOC identifier in the 'flags' field is 'ST' */
+#define FLAGS_SUB_TOC 0x00005354
+#define FLAGS_PARTITION 0x00000001
+
+typedef struct __attribute__ ((__packed__)) {
+ u32 offset;
+ u32 size;
+ u32 flags;
+ u32 align;
+ u32 loadaddr;
+ u8 id[TOC_ID_LENGTH];
+} toc_entry_t;
+
+typedef struct {
+ u8 id[TOC_ID_LENGTH];
+ u32 num_items;
+ u32 location;
+ u32 cached_section;
+ toc_entry_t cache[TOC_MAX_ENTRIES];
+} subtoc_t;
+
+typedef struct {
+ u32 start;
+ u32 size;
+ u8 name[12];
+ u32 cfg_offset;
+ u32 type;
+ u32 unused;
+} toc_part_entry_t;
+#endif /* _DISK_PART_TOC_H */