diff --git a/tool/boot/README b/tool/boot/README index cca237b7d1..5c778dd6a9 100644 --- a/tool/boot/README +++ b/tool/boot/README @@ -2,19 +2,26 @@ This directory contains boot-loader files needed to boot Genode and to create boot images. The tools are available in binary form. Pointers to the source code respectively the download source of binaries are described below. -:'bender', 'microcode' +:'bender' - The tools are part of the 'morbo' toolchain available under GPL. + The tool is part of the 'morbo' toolchain available under GPL. The toolchain was obtained from https://github.com/TUD-OS/morbo. + For Genode bender was modified so that binaries are only relocated up - to 2G physical. Additional, relocation can be limited to 256M for sel4. - The microcode tools expect to find a module named micro.code which contains + to 2G physical. Additionally, relocation can be limited to 256M for sel4. + + Optionally, the tool may load Intel microcode if configured via commandline. + The tool expects to find an module named micro.code which contains a valid Intel microcode file for the target CPU. + Additionally, the tool may adjust the Intel HWP default settings if + configured via commandline. + The changes are available from https://github.com/alex-ab/morbo.git. - git commit 003016e096fa132e2086b4db52d1fd965dbd7363 + git branch intel_hwp + git commit 84be1183b066e9ba78c874713db4e68a5c3393fa :'pulsar': diff --git a/tool/boot/bender b/tool/boot/bender index 52617f61e5..2acaeecbd9 100755 Binary files a/tool/boot/bender and b/tool/boot/bender differ diff --git a/tool/boot/microcode b/tool/boot/microcode deleted file mode 100644 index 86668ae8ce..0000000000 Binary files a/tool/boot/microcode and /dev/null differ diff --git a/tool/run/boot_dir/nova b/tool/run/boot_dir/nova index 2247de3698..a7de335df0 100644 --- a/tool/run/boot_dir/nova +++ b/tool/run/boot_dir/nova @@ -59,19 +59,22 @@ proc run_boot_dir {binaries} { exec mv [run_dir]/image.elf [run_dir]/boot/image.elf + # + # Setup bender and plugins + # + set options_bender "" + + if {[apply_microcode]} { + exec cp bin/micro.code [run_dir]/boot/ + append options_bender " microcode" + } + if {[have_include "image/iso"] || [have_include "image/disk"] || [have_include image/uefi]} { # # Compress Genode image, to be uncompressed by GRUB # exec gzip [run_dir]/boot/image.elf - set serial_bender_opt "" - - if {[apply_microcode]} { - exec cp bin/micro.code [run_dir]/boot/ - exec cp [genode_dir]/tool/boot/microcode [run_dir]/boot/ - } - if {[have_include "image/disk"]} { exec mkdir -p [run_dir]/boot/grub exec cp [genode_dir]/tool/boot/bender [run_dir]/boot/bender @@ -101,7 +104,7 @@ proc run_boot_dir {binaries} { # exec cp /boot/grub/unicode.pf2 [run_dir]/boot/grub/unicode.pf2 } - set serial_bender_opt "serial_fallback" + append options_bender " serial_fallback" } # @@ -132,9 +135,8 @@ proc run_boot_dir {binaries} { puts $fh "menuentry 'Genode on NOVA' {" puts $fh " insmod multiboot2" puts $fh " insmod gzio" - puts $fh " multiboot2 /boot/bender $serial_bender_opt" + puts $fh " multiboot2 /boot/bender $options_bender" if {[apply_microcode]} { - puts $fh " module2 /boot/microcode serial" puts $fh " module2 /boot/micro.code micro.code" } puts $fh " module2 /boot/hypervisor hypervisor iommu novpid [kernel_output]" @@ -154,18 +156,12 @@ proc run_boot_dir {binaries} { # install_pxe_bootloader_to_run_dir - if {[apply_microcode]} { - exec cp [genode_dir]/tool/boot/microcode [run_dir]/boot/ - exec cp bin/micro.code [run_dir]/boot/ - } - # # Generate pulsar config file # set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"] - puts $fh " exec /boot/bender" + puts $fh " exec /boot/bender $options_bender" if {[apply_microcode]} { - puts $fh " load /boot/microcode serial" puts $fh " load /boot/micro.code micro.code" } puts $fh " load /boot/hypervisor iommu novpid [kernel_output]"