mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 23:42:32 +00:00
tool: bender with optional 'serial' UART discovery
By default, bender will not report any serial findings anymore, if not explicitly asked for with the 'serial' option. Without this option, an invalid ioport is reported, so that neither the kernel nor Genode core will make serial output.
This commit is contained in:
parent
62af32270b
commit
76828f25c5
@ -18,10 +18,10 @@ code respectively the download source of binaries are described below.
|
|||||||
configured via commandline.
|
configured via commandline.
|
||||||
|
|
||||||
The changes are available from
|
The changes are available from
|
||||||
https://github.com/m-stein/morbo.git.
|
https://github.com/alex-ab/morbo.git.
|
||||||
|
|
||||||
git branch genode_bender
|
git branch genode_bender
|
||||||
git commit 3645d67dc0643b8aab008eb76a8e056636e5edee
|
git commit 77a69185981de373905ae7e9c4ae24cd5cb1ac99
|
||||||
|
|
||||||
:'pulsar':
|
:'pulsar':
|
||||||
|
|
||||||
|
BIN
tool/boot/bender
BIN
tool/boot/bender
Binary file not shown.
@ -8,6 +8,8 @@ proc fiasco_serial_esc_arg { } { return "-serial_esc " }
|
|||||||
proc run_boot_string { } { return "\nL4 Bootstrapper" }
|
proc run_boot_string { } { return "\nL4 Bootstrapper" }
|
||||||
proc core_link_address { } { return "0x01000000" }
|
proc core_link_address { } { return "0x01000000" }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Populate boot directory with binaries on fiasco
|
# Populate boot directory with binaries on fiasco
|
||||||
@ -66,7 +68,7 @@ proc run_boot_dir {binaries} {
|
|||||||
#
|
#
|
||||||
puts $fh "menuentry 'Genode on L4/Fiasco' {"
|
puts $fh "menuentry 'Genode on L4/Fiasco' {"
|
||||||
puts $fh " insmod multiboot"
|
puts $fh " insmod multiboot"
|
||||||
puts $fh " multiboot /boot/bender"
|
puts $fh " multiboot /boot/bender [boot_output]"
|
||||||
puts $fh " module /boot/bootstrap -serial"
|
puts $fh " module /boot/bootstrap -serial"
|
||||||
puts $fh " module /boot/kernel -serial -jdb_cmd=JH [fiasco_serial_esc_arg]"
|
puts $fh " module /boot/kernel -serial -jdb_cmd=JH [fiasco_serial_esc_arg]"
|
||||||
puts $fh " module /boot/sigma0"
|
puts $fh " module /boot/sigma0"
|
||||||
@ -87,7 +89,7 @@ proc run_boot_dir {binaries} {
|
|||||||
# Generate pulsar config file
|
# Generate pulsar config file
|
||||||
#
|
#
|
||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
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 [boot_output]"
|
||||||
puts $fh " load /boot/bootstrap -serial"
|
puts $fh " load /boot/bootstrap -serial"
|
||||||
puts $fh " load /boot/kernel -serial -serial_esc -jdb_cmd=JH"
|
puts $fh " load /boot/kernel -serial -serial_esc -jdb_cmd=JH"
|
||||||
puts $fh " load /boot/sigma0"
|
puts $fh " load /boot/sigma0"
|
||||||
|
@ -24,6 +24,8 @@ proc core_link_address { } {
|
|||||||
|
|
||||||
proc fiasco_serial_esc_arg { } { return "-serial_esc " }
|
proc fiasco_serial_esc_arg { } { return "-serial_esc " }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Reset the target system via the Fiasco.OC kernel debugger
|
# Reset the target system via the Fiasco.OC kernel debugger
|
||||||
@ -110,7 +112,7 @@ proc run_boot_dir_x86 {binaries} {
|
|||||||
#
|
#
|
||||||
puts $fh "menuentry 'Genode on Fiasco.OC' {"
|
puts $fh "menuentry 'Genode on Fiasco.OC' {"
|
||||||
puts $fh " insmod multiboot"
|
puts $fh " insmod multiboot"
|
||||||
puts $fh " multiboot /boot/bender"
|
puts $fh " multiboot /boot/bender [boot_output]"
|
||||||
puts $fh " module /boot/bootstrap"
|
puts $fh " module /boot/bootstrap"
|
||||||
puts $fh " module /boot/kernel fiasco [fiasco_serial_esc_arg]"
|
puts $fh " module /boot/kernel fiasco [fiasco_serial_esc_arg]"
|
||||||
puts $fh " module /boot/sigma0"
|
puts $fh " module /boot/sigma0"
|
||||||
@ -134,7 +136,7 @@ proc run_boot_dir_x86 {binaries} {
|
|||||||
# Generate pulsar config file
|
# Generate pulsar config file
|
||||||
#
|
#
|
||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
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 [boot_output]"
|
||||||
puts $fh " load /boot/bootstrap"
|
puts $fh " load /boot/bootstrap"
|
||||||
puts $fh " load /boot/kernel -serial_esc"
|
puts $fh " load /boot/kernel -serial_esc"
|
||||||
puts $fh " load /boot/sigma0"
|
puts $fh " load /boot/sigma0"
|
||||||
|
@ -5,6 +5,8 @@ proc binary_name_timer { } { return "hw_timer_drv" }
|
|||||||
|
|
||||||
proc run_boot_string { } { return "\nkernel initialized" }
|
proc run_boot_string { } { return "\nkernel initialized" }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
|
|
||||||
proc bootstrap_link_address { } {
|
proc bootstrap_link_address { } {
|
||||||
|
|
||||||
@ -99,14 +101,14 @@ proc run_boot_dir {binaries} {
|
|||||||
exec mkdir -p [run_dir]/boot
|
exec mkdir -p [run_dir]/boot
|
||||||
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
||||||
|
|
||||||
|
set options_bender "[boot_output] "
|
||||||
|
|
||||||
if {[have_include "image/iso"] || [have_include "image/disk"] || [have_include image/uefi]} {
|
if {[have_include "image/iso"] || [have_include "image/disk"] || [have_include image/uefi]} {
|
||||||
#
|
#
|
||||||
# Compress Genode image, to be uncompressed by GRUB
|
# Compress Genode image, to be uncompressed by GRUB
|
||||||
#
|
#
|
||||||
exec gzip [run_dir]/boot/image.elf
|
exec gzip [run_dir]/boot/image.elf
|
||||||
|
|
||||||
set serial_bender_opt ""
|
|
||||||
|
|
||||||
if {[have_include "image/disk"]} {
|
if {[have_include "image/disk"]} {
|
||||||
install_disk_bootloader_to_run_dir
|
install_disk_bootloader_to_run_dir
|
||||||
}
|
}
|
||||||
@ -117,7 +119,7 @@ proc run_boot_dir {binaries} {
|
|||||||
|
|
||||||
if {[have_include image/uefi]} {
|
if {[have_include image/uefi]} {
|
||||||
install_uefi_bootloader_to_run_dir
|
install_uefi_bootloader_to_run_dir
|
||||||
set serial_bender_opt "serial_fallback"
|
append options_bender " serial_fallback"
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -127,7 +129,7 @@ proc run_boot_dir {binaries} {
|
|||||||
|
|
||||||
puts $fh "menuentry 'Genode on base-hw' {"
|
puts $fh "menuentry 'Genode on base-hw' {"
|
||||||
puts $fh " insmod multiboot2"
|
puts $fh " insmod multiboot2"
|
||||||
puts $fh " multiboot2 /boot/bender $serial_bender_opt"
|
puts $fh " multiboot2 /boot/bender $options_bender"
|
||||||
puts $fh " module2 /boot/image.elf.gz image.elf"
|
puts $fh " module2 /boot/image.elf.gz image.elf"
|
||||||
puts $fh "}"
|
puts $fh "}"
|
||||||
close $fh
|
close $fh
|
||||||
@ -162,7 +164,7 @@ proc run_boot_dir {binaries} {
|
|||||||
# Generate pulsar config file
|
# Generate pulsar config file
|
||||||
#
|
#
|
||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
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"
|
||||||
puts $fh " load /boot/image.elf"
|
puts $fh " load /boot/image.elf"
|
||||||
close $fh
|
close $fh
|
||||||
|
|
||||||
@ -177,7 +179,7 @@ proc run_boot_dir {binaries} {
|
|||||||
puts $fh "#!ipxe"
|
puts $fh "#!ipxe"
|
||||||
|
|
||||||
install_pxe_bootloader_to_run_dir
|
install_pxe_bootloader_to_run_dir
|
||||||
puts $fh "kernel boot/bender"
|
puts $fh "kernel boot/bender $options_bender"
|
||||||
puts $fh "module boot/image.elf"
|
puts $fh "module boot/image.elf"
|
||||||
puts $fh "boot"
|
puts $fh "boot"
|
||||||
close $fh
|
close $fh
|
||||||
|
@ -33,6 +33,8 @@ proc binary_name_timer { } { return "nova_timer_drv" }
|
|||||||
proc kernel_files { } { return hypervisor }
|
proc kernel_files { } { return hypervisor }
|
||||||
proc kernel_output { } { return "novga serial" }
|
proc kernel_output { } { return "novga serial" }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
proc run_boot_string { } {
|
proc run_boot_string { } {
|
||||||
return "\nHypervisor NOVA "
|
return "\nHypervisor NOVA "
|
||||||
}
|
}
|
||||||
@ -88,14 +90,9 @@ proc run_boot_dir {binaries} {
|
|||||||
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup bender and plugins
|
# Setup bender options, e.g. serial and applying Intel HWP mode
|
||||||
#
|
#
|
||||||
set options_bender ""
|
set options_bender "[boot_output] [bender_intel_hwp_mode_option]"
|
||||||
|
|
||||||
#
|
|
||||||
# Apply Intel HWP mode
|
|
||||||
#
|
|
||||||
append options_bender " [bender_intel_hwp_mode_option]"
|
|
||||||
|
|
||||||
if {[apply_microcode]} {
|
if {[apply_microcode]} {
|
||||||
exec cp bin/micro.code [run_dir]/boot/
|
exec cp bin/micro.code [run_dir]/boot/
|
||||||
|
@ -4,6 +4,7 @@ proc binary_name_timer { } { return "pit_timer_drv" }
|
|||||||
|
|
||||||
proc kernel_files { } { return okl4 }
|
proc kernel_files { } { return okl4 }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
##
|
##
|
||||||
# Get the base-okl4 repository
|
# Get the base-okl4 repository
|
||||||
@ -178,7 +179,7 @@ proc run_boot_dir {binaries} {
|
|||||||
#
|
#
|
||||||
puts $fh "menuentry 'Genode on OKL4' {"
|
puts $fh "menuentry 'Genode on OKL4' {"
|
||||||
puts $fh " insmod multiboot"
|
puts $fh " insmod multiboot"
|
||||||
puts $fh " multiboot /boot/bender"
|
puts $fh " multiboot /boot/bender [boot_output]"
|
||||||
puts $fh " module /boot/image.elf"
|
puts $fh " module /boot/image.elf"
|
||||||
puts $fh "}"
|
puts $fh "}"
|
||||||
close $fh
|
close $fh
|
||||||
@ -201,7 +202,7 @@ proc run_boot_dir {binaries} {
|
|||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
||||||
# load okl4 at 256M to avoid overwritting binary, adjust by need
|
# load okl4 at 256M to avoid overwritting binary, adjust by need
|
||||||
puts $fh " addr 0x10000000"
|
puts $fh " addr 0x10000000"
|
||||||
puts $fh " exec /boot/bender"
|
puts $fh " exec /boot/bender [boot_output]"
|
||||||
puts $fh " load /boot/image.elf"
|
puts $fh " load /boot/image.elf"
|
||||||
close $fh
|
close $fh
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ proc kernel_files { } { return { pistachio sigma0-pistachio kickstart-pistachio
|
|||||||
proc run_boot_string { } { return "\n\r\033\\\[1m\033\\\[33mL4Ka::Pistachio -" }
|
proc run_boot_string { } { return "\n\r\033\\\[1m\033\\\[33mL4Ka::Pistachio -" }
|
||||||
proc core_link_address { } { return "0x02000000" }
|
proc core_link_address { } { return "0x02000000" }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
##
|
##
|
||||||
# Populdate boot directory with binaries on pistachio
|
# Populdate boot directory with binaries on pistachio
|
||||||
@ -65,7 +66,7 @@ proc run_boot_dir {binaries} {
|
|||||||
#
|
#
|
||||||
puts $fh "menuentry 'Genode on L4ka::Pistachio' {"
|
puts $fh "menuentry 'Genode on L4ka::Pistachio' {"
|
||||||
puts $fh " insmod multiboot"
|
puts $fh " insmod multiboot"
|
||||||
puts $fh " multiboot /boot/bender"
|
puts $fh " multiboot /boot/bender [boot_output]"
|
||||||
puts $fh " module /boot/kickstart"
|
puts $fh " module /boot/kickstart"
|
||||||
puts $fh " module /boot/kernel"
|
puts $fh " module /boot/kernel"
|
||||||
puts $fh " module /boot/sigma0"
|
puts $fh " module /boot/sigma0"
|
||||||
@ -89,7 +90,7 @@ proc run_boot_dir {binaries} {
|
|||||||
# Generate pulsar config file
|
# Generate pulsar config file
|
||||||
#
|
#
|
||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
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 [boot_output]"
|
||||||
puts $fh " load /boot/kickstart"
|
puts $fh " load /boot/kickstart"
|
||||||
puts $fh " load /boot/kernel"
|
puts $fh " load /boot/kernel"
|
||||||
puts $fh " load /boot/sigma0"
|
puts $fh " load /boot/sigma0"
|
||||||
|
@ -10,6 +10,7 @@ proc binary_name_timer { } {
|
|||||||
|
|
||||||
proc kernel_files { } { return sel4 }
|
proc kernel_files { } { return sel4 }
|
||||||
|
|
||||||
|
proc boot_output { } { return "serial" }
|
||||||
|
|
||||||
proc run_boot_string { } { return "\n\rBooting all finished, dropped to user space" }
|
proc run_boot_string { } { return "\n\rBooting all finished, dropped to user space" }
|
||||||
proc core_link_address { } { return "0x02000000" }
|
proc core_link_address { } { return "0x02000000" }
|
||||||
@ -54,8 +55,9 @@ proc run_boot_dir {binaries} {
|
|||||||
|
|
||||||
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
exec mv [run_dir]/image.elf [run_dir]/boot/image.elf
|
||||||
|
|
||||||
|
set options_bender "[boot_output] phys_max=256M"
|
||||||
|
|
||||||
if {[have_include "image/iso"] || [have_include "image/disk"] || [have_include image/uefi]} {
|
if {[have_include "image/iso"] || [have_include "image/disk"] || [have_include image/uefi]} {
|
||||||
set serial_bender_opt ""
|
|
||||||
|
|
||||||
if {[have_include "image/disk"]} {
|
if {[have_include "image/disk"]} {
|
||||||
install_disk_bootloader_to_run_dir
|
install_disk_bootloader_to_run_dir
|
||||||
@ -67,7 +69,7 @@ proc run_boot_dir {binaries} {
|
|||||||
|
|
||||||
if {[have_include image/uefi]} {
|
if {[have_include image/uefi]} {
|
||||||
install_uefi_bootloader_to_run_dir
|
install_uefi_bootloader_to_run_dir
|
||||||
set serial_bender_opt "serial_fallback"
|
set options_bender " serial_fallback"
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -77,7 +79,7 @@ proc run_boot_dir {binaries} {
|
|||||||
|
|
||||||
puts $fh "menuentry 'Genode on seL4' {"
|
puts $fh "menuentry 'Genode on seL4' {"
|
||||||
puts $fh " insmod multiboot2"
|
puts $fh " insmod multiboot2"
|
||||||
puts $fh " multiboot2 /boot/bender phys_max=256M $serial_bender_opt"
|
puts $fh " multiboot2 /boot/bender $options_bender"
|
||||||
puts $fh " module2 /boot/sel4 sel4 disable_iommu"
|
puts $fh " module2 /boot/sel4 sel4 disable_iommu"
|
||||||
puts $fh " module2 /boot/image.elf image.elf"
|
puts $fh " module2 /boot/image.elf image.elf"
|
||||||
puts $fh "}"
|
puts $fh "}"
|
||||||
@ -130,7 +132,7 @@ proc run_boot_dir {binaries} {
|
|||||||
# Generate pulsar config file
|
# Generate pulsar config file
|
||||||
#
|
#
|
||||||
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
|
||||||
puts $fh " exec /boot/bender phys_max=256M"
|
puts $fh " exec /boot/bender $options_bender"
|
||||||
puts $fh " load /boot/sel4 disable_iommu"
|
puts $fh " load /boot/sel4 disable_iommu"
|
||||||
puts $fh " load /boot/image.elf"
|
puts $fh " load /boot/image.elf"
|
||||||
close $fh
|
close $fh
|
||||||
|
Loading…
Reference in New Issue
Block a user