#
e4f2b8a3 |
|
02-May-2020 |
Axel Heider <axelheider@gmx.de> |
Make building BBL image dependent on UseRiscVBBL Signed-off-by: Axel Heider <axelheider@gmx.de>
|
#
9f904ed2 |
|
06-Mar-2020 |
Gerwin Klein <gerwin.klein@data61.csiro.au> |
convert license headers to SPDX Includes license review of 3rd-party files, adding missing upstream headers, and moving the UNSW OZPLB license into its own file rather than replicating it in the header.
|
#
d823f871 |
|
10-Feb-2020 |
Matthew <matt.phillips121@gmail.com> |
Move the clang & riscv check to toolchain file To exit as early as possible, error at the toolchain file. Not here
|
#
c41df542 |
|
09-Feb-2020 |
Matthew <matt.phillips121@gmail.com> |
Add fatal error message if using clang and risc Clang is not yet supported for risc so fail if trying to build with clang.
|
#
bf366a02 |
|
11-Dec-2019 |
Matthew <matt.phillips121@gmail.com> |
trivial: Cmake style fixes
|
#
3441957c |
|
11-Dec-2019 |
Matthew <matt.phillips121@gmail.com> |
Pass linker flags using the Wl flag (clang & gcc) Passing linker flags such as -T and -u to the linker does not work directly if using clang. The -Wl flag is needed
|
#
1240ff9a |
|
20-Nov-2019 |
Damon Lee <Damon.Lee@data61.csiro.au> |
trivial: Style changed files
|
#
665b186e |
|
20-Nov-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
CMake: add CMakeForegroundComplexCommands option When this option is set, custom_commands that have been passed USES_TERMINAL_DEBUG will get USES_TERMINAL set which puts them in the console pool in Ninja. This results in direct access to stdio which allows for direct logging of build output or the possibility of user input.
|
#
13f0ced4 |
|
31-Jul-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
rootserver.cmake:Use relative path for UIMAGE_TOOL This doesn't assume the project file structure.
|
#
f6653609 |
|
02-May-2019 |
G. Branden Robinson <Branden.Robinson@data61.csiro.au> |
elfloader: dynamically compute image start address SELFOUR-1979. Stop hard-coding an address at which the ELF-loader will be loaded into physical memory. Instead, dynamically compute where it should go based on the size and locations of the payloads (kernel plus rootserver) it will extract, and place the image just above their end. Futhermore, for U-Boot images, pass the computed load address through to the `mkimage` command instead of using a hard-coded one (for this format the load address and entry address are identical). To faciliate all of the above, add three new helper tools. * elfloader-tool/CMakeLists.txt: + Interpose a new target, `image_start_addr.h`, between `archive.o` (ELF-loader) and `linker.lds_pp` (preprocessed linker script for the ELF-loader). `platform_info.h` #defines one symbol, `IMAGE_START_ADDR`, the first location the ELF-loader will occupy. + Tell the compiler to look for this generated header file in the appropriate build directory. * elfloader-tool/src/arch-arm/linker.lds: #include this new header file, and in the .start section, set the current location to the computed value via the preprocessor symbol `IMAGE_START_ADDR`. * cmake-tool/helpers/rootserver.cmake: Rename CMake variable `PlatformEntryAddr` to `ImageStartAddr`. An entry address is generally the address of an instruction, a valid target for a jump. The start of our image is an ELF prologue. * cmake-tool/helpers/elf_sift.py: New tool aids ELF image relocation. Extract information of interest to the seL4 image build process from ELF files. We extract the sizes of loadable ELF segments from the ELF files given as operands and print their sum. If the "--align" flag is specified, the space "after" each ELF file is aligned to the next 4KiB boundary, increasing the total. `shoehorn`, described below, loads `elf_sift` as a module and uses some of its methods. * cmake-tool/helpers/shoehorn.py: New tool locates ELF-loader in memory. This tool writes to standard output a physical memory address in hexadecimal that fits the loadable segements of the `elf_file` argument into the first sufficiently-large region described in `platform_file`. For now the tool is simple but does some sanity checking on the contents of the ELF object and YAML platform description it is given. Supports `--load-rootservers-high` option. It defaults off, but if specified, the search for an ELF-loader image load address stops once the the kernel and DTB are accommodated. If we're asked to load rootservers high but the only memory region into which the ELF-loader will fit is the same one in which the rootservers are loaded (i.e., the last or only region), notify the user that overlap may not be detected. The ELF-loader itself should still detect the problem and halt. We could add logic to detect the overlap here, but this seems like a pathological case. * cmake-tool/helpers/make-uimage: New tool uses objcopy, readelf (both from GNU binutils), and mkimage (from the U-Boot tools) to extract the entry point (start symbol) of an ELF executable and wrap the object in a chain-loadable payload for use by the U-Boot boot loader. * cmake-tool/helpers/rootserver.cmake: Simplify body of uimage-based conditional by calling out to `make-uimage` tool.
|
#
3b543953 |
|
22-Jul-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
CMake: Refactor riscv and arm roottask rules Both architectures use the elfloader and support binary and elffile outputs.
|
#
40d42cb5 |
|
30-Apr-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
CMake: Refactor helpers to be included on demand As more helper files get added it becomes more expensive to include them all in common.cmake. We instead add them to the CMAKE_MODULE_PATH and allow them to be imported as CMake modules. Adding global include guards allows them to be imported multiple times without processing every time.
|
#
15149079 |
|
02-Apr-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
cmake-tool: generate Linux uimages for DTB passing When generating a uImage, we now pretend to be a Linux boot image. This means that u-boot will pass the DTB in r2 on aarch32, and in x0 on aarch64. While we're preferring EFI on ARM/aarch32, this lets us support booting on boards with ancient U-Boots that don't support EFI.
|
#
130b009f |
|
15-Apr-2019 |
Simon Shields <simon.shields@data61.csiro.au> |
cmake-tool: use CMAKE_OBJCOPY for target objcopy This is a bit more concise than ${CROSS_COMPILER_PREFIX}objcopy.
|
#
c85fda55 |
|
07-Apr-2019 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
trivial: style this repo
|
#
fd410243 |
|
11-Mar-2019 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
cmake: Move rootserver helpers into own file
|