From 0ccb07f008578ed64b08ea44bbbae4b9b3d47893 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Fri, 22 Jul 2016 11:35:41 +0200 Subject: [PATCH] sel4: add "norelocate" option to bender Issue #2044 --- tool/boot/README | 3 ++- tool/boot/bender | Bin 11554 -> 11911 bytes tool/run/boot_dir/sel4 | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tool/boot/README b/tool/boot/README index 9c2a3e5d3..742da1a1d 100644 --- a/tool/boot/README +++ b/tool/boot/README @@ -7,7 +7,8 @@ code respectively the download source of binaries are described below. The 'bender' tool is part of the 'morbo' toolchain available under GPL. The toolchain was obtained from https://github.com/TUD-OS/morbo. For Genode the bender was modified so that binaries are only relocated up - to 2G physical. + to 2G physical. Relocation can be disabled by the commandline option + "norelocate". The changes are available on the genode_bender branch of https://github.com/alex-ab/morbo.git. diff --git a/tool/boot/bender b/tool/boot/bender index 0c3569f4c4fab95ca482a0684076ef4449c22440..e45d6fc4cba5d309566b21d0cf7c021fe31d81e6 100755 GIT binary patch literal 11911 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