[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH OSSTEST v6 5/9] Debian.pm: pass in XSM configuration to bootloader setup routines
Change to Uboot will come in another patch. GRUB 1 is ignored, as currently OSSTest only has Wheezy which has GRUB 2. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- Changes in v6: 1. Wrap some overly long lines. Changes in v4: 1. Modify callsite of debian_boot_setup to avoid regression. --- Osstest/Debian.pm | 36 +++++++++++++++++++++++++----------- ts-xen-install | 2 +- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index 640f195..8efc89e 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -47,9 +47,9 @@ BEGIN { #---------- manipulation of Debian bootloader setup ---------- -sub debian_boot_setup ($$$$;$) { +sub debian_boot_setup ($$$$$;$) { # $xenhopt==undef => is actually a guest, do not set up a hypervisor - my ($ho, $want_kernver, $xenhopt, $distpath, $hooks) = @_; + my ($ho, $want_kernver, $want_xsm, $xenhopt, $distpath, $hooks) = @_; target_kernkind_check($ho); target_kernkind_console_inittab($ho,$ho,"/"); @@ -74,11 +74,14 @@ sub debian_boot_setup ($$$$;$) { my $bootloader; if ( $ho->{Flags}{'need-uboot-bootscr'} ) { - $bootloader= setupboot_uboot($ho, $want_kernver, $xenhopt, $kopt); + $bootloader= setupboot_uboot($ho, $want_kernver, + $want_xsm, $xenhopt, $kopt); } elsif ($ho->{Suite} =~ m/lenny/) { - $bootloader= setupboot_grub1($ho, $want_kernver, $xenhopt, $kopt); + $bootloader= setupboot_grub1($ho, $want_kernver, + $want_xsm, $xenhopt, $kopt); } else { - $bootloader= setupboot_grub2($ho, $want_kernver, $xenhopt, $kopt); + $bootloader= setupboot_grub2($ho, $want_kernver, + $want_xsm, $xenhopt, $kopt); } $bootloader->{UpdateConfig}($ho); @@ -138,8 +141,9 @@ if test -z "\${fdt_addr}" && test -n "\${fdtfile}" ; then fi END } -sub setupboot_uboot ($$$) { - my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_; + +sub setupboot_uboot ($$$$) { + my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_; my $bl= { }; $bl->{UpdateConfig}= sub { @@ -270,13 +274,17 @@ END return $bl; } -sub setupboot_grub1 ($$$) { - my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_; +sub setupboot_grub1 ($$$$) { + my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_; my $bl= { }; my $rmenu= "/boot/grub/menu.lst"; my $lmenu= "$stash/$ho->{Name}--menu.lst.out"; + if ($want_xsm) { + die "Enabling XSM with GRUB is not supported"; + } + target_editfile_root($ho, $rmenu, sub { while (<::EI>) { if (m/^## ## Start Default/ .. @@ -355,8 +363,8 @@ sub setupboot_grub1 ($$$) { # Xen kernels" # Currently setupboot_grub2 relies on Grub menu not having submenu. # Check Debian bug #690538. -sub setupboot_grub2 ($$$) { - my ($ho,$want_kernver,$xenhopt,$xenkopt) = @_; +sub setupboot_grub2 ($$$$) { + my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_; my $bl= { }; my $rmenu= '/boot/grub/grub.cfg'; @@ -383,6 +391,9 @@ sub setupboot_grub2 ($$$) { $entry->{KernVer} ne $want_kernver) { logm("(skipping entry at $entry->{StartLine};". " kernel $entry->{KernVer}, not $want_kernver)"); + } elsif ($want_xsm && !defined $entry->{Xenpolicy}) { + logm("(skipping entry at $entry->{StartLine};". + " XSM policy file not present)"); } else { # yes! last; @@ -415,6 +426,9 @@ sub setupboot_grub2 ($$$) { if (m/^\s*module\s*\/(initrd\S+)/) { $entry->{Initrd}= $1; } + if (m/^\s*module\s*\/(xenpolicy\S+)/) { + $entry->{Xenpolicy}= $1; + } } die 'grub 2 bootloader entry not found' unless $entry; diff --git a/ts-xen-install b/ts-xen-install index 7cfe344..829c3e9 100755 --- a/ts-xen-install +++ b/ts-xen-install @@ -171,7 +171,7 @@ sub setupboot () { } my $want_kernver = get_runvar('kernel_ver',$r{'kernbuildjob'}); - debian_boot_setup($ho, $want_kernver, $xenhopt, \%distpath, \@hooks); + debian_boot_setup($ho, $want_kernver, 0, $xenhopt, \%distpath, \@hooks); logm("ready to boot Xen"); } -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |