aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/core/test/run-flash-subpartition.c
diff options
context:
space:
mode:
Diffstat (limited to 'roms/skiboot/core/test/run-flash-subpartition.c')
-rw-r--r--roms/skiboot/core/test/run-flash-subpartition.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/roms/skiboot/core/test/run-flash-subpartition.c b/roms/skiboot/core/test/run-flash-subpartition.c
new file mode 100644
index 000000000..5b6df87f2
--- /dev/null
+++ b/roms/skiboot/core/test/run-flash-subpartition.c
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
+/*
+ * Copyright 2013-2016 IBM Corp.
+ */
+
+#include <skiboot.h>
+#include <opal-api.h>
+#include <stdlib.h>
+
+#include "../flash-subpartition.c"
+#include <assert.h>
+
+/* This is a straight dump of the CAPP ucode partition header */
+char capp[4096] = {0x43, 0x41, 0x50, 0x50, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0xea, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x8e, 0x50, 0x00, 0x02, 0x00, 0xea,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x8e, 0x50,
+ 0x00, 0x02, 0x00, 0xef, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x8e, 0x50, 0x00, 0x02, 0x01, 0xef,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x8e, 0x50,
+ 0x00, 0x01, 0x00, 0xd3, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x8e, 0x50, 0x00, 0x00, 0x00, 0x00 };
+
+int main(void)
+{
+ int rc;
+ uint32_t part_actual;
+ uint32_t offset;
+ uint32_t size;
+ uint32_t subids[] = { 0x100ea, 0x200ea, 0x200ef, 0x201ef, 0x100d3 };
+
+ for (int i = 0; i < sizeof(subids)/sizeof(uint32_t); i++) {
+ offset = 0;
+ rc = flash_subpart_info(capp, sizeof(capp), 0x24000,
+ &part_actual, subids[i],
+ &offset, &size);
+ printf("\nsubid %x\n", subids[i]);
+ printf("part_actual %u\n", part_actual);
+ printf("offset %u\n", offset);
+ printf("size %u\n", size);
+ assert (rc == 0);
+ assert (size == 36432);
+ assert (offset == 4096);
+ assert (part_actual == 40960);
+ }
+
+ return 0;
+}