Commit Graph

6 Commits

Author SHA1 Message Date
Yann MAGNIN 693d9b0d8f vxkernel 0.6.0-25 : switch to CMake ! (WIP)
@note
  This commit doesn't provide the complet CMake support, because many
  improvements need to be done in the vxSDK. You can only build the SDL2 board
  by hardcoding environment variables (the `vxsdk.toml file is not fonctional`)
  The "shared" forms of the library will be handled as a Virtual Dynamic Shared
  Object (vDSO) and will be common for all board. This is not supported yet.

@add
> [CMakeLists.txt]
  ¦ support project architecture
  ¦ support project configuration file
  ¦ support SDL2 board (static-only)
> [scripts]
  ¦ provide proper API
  ¦ proper isolate the board manipulation
  ¦ proper isolate the "library format" selection (static or vdso)
  ¦ generate a CMake file instead of Makefile one

@update
> [common]
  ¦ rename 'board/' to 'boards/'
  ¦ move 'assets/', 'src/' and 'include' in 'kernel/'
  ¦ remove old makefile
  ¦ in 'boards/<board-name>' proper isolate :
    ¦ board description : `board.toml`
    ¦ board file to install : e.i `fxcg50.ld`
    ¦ board source file : `src`
    ¦ board include : `include`
> [configure]
  ¦ proper refacto the script
  ¦ proper isolation between vxSDK use and user

@fix
> [kernel/src]
  ¦ [drivers/common/sdl2]
    ¦ [keyboard] remove unused object
    ¦ [keyboard] proper table size declaration
    ¦ [sdl2] fix return value
    ¦ [timer] fix return value
  ¦ [modules]
    ¦ [dstack] fix return value
    ¦ [hypervisor] fix return value
2022-11-27 10:39:06 +01:00
Yann MAGNIN a916120d66 VxKernel 0.6.0-1 : Rework the graphic pipeline
@add
<> board/fxcg50/fxcg50-dynamic.ld : add the "user/addin" linker script
<> include/vhex/display* : rework the graphic API/pipeline
<> include/vhex/driver/scree/r61524 : add hardware description and API
<> drivers/screen/r61524 : add r61524 driver
<> module/display/dstack : new pipeline

@update
<> board/fxcg50/board : explicitly set the DWIDTH/DHEIGHT define
<> board/fxcg50/hypervisor : API update (WIP)
<> include/vhex/driver :
   | update driver information (use bitfield instead of define and macros)
   | configure driver's primitive cannot be NULL
   | driver can embed module data (ex: r61524 embed display module primitives)
<> include/vhex/hypervisor :
   | update driver information (use bitfield instead of define and macros)
   | update world information (use bitfield instead of define and macros)
   | remove useless "restricted" keyword in prototype
<> make/Makefile : add the support of the vxSDK (0.12.0)
<> module/display/dclear  : support of the new pipeline
<> module/display/display : support of the new pipeline
<> module/display/dupdate : support of the new pipeline
<> module/hypervisor/switch : support new driver/world structure
<> module/hypervisor/table  : support new driver/world structure
<> vxsdk.toml : support of the vxSDK 0.12.0

@fix
<> drivers/mpu/sh/sh7305/cpu/cpu : mask interrupt by default (cpu_atomic_end)
2022-05-27 11:57:55 +02:00
Yann MAGNIN f851b73cba VxKernel 0.5.0 : Modules + project architecture update
@add
<> board/fxcg50/fxcg50.ld : module section
<> board/fxcg50/hypervisor : board-specific hypervisor init/quit primitives
<> board/fxcg50/kmalloc : board-specific kmalloc init/quit primitives
<> vhex/module.h : module information
<> modules/display/display.c : add "display" module
<> modules/keyboard/keyboard.c : add "keyboard" module
<> modules/hypervisor/hypervisor.c : add "hypervisor" module
<> modules/kmalloc/kmalloc.c : add "kmalloc" module

@update
<> vxsdk.toml : update the project version
<> GLOBAL : change the "src/" architecture
<> board/fxcg50/initialize.c : isolate kmalloc part
<> kernel/kernel.c : initialize all modules
2022-03-04 17:37:38 +01:00
Yann MAGNIN df8d26ecca VxKernel 0.3.0 : Worlds
@add
<> include/vhex/arch/sh7305/cpu : add CPU hardware information
<> include/vhex/arch/sh7305/intc : add INTC hardware information
<> include/vhex/driver : add driver information
<> include/vhex/hypervisor : add hypervisor API
<> include/vhex/drivers/cpu : add CPU API
<> src/drivers/mpu/sh/sh7305/cpu/atomic : add CPU atomic primitives
<> src/drivers/mpu/sh/sh7305/cpu/cpu : add CPU driver for the hypervisor
<> src/drivers/mpu/sh/sh7305/cpu/register : add CPU registers abstraction
<> src/drivers/mpu/sh/sh7305/intc/intc : add INTC driver for the hypervisor
<> src/hypervisor/switch : add world switch
<> src/hypervisor/table : add world management

@update
<> vxsdk.toml : update the project version
<> src/kernel/kernel : hypervisor bootstrap (worlds switch between Casio / Vhex)
<> board/fxcg50/fxcg50.ld : drivers blocks

@fix
<> board/fxcg50/fxcg50.ld : generate the VRAM information (300ko -> 130ko)
<> board/fxcg50/fxcg50.ld : isolate BSS information
<> board/fxcg50/initialize : comments indentation
<> config : board and arch detection (os.walk())
<> gitignore : allow vxsdk.toml update
2022-02-13 15:01:01 +01:00
Yann MAGNIN 2fbee9cdeb VxKernel 0.2.0 : kmalloc + startup + display
@add
<> include/vhex/config.h : add configuration header (only for kmalloc for now)
<> include/vhex/defs/util.h : add common MACROS utilities
<> src/render : add display primitives (text and draw for now)
<> src/kmalloc : add kmalloc module

@update
<> board/fxcg50/hardware : add RAM (physical) information
<> board/fxcg50/initialize : add kmalloc initialization
<> driver/mpu/sh/sh7305/mmu : add MMU primitive to get area size using the UTLB

@fix
<> board/fxcg50/fxcg50.ld : fix executable size
<> board/fxcg50/fxcg50.ld : fix GOT/PLT and relocation information
<> make/Makefile : fix verbose option + change the library name
<> config : fix verbose option
2022-02-05 15:47:32 +01:00
Yann MAGNIN f38bea7024 VxKernel - 0.1.0 : Base
@add
<> board/fx9860g/board : board description for the fx9860G device
<> board/fx9860g/fx9860g.ld : linker script for the fx9860G device
<> board/fx9860g/initialize : device-specific entry for the fx9860g device
<> board/fxcg50/_Exit : define our own _Exit() function for the fxlibc
<> board/fxcg50/board : board description for the fxcg50 device
<> board/fxcg50/fxcg50.ld : linker script for the fxcg50 device
<> board/fxcg50/hardware : hardware detection for the fxcg50 device
<> board/fxcg50/initialize : device-specific entry for the fxcg50 device
<> config : configuration script for the vxKernel build system
<> make/Makefile : initial Makefile (must be used with the vxsdk)
<> include/vhex/arch/fxcg50/hardware : hardware definition for the fxcg50 device
<> include/vhex/defs/attributes : define common attributes macros
<> include/vhex/defs/types : define all types information
<> include/vhex/hardware : expose hardware "module" API
<> include/vhex/kernel : expose kernel "module" API
<> include/vhex/mmu : expose MMU "module" API
<> include/vhex/mpu/sh7305/mmu : MMU hardware definition
<> include/vhex/mpu/sh7305/pfc : PFC hardware definition
<> src/drivers/mpu/sh/sh7305/mmu : MMU driver definition
<> src/kernel/kernel : kinit() and kquit() definition
2022-01-08 11:49:29 +01:00