*notes*
> full project architecture update
> support the new vxSDK integration
> support 64bits architectures
> support SLD2 "fake" board
> add DMA driver and API
> add Timer driver and API
> update configuration script (now called "vxdev")
> rework Keyboard API
> rework scripts isolation
> many fixes
> many "early-optimisations"
> explicit neovim ALE linter configuration
@update
> [CMakeLists.txt]
¦ support extra file installation request (like linker script)
> [boards]
¦ [sdl2] indicate that the sdl2.ld file (linker script) should be installed
> [scripts/core/board]
¦ support extra file installation indication
¦ remove useless toolchain information (handled by the vxSDK)
> [vxsdk.toml]
¦ indicate converter asset prefix
¦ use the new ENV handling
¦ indicate SDL2 linker script
¦ indicate SLD2 correct flags information
@add
> [vxdev] && [scripts]
¦ refacto the configuration script, now handle all compilation step
¦ proper cmake abstraction
¦ proper isolation between "core" and "command"
@update
> [CMakeLists.txt]
¦ support extra C flags configuration
¦ support installation request
¦ proper remove useless explicit path information
> [boards]
¦ [sdl2] move "toolchain" information in the vxsdk.toml (handled by vxSDK)
¦ [fxcg50] move "toolchain" information in the vxsdk.toml (handled by vxSDK)
> [vxsdk.toml]
¦ proper use of the new ENV configuration protocol
¦ isolate toolchain information of each board
@fix
> [.gitignore]
¦ use explicit exclusion instead of explicit inclusion
¦ add missing kernel source files (!)
@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
@update
<> configure
| use TOML file format instead of INI for board description
| block configuration script if it's not involved by the vxSDK
| comment code and write documentation (WIP)
| allow kernel module selection
<> Makefile
| block compilation step if it's not involved by the vxSDK
| remove the "build/" directory creation
| moved to the root directory of the project
<> src/modules -> src
| moved all "kernel modules" in the root directory
| remove "kernel/" part of the project : now linked to the interrupt controller
<> vxsdk.toml
| change compilation steps
@fix
<> driver/mpu/sh/sh7305/intc
| fix TLB interrupt handler freeze
| link kernel panic (exception/TLB)
<> include/vhex/display
| add image API by default
@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)