Andrew Waterman
4a6b20595a
Add -p flag to pk to disable demand paging
10 years ago
Andrew Waterman
0a7862c79f
when -s is passed, print time, instret, cycle, and CPI
10 years ago
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
7389e46cd0
Move DRAM to high addresses
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
33ed6c6c5e
get rid of struct mainvars
10 years ago
Andrew Waterman
80447e5711
Disentangle PK and BBL a bit
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
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
1a8572a47d
Upgrade to privileged architecture 1.7
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
a24e1934dd
Remove errant statement forcing mem size to 64M
h/t Palmer
11 years ago
Andrew Waterman
a79f62f72a
Merge [shm]call into ecall, [shm]ret into eret
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
Andrew Waterman
0a81fd3a93
Support linkat, unlinkat, mkdirat syscalls
Also, old-style syscalls e.g. open are now implemented with e.g. openat.
11 years ago
Andrew Waterman
069bdd3f0d
Implement draft of new calling convention
Here is the new syscall ABI:
syscall number in a7
args in a0 - a6
return value in a0
Here is the integer register map:
x0 -> x0
x1 -> ra
x2 -> sp
x3 -> tp
x4 -> gp
x5 -> t0
x6 -> t1
x7 -> t2
x8 -> s0
x9 -> s1
x10 -> a0
x11 -> a1
x12 -> a2
x13 -> a3
x14 -> a4
x15 -> a5
x16 -> a6
x17 -> a7
x18 -> s2
x19 -> s3
x20 -> s4
x21 -> s5
x22 -> s6
x23 -> s7
x24 -> s8
x25 -> s9
x26 -> s10
x27 -> s11
x28 -> t3
x29 -> t4
x30 -> t5
x31 -> t6
12 years ago
Andrew Waterman
1d953bf6fc
Support glibc 2.20 programs
12 years ago
Christopher Celio
5eba64df88
Added "-c" option to track uarch counter info.
12 years ago
Andrew Waterman
e3fa35fb85
Handle options before vm_init is called
This prevents ptbr etc. from being accessed when -p is passed.
12 years ago
Colin Schmidt
e50dc18f5d
Add several syscalls, and move syscall header file from newlib
syscalls added (openat, access, accessat, faccessat, etc.)
12 years ago
Andrew Waterman
f1f8dbbed0
Abandon MIPS convention for indicating syscall errors in register a3
12 years ago
Andrew Waterman
5cd583648d
Speed up glibc init
12 years ago
Andrew Waterman
89a0cefd28
Add -p flag: force physical memory addressing
12 years ago
Andrew Waterman
a502c24732
Remove redundant initialization
12 years ago
Andrew Waterman
f62e692e72
Update to new privileged ISA
13 years ago
Andrew Waterman
5e742ad967
Add pk flag -s to print out stats
(the only stat is cycle count)
13 years ago
Andrew Waterman
2a0bfcd3da
Don't clobber the ELF headers!
13 years ago
Andrew Waterman
3168b8a904
New supervisor mode
13 years ago
Andrew Waterman
cc72987e65
Support Linux ABI and (optionally) virtual memory
13 years ago
Andrew Waterman
276c20be4c
implement new register mapping
13 years ago
Andrew Waterman
accebe9e63
add BSD license
13 years ago
Andrew Waterman
e0e1662fc1
rename binary to pk; change argv handling
the new fesvr approach makes argv[0] = pk, rather than user program's name
13 years ago
Andrew Waterman
15f31b5404
new supervisor mode
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
6b9ea8b8e0
[pk] limit programs to 2GB (for RV32 simplicity)
15 years ago
Andrew Waterman
0d603acb91
[pk] load pk at addr 0; user stack top = MEMSIZE
15 years ago
Andrew Waterman
69ddca76d2
[pk] add cache flush after program load
15 years ago
Andrew Waterman
53eb346e31
[sim,pk] reorganized status register
15 years ago
Andrew Waterman
6e7fe98ea9
[xcc,pk,sim,opcodes] added first RVC instruction
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
5490b1d627
[pk] send stdout/stderr to both fesvr and debug console
15 years ago
Andrew Waterman
63729473a5
[opcodes, pk, sim, xcc] Tweaked FP encoding
16 years ago
Andrew Waterman
783c0ec831
[pk] various PK cleanups/speedups
16 years ago