mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-23 12:35:41 +00:00
Driver definitions which are used by kernel/core in base-hw, and also by other drivers (e.g. from the os repository) have to reside in the generic base-repository, for instance some uart drivers. All drivers which are interesting for one of the sites only (sp804 for timer driver, or cortex_a9 cpu driver for base-hw) should reside in the respective repos. Factorize cpu context out of Cortex A9 specific definitions. Moreover, there is already a Cpu_state object containing all common ARM registers. We use this as a base for the cpu context switching done by the base-hw kernel. The Cpu_state class get extended by a cpu-exception field, that stores the kind of exception raised when the corresponding context got interrupted. This information is used not only by the base-hw kernel, but also by the TrustZone VMM that is build currently.
This is generic part of the Genode implementation. It consists of two parts: :_Core_: is the ultimate root of the Genode application tree and provides abstractions for the lowest-level hardware resources such as RAM, ROM, CPU, and generic device access. All generic parts of Core can be found here - for system-specific implementations refer to the appropriate 'base-<system>' directory. :_Base libraries and protocols_: that are used by each Genode component to interact with other components. This is the glue that holds everything together.