FreeNOS
|
Input/Output operations specific to the ARM architecture. More...
#include <ARMIO.h>
Public Member Functions | |
void | write (u32 reg, u32 data) |
write to memory mapped I/O register More... | |
u32 | read (u32 reg) const |
read from memory mapped I/O register More... | |
void | read (Address addr, Size count, void *buf) const |
Read a number of 32-bit values. More... | |
void | write (Address addr, Size count, const void *buf) |
Write a number of 32-bit values. More... | |
void | set (Address addr, u32 data) |
Set bits in memory mapped register. More... | |
void | unset (Address addr, u32 data) |
Unset bits in memory mapped register. More... | |
Public Member Functions inherited from IO | |
IO () | |
Constructor. More... | |
Address | getBase () const |
Get memory I/O base offset. More... | |
void | setBase (const Address base) |
Set memory I/O base offset. More... | |
Result | map (Address phys, Size size=4096, Memory::Access access=Memory::Readable|Memory::Writable|Memory::User) |
Map I/O address space. More... | |
Result | unmap () |
Unmap I/O address space. More... | |
Additional Inherited Members | |
Public Types inherited from IO | |
enum | Result { Success, MapFailure, OutOfMemory } |
Result codes. More... | |
Protected Attributes inherited from IO | |
Address | m_base |
memory I/O base offset is added to each I/O address. More... | |
Memory::Range | m_range |
Memory range for performing I/O mappings. More... | |
read from memory mapped I/O register
reg | Address to read |
Definition at line 62 of file ARMIO.h.
References dmb(), and IO::m_base.
Referenced by ARMGenericInterrupt::ARMGenericInterrupt(), ARMGenericInterrupt::clear(), Sun8iEmac::getAddress(), Broadcom2836::getCoreTimerIrqStatus(), PL011::interrupt(), Sun8iEmac::interrupt(), BroadcomInterrupt::isTriggered(), Sun8iEmac::miiBusyWait(), Sun8iEmac::miiRead(), ARMGenericInterrupt::nextPending(), Sun8iEmac::printRx(), Sun8iEmac::printTx(), read(), PL011::read(), MemoryChannel::read(), BroadcomMailbox::read(), NS16550::read(), MemoryChannel::reset(), Sun8iEmac::reset(), set(), NS16550::setDivisorLatch(), BroadcomTimer::setFrequency(), SunxiSystemControl::setupEmac(), BroadcomTimer::tick(), unset(), MemoryChannel::write(), PL011::write(), BroadcomMailbox::write(), and NS16550::write().
Set bits in memory mapped register.
addr | Address of the register to write. |
data | 32-bit value containing the bits to set (bitwise or). |
Definition at line 109 of file ARMIO.h.
References read(), and write().
Referenced by SunxiCpuConfig::boot(), SunxiClockControl::deassert(), ARMGenericInterrupt::disable(), SunxiClockControl::enable(), ARMGenericInterrupt::enable(), Sun8iEmac::reset(), BroadcomGPIO::setAltFunction(), Broadcom2836::setCoreTimerIrq(), and Sun8iEmac::startDMA().
Unset bits in memory mapped register.
addr | Address of the register to write. |
data | 32-bit value containing the bits to set (bitwise or). |
Definition at line 122 of file ARMIO.h.
References read(), and write().
Referenced by SunxiCpuConfig::boot(), SunxiPowerManagement::powerOnCore(), and Broadcom2836::setCoreTimerIrq().
write to memory mapped I/O register
Definition at line 46 of file ARMIO.h.
References dmb(), and IO::m_base.
Referenced by SunxiCpuConfig::boot(), BroadcomInterrupt::BroadcomInterrupt(), ARMGenericInterrupt::clear(), BroadcomInterrupt::disable(), BroadcomInterrupt::enable(), PL011::initialize(), NS16550::initialize(), BroadcomMailbox::initialize(), ARMGenericInterrupt::initialize(), PL011::interrupt(), NS16550::interrupt(), Sun8iEmac::interrupt(), Sun8iEmac::miiRead(), Sun8iEmac::miiWrite(), SunxiPowerManagement::powerOnCore(), PL011::read(), MemoryChannel::read(), NS16550::read(), Sun8iEmac::reset(), Sun8iEmac::resetReceive(), Sun8iEmac::resetTransmit(), ARMGenericInterrupt::send(), set(), Sun8iEmac::setAddress(), NS16550::setDivisorLatch(), BroadcomTimer::setFrequency(), SunxiSystemControl::setupEmac(), BroadcomTimer::tick(), unset(), write(), MemoryChannel::write(), PL011::write(), BroadcomMailbox::write(), and NS16550::write().