Skip to content

Commit

Permalink
<ReadMe> Updated documentation of folders
Browse files Browse the repository at this point in the history
  • Loading branch information
akashkollipara committed Jul 29, 2024
1 parent fb17e2a commit daa6ba9
Show file tree
Hide file tree
Showing 14 changed files with 53 additions and 16 deletions.
1 change: 0 additions & 1 deletion src/arch/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,3 @@ Home directory for CPU architecture specific sources.
#### Supported Architectures
* AVR
* RISCV
* ARM-M
2 changes: 0 additions & 2 deletions src/arch/avr/8/5/terravisor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@

Home directory for avr5 terravisor sources.

For terravisor documentation please read [Terravisor README](../../../../../visor/terravisor/README.md)

Please refer [README.md](../../common_5x_6/terravisor/README.md) in common_5x_6 directory.
2 changes: 0 additions & 2 deletions src/arch/avr/8/6/terravisor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@

Home directory for avr5 terravisor sources.

For terravisor documentation please read [Terravisor README](../../../../../visor/terravisor/README.md)

Please refer [README.md](../../common_5x_6/terravisor/README.md) in common_5x_6 directory.
4 changes: 4 additions & 0 deletions src/arch/avr/8/common_5x_6/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# AVR-8 Common v5 and v6

* Supports Terravisor only.

5 changes: 1 addition & 4 deletions src/arch/riscv/32/i/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
# RV32 I-Extension (baseline)

* Supports machine, supervisor and undermode as of the commit date.
* Hypervisor aka background supervisor spec is still under development.
* Supports Terravisor (machine mode according to risc-v priv spec).

#### Supported execution levels
* Terravisor (machine layer)
4 changes: 2 additions & 2 deletions src/arch/riscv/32/i/terravisor/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# RV32 I [Terravisor]

* Home directory for RV32 Terravisor sources.
* Home directory for RV32I Terravisor sources.
* I being baseline for RV cores, this is a common directory.
* For terravisor documentation please read [Terravisor README](../../../../../visor/terravisor/README.md)

#### Highlights
* Bootstrap routine is mostly in C
* Reduced use of ASM
* Exception handling is unified by updated "mtvec" reg with handler address
* In few platforms, mtvec is hard coded to be used in vector mode, to enable that mode just define "RV_VEC_MODE" in build defines.
2 changes: 0 additions & 2 deletions src/arch/riscv/32/imac/terravisor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@

Home directory for RV32imac Terravisor

For terravisor documentation please read [Terravisor README](../../../../../visor/terravisor/README.md)

Please refer [README.md](../../i/terravisor/README.md) in i/terravisor directory.
4 changes: 1 addition & 3 deletions src/arch/riscv/32/imc/terravisor/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# RV32 IMAC [Terravisor]

Home directory for RV32imac Terravisor

For terravisor documentation please read [Terravisor README](../../../../../visor/terravisor/README.md)
Home directory for RV32imc Terravisor

Please refer [README.md](../../i/terravisor/README.md) in i/terravisor directory.
9 changes: 9 additions & 0 deletions src/driver/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Driver
_This folder houses all the driver directories_

Cyancore driver framework requires the platform to provide a memory segment in ram to store driver table. This table consists of all driver entries which are enabled by user during compiler time. These drivers should ideally be started in the startup routine. Driver framework provides other apis which will let user start driver with the help of name of driver. _Refer to driver.c for more info_

## Build
- There are 2 types of driver, essential and user-config driver.
- Essential drivers are those which is absolute must to enable minimal functionality of the platform to execute basic code, usually system programs.
- User Config driver are those which can be enabled and can be called in the user programs.
17 changes: 17 additions & 0 deletions src/driver/console/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Console Driver

Console driver provides interfaces to stdout, stdin, stderr and stdlog. The 3 standard devices std(out/in/err) are linked with console device that will be linked with the console driver stars. But for stdlog, the device is linked when the driver calls logger attach routine. _Essentially this directory houses the drivers for consoles._

#### Console (L1 Driver)
- This devices connects to std(out/in/err)
- std-devices are used by libc stdio functions
- The underlying hardware is getting linked with the L2 Driver which is present under `con_serial_<family>` folder

#### Stdlog (L1 Driver)
- This devices connects to stdlog
- stdlog is a system standard logger provided by libsyslog
- By default syslog uses membuf to log system logs

## Build
- Maitri (cc build engine) requires a unique L2 driver folder which is represented with `con_serial_<family>`, where **family** is Family of Platform/Controller
- If in case the family is absent, a warning will be displayed during build, but the compilation will not fail.
7 changes: 7 additions & 0 deletions src/visor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Visor

This folder will contain all the sources for workers and services that can be provided by a visor.

Its upto user's imagination to use the api's in such a way that they can craft out the visor as per their liking.

User's are free to write their own OS, hypervisor, terravisor and user space apps based on their requriements. To do this, the user needs to specify the execution mode in the build.mk of the project file. This is necessary to assist visor's sources to integrate correct arch functions. _Note: Onus is on cyancore's developer to be careful regaring naming convention and backward compatibilty of such functions_. Going further, to enable access control, users/developers should make best use of libresources. This can be a powerful tool to build a robust software stack.
3 changes: 3 additions & 0 deletions src/visor/services/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Visor - Services

This folder houses all the sources for kernels, bootstrap routines, etc. Using these api's user must create the software they desire.
3 changes: 3 additions & 0 deletions src/visor/services/bootstrap/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Bootstrap

This is a service provided by visor to enable system to setup the whole platform before it can execute user code.
6 changes: 6 additions & 0 deletions src/visor/services/kernel/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Kernel

This directory houses several kernels that cyancore can offer to develop software stack as per user's requirement.

### Supported Kernels
- Helios

0 comments on commit daa6ba9

Please sign in to comment.