Go to the documentation of this file.
18 #include <FreeNOS/User.h>
19 #include <FreeNOS/API.h>
44 ERROR(
"failed to register SGI vector: "
45 "ProcessCtl(WatchIRQ) returned: " << (
uint)r);
52 ERROR(
"failed to initialize CPU configuration module: " <<
106 ERROR(
"failed to discover cores");
Result
Enumeration of generic kernel API result codes.
virtual Result initialize()
Initialize the server.
virtual void waitIPI() const
Wait for Inter-Processor-Interrupt.
unsigned long Address
A memory address.
Memory::Range memory
Defines the physical memory available to the core.
virtual Result initialize()
Perform initialization.
virtual Result boot(CoreInfo *info)
Boot a processor.
API::Result ProcessCtl(const ProcessID proc, const ProcessOperation op, const Address addr=0, const Address output=0)
Prototype for user applications.
Implements a CoreServer for ARM/Allwinner (sunxi) based System-on-Chips.
virtual Result initialize()
Initialize the server.
unsigned int uint
Unsigned integer number.
Represents a single Core in a Central Processing Unit (CPU).
SunxiCoreServer()
Class constructor function.
Address phys
Physical address.
static const Address SecondaryCoreInfoAddress
Physical memory address for CoreInfo passed to secondary cores during bootup.
static const Address SecondaryCoreInfoOffset
Offset of the CoreInfo struct relative to the kernel's physical base address.
static T * create()
Abstract function to create an instance of T.
virtual Core::Result discoverCores()
Discover processor cores.
Per-Core information structure.
Result
Result code for Actions.
SunxiCpuConfig m_cpuConfig
CPU Configuration Module instance.
#define ERROR(msg)
Output an error message.
static const Size SoftwareInterruptNumber
Software Generated Interrupt number for sending/receiving between cores.
virtual Core::Result bootCore(uint coreId, CoreInfo *info)
Boot a processor core.
API::Result VMCopy(const ProcessID proc, const API::Operation how, const Address ours, const Address theirs, const Size sz)
Prototype for user applications.
virtual Result discover()
Discover processors.
virtual Core::Result sendIPI(uint coreId)
Send Inter-Processor-Interrupt.