#define OS_INFO_REIPL_BLOCK    1
 #define OS_INFO_FLAGS_ENTRY    2
 #define OS_INFO_RESERVED       3
+#define OS_INFO_IDENTITY_BASE  4
+#define OS_INFO_KASLR_OFFSET   5
+#define OS_INFO_KASLR_OFF_PHYS 6
+#define OS_INFO_VMEMMAP                7
+#define OS_INFO_AMODE31_START  8
+#define OS_INFO_AMODE31_END    9
 
 #define OS_INFO_FLAG_REIPL_CLEAR       (1UL << 0)
 
        u16     version_minor;
        u64     crashkernel_addr;
        u64     crashkernel_size;
-       struct os_info_entry entry[4];
-       u8      reserved[3984];
+       struct os_info_entry entry[10];
+       u8      reserved[3864];
 } __packed;
 
 void os_info_init(void);
 
 #include <asm/checksum.h>
 #include <asm/abs_lowcore.h>
 #include <asm/os_info.h>
+#include <asm/physmem_info.h>
 #include <asm/maccess.h>
 #include <asm/asm-offsets.h>
 
        os_info.version_major = OS_INFO_VERSION_MAJOR;
        os_info.version_minor = OS_INFO_VERSION_MINOR;
        os_info.magic = OS_INFO_MAGIC;
+       os_info_entry_add_val(OS_INFO_IDENTITY_BASE, __identity_base);
+       os_info_entry_add_val(OS_INFO_KASLR_OFFSET, kaslr_offset());
+       os_info_entry_add_val(OS_INFO_KASLR_OFF_PHYS, __kaslr_offset_phys);
+       os_info_entry_add_val(OS_INFO_VMEMMAP, (unsigned long)vmemmap);
+       os_info_entry_add_val(OS_INFO_AMODE31_START, AMODE31_START);
+       os_info_entry_add_val(OS_INFO_AMODE31_END, AMODE31_END);
        os_info.csum = os_info_csum(&os_info);
        abs_lc = get_abs_lowcore();
        abs_lc->os_info = __pa(&os_info);