Andrew Waterman
d88671efdf
Remove uarch counters
We'll re-add support for the generic performance counter facility once
it exists.
10 years ago
Andrew Waterman
ee00503ebe
Don't assume existence of uarch counters
10 years ago
Andrew Waterman
b94c7a4b07
Refactor pk, bbl, machine into separate libraries
Yuck.
10 years ago
Andrew Waterman
80447e5711
Disentangle PK and BBL a bit
10 years ago
Andrew Waterman
bbc9a65fed
Begin refactoring emulation code
10 years ago
Andrew Waterman
3dd00b900c
Simplify boot code
10 years ago
Andrew Waterman
5e29b5ccff
Use RV configuration string instead of device tree
10 years ago
Andrew Waterman
b0d83d2a84
Fix MULW/DIVW/etc. emulation code
10 years ago
Andrew Waterman
ad7a60abea
WIP on priv spec v1.9
10 years ago
Andrew Waterman
31ad71b8a4
Remove incorrect code supporting ELF32 on RV64 and vice-versa
This is technically possible by running an RV32 supervisor on an
RV64 machine, but the M-mode and S-mode code would need to be
compiled and linked separately.
10 years ago
Andrew Waterman
529a6a3a0c
Change boot procedure to not rely on IPIs
That procedure doesn't work correctly if hart 0 comes out of reset while
hart 1 is still in reset.
10 years ago
Andrew Waterman
197a8b81e4
Use IPIs to wake up harts
This has the side effect of testing the IPI mechanism. Still not sure
this is the best approach to booting, but it works...
11 years ago
Andrew Waterman
47f9e06fc2
Read and use devicetree -- THIS BREAKS ROCKET FOR NOW
11 years ago
Andrew Waterman
6aa84fd30d
Undo last commit
It breaks programs that rely on ELF program headers.
11 years ago
Andrew Waterman
39f189549b
Avoid stack overflow with -msoft-float
11 years ago
Andrew Waterman
cffdcee338
Make boot loader/SBI changes to support SMP Linux
11 years ago
Andrew Waterman
87683e74f5
Split pk functionality into pk and bbl
pk is now an AEE only (i.e. it can only execute user programs).
bbl is now an SEE only (i.e. it can only host kernels).
11 years ago
Andrew Waterman
33e738d643
Add ASCII art boot logo
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
11 years ago
Andrew Waterman
e474878db4
Fix stack discipline for recursive traps
11 years ago
Andrew Waterman
f6659f1c76
Make printk safer and use less stack
11 years ago
Andrew Waterman
6517fe26a2
Update to new privileged spec
11 years ago
Andrew Waterman
5c86450130
work in progress on new supervisor spec
11 years ago
Christopher Celio
5eba64df88
Added "-c" option to track uarch counter info.
12 years ago
Andrew Waterman
89a0cefd28
Add -p flag: force physical memory addressing
12 years ago
Andrew Waterman
f62e692e72
Update to new privileged ISA
13 years ago
Andrew Waterman
00f7299824
Add some syscalls
13 years ago
Andrew Waterman
186ae3cc35
Renumber PCRs; refer to them with new ASM syntax
13 years ago
Andrew Waterman
cc72987e65
Support Linux ABI and (optionally) virtual memory
13 years ago
Andrew Waterman
accebe9e63
add BSD license
13 years ago
Christopher Celio
d6a522404a
Added rough emulation support for div/rem/mul.
14 years ago
Andrew Waterman
8717517e04
Synced up PK with supervisor changes/asm syntax
You must upgrade to the latest compiler and ISA
simulator to build and run this version of the PK.
15 years ago
Andrew Waterman
0edaecc543
temporary undoing of renaming
15 years ago
Andrew Waterman
e63e4fbe87
Renamed packages
15 years ago
Andrew Waterman
0d603acb91
[pk] load pk at addr 0; user stack top = MEMSIZE
15 years ago
Andrew Waterman
ba0cf05466
[pk] fixed timer interrupt bug, etc.
15 years ago
Andrew Waterman
27afdf1a00
[sim,pk] fixed minor pk bugs and trap codes
15 years ago
Yunsup Lee
5e7e315dee
[pk] fix init_fp function prototype
15 years ago
Yunsup Lee
033e1e62bd
[pk] add vector_disabled trap handler
15 years ago
Andrew Waterman
666ae0c9e5
[pk,fesvr] pk now loads elfs itself
this allows it to detect 32b binaries
15 years ago
Andrew Waterman
4baf0c99c5
[xcc,pk,opcodes,sim] updated encoding/insn names
15 years ago
Andrew Waterman
af2d471a4e
[pk] fixed FP emulation bug
kernel would erroneously trap on FP disabled
15 years ago
Andrew Waterman
783c0ec831
[pk] various PK cleanups/speedups
16 years ago
Yunsup Lee
9fe7d4f656
[pk,sim,xcc] get rid of at register, introduce tp register
16 years ago
Andrew Waterman
77c382ff23
[pk] improved performance of fp emulation
16 years ago
Yunsup Lee
9297008e44
[pk] zero out fp regs
16 years ago
Andrew Waterman
b4fd490d68
[pk, sim] added FPU emulation support to proxy kernel
16 years ago
Andrew Waterman
3aaacd4476
[xcc,sim] eliminated vectored traps
now, the evec register holds the address that all traps vector to,
and the cause register is set with the trap number.
16 years ago
Andrew Waterman
2351867c65
[sim, xcc] added PCRs to replace k0 and k1
16 years ago
Andrew Waterman
29cc0dc985
[pk,fesvr] improved proxykernel build system
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.
16 years ago
Andrew Waterman
e0d20b2e2d
[xcc,pk,sim] Added first part of FP support
In particular, FP loads, stores, and moves now work.
16 years ago