Index: sys/arm/include/pcb.h =================================================================== --- sys/arm/include/pcb.h +++ sys/arm/include/pcb.h @@ -52,14 +52,25 @@ #define PCB_OWNFPU 0x00000001 #define PCB_NOALIGNFLT 0x00000002 caddr_t pcb_onfault; /* On fault handler */ + +/* + * This structure must be binary compatible regardless of PMAP + * version being used. Create reserved section for NEW_PMAP to + * make other variables be placed exactly in the same memory + * addresses. + */ +#define PCB_PMAP_SECTION_SIZE (sizeof(vm_offset_t) + \ + 2*sizeof(uint32_t) + sizeof(u_int)) #ifdef ARM_NEW_PMAP uint32_t pcb_pagedir; /* TTB0 value */ + uint8_t _rsvd[PCB_PMAP_SECTION_SIZE - sizeof(uint32_t)]; #else vm_offset_t pcb_pagedir; /* PT hooks */ uint32_t *pcb_pl1vec; /* PTR to vector_base L1 entry*/ uint32_t pcb_l1vec; /* Value to stuff on ctx sw */ u_int pcb_dacr; /* Domain Access Control Reg */ #endif +#undef PCB_PMAP_SECTION_SIZE struct vfp_state pcb_vfpstate; /* VP/NEON state */ u_int pcb_vfpcpu; /* VP/NEON last cpu */ } __aligned(8); /*