qiling icon indicating copy to clipboard operation
qiling copied to clipboard

[Suggesstion] Make it easier to support more SoCs other than Cortex-M MCUs

Open dogtopus opened this issue 1 year ago • 2 comments

Is your feature request related to a problem? Please describe.

Currently the baremetal/MCU loader is more or less hardcoded for Cortex-M systems with a bunch of system-specific assumptions present (e.g. NVIC, reset vector offset, OS guessing only works with Cortex-M, etc.). It would be nice to be able to easily add support for any SoC with MMIO or even in/out I/Os (for e.g. x86 and AVR). Also it would be nice if it's possible to easily define the size of external RAM for some SoCs the same way like with OS emulation.

I assume this might be already in the works judging from the RISC-V MCU examples that won't run.

Describe the solution you'd like

  • Either make the MCU target more generic, or have a clean interface for future new targets targeting other SoCs, with some level of code reuse for e.g. MMIO.
  • Possibly adding APIs for I/O modes other than MMIO.
  • Unified naming convention for defining external memory size, probably with a default.

dogtopus avatar Sep 05 '22 21:09 dogtopus

there will be some clean up we need to do.

will you be able to help out ?

xwings avatar Oct 06 '22 02:10 xwings

Whether the script file can be used to define different MCU, so people who like me don't understand the hole framework can be use it,

wllis avatar Dec 03 '22 17:12 wllis