aboutsummaryrefslogtreecommitdiff
path: root/config.h.in
AgeCommit message (Collapse)AuthorFilesLines
2020-02-02Support manually zeroing out BSS when booting (#188)James Clarke1-0/+3
Some ELF loaders, in particular gdb's load command for dynamically loading files into memory, which is often used to load binaries onto FPGAs over JTAG, do not zero out BSS, leaving the memory in whatever state it was previously in. Thus, introduce a new --enable-zero-bss configure flag, which will include code to zero out BSS when booting.
2018-07-12configure: Add --enable-boot-machine in BBLHesham Almatary1-0/+3
If --enable-boot-machine is passed, BBL disables VM and runs the payload in machine mode. This is useful for payloads (e.g. RTOSes or other OSes) that want to run only in machine mode while still relying on bbl/pk for system calls and emulation
2018-05-22RISC-V: Support separate firmware and kernel payloadMichael Clark1-0/+3
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>
2017-11-03Remove the platform interfacePalmer Dabbelt1-3/+0
We now automatically detect everything that the platform interface used to be used for, so it's now obsolete!
2017-08-03Add the '--enable-print-device-tree' argumentPalmer Dabbelt1-0/+3
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.
2017-08-02Add a platform interfacePalmer Dabbelt1-0/+3
SiFive's pk fork is the second one I've had to maintain, and it's a huge pain because people keep just leaving changes all over the tree. I want to introduce an interface that the platform-specific details can live behind so I don't have to keep doing these painful merges.
2016-03-09Refactor pk, bbl, machine into separate librariesAndrew Waterman1-0/+12
Yuck.
2016-02-19Remove --disable-atomics flag; rely on -march setting insteadAndrew Waterman1-3/+0
2015-05-02Add ASCII art boot logoAndrew Waterman1-0/+3
It's only printed when booting the Linux kernel. Feel free to improve the quality of the ASCII art. It looks like this when rendered: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv rrrrrrrrrrrrr vvvvvvvvvvvvvvvvvvvvvv rr vvvvvvvvvvvvvvvvvvvvvv rr vvvvvvvvvvvvvvvvvvvvvvvv rr rrrr vvvvvvvvvvvvvvvvvvvvvvvvvv rrrr rrrrrr vvvvvvvvvvvvvvvvvvvvvv rrrrrr rrrrrrrr vvvvvvvvvvvvvvvvvv rrrrrrrr rrrrrrrrrr vvvvvvvvvvvvvv rrrrrrrrrr rrrrrrrrrrrr vvvvvvvvvv rrrrrrrrrrrr rrrrrrrrrrrrrr vvvvvv rrrrrrrrrrrrrr rrrrrrrrrrrrrrrr vv rrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrrr INSTRUCTION SETS WANT TO BE FREE
2015-03-12Update to new privileged specAndrew Waterman1-6/+0
2012-11-17fix spinlocks; add --disable-atomics cfg optAndrew Waterman1-0/+3
2012-09-07Added rough emulation support for div/rem/mul.Christopher Celio1-0/+3
2011-06-19temporary undoing of renamingAndrew Waterman1-0/+37
2011-06-19Renamed packagesAndrew Waterman1-37/+0
2011-04-09[xcc,pk,sim,opcodes] added first RVC instructionAndrew Waterman1-6/+0
2011-01-10[pk] added --disable-fp-emulation option for code sizeAndrew Waterman1-0/+3
2010-11-21[opcodes, pk, sim, xcc] made jumps shorter and PC-relativeAndrew Waterman1-0/+6
2010-08-24[pk] proxy kernel support for mixed 32b/64b operationAndrew Waterman1-0/+9
2010-08-18[pk,fesvr] improved proxykernel build systemAndrew Waterman1-0/+25
Now uses a modified MCPPBS. Add --host=riscv to configure path. Front-end server now just searches PATH for riscv-pk, so just install the pk to somewhere in your path.