#
d3293c7c |
|
10-Jul-2019 |
Yanyan Shen <yanyan.shen@data61.csiro.au> |
bbl: redirect traps to HS mode
|
#
f4c34d86 |
|
14-May-2019 |
Siwei Zhuang <siwei.zhuang@data61.csiro.au> |
Add ns16750 driver for ariane.
|
#
815050f0 |
|
19-Dec-2018 |
Andrew Waterman <andrew@sifive.com> |
Set up PMP earlier, so it can be overridden later
|
#
f579c48e |
|
02-Dec-2018 |
Andrew Waterman <andrew@sifive.com> |
Revert "Avoid writing reserved values to pmpaddr CSR" This reverts commit 7bee30c1ff56975041ffc67cd0170d7477aba865. All ones is no longer "reserved", so the old code is OK.
|
#
23de87d8 |
|
20-Nov-2018 |
Logan Gunthorpe <logang@deltatee.com> |
Fix the calculation for the number of interrupt enable words The number of interrupt enable words should be the number of devices divided by the number of bits per word (not the number of bytes per word) and it should round up. Without this fix, when using a larger number of interrupts, the user will see a number of errors in qemu of the form: plic: invalid register write: %08x Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
|
#
7bee30c1 |
|
23-Sep-2018 |
Andrew Waterman <andrew@sifive.com> |
Avoid writing reserved values to pmpaddr CSR
|
#
165c85ca |
|
12-Jul-2018 |
Hesham Almatary <Hesham.Almatary@cl.cam.ac.uk> |
minit: Move pmp setup code to a separate function to avoid duplicating code Currently it's being used by both enter_supervisor_mode and enter_machine_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>
|
#
9ffedde3 |
|
21-May-2018 |
Zihao Yu <19884013+sashimi-yzh@users.noreply.github.com> |
machine,minit: initialize emulated FCSR in enter_supervisor_mode() (#106) * If BBL emulates the FPU, the trap handler will load emulated FCSR from x0's save slot into tp. The emulated FCSR should be initialized, else the field of rounding mode will contain garbage codes. This will lead to raising SIGABRT for a user mode program which tries to print a floating point variable. In glibc, __printf_fp_l() (defined in riscv-glibc/stdio-common/printf_fp.c) will call round_away() (defined in riscv-glibc/include/rounding-mode.h). With a garbage rounding mode in emulated FCSR, round_away() may call abort().
|
#
94bcafff |
|
15-May-2018 |
Jim Straus <jstraus59@users.noreply.github.com> |
Fix for missing supervisor mode when running on E51 (#96) The E51 core on the U54-MC lacks supervisor mode, thus the plic_s_ie and plic_s_thresh are NULL when running on this core. This adds checks for this case.
|
#
5a0e3e55 |
|
20-Mar-2018 |
Wesley W. Terpstra <wesley@sifive.com> |
minit: insert printm as work-around for a race condition Reboot does not work reliably without this.
|
#
3740bc51 |
|
09-Jan-2018 |
Zong Li <zongbox@gmail.com> |
Remove the repeating bitmask of medeleg register (#74)
|
#
132c6292 |
|
12-Dec-2017 |
Palmer Dabbelt <palmer@dabbelt.com> |
Add a 16550 UART driver to back the SBI console QEMU currently provides the console via HTIF and the SBI. That's a bit messy because BBL polls for serial input, which means that typing too quickly loses characters. While QEMU has a standard 16550 device model, there's no way to have two consoles share the console in QEMU (as they'd step all over each other) so that means we can't have both the HTIF console and the 16550 console. With this patch, QEMU can be changed to use a 16650 instead of the HTIF for serial output. Linux will use the SBI for early printk support (which is fine, polling for output is stable) and then swap over as soon as it detects the UART. When Linux swaps it prints out the whole history, but there's probably a way to get around that. There's a few lines that are output to both, but it appears the Linux driver is close enough to ours that nothing catastrophic happens -- there's not much to the device, so hopefully that pans out on real hardware too. Once Linux swaps over to natively using the driver we get reliable console input. If you don't have the in-kernel driver then Linux never swaps over and keeps using the SBI console just like before.
|
#
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!
|
#
27498013 |
|
02-Nov-2017 |
Palmer Dabbelt <palmer@dabbelt.com> |
Check if we have extensions before using them
|
#
21209988 |
|
02-Nov-2017 |
Palmer Dabbelt <palmer@dabbelt.com> |
Initialize the UART first Without this I can't get printf to show me debug info during early boot.
|
#
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.
|
#
3f20915e |
|
14-Aug-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
finisher: support terminating sifive devices simulation (#61)
|
#
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.
|
#
a2c8937e |
|
05-Apr-2017 |
Andrew Waterman <andrew@sifive.com> |
Remove num_harts; use hart_mask exclusively
|
#
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
|
#
d1200e3a |
|
04-Apr-2017 |
Andrew Waterman <andrew@sifive.com> |
Remove SBI console printm to speed up PK simulation
|
#
733fae92 |
|
31-Mar-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
clint: move hart wakeup till after all FDT parsing The clint was wiping out information discovered by the plic. Initialize hart stacks as they are discovered. Then fill in clint+plic info Then wake the harts.
|
#
078ea399 |
|
30-Mar-2017 |
Andrew Waterman <andrew@sifive.com> |
New PMP encoding
|
#
75f1854c |
|
27-Mar-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
plic: discovered via fdt
|
#
9fa7b308 |
|
27-Mar-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
uart: add physical device driver
|
#
3473915b |
|
27-Mar-2017 |
Andrew Waterman <andrew@sifive.com> |
Separate page faults from physical memory access exceptions
|
#
fc1af65c |
|
23-Mar-2017 |
Andrew Waterman <andrew@sifive.com> |
Set up PMPs, permissively for now
|
#
23ab37ad |
|
22-Mar-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
SBI: a0+a1 hold hartid+dtb pointer between boot loader stages
|
#
316f85e9 |
|
21-Mar-2017 |
Wesley W. Terpstra <wesley@sifive.com> |
machine: add FDT parser
|
#
36a5855d |
|
08-Mar-2017 |
Andrew Waterman <andrew@sifive.com> |
Don't rely on config string for basic functionality
|
#
410fb038 |
|
25-Feb-2017 |
Andrew Waterman <andrew@sifive.com> |
New counter-enable scheme https://github.com/riscv/riscv-isa-manual/issues/10
|
#
34979b93 |
|
22-Feb-2017 |
Andrew Waterman <andrew@sifive.com> |
Fix PK boot
|
#
f6bca6e3 |
|
20-Feb-2017 |
Andrew Waterman <andrew@sifive.com> |
Don't block for acks on console writes
|
#
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
|
#
6c1d0604 |
|
25-Oct-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Use __riscv_flen macro to detect FP support
|
#
8006d004 |
|
09-Sep-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Attempt to disable FPU if using no-FPU pk/bbl
|
#
d42f458b |
|
28-Jul-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Don't let other harts boot before HLS is initialized Use IPIs to signal them.
|
#
8b41191c |
|
05-Jul-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Initialize timecmp; add PRCI test
|
#
1e62fdfc |
|
06-Jun-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
PLIC registers are 32-bit, not 16-bit
|
#
771c1163 |
|
01-Jun-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Clear IPIs using MMIO, not mip CSR
|
#
e3afbd7c |
|
24-May-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Remove debug printfs
|
#
113d00e6 |
|
22-May-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Add preliminary support for the interrupt controller
|
#
b535cd6d |
|
29-Apr-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
ERET -> MRET
|
#
66776bbc |
|
29-Apr-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Remove mtime/mtimecmp
|
#
d5278834 |
|
10-Mar-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Misc improvements
|
#
469c5f16 |
|
10-Mar-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Make num_harts a uintptr_t Making it a uint32_t is a false economy.
|
#
b94c7a4b |
|
10-Mar-2016 |
Andrew Waterman <waterman@cs.berkeley.edu> |
Refactor pk, bbl, machine into separate libraries Yuck.
|