From c63a6d94f61f960f595b33e75b630855d6ad972a Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Tue, 20 Nov 2012 10:07:45 +0100 Subject: [PATCH] NOVA: add chain_loader 'bender' 'Bender' can detect serial ports accessible via PCI and writes the I/O ports to the Bios Data area (BDA). Usage together with the PXE bootloader ease life running Genode/NOVA on native hardware, where a standard serial device isn't available anymore anywhere. --- base-nova/run/env | 6 ++++-- tool/boot/bender | Bin 0 -> 11621 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100755 tool/boot/bender diff --git a/base-nova/run/env b/base-nova/run/env index 091933b80..ac38eda14 100644 --- a/base-nova/run/env +++ b/base-nova/run/env @@ -11,10 +11,11 @@ # proc install_pxe_bootloader_to_run_dir { } { exec cp [genode_dir]/tool/boot/pulsar [run_dir]/boot/pulsar + exec cp [genode_dir]/tool/boot/bender [run_dir]/boot/bender } ## -# Read the location of the Pistachio user directory from 'etc/pistachio.conf' +# Read the location of the NOVA kernel directory from 'etc/nova.conf' # proc nova_kernel { } { global _nova_kernel @@ -85,7 +86,8 @@ proc build_boot_image {binaries} { # Generate pulsar config file # set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"] - puts $fh " exec /hypervisor serial spinner" + puts $fh " exec /boot/bender" + puts $fh " load /hypervisor serial" puts $fh " load /genode/core" puts $fh " load /genode/config" foreach binary $binaries { diff --git a/tool/boot/bender b/tool/boot/bender new file mode 100755 index 0000000000000000000000000000000000000000..f8402ea4bdf6feaaad42e73ad7c907895c29298c GIT binary patch literal 11621 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