History log of /seL4-camkes-master/tools/seL4/elfloader-tool/src/plat/zynq7000/platform_init.c
Revision Date Author Comments
# 31d847ce 01-Nov-2020 Oliver Scott <Oliver.Scott@data61.csiro.au>

Revert "QEMU/zynq7000 workaround: re-init UART clock"

This reverts commit ac88ba06499bfe78cf683807202bd0bf173a5902.

Signed-off-by: Oliver Scott <Oliver.Scott@data61.csiro.au>


# ac88ba06 14-Sep-2020 Michael Peter <michael.peter@hensoldt-cyber.com>

QEMU/zynq7000 workaround: re-init UART clock

Under some QEMU versions (e.g. 5.1), reinitializing the UART clock
control register is necessary as a QEMU regression does not set up
clock correctly, despite setting the correct reset values in the
respective registers. Rewriting the value outside the reset procedure
results in correct clock setups.

Signed-off-by: Michael Peter <michael.peter@hensoldt-cyber.com>
Signed-off-by: Axel Heider <axel.heider@hensoldt-cyber.com>


# fe54f420 12-Oct-2020 Axel Heider <axelheider@gmx.de>

trivial: improve readability

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.


# 6e8ec638 21-Oct-2019 Simon Shields <simon.shields@data61.csiro.au>

elfloader: pick serial driver at runtime

On ARM, each serial driver now has an ELFLOADER_DRIVER(...), which
contains information about the compatible strings the driver
matches, the driver type and an "init" function for the driver to do
setup.

hardware_gen is now used by the ELF loader to generate a list of
interesting devices at compile-time, which go in a header file
"devices_gen.h".

The ELFLOADER_DRIVERs are put into a special "_driver_list" section
by the linker, and accessed as an array via the special
__start__driver_list and __stop__driver_list linker symbols.

At boot, the ELF loader calls initialise_devices(), which does the
following:
for each device in devices_gen.h
for each driver in elfloader_drivers array
if (device compat matches driver compat)
call driver->init(device, driver)
end if
end for
end for

For serial drivers, the serial driver calls uart_set_out with
the elfloader_device that should be the output for the elfloader
from the driver->init function.

There is a 'common' plat_console_putchar implementation which uses
the dynamically picked uart output. This eliminates the need
for a lot of the platform-specific code we have.

This implementation could one day be replaced with a in-ELF loader
device tree. This could also (possibly) be used to handle dynamically
picking SMP core bringup mechanisms.

As all RISC-V platforms use SBI to provide a serial port, RISCV is
only modified to register the SBI putc implementation as the fputc
implementatin.


# c85fda55 07-Apr-2019 Anna Lyons <Anna.Lyons@data61.csiro.au>

trivial: style this repo


# 96e61aa6 13-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix whitespace

- remove trailing whitespace
- remove duplicate blank lines
- remove blank lines at end of file


# 935ee687 04-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# d33e71c1 20-Dec-2016 amrzar <azarrabi@nicta.com.au>

elfloader: refactor files to imitate kernel design
- move files to src/include folders
- update files as required, e.g. renaming files and folders to prevent conflicts