Difference between revisions of "Unit PlatformAARCH64"
(One intermediate revision by the same user not shown) | |||
Line 31: | Line 31: | ||
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>ATAG_INITRD = $54410005;</code> |
+ | | Deprecated | ||
+ | |- | ||
+ | | <code>ATAG_INITRD2 = $54420005;</code> | ||
| | | | ||
|- | |- | ||
Line 60: | Line 63: | ||
|- | |- | ||
| <code>DTB_SIGNATURE = $d00dfeed;</code> | | <code>DTB_SIGNATURE = $d00dfeed;</code> | ||
− | | style="width: 50%;"|See: https:// | + | | style="width: 50%;"|See: https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf |
|- | |- | ||
|} | |} | ||
Line 344: | Line 347: | ||
|colspan="2"|Note: Commandline for the kernel (ATAG_CMDLINE) | |colspan="2"|Note: Commandline for the kernel (ATAG_CMDLINE) | ||
|- | |- | ||
− | | <code>Cmdline:array[0..0] of | + | | <code>Cmdline:array[0..0] of AnsiChar;</code> |
| This is the minimum size | | This is the minimum size | ||
|- | |- | ||
Line 728: | Line 731: | ||
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
|- | |- | ||
− | | <code>TagCommandAddress: | + | | <code>TagCommandAddress:PAnsiChar;</code> |
| style="width: 40%;"|Pointer to the start of the command line | | style="width: 40%;"|Pointer to the start of the command line | ||
|- | |- | ||
Line 804: | Line 807: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <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: | + | <pre style="border: 0; padding-bottom:0px;">function ExtractCommandLine(Value:PAnsiChar):Boolean;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | <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;"> |
Latest revision as of 06:18, 6 September 2024
Return to Unit Reference
Contents
[hide]Description
Ultibo Platform Interface unit for AARCH64 (ARM64)
Constants
ATAG_*
DTB_*
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
Device tree blob header
AARCH64 wait
TAARCH64Wait = procedure;
|
AARCH64 long wait
TAARCH64LongWait = procedure;
|
AARCH64 short wait
TAARCH64ShortWait = procedure;
|
AARCH64 slow blink
TAARCH64SlowBlink = procedure;
|
AARCH64 fast blink
TAARCH64FastBlink = procedure;
|
Public variables
AARCH64 specific variables
AARCH64Initialized:Boolean;
|
AARCH64BootMode:LongWord = 0;
|
The ARM Mode that the processor was in at boot time (Set by Startup) |
AARCH64BootVectors:LongWord = 0;
|
The Vector Base Address that was current at boot time (Set by Startup) |
AARCH64TagsAddress:PtrUInt = ARMTAGS_INITIAL
|
Pointer to the ARM TAGS provided by the bootloader at startup (Set by Startup) |
AARCH64MachineType:LongWord = 0;
|
ARM Machine Type provided by the bootloader at startup (Set by Startup) |
AARCH64SecureBoot:LongWord = 1;
|
If 1 then startup will attempt to switch back to secure world during boot process (If supported by the AARCH64 boot stub) |
AARCH64EmulatorMode: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
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 RD
TagInitRdCount:LongWord;
|
Number of ARM INITRD Tags found during parse (Deprecated) |
Tag initialize RD2
TagInitRd2Count:LongWord;
|
Number of ARM INITRD2 Tags found during parse |
TagInitRd2Start:LongWord;
|
TagInitRd2Size:LongWord;
|
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:PAnsiChar;
|
Pointer to the start of the command line |
Wait handlers
AARCH64WaitHandler:TAARCH64Wait;
|
AARCH64LongWaitHandler:TAARCH64LongWait;
|
AARCH64ShortWaitHandler:TAARCH64ShortWait;
|
Blink handlers
AARCH64SlowBlinkHandler:TAARCH64SlowBlink;
|
AARCH64FastBlinkHandler:TAARCH64FastBlink;
|
Function declarations
Initialization functions
AARCH64 platform functions
procedure AARCH64ParseBootTags;
function ExtractInitialRamdisk(Address,Size:LongWord):Boolean;
procedure AARCH64ParseCommandLine;
procedure AARCH64ParseEnvironment;
function AARCH64GetSP:PtrUInt; assembler; nostackframe;
function AARCH64GetPC:PtrUInt; assembler; nostackframe;
function AARCH64GetIRQ:Boolean; assembler; nostackframe;
procedure AARCH64EnableIRQ; assembler; nostackframe;
procedure AARCH64DisableIRQ; assembler; nostackframe;
function AARCH64SaveIRQ:TIRQMask; assembler; nostackframe;
function AARCH64RestoreIRQ(IRQMask:TIRQMask):TIRQMask; assembler; nostackframe;
function AARCH64GetFIQ:Boolean; assembler; nostackframe;
procedure AARCH64EnableFIQ; assembler; nostackframe;
procedure AARCH64DisableFIQ; assembler; nostackframe;
function AARCH64SaveFIQ:TFIQMask; assembler; nostackframe;
function AARCH64RestoreFIQ(FIQMask:TFIQMask):TFIQMask; assembler; nostackframe;
procedure AARCH64EnableIRQFIQ; assembler; nostackframe;
procedure AARCH64DisableIRQFIQ; assembler; nostackframe;
function AARCH64SaveIRQFIQ:TIRQFIQMask; assembler; nostackframe;
function AARCH64RestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; assembler; nostackframe;
procedure AARCH64EnableAbort; assembler; nostackframe;
procedure AARCH64DisableAbort; assembler; nostackframe;
function AARCH64SaveAbort:TAbortMask; assembler; nostackframe;
function AARCH64RestoreAbort(AbortMask:TAbortMask):TAbortMask; assembler; nostackframe;
AARCH64 helper functions
Return to Unit Reference