summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/system.c30
-rw-r--r--include/sysjump.h46
2 files changed, 47 insertions, 29 deletions
diff --git a/common/system.c b/common/system.c
index 88475c3a68..e1b8d0b396 100644
--- a/common/system.c
+++ b/common/system.c
@@ -27,6 +27,7 @@
#include "mpu.h"
#endif
#include "panic.h"
+#include "sysjump.h"
#include "system.h"
#include "task.h"
#include "timer.h"
@@ -54,35 +55,6 @@ struct jump_tag {
/* Followed by data_size bytes of data */
};
-/*
- * Data passed between the current image and the next one when jumping between
- * images.
- */
-#define JUMP_DATA_MAGIC 0x706d754a /* "Jump" */
-#define JUMP_DATA_VERSION 3
-#define JUMP_DATA_SIZE_V2 16 /* Size of version 2 jump data struct */
-struct jump_data {
- /*
- * Add new fields to the _start_ of the struct, since we copy it to the
- * _end_ of RAM between images. This way, the magic number will always
- * be the last word in RAM regardless of how many fields are added.
- */
-
- /* Fields from version 3 */
- uint8_t reserved0; /* (used in proto1 to signal recovery mode) */
- int struct_size; /* Size of struct jump_data */
-
- /* Fields from version 2 */
- int jump_tag_total; /* Total size of all jump tags */
-
- /* Fields from version 1 */
- uint32_t reset_flags; /* Reset flags from the previous boot */
- int version; /* Version (JUMP_DATA_VERSION) */
- int magic; /* Magic number (JUMP_DATA_MAGIC). If this
- * doesn't match at pre-init time, assume no valid
- * data from the previous image. */
-};
-
/* Jump data (at end of RAM, or preceding panic data) */
static struct jump_data *jdata;
diff --git a/include/sysjump.h b/include/sysjump.h
new file mode 100644
index 0000000000..a75351a016
--- /dev/null
+++ b/include/sysjump.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2019 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* sysjump implementation-specific structures */
+
+#ifndef __CROS_EC_SYSJUMP_IMPL_H
+#define __CROS_EC_SYSJUMP_IMPL_H
+
+#include <inttypes.h>
+
+/*
+ * Data passed between the current image and the next one when jumping between
+ * images.
+ */
+
+#define JUMP_DATA_MAGIC 0x706d754a /* "Jump" */
+#define JUMP_DATA_VERSION 3
+#define JUMP_DATA_SIZE_V2 16 /* Size of version 2 jump data struct */
+
+struct jump_data {
+ /*
+ * Add new fields to the _start_ of the struct, since we copy it to the
+ * _end_ of RAM between images. This way, the magic number will always
+ * be the last word in RAM regardless of how many fields are added.
+ */
+
+ /* Fields from version 3 */
+ uint8_t reserved0; /* (used in proto1 to signal recovery mode) */
+ int struct_size; /* Size of struct jump_data */
+
+ /* Fields from version 2 */
+ int jump_tag_total; /* Total size of all jump tags */
+
+ /* Fields from version 1 */
+ uint32_t reset_flags; /* Reset flags from the previous boot */
+ int version; /* Version (JUMP_DATA_VERSION) */
+ int magic; /* Magic number (JUMP_DATA_MAGIC). If this
+ * doesn't match at pre-init time, assume no valid
+ * data from the previous image.
+ */
+};
+
+#endif /* __CROS_EC_SYSJUMP_IMPL_H */