static DEFINE_MUTEX(zcore_mutex);
 
-#define DUMP_VERSION   0x3
+#define DUMP_VERSION   0x5
 #define DUMP_MAGIC     0xa8190173618f23fdULL
 #define DUMP_ARCH_S390X        2
 #define DUMP_ARCH_S390 1
        u32 volnr;
        u32 build_arch;
        u64 rmem_size;
-       char pad2[4016];
+       u8 mvdump;
+       u16 cpu_cnt;
+       u16 real_cpu_cnt;
+       u8 end_pad1[0x200-0x061];
+       u64 mvdump_sign;
+       u64 mvdump_zipl_time;
+       u8 end_pad2[0x800-0x210];
+       u32 lc_vec[512];
 } __attribute__((packed,__aligned__(16)));
 
 static struct zcore_header zcore_header = {
 
 static int __init zcore_header_init(int arch, struct zcore_header *hdr)
 {
-       int rc;
+       int rc, i;
        unsigned long memory = 0;
+       u32 prefix;
 
        if (arch == ARCH_S390X)
                hdr->arch_id = DUMP_ARCH_S390X;
        hdr->num_pages = memory / PAGE_SIZE;
        hdr->tod = get_clock();
        get_cpu_id(&hdr->cpu_id);
+       for (i = 0; zfcpdump_save_areas[i]; i++) {
+               prefix = zfcpdump_save_areas[i]->pref_reg;
+               hdr->real_cpu_cnt++;
+               if (!prefix)
+                       continue;
+               hdr->lc_vec[hdr->cpu_cnt] = prefix;
+               hdr->cpu_cnt++;
+       }
        return 0;
 }