Skip to content

Commit

Permalink
Merge pull request #194 from roy-hopkins/igvm_bld_segs
Browse files Browse the repository at this point in the history
Add segment selectors to initial VMSA in the IGVM builder
  • Loading branch information
joergroedel authored Dec 20, 2023
2 parents 9f61c13 + 11d8121 commit 6e14972
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions igvmbld/igvmbld.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,14 +327,20 @@ void generate_initial_vmsa(SEV_VMSA *vmsa)
// Establish CS as a 32-bit code selector.
vmsa->segments[SevSegment_Cs].attributes = 0xC9B;
vmsa->segments[SevSegment_Cs].limit = 0xFFFFFFFF;
vmsa->segments[SevSegment_Cs].selector = 0x08;

// Establish all data segments as generic data selectors.
vmsa->segments[SevSegment_Ds].attributes = 0xA93;
vmsa->segments[SevSegment_Ds].limit = 0xFFFFFFFF;
vmsa->segments[SevSegment_Ds].selector = 0x10;
vmsa->segments[SevSegment_Ss] = vmsa->segments[SevSegment_Ds];
vmsa->segments[SevSegment_Ss].selector = 0x10;
vmsa->segments[SevSegment_Es] = vmsa->segments[SevSegment_Ds];
vmsa->segments[SevSegment_Es].selector = 0x10;
vmsa->segments[SevSegment_Fs] = vmsa->segments[SevSegment_Ds];
vmsa->segments[SevSegment_Fs].selector = 0x10;
vmsa->segments[SevSegment_Gs] = vmsa->segments[SevSegment_Ds];
vmsa->segments[SevSegment_Gs].selector = 0x10;

// EFER.SVME.
vmsa->efer = 0x1000;
Expand Down

0 comments on commit 6e14972

Please sign in to comment.