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 delta 8049 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 delta 7656 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