[LinuxBIOS] buildrom support for booting Xen from LAB
Jordan Crouse
jordan.crouse at amd.com
Fri Nov 9 21:23:25 CET 2007
On 08/11/07 17:03 -0500, Ward Vandewege wrote:
> This code is not very elegant, so if there are suggestions to improve it,
> please shoot!
>
> Thanks,
> Ward.
>
> --
> Ward Vandewege <ward at fsf.org>
> Free Software Foundation - Senior System Administrator
> Make lab.conf parsing a bit smarter, allowing for 2 modules to be passed to
> kexec. This allows Xen booting, for instance with this lab.conf file:
>
> CMDLINE="com1=115200,8n1 cdb=com1"
> INITRD=""
> KERNEL="/xen-3.1.0.gz"
> MODULE1="/vmlinuz-2.6.18-xen root=/dev/md1 ro console=tty0 console=ttyS0,115200"
> MODULE2="/initrd.img-2.6.18-xen"
> VT="1"
>
> Of course a simple lab.conf file with kernel and initrd still works:
>
> CMDLINE="root=/dev/md1 ro console=tty0 console=ttyS0,115200"
> KERNEL="/vmlinuz-2.6.22-14-generic"
> INITRD="/initrd.img-2.6.22-14-generic"
> VT="1"
>
> Signed-off-by: Ward Vandewege <ward at gnu.org>
Acked-by: Jordan Crouse <jordan.crouse at amd.com>
> Index: skeleton/bin/boot.functions
> ===================================================================
> --- skeleton/bin/boot.functions (revision 54)
> +++ skeleton/bin/boot.functions (working copy)
> @@ -26,13 +26,25 @@
> . $DIR/lab.conf
> fi
>
> - if [ "$INITRD" = "" ]; then
> - $DIR/kexec -l $DIR/$KERNEL --command-line="$CMDLINE"
> - else
> - $DIR/kexec -l $DIR/$KERNEL --initrd=$DIR/$INITRD --command-line="$CMDLINE"
> - fi
> + if [ "$INITRD" = "" ] && [ "$MODULE1" = "" ]; then
> + $DIR/kexec -l $DIR/$KERNEL --command-line="$CMDLINE"
> + elif [ "$INITRD" != "" ] && [ "$MODULE1" = "" ]; then
> + $DIR/kexec -l $DIR/$KERNEL --initrd=$DIR/$INITRD --command-line="$CMDLINE"
> + elif [ "$INITRD" = "" ] && [ "$MODULE1" != "" ]; then
> + if [ "$MODULE2" != "" ]; then
> + $DIR/kexec -l $DIR/$KERNEL --module="$DIR/$MODULE1" --module="$DIR/$MODULE2" --command-line="$CMDLINE"
> + else
> + $DIR/kexec -l $DIR/$KERNEL --module="$DIR/$MODULE1" --command-line="$CMDLINE"
> + fi
> + elif [ "$INITRD" != "" ] && [ "$MODULE1" != "" ]; then
> + if [ "$MODULE2" != "" ]; then
> + $DIR/kexec -l $DIR/$KERNEL --initrd=$DIR/$INITRD --module="$DIR/$MODULE1" --module="$DIR/$MODULE2" --command-line="$CMDLINE"
> + else
> + $DIR/kexec -l $DIR/$KERNEL --initrd=$DIR/$INITRD --module="$DIR/$MODULE1" --command-line="$CMDLINE"
> + fi
> + fi
>
> $DIR/kexec -e
>
> - message "ERROR: can't run kexec $DIR/$KERNEL $CMDLINE $INITRD"
> + message "ERROR: can't run kexec $DIR/$KERNEL $CMDLINE $INITRD $MODULE1 $MODULE2"
> }
> --
> linuxbios mailing list
> linuxbios at linuxbios.org
> http://www.linuxbios.org/mailman/listinfo/linuxbios
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the coreboot
mailing list