28 ERROR(
"failed to map I/O memory");
37 ERROR(
"failed to initialize power management module: " << (
uint)r);
void set(Address addr, u32 data)
Set bits in memory mapped register.
void unset(Address addr, u32 data)
Unset bits in memory mapped register.
void write(u32 reg, u32 data)
write to memory mapped I/O register
List< uint > m_cores
List of core ids found.
void setBase(const Address base)
Set memory I/O base offset.
Result map(Address phys, Size size=4096, Memory::Access access=Memory::Readable|Memory::Writable|Memory::User)
Map I/O address space.
Address getBase() const
Get memory I/O base offset.
void append(T t)
Insert an item at the end of the list.
static const Address IOBase
Physical base memory address of CPU Configuration Module.
virtual Result discover()
Discover processors.
virtual Result initialize()
Perform initialization.
Arch::IO m_io
Memory I/O object.
virtual Result boot(CoreInfo *info)
Boot a processor.
SunxiPowerManagement m_power
Power Management module.
@ Cpu1RstCtrl
CPU#1 Reset Control.
@ Cpu2RstCtrl
CPU#2 Reset Control.
@ GenCtrl
General Control.
@ Cpu0RstCtrl
CPU#0 Reset Control.
@ Cpu3RstCtrl
CPU#3 Reset Control.
@ DbgExtern
Debug External.
@ EntryAddr
Reset Entry Address.
static const Size NumberOfCores
Number of CPU processor cores is fixed.
Result powerOnCore(const Size coreId)
Power on a processor.
Result initialize()
Perform initialization.
#define PAGESIZE
ARM uses 4K pages.
unsigned int u32
Unsigned 32-bit number.
#define ERROR(msg)
Output an error message.
unsigned int uint
Unsigned integer number.
unsigned int Size
Any sane size indicator cannot go negative.
#define DEBUG(msg)
Output a debug message to standard output.
Per-Core information structure.
uint coreId
Core identifier.
Address kernelEntry
Kernel entry point.