Commit Graph

2420 Commits

Author SHA1 Message Date
Bamboo
77e157a984 Release 9.0.1
Update VERSION
Update CHANGES
2018-04-18 10:10:14 +10:00
Adrian Danis
679c0b09ed Remove strlen
This is not suitable for verification and strnlen must be used instead.
2018-04-18 10:10:14 +10:00
Adrian Danis
93c1801994 riscv: Use strnlen over strlen
strlen cannot currently go through the verification framework, so we shall opt to use
strnlen with a sufficiently large maxlen.
2018-04-18 10:10:14 +10:00
Adrian Danis
82c997aebe Expose string functions in all builds
These are useful beyond just debug and printing builds
2018-04-18 10:10:14 +10:00
Anna Lyons
1b68590b3f riscv: use one definition of page bits 2018-04-18 10:10:14 +10:00
Adrian Danis
06a66cd1ca trivial: style 2018-04-18 10:10:14 +10:00
Adrian Danis
43e1705280 Remove strcmp
This function causes difficulties for verification and strncmp should be used instead.
2018-04-18 10:10:14 +10:00
Adrian Danis
81e821b176 riscv: Use strncmp instead of strcmp
strcmp is difficult to prove correspondence with in verification and it is easier to
replace with strncmp for the moment.
2018-04-18 10:10:14 +10:00
Adrian Danis
0b7d80c954 riscv: Document architecture in CHANGES 2018-04-18 10:10:14 +10:00
Adrian Danis
d3c129880f riscv: Remove todos
This have been converted to JIRA issues.
2018-04-18 10:10:14 +10:00
Adrian Danis
0c0a00610c riscv: Place traps in text section
Ensures that the traps are in the text section, and not the boot section, allowing for
kernel memory to be safely reused.
2018-04-18 10:10:14 +10:00
Adrian Danis
ddd1e128ba riscv: Remove now out of date todo 2018-04-18 10:10:14 +10:00
Anna Lyons
2dbe961f0b riscv: document page table structure 2018-04-18 10:10:14 +10:00
Adrian Danis
f5fa2072a5 riscv: Guard potentially undefined page size constants
These pages don't have a defined size on rv32 (i.e. when PT_LEVELS == 2)
2018-04-18 10:10:14 +10:00
Adrian Danis
543372e755 riscv: Provide hidden MAX_NUM_NODES variable
The kernel assumes the existance of this configuration variable so for riscv we provide
a hidden one that the user cannot change with the value of 1
2018-04-18 10:10:14 +10:00
Anna Lyons
76c61025ac riscv: remove dev_pregs
We don't have any devices currently, and in future they will be
discovered, not statically specified.
2018-04-18 10:10:14 +10:00
Anna Lyons
b7d4bc1629 riscv: remove trailing whitespace line 2018-04-18 10:10:14 +10:00
Anna Lyons
f68779d76e riscv: move LOAD to hardware.h in mode
removes the #ifdef and uses the dir structure instead.
2018-04-18 10:10:14 +10:00
Adrian Danis
092170e083 riscv: Guard against setting max num nodes
SMP is not currently supported on riscv, this prevents a user accidentally trying to
use it.
2018-04-18 10:10:14 +10:00
Adrian Danis
24c92f979b riscv: Remove broken and untested benchmark stubs 2018-04-18 10:10:14 +10:00
Adrian Danis
402cc309f1 riscv: Remove bogus L1 cache line size 2018-04-18 10:10:14 +10:00
Adrian Danis
fbe634620c riscv: Remove currently unuspported SMP code 2018-04-18 10:10:14 +10:00
Adrian Danis
eccaed9f70 riscv: Remove currently unsupported FPU 2018-04-18 10:10:14 +10:00
Anna Lyons
99d93ebe04 riscv: correct typo in comment 2018-04-18 10:10:14 +10:00
Anna Lyons
643993282d riscv: add missing cases to print_format_cause 2018-04-18 10:10:14 +10:00
Anna Lyons
08b41bde71 riscv: use fault constants instead of magic 2018-04-18 10:10:14 +10:00
Anna Lyons
5cd0dd52be riscv: add missing fault types 2018-04-18 10:10:14 +10:00
Anna Lyons
bdf53e0be9 riscv: move io.c to arch level
where it belongs
2018-04-18 10:10:14 +10:00
Anna Lyons
d50cddde5c riscv: remove cryptic printout 2018-04-18 10:10:14 +10:00
Anna Lyons
f0bd4437db riscv: check all frame types in Arch_isFrameType 2018-04-18 10:10:14 +10:00
Anna Lyons
00cf62bb09 riscv: remove unneccessary #if CONFIG_PT_LEVELS
This guard is only required for object types to avoid
seL4 thinking they are valid objects. Defining the size constants does
not need to be guarded.
2018-04-18 10:10:14 +10:00
Anna Lyons
c684c9e543 riscv: populate userImagePaging 2018-04-18 10:10:14 +10:00
Anna Lyons
308e8bf4d2 riscv: move machine functions to machine.h
And add memory barriers while we are at it.
2018-04-18 10:10:14 +10:00
Anna Lyons
497e04ac06 riscv: implement Arch_userStackTrace 2018-04-18 10:10:14 +10:00
Anna Lyons
47c8b5a9e5 riscv: don't halt on Arch_userStackTrace() 2018-04-18 10:10:14 +10:00
Anna Lyons
952d305103 riscv: remove unused function 2018-04-18 10:10:14 +10:00
Adrian Danis
50365f91a2 riscv: Remove completed todo 2018-04-18 10:10:14 +10:00
Adrian Danis
5ac36bcefb riscv: Move strcmp to util 2018-04-18 10:10:14 +10:00
Adrian Danis
c083919796 riscv: Move strlen to util 2018-04-18 10:10:14 +10:00
Adrian Danis
84481138ef riscv: Replace strings with char arrays
The C parser does not understand string literals. This is unfortunate, but necessary.
2018-04-18 10:10:14 +10:00
Adrian Danis
6938c98adf riscv: Fill physical memory regions from FDT
Removes the hardcoded physical memory region from the spike platform and fills it from
FDT parsing instead.
2018-04-18 10:10:14 +10:00
Adrian Danis
9569ad05cb riscv: Parse the FDT during platform initialization 2018-04-18 10:10:14 +10:00
Adrian Danis
ee37eebcae riscv: Cleanup FDT code
Rewrites the FDT code to remove all the disallowed function pointers have attempt to perform
the equivalent functionality of query_mem in place in the main parser. With the callback
system gone all the rest of the unused FDT code is deleted as it doesn't make sense.
2018-04-18 10:10:14 +10:00
Adrian Danis
a6fb504be9 riscv: Remove dtb region from free memory
The DTB output should be preserved both during kernel bootup and ultimately given to the
rootserver. As such we should make sure to not include it as free memory.
2018-04-18 10:10:14 +10:00
Adrian Danis
97691ac469 riscv: Move init_plat
The platform should not be initialized till after the cpu has been.
2018-04-18 10:10:14 +10:00
Adrian Danis
d373b17d4c riscv: Provide dtb region to try_init_kernel
Now that there is a different kernel window we can talk about the physical address of the
dtb and read it through the kernel window to determine it's size. Currently we just pass
the region to try_init_kernel, which does not yet do anything with it.
2018-04-18 10:10:14 +10:00
Adrian Danis
f37b8a5c87 riscv: Remove smp boot code
The SMP code is incomplete and is confusing to have broken code around.
2018-04-18 10:10:14 +10:00
Adrian Danis
2b101e0f9c riscv: Add sbss region to linker script
Without this sbss symbols get placed after the ki_end symbol, which could result in
those symbols ending up on memory given to the user.
2018-04-18 10:10:14 +10:00
Adrian Danis
a2a6be95ca Define more freemem regions on all architectures except ARM
2 freemem regions is far to prohibitive on platforms that have fragmented initial
memory. Ultimately ARM should be changed to also have more than 2, but is being
deferred for now as it will result in trivial verification breakage.
2018-04-18 10:10:14 +10:00
Adrian Danis
d205615c53 riscv: Be consistent with PT mapping faults
Other architectures claim `seL4_DeleteFirst` as the error if the only way to map a page table
is to first delete something. This unifies the riscv code to also state `seL4_DeleteFirst`
when there is already a lowest level page table mapped instead of lookup fault.
2018-04-18 10:10:14 +10:00