History log of /seL4-camkes-master/tools/riscv-pk/bbl/bbl.c
Revision Date Author Comments
# e2e2e9db 25-Jan-2019 Andrew Waterman <andrew@sifive.com>

Protect BBL data, not just text

h/t @michaeljclark


# cb28d01e 19-Dec-2018 Andrew Waterman <andrew@sifive.com>

Protect M-mode memory from S-mode


# 72672f9a 14-May-2018 Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk>

bbl: boot payload in machine mode when --enable-boot-machine is passed


# 16476bd8 09-Jul-2018 Andrew Waterman <andrew@sifive.com>

Properly license all nontrivial files


# 474ee5a8 20-May-2018 Michael Clark <michaeljclark@mac.com>

RISC-V: Support separate firmware and kernel payload

Support for separate firmware and kernel payload is added
by updating BBL to read optional preloaded kernel address
attributes from device-tree using a similar mechanism to
that used to pass init ramdisk addresses to linux kernel.

chosen {
riscv,kernel-start = <0x00000000 0x80200000>;
riscv,kernel-end = <0x00000000 0x80590634>;
};

These attributes are added by QEMU and read by BBL when combining
-bios <firmware-image> and -kernel <kernel-image> options. e.g.

$ qemu-system-riscv64 -machine virt -bios bbl -kernel vmlinux

With this change, bbl can be compiled without --with-payload
and the dummy payload alignment is altered to make the memory
footprint of the firmware-only bbl smaller. The dummy payload
message is updated to indicate the alternative load method.

This load method could also be supported by a first stage boot
loader that reads seperate firmware and kernel from SPI flash.
The main advantage of this new mechanism is that it eases kernel
development by avoiding the riscv-pk packaging step after kernel
builds, makes building per repository artefacts for CI simpler,
and mimics bootloaders on other platforms that can load a kernel
image file directly. Ultimately BBL should use an SPI driver to
load the kernel image however this mechanism supports use cases
such such as QEMU's -bios, -kernel and -initrd options following
examples from other platforms that pass kernel entry to firmware
via device-tree.

Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: Alistair Francis <Alistair.Francis@wdc.com>
Signed-off-by: Michael Clark <mjc@sifive.com>


# d1849cb5 03-Nov-2017 Palmer Dabbelt <palmer@dabbelt.com>

Remove the platform interface

We now automatically detect everything that the platform interface used
to be used for, so it's now obsolete!


# 92047850 02-Nov-2017 Palmer Dabbelt <palmer@dabbelt.com>

Detect harts that can't boot Linux instead of hard-coding them

This checks to see if a hart can't boot Linux by looking for a
compatible "mmu-type" field. If the hart can't boot Linux, then bbl
masks it off.


# 147cfa61 09-Aug-2017 Palmer Dabbelt <palmer@dabbelt.com>

The DTB argument to boot_other_hart shouldn't be used in BBL

I screwed up refactoring bbl.


# ca24f3c9 03-Aug-2017 Palmer Dabbelt <palmer@dabbelt.com>

Add the '--enable-print-device-tree' argument

I'm trying to debug some device tree problems while booting Linux and
figured it would be really nice to have access to the device tree while
trying to debug these problems. I think this might be useful for lots
of people, so I went ahead and cleaned up the code enough that it should
actaully work in most cases.


# 298984cb 02-Aug-2017 Palmer Dabbelt <palmer@dabbelt.com>

Move DISABLED_HART_MASK to the platform

Some platforms can't boot Linux on all the harts. This commit allows
platforms to define the set of harts that should be prevented from
booting past BBL. This is essentially just a new mechanism for defining
the DISABLED_HART_MASK.


# dce2b7dd 05-Apr-2017 Andrew Waterman <andrew@sifive.com>

Rename HART_MASK to DISABLED_HART_MASK to clarify polarity


# 8b4421ba 05-Apr-2017 Wesley W. Terpstra <wesley@sifive.com>

bbl: prevent named cores from booting


# 91636ac4 05-Apr-2017 Wesley W. Terpstra <wesley@sifive.com>

fdt: redact clint, plic, and debug hardware


# 96e5ed75 23-Mar-2017 Wesley W. Terpstra <wesley@sifive.com>

bbl: copy dtb after the kernel


# 23ab37ad 22-Mar-2017 Wesley W. Terpstra <wesley@sifive.com>

SBI: a0+a1 hold hartid+dtb pointer between boot loader stages


# f6bca6e3 20-Feb-2017 Andrew Waterman <andrew@sifive.com>

Don't block for acks on console writes


# b14d4187 17-Feb-2017 Andrew Waterman <andrew@sifive.com>

Clean up boot loader for physical address loading


# 926b3606 17-Feb-2017 Andrew Waterman <andrew@sifive.com>

WIP towards ECALL interface for SBI


# 4678e84c 15-Feb-2017 Andrew Waterman <andrew@sifive.com>

Incorporate sptbr/sfence.vma changes


# f6b2274a 06-Dec-2016 Andrew Waterman <andrew@sifive.com>

avoid non-standard predefined macros


# f6eff201 06-Jul-2016 Andrew Waterman <waterman@cs.berkeley.edu>

Udpate to new PTE format


# 7389e46c 30-Apr-2016 Andrew Waterman <waterman@cs.berkeley.edu>

Move DRAM to high addresses


# b94c7a4b 10-Mar-2016 Andrew Waterman <waterman@cs.berkeley.edu>

Refactor pk, bbl, machine into separate libraries

Yuck.