Commit Graph

2 Commits

Author SHA1 Message Date
Yann MAGNIN b8abc2eae7 VxKernel 0.6.0-19 : Add DMA driver
@add
<> board/fxcg50/board
  | add DMA module support
<> src/driver/mpu/sh/sh7305/dma
  | add async transfer primitives
  | add DMA memcpy algorithm
  | add DMA memset algorithm
  | add DMA wait primitives

@update
<> vhex/dma
  | [types] change dma_id_t type
  | [interface] add dma_spinwait primitives
<> vhex/driver
  | add DMA flags for driver interface
<> vhex/driver/mpu/sh/sh7305/dma
  | expose kernel-level primitives
  | add internal types definitions
<> src/driver/mpu/sh/sh7305/dma
  | proper channel cache
  | proper channel interrupt handler
  | proper channel error handler
  | proper address translation
  | proper driver installation (context save/restore)
  | proper driver interface exposition

@fix
<> vhex/keyboard/keycode
  | fix typedef again
<> src/dma
  | fix driver exposition
  | fix driver interface link dump
<> src/driver/mpu/sh/sh7305/intc
  | fix generic handler installation
2022-08-17 13:23:28 +02:00
Yann MAGNIN 7e01fb8444 VxKernel 0.6.0-18 : Add Vhex indirect call + prepare DMA driver
@add
<> vhex/defs/call
  | add common `vhex_call_t` which allow indirect call invocation
  | add default helper macros to generate internal struct
  | add default helper macros to involve manually the vhex call
<> vhex/dma
  | add DMA user-level API
  | add DMA user-level types
  | add DNA driver-level interface
<> vhex/driver/mpu/sh/sh7305
  | [dma] add hardware definition
  | [dma] prepare DMA driver definition (WIP)
  | [dma] add DMA driver declaration (WIP)
  | [dma] prepare DMA primitives     (WIP)
<> src/dma
  | wrap the DMA driver
  | expose the DMA user-level API
  | expose the DMA module

@update
<> board/fxcg50/fxcg50.ld
  | expose the two VRAM for the future frame render which use the triple
     buffering. For now, this method add ~347ko in the generated ELF, but it's a
     temporary.
<> driver/mpu/sh/sh7305
  | [intc] rename some kernel-level function
  | [intc] use the new vhex call mechanism instead of timer-specific indirect call
  | [intc] update the generic interrupt handler installation
  | [intc] isolate the generic interrupt handler
  | [rtc] use the new vhex call mechanism instead of rtc-specific indirect call
  | [keysc] use the new vhex call mechanism

@fix
<> src
  | [keyboard] fix key_t type definition
  | [keyboard] fix the driver priority
  | [timer] fix the driver priority
2022-08-11 19:21:02 +02:00