aboutsummaryrefslogtreecommitdiff
path: root/bbl/bbl.c
AgeCommit message (Collapse)AuthorFilesLines
2020-10-31Disable device tree filter when load a dts from file (#219)Yan1-0/+2
* add device tree in elf, using --with-dts to add the absolute path of device tree * Disable device tree filter * Remove *.dtb dependence, when the --with-dts option is not used
2020-10-30Revert "Disable device tree filter when load a dts from file (#217)"Andrew Waterman1-2/+0
This reverts commit a161e6f3ef31004e47a5b94b85c2e84b764f8637. Resolves #218
2020-10-29Disable device tree filter when load a dts from file (#217)Yan1-0/+2
* add device tree in elf, using --with-dts to add the absolute path of device tree * Disable device tree filter
2020-04-28Support --without-payload for OpenSBI fw_jump-style booting (#186)Jessica Clarke1-3/+11
We expect the firmware to load the external payload at the second megapage, and that there is space to put the filtered FDT at 0x2200000 past the start of memory. With a default MEM_START of 0x80000000, this matches the standard OpenSBI values for FW_JUMP_ADDR and FW_JUMP_FDT_ADDR of 0x80400000/0x80200000 (RV32/RV64) and 0x82200000 respectively, so payloads linked for one should work with the other.
2019-01-25Protect BBL data, not just textAndrew Waterman1-2/+2
h/t @michaeljclark
2019-01-04Protect M-mode memory from S-modeAndrew Waterman1-0/+47
2018-07-12bbl: boot payload in machine mode when --enable-boot-machine is passedHesham Almatary1-0/+4
2018-07-09Properly license all nontrivial filesAndrew Waterman1-0/+2
2018-05-22RISC-V: Support separate firmware and kernel payloadMichael Clark1-4/+12
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-1/+0
We now automatically detect everything that the platform interface used to be used for, so it's now obsolete!
2017-11-02Detect harts that can't boot Linux instead of hard-coding themPalmer Dabbelt1-2/+14
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.
2017-08-09The DTB argument to boot_other_hart shouldn't be used in BBLPalmer Dabbelt1-8/+6
I screwed up refactoring bbl.
2017-08-03Add the '--enable-print-device-tree' argumentPalmer Dabbelt1-3/+8
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-02Move DISABLED_HART_MASK to the platformPalmer Dabbelt1-1/+2
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.
2017-04-05Rename HART_MASK to DISABLED_HART_MASK to clarify polarityAndrew Waterman1-1/+1
2017-04-05bbl: prevent named cores from bootingWesley W. Terpstra1-1/+1
2017-04-05fdt: redact clint, plic, and debug hardwareWesley W. Terpstra1-0/+6
2017-03-23bbl: copy dtb after the kernelWesley W. Terpstra1-1/+17
2017-03-22SBI: a0+a1 hold hartid+dtb pointer between boot loader stagesfdtWesley W. Terpstra1-4/+4
2017-02-20Don't block for acks on console writesAndrew Waterman1-8/+9
2017-02-17Clean up boot loader for physical address loadingAndrew Waterman1-6/+5
2017-02-17WIP towards ECALL interface for SBIAndrew Waterman1-51/+5
2017-02-15Incorporate sptbr/sfence.vma changesAndrew Waterman1-1/+1
2016-12-06avoid non-standard predefined macrosAndrew Waterman1-1/+1
2016-07-06Udpate to new PTE formatAndrew Waterman1-2/+2
2016-04-30Move DRAM to high addressesAndrew Waterman1-4/+4
2016-03-09Refactor pk, bbl, machine into separate librariesAndrew Waterman1-0/+76
Yuck.