Difference between revisions of "Unit PlatformARM"
Line 826: | Line 826: | ||
<pre style="border: 0; padding-bottom:0px;">procedure ARMParseBootTags;</pre> | <pre style="border: 0; padding-bottom:0px;">procedure ARMParseBootTags;</pre> | ||
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Extract some information from the ARM boot tag list and use it to load the memory manager, some other information is stored in variables for future use</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Extract some information from the ARM boot tag list and use it to load the memory manager, some other information is stored in variables for future use</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function ExtractCommandLine(Value:PChar):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function ExtractMemoryBlock(Address,Size:LongWord):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function ExtractInitialRamdisk(Address,Size:LongWord):Boolean;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" |
Revision as of 04:28, 29 October 2021
Return to Unit Reference
Contents
[hide]Description
Ultibo Platform Interface unit for ARM
Constants
ARM_MODE_*
ARM_I_*
ARM_*_BIT
ARM_A_*
ATAG_*
ARM_MACHINE_*
Type definitions
ARM boot tag header
ARM tag core
ARM tag memory
ARM tag video text
ARM tag ramdisk
ARM tag initialize ramdisk
ARM tag serial
ARM tag revision
ARM tag video framebuffer
ARM tag command
ARM boot tag
ARM wait
TARMWait = procedure;
|
ARM long wait
TARMLongWait = procedure;
|
ARM short wait
TARMShortWait = procedure;
|
ARM slow blink
TARMSlowBlink = procedure;
|
ARM fast blink
TARMFastBlink = procedure;
|
Public variables
ARM specific variables
ARMInitialized:Boolean;
|
ARMBootMode:LongWord = 0;
|
The ARM Mode that the processor was in at boot time (Set by Startup) |
ARMBootVectors:LongWord = 0;
|
The Vector Base Address that was current at boot time (Set by Startup) |
ARMTagsAddress:PtrUInt = ARMTAGS_INITIAL;
|
Pointer to the ARM TAGS provided by the bootloader at startup (Set by Startup) |
ARMMachineType:LongWord = 0;
|
ARM Machine Type provided by the bootloader at startup (Set by Startup) |
ARMSecureBoot:LongWord = 1;
|
If 1 then startup will attempt to switch back to secure world during boot process (If supported by the ARM boot stub) |
ARMEmulatorMode:LongWord = 0;
|
If 1 then startup detected that the machine is running in an emulator (If applicable)
Note: These variables must be initialized to remain in .data or else they are rewritten to zero with .bss |
ARM tags
ARMTagsCount:LongWord;
|
Number of ARM Tags found during parse |
Tag none variables
TagNoneCount:LongWord;
|
Number of ARM NONE Tags found during parse |
Tag core
TagCoreCount:LongWord;
|
Number of ARM CORE Tags found during parse |
TagCoreFlags:LongWord;
|
TagCorePageSize:LongWord;
|
TagCoreRootDevice:LongWord;
|
Tag memory
TagMemoryCount:LongWord;
|
Number of ARM MEM Tags found during parse |
TagMemorySize:LongWord;
|
Size of the last block reported by ARM Tags |
TagMemoryStart:PtrUInt;
|
Start of the last block reported by ARM Tags |
TagMemoryLength:LongWord;
|
Adjusted Size of the last block reported by ARM Tags |
TagMemoryAddress:PtrUInt;
|
Adjusted Address of the last block reported by ARM Tags |
Tag video text
TagVideoTextCount:LongWord;
|
Number of ARM VIDEOTEXT Tags found during parse |
Tag ramdisk
TagRamdiskCount:LongWord;
|
Number of ARM RAMDISK Tags found during parse |
Tag initialize RD2
TagInitRd2Count:LongWord;
|
Number of ARM INITRD2 Tags found during parse |
Tag serial
TagSerialCount:LongWord;
|
Number of ARM SERIAL Tags found during parse |
TagSerialNoLow:LongWord;
|
TagSerialNoHigh:LongWord;
|
Tag revision
TagRevisionCount:LongWord;
|
Number of ARM REVISION Tags found during parse |
TagRevisionNo:LongWord;
|
Tag video framebuffer
TagVideoFBCount:LongWord;
|
Number of ARM VIDEOLFB Tags found during parse |
Tag command
TagCmdCount:LongWord;
|
Number of ARM CMDLINE Tags found during parse |
TagCommandSize:LongWord;
|
Length of the command line in characters (Including null terminator) |
TagCommandCount:LongInt;
|
Count of parameters (space delimited) in the command line |
TagCommandAddress:PChar;
|
Pointer to the start of the command line |
Wait handlers
ARMWaitHandler:TARMWait;
|
ARMLongWaitHandler:TARMLongWait;
|
ARMShortWaitHandler:TARMShortWait;
|
Blink handlers
ARMSlowBlinkHandler:TARMSlowBlink;
|
ARMFastBlinkHandler:TARMFastBlink;
|
Function declarations
Initialization functions
ARM platform functions
procedure ARMParseBootTags;
function ExtractInitialRamdisk(Address,Size:LongWord):Boolean;
procedure ARMParseCommandLine;
procedure ARMParseEnvironment;
function ARMGetSP:PtrUInt; assembler; nostackframe;
function ARMGetPC:PtrUInt; assembler; nostackframe;
function ARMGetIRQ:Boolean; assembler; nostackframe;
procedure ARMEnableIRQ; assembler; nostackframe;
procedure ARMDisableIRQ; assembler; nostackframe;
function ARMSaveIRQ:TIRQMask; assembler; nostackframe;
function ARMRestoreIRQ(IRQMask:TIRQMask):TIRQMask; assembler; nostackframe;
function ARMGetFIQ:Boolean; assembler; nostackframe;
procedure ARMEnableFIQ; assembler; nostackframe;
procedure ARMDisableFIQ; assembler; nostackframe;
function ARMSaveFIQ:TFIQMask; assembler; nostackframe;
function ARMRestoreFIQ(FIQMask:TFIQMask):TFIQMask; assembler; nostackframe;
procedure ARMEnableIRQFIQ; assembler; nostackframe;
procedure ARMDisableIRQFIQ; assembler; nostackframe;
function ARMSaveIRQFIQ:TIRQFIQMask; assembler; nostackframe;
function ARMRestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; assembler; nostackframe;
procedure ARMEnableAbort; assembler; nostackframe;
procedure ARMDisableAbort; assembler; nostackframe;
function ARMSaveAbort:TAbortMask; assembler; nostackframe;
function ARMRestoreAbort(AbortMask:TAbortMask):TAbortMask; assembler; nostackframe;
ARM helper functions
Return to Unit Reference