Difference between revisions of "Unit GlobalConfig"
(105 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
=== Description === | === Description === | ||
---- | ---- | ||
+ | |||
+ | '''Ultibo Global Configuration Defaults unit''' | ||
The GlobalConfig unit contains variables used throughout Ultibo core to provide configuration and parameters to common modules and sub systems. Many of these variables may also be passed on the command line as [[Environment_Variables|environment variables]] to customize the behavior of Ultibo core without needing to recompile the application. This unit also includes a small number of widely used common functions. | The GlobalConfig unit contains variables used throughout Ultibo core to provide configuration and parameters to common modules and sub systems. Many of these variables may also be passed on the command line as [[Environment_Variables|environment variables]] to customize the behavior of Ultibo core without needing to recompile the application. This unit also includes a small number of widely used common functions. | ||
Line 20: | Line 22: | ||
---- | ---- | ||
− | |||
− | : <code>GetLastErrorHandler:TGetLastError;</code> | + | '''Compiler and RTL configuration''' |
− | : <code>SetLastErrorHandler:TSetLastError;</code> | + | |
+ | '''''Kernel image sections''''' | ||
+ | |||
+ | Note: To access these from Pascal code use the address of the variable (eg @_bss_start). Empty record definition prevents access to contents. | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_text_start: record end; external name '_text_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_etext: record end; external name '_etext';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_data: record end; external name '_data';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_edata: record end; external name '_edata';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_bss_start: record end; external name '_bss_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>_bss_end: record end; external name '_bss_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Library initialization and finalization sections''''' | ||
+ | |||
+ | Note: To access these from Pascal code use the address of the variable (eg @__ctors_start). Empty record definition prevents access to contents. | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__preinit_array_start: record end; external name '__preinit_array_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__preinit_array_end: record end; external name '__preinit_array_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__init_array_start: record end; external name '__init_array_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__init_array_end: record end; external name '__init_array_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__fini_array_start: record end; external name '__fini_array_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__fini_array_end: record end; external name '__fini_array_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__ctors_start: record end; external name '__ctors_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__ctors_end: record end; external name '__ctors_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__dtors_start: record end; external name '__dtors_start';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>__dtors_end: record end; external name '__dtors_end';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''RTL initial heap allocation''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RtlHeapAddr:record end; external name '__fpc_initialheap';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RtlHeapSize:PtrInt; external name '__heapsize';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''RTL error handling''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RtlErrorBase:Pointer; external name 'FPC_ERRORBASE';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''RTL initialization''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RtlInitFinalTable:record end; external name 'INITFINAL';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Memory and peripheral mapping configuration''' | ||
+ | |||
+ | '''''Physical to IO address mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IO_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base for conversion from a Physical Address to an IO Address and back (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IO_ALIAS:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The alias for conversion from a Physical Address to an IO Address and back (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Physical to bus address mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BUS_ALIAS:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The mask for conversion from a Physical Address to a Bus Address and back (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''IO base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IO_LIMIT:UInt64;</code> | ||
+ | | style="width: 40%;"|The maximum range for an IO Address (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Secure boot''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SECURE_BOOT:LongBool;</code> | ||
+ | | style="width: 40%;"|True if the boot process occurs in secure mode (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Emulator mode''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EMULATOR_MODE:LongBool;</code> | ||
+ | | style="width: 40%;"|True if the boot process determines the machine is emulated (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Startup handler address''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>STARTUP_ADDRESS:LongWord;</code> | ||
+ | | style="width: 40%;"|The physical address of the Startup Handler on Reset | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Memory base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address for useable board memory | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_SIZE:UInt64;</code> | ||
+ | | style="width: 40%;"|The size of the useable board address space | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_PAGE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of a memory page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_LARGEPAGE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of a large memory page (Where applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_SECTION_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of a memory section (Where applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_LARGESECTION_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of a large memory section (Where applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Memory sizes''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_IRQ_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered IRQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_FIQ_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered FIQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_LOCAL_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered local memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_SHARED_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered shared memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_DEVICE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered device memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_NOCACHE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered non cacheable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MEMORY_NONSHARED_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the registered non shareable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Peripheral base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PERIPHERALS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address for accessing Peripherals | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PERIPHERALS_SIZE:UInt64;</code> | ||
+ | | style="width: 40%;"|The size of the Peripheral address space | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Local peripheral base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOCAL_PERIPHERALS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address for accessing Local Peripherals (Peripherals local to each CPU) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOCAL_PERIPHERALS_SIZE:UInt64;</code> | ||
+ | | style="width: 40%;"|The size of the Local Peripheral address space | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Page table levels''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLE_LEVELS:LongWord = 2;</code> | ||
+ | | style="width: 40%;"|The number of Page Table levels for the current platform (Default 2) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Page directory base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_DIRECTORY_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address of the first level Page Directory (Where applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_DIRECTORY_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the first level Page Directory address space (Where applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Page table base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLE_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address of the first or second level Page Table | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the first or second level Page Table address space | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Second level page tables''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_ADDRESS:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address of the second or third level Page Tables | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_LENGTH:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the second or third level Page Table address space (Rounded to Page Size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|How many second or third level Page Tables allocated at this address | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_SHIFT:LongWord;</code> | ||
+ | | style="width: 40%;"|The multiplier (left shift) to convert count to size (PAGE_TABLES_COUNT shl PAGE_TABLES_SHIFT = Actual Size) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_NEXT:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address of the next available second or third level Page Table | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_USED:LongWord;</code> | ||
+ | | style="width: 40%;"|How many second or third level Page Tables are in use (During boot this will be set to the number required to cover the code and data plus initial stack, heap and overhead) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PAGE_TABLES_FREE:LongWord = 1024;</code> | ||
+ | | style="width: 40%;"|How many second or third level Page Tables are available (The initial value here will be added to the number calculated during boot to provide extras for page allocation) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Vector table base mapping''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VECTOR_TABLE_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address of the Interrupt Vector Table | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VECTOR_TABLE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the Interrupt Vector Table address space | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VECTOR_TABLE_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of entries in the Interrupt Vector Table | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Machine and board configuration''' | ||
+ | |||
+ | '''''Machine configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MACHINE_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Board configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BOARD_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''CPU/FPU/GPU configuration''' | ||
+ | |||
+ | '''''CPU configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_ARCH:LongWord;</code> | ||
+ | | style="width: 40%;"|The current CPU architecture for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"|The current CPU model for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The current CPU count for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_MAX_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The maximum CPU count for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_BOOT:LongWord;</code> | ||
+ | | style="width: 40%;"|Which CPU is used for the boot process | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_MASK:LongWord;</code> | ||
+ | | style="width: 40%;"|The mask of current CPUs for scheduling affinity | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_MEMORY_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address for CPU memory | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_MEMORY_SIZE:UInt64;</code> | ||
+ | | style="width: 40%;"|The size of the CPU address space | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPU_MEMORY_RESTRICTED:LongBool;</code> | ||
+ | | style="width: 40%;"|Any areas of CPU address space with no physical memory are marked as no access | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''FPU configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FPU_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"|The current FPU type for this board | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''GPU configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPU_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"|The current GPU type for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPU_MEMORY_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base (Physical) address for GPU memory | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPU_MEMORY_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The size of the GPU address space | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPU_MEMORY_CACHED:LongBool;</code> | ||
+ | | style="width: 40%;"|The GPU memory is cached when accessed by the CPU | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''IRQ/FIQ/SWI configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The total number of IRQs supported for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The total number of FIQs supported for this board | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_START:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|The starting number for system wide IRQs/FIQs (Where Applicable)(Normally zero) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_ROUTING:LongWord = CPU_ID_ALL;</code> | ||
+ | | style="width: 40%;"|Which CPU to route system wide IRQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual IRQs to any CPU) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_ROUTING:LongWord = CPU_ID_ALL;</code> | ||
+ | | style="width: 40%;"|Which CPU to route system wide FIQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual FIQs to any CPU) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_LOCAL_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of local (Per CPU) IRQs supported for this board (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_LOCAL_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of local (Per CPU) FIQs supported for this board (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_LOCAL_START:LongWord;</code> | ||
+ | | style="width: 40%;"|The starting number for local (Per CPU) IRQs/FIQs (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_SOFTWARE_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of software (Per CPU) IRQs supported for this board (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_SOFTWARE_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of software (Per CPU) FIQs supported for this board (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_SOFTWARE_START:LongWord;</code> | ||
+ | | style="width: 40%;"|The starting number for software (Per CPU) IRQs/FIQs (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The total number of SWIs supported for this board (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Interrupt and exception configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Interrupt Requests (IRQ) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Fast Interrupt Requests (FIQ) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IPI_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Inter Processor Interrupts (IPI) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Software Interrupt Handlers (SWI) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ABORT_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Data and/or Prefetch Abort Handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UNDEFINED_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU supports Undefined Instruction Handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_STACK_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU uses an Interrupt Request Stack (IRQ) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_STACK_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU uses a Fast Interrupt Request Stack (FIQ) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_STACK_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU uses a Software Interrupt Stack (SWI) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ABORT_STACK_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU uses a Data and/or Prefetch Abort Stack | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UNDEFINED_STACK_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The current CPU uses an Undefined Instruction Stack | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Clock and timer configuration''' | ||
+ | |||
+ | '''''Clock configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_FREQUENCY:LongWord;</code> | ||
+ | | style="width: 40%;"|The frequency in Hz of the system timer used to provide the system clock (Clock cycles per second) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_TICKS_PER_SECOND:LongWord = 1000;</code> | ||
+ | | style="width: 40%;"|How many clock interrupts to schedule per second (1000 equals 1 per millisecond) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_TICKS_PER_MILLISECOND:LongWord = 1;</code> | ||
+ | | style="width: 40%;"|How many clock interrupts occur every millisecond (Normally 1 if CLOCK_TICKS_PER_SECOND is 1000) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_CYCLES_PER_TICK:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles between clock interrupts (Normally CLOCK_FREQUENCY div CLOCK_TICKS_PER_SECOND) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_CYCLES_PER_MILLISECOND:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles to a millisecond (Normally CLOCK_FREQUENCY div MILLISECONDS_PER_SECOND) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_CYCLES_PER_MICROSECOND:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles to a microsecond (Normally CLOCK_FREQUENCY div MICROSECONDS_PER_SECOND) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_CYCLES_PER_NANOSECOND:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles to a nanosecond (Normally CLOCK_FREQUENCY div NANOSECONDS_PER_SECOND) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_CYCLES_TOLERANCE:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles tolerance when scheduling the next clock interrupt (Normally CLOCK_CYCLES_PER_TICK div 10) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CLOCK_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The Clock uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIME_TICKS_PER_CLOCK_INTERRUPT:LongWord;</code> | ||
+ | | style="width: 40%;"|How many 100 nanosecond time ticks per clock interrupt | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Timer configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMER_THREAD_COUNT:LongWord = 4;</code> | ||
+ | | style="width: 40%;"|How many timer threads to create | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMER_PRIORITY_THREAD_COUNT:LongWord = 1;</code> | ||
+ | | style="width: 40%;"|How many priority timer threads to create | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;</code> | ||
+ | | style="width: 40%;"|Maximum number of messages for the timer messageslot | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Worker configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WORKER_THREAD_COUNT:LongWord = 8;</code> | ||
+ | | style="width: 40%;"|How many worker threads to create | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WORKER_PRIORITY_THREAD_COUNT:LongWord = 2;</code> | ||
+ | | style="width: 40%;"|How many priority worker threads to create | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WORKER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;</code> | ||
+ | | style="width: 40%;"|Maximum number of messages for the worker messageslot | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Spin, mutex, semaphore, critical section, event and buffer configuration''' | ||
+ | |||
+ | '''''Spin defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIN_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Spin locks are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Mutex defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MUTEX_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Mutexs are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MUTEX_DEFAULT_SPINCOUNT:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Default number of times a mutex will spin before yielding (Overidden to 0 if CPU count equals 1) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Semaphore defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SEMAPHORE_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Semaphores are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SEMAPHORE_DEFAULT_MAXIMUM:LongWord = $FFFFFFFF;</code> | ||
+ | | style="width: 40%;"|Default maximum count for a seamphore | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Synchronizer defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYNCHRONIZER_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Synchronizers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Condition defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONDITION_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Condition variables are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Completion defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>COMPLETION_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Completion variables are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Critical section defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CRITICAL_SECTION_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Critical Sections are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CRITICAL_SECTION_DEFAULT_SPINCOUNT:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Default number of times a critical section will spin before waiting (Overidden to 0 if CPU count equals 1) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Messageslot defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MESSAGESLOT_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Messageslots are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MESSAGESLOT_DEFAULT_MAXIMUM:LongWord = SIZE_1K;</code> | ||
+ | | style="width: 40%;"|Default maximum number of messages that can be stored in a messageslot | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Mailslot defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MAILSLOT_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Mailslots are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Buffer defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BUFFER_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BUFFER_MIN_SIZE:LongWord = SizeOf(Pointer);</code> | ||
+ | | style="width: 40%;"|Minimum size of an item in a buffer | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BUFFER_MAX_SIZE:LongWord = SIZE_4K;</code> | ||
+ | | style="width: 40%;"|Maximum size of an item in a buffer | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BUFFER_MAX_COUNT:LongWord = SIZE_8K;</code> | ||
+ | | style="width: 40%;"|Maximum number of items in a buffer | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Event defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EVENT_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Events are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Handle defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HANDLE_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Handles are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Heap, stack, and thread configuration''' | ||
+ | |||
+ | '''''Heap alignment''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);</code> | ||
+ | | style="width: 40%;"|The default alignment for the Heap Manager (Set by board specific initialization if not default)(Must be a power of 2) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_REQUEST_ALIGNMENT:LongWord = SIZE_4K;</code> | ||
+ | | style="width: 40%;"|The required alignment for Heap Manager requests (eg RequestSharedHeapBlock etc) (Set by board specific initialization if not default)(Must be a power of 2) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Heap behaviour''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_SHARED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Shared memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_LOCAL:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Local memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_CODE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Code memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_DEVICE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Device memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_NOCACHE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Non Cached memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_NORMAL_NONSHARED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Normal memory is considered Non Shared memory by the Heap Manager (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_LOCAL_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Local memory is considered cache coherent (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_IRQ_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then IRQ memory is considered cache coherent (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_FIQ_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then FIQ memory is considered cache coherent (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Heap locking''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HEAP_LOCK_SPIN:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then Heap lock uses Spin instead of Mutex (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Stack alignment''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>STACK_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);</code> | ||
+ | | style="width: 40%;"|The default alignment for Thread stacks (Set by board specific initialization if not default)(Must be a power of 2) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Threadvar alignment''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREADVAR_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);</code> | ||
+ | | style="width: 40%;"|The default alignment for Thread Vars (Set by board specific initialization if not default) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Initial heap allocation''''' (Used prior to Memory Manager initialization) | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_HEAP_SIZE:LongWord = SIZE_64K;</code> | ||
+ | | style="width: 40%;"|The size of the initial heap allocation (Set by board specific initialization if not default) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_HEAP_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the initial heap allocation (Set by StartupHandler) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Initial thread defaults''''' | ||
+ | |||
+ | (The first created thread for the primary CPU which becomes either IRQ_THREAD_HANDLE[CPU_ID_0] or FIQ_THREAD_HANDLE[CPU_ID_0]) | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_TLS_SIZE:LongWord = SIZE_16K;</code> | ||
+ | | style="width: 40%;"|Default TLS (Thread Var) block size for the Initial Thread (Calculated TLS size is used for all other threads) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for the Initial Thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_STACK_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the Initial Thread (Set by StartupHandler) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Boot thread defaults''''' | ||
+ | |||
+ | (The first created thread for each secondary CPU which becomes either IRQ_THREAD_HANDLE[CPUID] or FIQ_THREAD_HANDLE[CPUID]) | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BOOT_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for the Boot Threads | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BOOT_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the Boot Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BOOT_THREAD_HANDLE:array of TThreadHandle;</code> | ||
+ | | style="width: 40%;"|Handles of the Boot Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Idle thread defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IDLE_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for Idle Threads | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IDLE_THREAD_HANDLE:array of TThreadHandle;</code> | ||
+ | | style="width: 40%;"|Handles of the Idle Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''IRQ thread defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for IRQ Threads | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the IRQ Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_THREAD_HANDLE:array of TThreadHandle;</code> | ||
+ | | style="width: 40%;"|Handles of the IRQ Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''FIQ thread defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for FIQ Threads | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the FIQ Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_THREAD_HANDLE:array of TThreadHandle;</code> | ||
+ | | style="width: 40%;"|Handles of the FIQ Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''SWI thread defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_STACK_SIZE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|Default stack size for Software Interrupt Handlers (SWI) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the Software Interrupt Handlers (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_THREAD_HANDLE:array of TThreadHandle;</code> | ||
+ | | style="width: 40%;"|Handles of the Software Interrupt Handler (SWI) Threads (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Thread defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Threads are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_STACK_DEFAULT_SIZE:LongWord = SIZE_256K;</code> | ||
+ | | style="width: 40%;"|Default stack size for all threads (Unless specified during creation) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_STACK_MINIMUM_SIZE:LongWord = SIZE_4K;</code> | ||
+ | | style="width: 40%;"|Minimum thread stack size | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_STACK_MAXIMUM_SIZE:LongWord = SIZE_4M;</code> | ||
+ | | style="width: 40%;"|Maximum thread stack size | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_STACK_GUARD_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then each thread stack includes a guard page to detect stack overflows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_NAME_DEFAULT:String;</code> | ||
+ | | style="width: 40%;"|The default name for new threads | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>THREAD_MESSAGES_MAXIMUM:LongWord = SIZE_256;</code> | ||
+ | | style="width: 40%;"|Maximum number of messages that can be stored in a thread message list | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''ABORT stack defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ABORT_STACK_SIZE:LongWord = SIZE_4K;</code> | ||
+ | | style="width: 40%;"|Default stack size for Data and/or Prefetch Abort Handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ABORT_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the Data and/or Prefetch Abort Handlers (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''UNDEFINED stack defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UNDEFINED_STACK_SIZE:LongWord = SIZE_4K;</code> | ||
+ | | style="width: 40%;"|Default stack size for Undefined Instruction Handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UNDEFINED_STACK_BASE:array of PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address (Top) of the stack for the Undefined Instruction Handlers (One per CPU, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Scheduler configuration''' | ||
+ | |||
+ | '''''Scheduler defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_INTERRUPTS_PER_SECOND:LongWord = 1000;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts to schedule per second (1000 equals 1 per millisecond) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_INTERRUPTS_PER_MILLISECOND:LongWord = 1;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts occur every millisecond (Normally 1 if SCHEDULER_INTERRUPTS_PER_SECOND is 1000) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CLOCKS_PER_INTERRUPT:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles between scheduler interrupts (Normally CLOCK_FREQUENCY div SCHEDULER_INTERRUPTS_PER_SECOND) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CLOCKS_TOLERANCE:LongWord;</code> | ||
+ | | style="width: 40%;"|How many clock cycles tolerance when scheduling the next scheduler interrupt (Normally SCHEDULER_CLOCKS_PER_INTERRUPT div 10) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CPU_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The current CPU count used by the scheduler (Requested from CPUGetCount) (Set by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CPU_MASK:LongWord;</code> | ||
+ | | style="width: 40%;"|The current CPU mask used by the scheduler (Requested from CPUGetMask) (Set by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CPU_BOOT:LongWord;</code> | ||
+ | | style="width: 40%;"|The current boot CPU Id used by the scheduler (Requested from CPUGetBoot) (Set by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_CPU_RESERVE:LongWord;</code> | ||
+ | | style="width: 40%;"|The reserved CPU mask used by the scheduler, reserved CPUs will be marked as allocation disabled during boot (Default: 0) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_THREAD_QUANTUM:LongWord = 6;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts for the base thread quantum (Actual quantum is adjusted by priority) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_PRIORITY_QUANTUM:array of LongWord;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts to adjust the base thread quantum for each priority level (One per priority level, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_MIGRATION_QUANTUM:LongWord = 100;</code> | ||
+ | | style="width: 40%;"|How many scheduler thread switches between thread migration checks | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_STARVATION_QUANTUM:LongWord = 5;</code> | ||
+ | | style="width: 40%;"|How many scheduler thread switches between thread starvation checks | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_TERMINATION_INITIAL:LongWord = 100;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts to wait between thread termination and stack release | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_TERMINATION_QUANTUM:LongWord = 30000;</code> | ||
+ | | style="width: 40%;"|How many scheduler interrupts to wait between thread termination and thread destruction | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_MIGRATION_OFFSET:LongWord = 5;</code> | ||
+ | | style="width: 40%;"|The minimum offset between CPU thread counts for a migration to occur | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_PRIORITY_MASK:array of LongWord;</code> | ||
+ | | style="width: 40%;"|Mask value of each thread priority level used for determining highest priority thread (One per priority level, allocated by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The Scheduler uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_SWI_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The Scheduler uses Software Interrupts for rescheduling instead of direct context switch | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_SECONDARY_WAIT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True all secondary CPUs wait until initialization is completed | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_SECONDARY_DISABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True all secondary CPUs will be put to sleep during boot | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_IDLE_WAIT:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the idle loop will wait in low power state on each iteration (May affect utilization calculation) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_IDLE_OFFSET:LongWord;</code> | ||
+ | | style="width: 40%;"|Idle loop delay per iteration (Milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SCHEDULER_IDLE_PER_SECOND:LongWord;</code> | ||
+ | | style="width: 40%;"|How many idle loops complete in one second when no other tasks are running (Set by threads initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIME_TICKS_PER_SCHEDULER_INTERRUPT:LongWord;</code> | ||
+ | | style="width: 40%;"|How many 100 nanosecond time ticks per scheduler interrupt | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Device tree configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_TREE_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the device tree information (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_TREE_SIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The total size of the device tree information (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_TREE_VALID:LongBool;</code> | ||
+ | | style="width: 40%;"|True if the device tree information has a valid signature (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Peripheral configuration''' (Set by PeripheralInit) | ||
+ | |||
+ | '''''Peripheral addresses''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INTERRUPT_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the Interrupt Controller registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSTEMTIMER_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the System Timer registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMER_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the Timer registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIO_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the GPIO registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UART_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the primary UART registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPI_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the primary SPI registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2C_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the primary I2C registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2S_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the primary I2S registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWM_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the primary PWM registers (If Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''LED configuration''' (Set by specific PlatformInit) | ||
+ | |||
+ | '''''Power LED''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>POWER_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Pin for the Power LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>POWER_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Pull Select for the Power LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>POWER_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Function Select for the Power LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>POWER_LED_ACTIVE_LOW:LongBool;</code> | ||
+ | | style="width: 40%;"|If True the Power LED is Active Low (Clear Pin to Turn On) (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Activity LED''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ACTIVITY_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Pin for the Activity LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ACTIVITY_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Pull Select for the Activity LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ACTIVITY_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|The GPIO Function Select for the Activity LED (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ACTIVITY_LED_ACTIVE_LOW:LongBool;</code> | ||
+ | | style="width: 40%;"|If True the Activity LED is Active Low (Clear Pin to Turn On) (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Console and frameBuffer configuration''' | ||
+ | |||
+ | '''''Console''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_FORECOLOR:LongWord = COLOR_LIGHTGRAY;</code> | ||
+ | | style="width: 40%;"|The default foreground color for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_BACKCOLOR:LongWord = COLOR_BLACK;</code> | ||
+ | | style="width: 40%;"|The default background color for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_BORDERWIDTH:LongWord = 2;</code> | ||
+ | | style="width: 40%;"|The default border width for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_BORDERCOLOR:LongWord = COLOR_WHITE;</code> | ||
+ | | style="width: 40%;"|The default border color for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;</code> | ||
+ | | style="width: 40%;"|The default Font for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DEFAULT_FONT_NAME:String;</code> | ||
+ | | style="width: 40%;"|The default Font name for the console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_LINE_WRAP:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then wrap long lines to the next line when writing to the console (Sets CONSOLE_FLAG_LINE_WRAP on device/WINDOW_FLAG_LINE_WRAP on windows) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_AUTO_SCROLL:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then automatically scroll up on reaching the last line of the console (Sets CONSOLE_FLAG_AUTO_SCROLL on device/WINDOW_FLAG_AUTO_SCROLL on windows) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_FOCUS_CURSOR:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then cursor (caret) is only visible on the focused (active) window (Sets CONSOLE_FLAG_FOCUS_CARET on device / WINDOW_FLAG_FOCUS_CURSOR on windows) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_CURSOR_BLINK_RATE:LongWord = 500;</code> | ||
+ | | style="width: 40%;"|Blink rate (in milliseconds) of the console cursor (caret) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_BOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to draw console window boxes (Sets CONSOLE_FLAG_DMA_BOX on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_TEXT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to draw console window text (Sets CONSOLE_FLAG_DMA_TEXT on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_LINE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to draw console window lines (Sets CONSOLE_FLAG_DMA_LINE on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_FILL:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to fill console windows (Sets CONSOLE_FLAG_DMA_FILL on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_CLEAR:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to clear console windows (Sets CONSOLE_FLAG_DMA_CLEAR on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_DMA_SCROLL:LongBool = True; </code> | ||
+ | | style="width: 40%;"|If True then use DMA (If available) to scroll console windows (Sets CONSOLE_FLAG_DMA_SCROLL on device) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_REGISTER_LOGGING:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register a Console device as a Logging device (Only if Console unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_LOGGING_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then a Console device can be the default Logging device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_LOGGING_POSITION:LongWord = CONSOLE_POSITION_RIGHT;</code> | ||
+ | | style="width: 40%;"|The default Console Window position for the console Logging device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_LOGGING_DEVICE:String;</code> | ||
+ | | style="width: 40%;"|The console device Name (or Desription) to create the Logging window on, if blank create on default device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_CRT_POSITION:LongWord = CONSOLE_POSITION_FULL;</code> | ||
+ | | style="width: 40%;"|The default Console Window position for the CRT unit (Only if CRT unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_VIDEO_POSITION:LongWord = CONSOLE_POSITION_FULL;</code> | ||
+ | | style="width: 40%;"|The default Console Window position for the ConsoleVideo unit (Only if ConsoleVideo unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_VIDEO_DEVICE:String;</code> | ||
+ | | style="width: 40%;"|The console device Name (or Description) to create the ConsoleVideo window on, if blank create on default device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_VIDEO_WINDOW:THandle = INVALID_HANDLE_VALUE;</code> | ||
+ | | style="width: 40%;"|The console window used or created by the ConsoleVideo unit | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_VIDEO_FONT:String;</code> | ||
+ | | style="width: 40%;"|The font name to use for the ConsoleVideo window, if blank use the default font (Default8x16) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Window''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_FORECOLOR:LongWord = COLOR_DARKGRAY;</code> | ||
+ | | style="width: 40%;"|The default foreground color for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_BACKCOLOR:LongWord = COLOR_WHITE;</code> | ||
+ | | style="width: 40%;"|The default background color for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_BORDERWIDTH:LongWord = 2;</code> | ||
+ | | style="width: 40%;"|The default border width for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_BORDERCOLOR:LongWord = COLOR_MIDGRAY;</code> | ||
+ | | style="width: 40%;"|The default border color for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_ACTIVEBORDER:LongWord = COLOR_GRAY;</code> | ||
+ | | style="width: 40%;"|The default active border color for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;</code> | ||
+ | | style="width: 40%;"|The default Font for console windows | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINDOW_DEFAULT_FONT_NAME:String;</code> | ||
+ | | style="width: 40%;"|The default Font name for console windows | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Framebuffer console''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_CONSOLE_AUTOCREATE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto create a console on any framebuffer device (Only if Console unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPOFFSET:LongWord = 48;</code> | ||
+ | | style="width: 40%;"|The default desktop offset for the framebuffer console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPCOLOR:LongWord = COLOR_ULTIBO;</code> | ||
+ | | style="width: 40%;"|The default desktop color for the framebuffer console | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_CONSOLE_MESSAGE:String;</code> | ||
+ | | style="width: 40%;"|The message displayed in the top border of the framebuffer console | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Framebuffer''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_DEPTH:LongWord = FRAMEBUFFER_DEPTH_32;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer depth in bits per pixel | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_ORDER:LongWord = FRAMEBUFFER_ORDER_RGB;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer pixel order | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_MODE:LongWord = FRAMEBUFFER_MODE_ENABLED;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer alpha mode | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_WIDTH:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer width in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_HEIGHT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer height in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OFFSET_X:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Configured) Framebuffer X offset in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OFFSET_Y:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Configured) Framebuffer Y offset in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OVERSCAN_TOP:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer Top overscan in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OVERSCAN_BOTTOM:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer Bottom overscan in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OVERSCAN_LEFT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer Left overscan in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_OVERSCAN_RIGHT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer Right overscan in pixels | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FRAMEBUFFER_DEFAULT_ROTATION:LongWord = FRAMEBUFFER_ROTATION_0;</code> | ||
+ | | style="width: 40%;"|The default (Detected/Configured) Framebuffer rotation on degress (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Command line and environment configuration''' | ||
+ | |||
+ | '''''Command line''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KERNEL_NAME:PChar;</code> | ||
+ | | style="width: 40%;"|The name of the Kernel image (Returned by ParamStr(0) or argv[0]) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KERNEL_CONFIG:PChar;</code> | ||
+ | | style="width: 40%;"|The name of the Kernel configuration file (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KERNEL_COMMAND:PChar;</code> | ||
+ | | style="width: 40%;"|The name of the Kernel command line file (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIRMWARE_FILES:PChar;</code> | ||
+ | | style="width: 40%;"|The name of the Firmare files (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DTB_FILES:PChar;</code> | ||
+ | | style="width: 40%;"|The name of the Device Tree (DTB) files (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Environment''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ENVIRONMENT_STRING_COUNT:LongWord = SIZE_64;</code> | ||
+ | | style="width: 40%;"|How many strings are allocated in the environment block (for Get/SetEnvironmentVariable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Initial ramdisk''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_RAMDISK_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The starting address of the initial ramdisk passed from the bootloader (If applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>INITIAL_RAMDISK_SIZE:UInt64;</code> | ||
+ | | style="width: 40%;"|The size in bytes of the initial ramdisk passed from the bootloader (If applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Date and time configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSTEM_DATE_FORMAT:String = 'dd-mmm-yyyy';</code> | ||
+ | | style="width: 40%;"|Default format for date to string conversion (System functions only) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSTEM_TIME_FORMAT:String = 'hh:nn:ss.zzz';</code> | ||
+ | | style="width: 40%;"|Default format for time to string conversion (System functions only) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ISO_DATE_FORMAT:String = 'yyyy-mm-dd';</code> | ||
+ | | style="width: 40%;"|Format specified in ISO8601 for date to string conversion | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ISO_TIME_FORMAT:String = 'hh:nn:ss';</code> | ||
+ | | style="width: 40%;"|Format specified in ISO8601 for time to string conversion | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Timezone configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMEZONE_TIME_OFFSET:LongInt;</code> | ||
+ | | style="width: 40%;"|The current time offset between UTC and Local time (Minutes) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMEZONE_TIME_ADJUST:LongInt;</code> | ||
+ | | style="width: 40%;"|The current time offset between Local and Adjusted time (Minutes) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMEZONE_UPDATE_LAST:Int64;</code> | ||
+ | | style="width: 40%;"|The clock time of the last timezone update check | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMEZONE_UPDATE_CURRENT:LongBool;</code> | ||
+ | | style="width: 40%;"|If true then a timezone update check is in progress | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TIMEZONE_DEFAULT_NAME:String;</code> | ||
+ | | style="width: 40%;"|The name of the default timezone | ||
+ | |- | ||
+ | |} | ||
+ | '''DMA configuration''' | ||
+ | |||
+ | '''''DMA defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|DMA control blocks and DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|DMA control blocks and DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|DMA control blocks and DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Device configuration''' | ||
+ | |||
+ | '''''Device defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Devices are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_REGISTER_CLOCK:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the default clock device handlers (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_REGISTER_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the default timer device handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_REGISTER_RANDOM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the default random device handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_REGISTER_MAILBOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the default mailbox device handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_REGISTER_WATCHDOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the default watchdog device handlers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DEVICE_FIRMWARE_PATH:String = 'C:\firmware';</code> | ||
+ | | style="width: 40%;"|The default path for loading device specific firmware (If applicable) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Driver configuration''' | ||
+ | |||
+ | '''''Driver defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DRIVER_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Drivers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Host configuration''' | ||
+ | |||
+ | '''''Host defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HOST_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|Hosts are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Serial configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SERIAL_REGISTER_LOGGING:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register a Serial device as a Logging device (Only if Serial unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SERIAL_LOGGING_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then a Serial device can be the default Logging device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SERIAL_LOGGING_PARAMETERS:String = '0,N,8,1';</code> | ||
+ | | style="width: 40%;"|The default serial settings for the serial logging device (BaudRate,Parity,DataBits,StopBits)(BaudRate 0 equals use default rate) | ||
+ | |- | ||
+ | |} | ||
+ | '''Logging configuration''' | ||
+ | |||
+ | '''''Logging defaults''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_DIRECT_ENABLE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then logging output is written directly and not scheduled via the logging thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_INCLUDE_COUNTER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then logging output includes an incrementing counter to detect missed entries | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_INCLUDE_DATE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then logging output includes the current date for each entry | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_INCLUDE_TIME:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then logging output includes the current time for each entry | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_INCLUDE_DATETIME:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then logging output includes the current date and time for each entry | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_INCLUDE_TICKCOUNT:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then logging output includes the 64-bit tick count value for each entry | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOGGING_MESSAGESLOT_MAXIMUM:LongWord = SIZE_8K;</code> | ||
+ | | style="width: 40%;"|Maximum number of messages for the logging messageslot | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Syscalls configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSCALLS_HEAP_BASE:PtrUInt = $C0000000;</code> | ||
+ | | style="width: 40%;"|The starting address for the dynamic C library heap space (Only if Syscalls unit included)(0 equals use static heap space only) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSCALLS_HEAP_MIN:LongWord = SIZE_2M;</code> | ||
+ | | style="width: 40%;"|The minimum size of the dynamic C library heap space (Only if Syscalls unit included)(Or the total size if using static heap space) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSCALLS_HEAP_MAX:UInt64 = SIZE_1G;</code> | ||
+ | | style="width: 40%;"|The maximum size of the dynamic C library heap space (Only if Syscalls unit included)(Ignored if using static heap space only) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSCALLS_HEAP_BLOCKSIZE:LongWord = SIZE_1M;</code> | ||
+ | | style="width: 40%;"|The block size to request from the heap manager on each expansion of the dynamic C library heap space (Only if Syscalls unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Generic Peripheral configuration''' (Set by PeripheralInit) | ||
+ | |||
+ | '''''GPIO''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIO_PIN_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of GPIO pins available on this board | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Virtual GPIO''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VIRTUAL_GPIO_PIN_COUNT:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of Virtual GPIO pins available on this board | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Keyboard''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYBOARD_NUM_LOCK_DEFAULT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then set Num Lock to On by default for all keyboards (Default: True) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYBOARD_CAPS_LOCK_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then set Caps Lock to On by default for all keyboards | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYBOARD_SCROLL_LOCK_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then set Scroll Lock to On by default for all keyboards | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYBOARD_CTRL_ALT_IS_ALTGR:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then pressing Ctrl+Alt acts as the AltGr key | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYBOARD_SHIFT_IS_CAPS_LOCK_OFF:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then pressing Shift turns Off Caps Lock | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Mouse''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MOUSE_SWAP_BUTTONS_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then set Swap Buttons (Left <-> Right) to On by default for all mice | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Touch''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TOUCH_MOUSE_DATA_DEFAULT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then set all touch devices to add mouse data events for compatibility (Default: True) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''HID''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_REGISTER_KEYBOARD:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the HID keyboard consumer during boot (Only if HIDKeyboard unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_REGISTER_MOUSE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the HID mouse consumer during boot (Only if HIDMouse unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_REGISTER_TOUCH:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the HID touch consumer during boot (Only if HIDTouch unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_REGISTER_JOYSTICK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the HID joystick consumer during boot (Only if HIDJoystick unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_REGISTER_GAMEPAD:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the HID gamepad consumer during boot (Only if HIDGamepad unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HID_MOUSE_REJECT_TOUCH:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the HID mouse consumer should reject devices that include a touch screen collection | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''PCI''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PCI_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the PCI subsystem on boot (Only if PCI unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PCI_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PCI_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the PCI subsystem on boot (Only if PCI_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PCI_SCAN_ALL_PCIE_DEVICES:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then PCI device scan will scan all PCIe slots instead of just slot 0 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the USB subsystem on boot (Only if USB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the USB subsystem on boot (Only if USB_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for USB DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for USB DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|USB DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|USB DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|USB DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|USB DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''MMC''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the MMC/SD subsystem on boot (Only if MMC unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the MMC/SD subsystem on boot (Only if MMC_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for MMC DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for MMC DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|MMC DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|MMC DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|MMC DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMC_DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|MMC DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB hub''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_HUB_MESSAGESLOT_MAXIMUM:LongWord = SIZE_512;</code> | ||
+ | | style="width: 40%;"|Maximum number of messages for the USB hub messageslot | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_HUB_REGISTER_DRIVER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the USB HUB driver during boot (Only if USB unit included) Note: USB cannot function correctly without a hub driver | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB HID''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_HID_REGISTER_DRIVER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the USB HID driver during boot (Only if USBHID unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB keyboard''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_KEYBOARD_POLLING_INTERVAL:LongWord = 10;</code> | ||
+ | | style="width: 40%;"|Override the default polling interval for a USB keyboard (Milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_KEYBOARD_REGISTER_DRIVER:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the USB Keyboard driver during boot (Only if Keyboard unit included) Note: Replaced by USB HID driver | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB mouse''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_MOUSE_POLLING_INTERVAL:LongWord = 10;</code> | ||
+ | | style="width: 40%;"|Override the default polling interval for a USB mouse (Milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code> USB_MOUSE_REGISTER_DRIVER:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the USB Mouse driver during boot (Only if Mouse unit included) Note: Replaced by USB HID driver | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB touch''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_TOUCH_POLLING_INTERVAL:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Override the default polling interval for a USB touch screen (Milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB storage''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_STORAGE_FORCE_REMOVABLE:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then all USB storage devices will be assumed to be removable | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>USB_STORAGE_REGISTER_DRIVER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the USB Storage driver during boot (Only if Storage unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''XHCI''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>XHCI_REGISTER_DRIVER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the XHCI PCI driver during boot (Only if XHCI unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Specific Peripheral configuration''' (Set by PeripheralInit) | ||
+ | |||
+ | '''''DWCOTG (Synopsys DesignWare Hi-Speed USB 2.0 On-The-Go Controller)''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_REGISTER_HOST:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the DWCOTG USB Host during boot (Only if DWCOTG unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_IRQ:LongWord;</code> | ||
+ | | style="width: 40%;"|The IRQ number of the DWCOTG device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_POWER_ID:LongWord;</code> | ||
+ | | style="width: 40%;"|The power Id of the DWCOTG device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_REGS_BASE:PtrUInt;</code> | ||
+ | | style="width: 40%;"|The base address of the DWCOTG registers | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The DWCOTG device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for DWCOTG DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for DWCOTG DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|DWCOTG DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|DWCOTG DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|DWCOTG DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|DWCOTG DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_HOST_FRAME_INTERVAL:LongBool;</code> | ||
+ | | style="width: 40%;"|Update the host frame interval register on root port enable if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_FULL_SPEED_ONLY:LongBool;</code> | ||
+ | | style="width: 40%;"|Enable Full Speed and Low Speed device support only if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_FS_LS_LOW_POWER_CLOCK:LongBool;</code> | ||
+ | | style="width: 40%;"|Enable Low Power Clock Select for Full Speed / Low Speed devices if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DWCOTG_LS_LOW_PWR_PHY_CLOCK_6MHZ:LongBool;</code> | ||
+ | | style="width: 40%;"|Enable 6MHz Low Power PHY Clock for Low Speed devices if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCMSDHOST''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCMSDHOST_DELAY_AFTER_STOP:LongWord;</code> | ||
+ | | style="width: 40%;"|Minimum time between stop and subsequent data transfer (in Microseconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCMSDHOST_OVERCLOCK_50:LongWord;</code> | ||
+ | | style="width: 40%;"|User's preferred frequency to use when 50MHz is requested (in MHz) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCMSDHOST_PIO_LIMIT:LongWord = 1;</code> | ||
+ | | style="width: 40%;"|Maximum block count for PIO (0 = always DMA / 0x7FFFFFF = always PIO) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCMSDHOST_FORCE_PIO:LongBool;</code> | ||
+ | | style="width: 40%;"|Force SDHOST driver to use PIO instead of DMA | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BRCMSTB''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BRCMSTB_ENABLE_SSC:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable Spread Spectrum Clocking for the BRCMSTB PCI host | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BRCMSTB_ENABLE_L1SS:LongBool;</code> | ||
+ | | style="width: 40%;"|Enable L1 Substate control of the CLKREQ signal for the BRCMSTB PCI host | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BRCMSTB_MAX_LINK_SPEED:LongWord;</code> | ||
+ | | style="width: 40%;"|Limit the BRCMSTB PCI host to a specific link speed (1, 2, 3 or 4) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BRCMSTB_NOASPM_L0S:LongBool;</code> | ||
+ | | style="width: 40%;"|Disable L0s mode for Active State Power Management for the BRCMSTB PCI host | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCM434XX (Broadcom / Cypress Wireless LAN Controller)''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_CLK_PIN:LongWord = GPIO_PIN_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|Wireless LAN 32KHz Clock GPIO pin | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_CLK_PULL:LongWord = GPIO_PULL_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|Wireless LAN 32KHz Clock GPIO pull | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_CLK_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|Wireless LAN 32KHz Clock GPIO function | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_ON_PIN:LongWord = GPIO_PIN_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|Wireless LAN Power GPIO pin | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_ON_PIN:LongWord = GPIO_PIN_UNKNOWN;</code> | ||
+ | | style="width: 40%;"|Wireless LAN Power GPIO pin | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_ON_ACTIVE_LOW:LongBool;</code> | ||
+ | | style="width: 40%;"|True if Power pin is Active Low (default Active High) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM434XX_WLAN_ON_VIRTUAL:LongBool;</code> | ||
+ | | style="width: 40%;"|True if Power pin is a Virtual GPIO | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''LAN78XX (Microchip LAN78XX USB Gigabit Ethernet)''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LAN78XX_MAC_ADDRESS:String;</code> | ||
+ | | style="width: 40%;"|The preconfigured MAC address for a LAN78XX device | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''SMSC95XX (SMSC LAN95xx USB Ethernet Driver)''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SMSC95XX_MAC_ADDRESS:String;</code> | ||
+ | | style="width: 40%;"|The preconfigured MAC address for a SMSC95XX device | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''GENET (Broadcom Gigabit Ethernet controller)''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GENET_MAC_ADDRESS:String;</code> | ||
+ | | style="width: 40%;"|The preconfigured MAC address for a GENET device | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCM2708''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for BCM2708 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for BCM2708 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2708 DMA control blocks and DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2708 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2708 DMA control blocks and DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2708 DMA control blocks and DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708I2C_COMBINED_WRITEREAD:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2708 I2C driver can do combined Write/Read transactions | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708FRAMEBUFFER_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The memory alignment for the BCM2708 Framebuffer device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708FRAMEBUFFER_CACHED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2708 Framebuffer device is in cached memory (Requires CleanCacheRange on write) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708GPIO_FIQ_ENABLED:LongBool; </code> | ||
+ | | style="width: 40%;"|The BCM2708 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708GPIO_FIQ_BANK_NO:LongWord;</code> | ||
+ | | style="width: 40%;"|The BCM2708 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708SDHCI_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2708 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708SDHOST_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2708 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708ARM_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2708 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SPI0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SPI0 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SPI1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SPI1 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SPI2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SPI2 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_I2C0:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 I2C0 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_I2C1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 I2C1 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_I2C2:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 I2C2 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_DMA:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 DMA host during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_PWM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 PWM device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_PCM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 PCM device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_GPIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 GPIO device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_UART0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 UART0 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_UART1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 UART1 device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SDHCI:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SDHCI host during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SDHOST:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SDHOST host during boot (Only if BCMSDHOST unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use the BCM2708 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SPISLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 SPI slave device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_I2CSLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 I2C slave device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_PWMAUDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 PWM Audio device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_SYS_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 System Timer Clock device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_ARM_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 ARM Timer Clock device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_ARM_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 ARM Timer device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_RANDOM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 Random device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_MAILBOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 Mailbox device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_WATCHDOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 Watchdog device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2708_REGISTER_FRAMEBUFFER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2708 Framebuffer device during boot (Only if BCM2708 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCM2709''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for BCM2709 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for BCM2709 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2709 DMA control blocks and DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2709 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2709 DMA control blocks and DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2709 DMA control blocks and DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709I2C_COMBINED_WRITEREAD:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2709 I2C driver can do combined Write/Read transactions | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709FRAMEBUFFER_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The memory alignment for the BCM2709 Framebuffer device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709FRAMEBUFFER_CACHED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2709 Framebuffer device is in cached memory (Requires CleanCacheRange on write) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709GPIO_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2709 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709GPIO_FIQ_BANK_NO:LongWord;</code> | ||
+ | | style="width: 40%;"|The BCM2709 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709SDHCI_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2709 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709SDHOST_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2709 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709ARM_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2709 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709LOCAL_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2709 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SPI0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SPI0 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SPI1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SPI1 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SPI2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SPI2 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_I2C0:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 I2C0 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_I2C1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 I2C1 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_I2C2:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 I2C2 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_DMA:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 DMA host during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_PWM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 PWM device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_PCM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 PCM device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_GPIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 GPIO device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_UART0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 UART0 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_UART1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 UART1 device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SDHCI:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SDHCI host during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SDHOST:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SDHOST host during boot (Only if BCMSDHOST unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use the BCM2709 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SPISLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 SPI slave device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_I2CSLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 I2C slave device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_PWMAUDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 PWM Audio device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_SYS_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 System Timer Clock device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_ARM_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 ARM Timer Clock device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_LOCAL_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Local Timer Clock device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_ARM_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 ARM Timer device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_LOCAL_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Local Timer device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_RANDOM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Random device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_MAILBOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Mailbox device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_WATCHDOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Watchdog device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2709_REGISTER_FRAMEBUFFER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2709 Framebuffer device during boot (Only if BCM2709 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCM2710''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for BCM2710 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for BCM2710 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2710 DMA control blocks and DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2710 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2710 DMA control blocks and DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2710 DMA control blocks and DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710I2C_COMBINED_WRITEREAD:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2710 I2C driver can do combined Write/Read transactions | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710FRAMEBUFFER_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The memory alignment for the BCM2710 Framebuffer device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710FRAMEBUFFER_CACHED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2710 Framebuffer device is in cached memory (Requires CleanCacheRange on write) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710GPIO_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2710 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710GPIO_FIQ_BANK_NO:LongWord;</code> | ||
+ | | style="width: 40%;"|The BCM2710 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple}. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710SDHCI_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2710 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710SDHOST_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2710 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710ARM_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2710 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710LOCAL_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2710 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SPI0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SPI0 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SPI1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SPI1 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SPI2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SPI2 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_I2C0:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 I2C0 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_I2C1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 I2C1 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_I2C2:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 I2C2 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_DMA:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 DMA host during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_PWM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 PWM device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_PCM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 PCM device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_GPIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 GPIO device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_UART0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 UART0 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_UART1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 UART1 device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SDHCI:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SDHCI host during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SDHOST:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SDHOST host during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SDIO:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then use the BCM2710 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SPISLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 SPI slave device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_I2CSLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 I2C slave device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_PWMAUDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 PWM Audio device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_SYS_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 System Timer Clock device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_ARM_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 ARM Timer Clock device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_LOCAL_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Local Timer Clock device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_ARM_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 ARM Timer device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_LOCAL_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Local Timer device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_RANDOM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Random device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_MAILBOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Mailbox device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_WATCHDOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Watchdog device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2710_REGISTER_FRAMEBUFFER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2710 Framebuffer device during boot (Only if BCM2710 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''BCM2711''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The default alignment for BCM2711 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_MULTIPLIER:LongWord;</code> | ||
+ | | style="width: 40%;"|The default multiplier for BCM2711 DMA memory allocations | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_SHARED_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2711 DMA control blocks and DMA buffers are allocated from Shared memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_NOCACHE_MEMORY:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2711 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_BUS_ADDRESSES:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2711 DMA control blocks and DMA buffers are referenced by Bus addresses if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711DMA_CACHE_COHERENT:LongBool;</code> | ||
+ | | style="width: 40%;"|BCM2711 DMA control blocks and DMA buffers are considered cache coherent if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711I2C_COMBINED_WRITEREAD:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2711 I2C driver can do combined Write/Read transactions | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711GPIO_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711FRAMEBUFFER_ALIGNMENT:LongWord;</code> | ||
+ | | style="width: 40%;"|The memory alignment for the BCM2711 Framebuffer device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711FRAMEBUFFER_CACHED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then the BCM2711 Framebuffer device is in cached memory (Requires CleanCacheRange on write) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711GPIO_FIQ_BANK_NO:LongWord;</code> | ||
+ | | style="width: 40%;"|The BCM2711 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled) (Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711EMMC0_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 EMMC0 (SDHCI) device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711EMMC1_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 EMMC1 (SDHOST) device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711EMMC2_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 EMMC2 (SDHCI) device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711ARM_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711LOCAL_TIMER_FIQ_ENABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|The BCM2711 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI0 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI1 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI2 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI3:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI3 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI4:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI4 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI5:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI5 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPI6:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI6 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C0:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C0 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C1 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C2:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C2 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C3:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C3 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C4:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C4 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C5:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C5 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C6:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C6 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2C7:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C7 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PWM0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 PWM0 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PWM1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 PWM1 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART0 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART1 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART2 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART3:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART3 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART4:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART4 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_UART5:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 UART5 device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_EMMC0:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 EMMC0 (SDHCI) host during boot (Disables EMMC2)(Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_EMMC1:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 EMMC1 (SDHOST) host during boot (Only if BCMSDHOST unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_EMMC2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 EMMC2 (SDHCI) host during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then use the BCM2711 EMMC0 (SDHCI) as an SDIO controller for WiFi support (Disables EMMC0)(Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_DMA:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 DMA host during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PCM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 PCM device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_GPIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 GPIO device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SPISLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 SPI slave device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_I2CSLAVE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 I2C slave device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PWMAUDIO:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 PWM Audio device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_SYS_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 System Timer Clock device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_ARM_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 ARM Timer Clock device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_LOCAL_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Local Timer Clock device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_ARM_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 ARM Timer device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_LOCAL_TIMER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Local Timer device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_RANDOM:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Random device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_MAILBOX:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Mailbox device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_WATCHDOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Watchdog device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_FRAMEBUFFER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 Framebuffer device during boot (Only if BCM2711 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_RTC:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 RTC device during boot (CM4 only) (Only if RaspberryPi4 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_NETWORK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 GENET Network device during boot (Only if RaspberryPi4 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PCI:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 BRCNSTB PCIe host during boot (Only if RaspberryPi4 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_PCI_XHCI:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 VL805 PCIe XHCI host during boot (Only if RaspberryPi4 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BCM2711_REGISTER_INTERNAL_XHCI:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then register the BCM2711 internal XHCI host during boot (Only if RaspberryPi4 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''QEMUVPB''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_DMA:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB DMA device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_UART0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB UART0 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_UART1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB UART1 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_UART2:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB UART2 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_UART3:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB UART3 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_RTC:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB RTC device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_CLOCK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB 24MHz Clock device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_MMC0:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB MMC0 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_MMC1:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB MMC1 device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_NETWORK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB Network device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_FRAMEBUFFER:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB Framebuffer device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_MOUSE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB Mouse device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>QEMUVPB_REGISTER_KEYBOARD:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register the QEMU VersatilePB Keyboard device during boot (Only if QEMUVersatilePB unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Country, codepage, locale and language configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>COUNTRY_DEFAULT:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|The current default country code | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CODEPAGE_OEM_DEFAULT:LongWord = 437;</code> | ||
+ | | style="width: 40%;"|The current OEM default code page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CODEPAGE_ANSI_DEFAULT:LongWord = 1252;</code> | ||
+ | | style="width: 40%;"|The current ANSI default code page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CODEPAGE_CONSOLE_INPUT:LongWord = 1252;</code> | ||
+ | | style="width: 40%;"|The current console input code page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CODEPAGE_CONSOLE_OUTPUT:LongWord = 1252;</code> | ||
+ | | style="width: 40%;"|The current console output code page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOCALE_DEFAULT:LongWord;</code> | ||
+ | | style="width: 40%;"|(LCID) The current default locale | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LANGUAGE_DEFAULT:Word;</code> | ||
+ | | style="width: 40%;"|(LANGID) The current default language identifier | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>KEYMAP_DEFAULT:String = 'US';</code> | ||
+ | | style="width: 40%;"|The name of the default keymap | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Disk, controller, filesystem and cache configuration''' | ||
+ | |||
+ | '''''Filesystem configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the filesystem on boot (Only if FileSystem unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the filesystem on boot (Only if FILESYS_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_REGISTER_LOGGING:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register filesystem as a Logging device on boot (Only if FileSystem unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LOGGING_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then filesystem can be the default Logging device (Only if FileSystem unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LOGGING_FILE:String;</code> | ||
+ | | style="width: 40%;"|The name of the file to log messages to | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LOGGING_MAXSIZE:LongWord;</code> | ||
+ | | style="width: 40%;"|The maximum size of the logging file before rollover (0 for no maximum) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LOGGING_MAXCOPIES:LongWord;</code> | ||
+ | | style="width: 40%;"|The number of old logging files to keep on rollover (0 for no copies) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LOGGING_RESET:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then reset the log file to empty on startup if it already exists | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Cache configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CACHE_SIZE:LongWord = SIZE_16M;</code> | ||
+ | | style="width: 40%;"|The default filesystem cache size | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CACHE_PAGE:LongWord = SIZE_32K;</code> | ||
+ | | style="width: 40%;"|The size of a filesystem cache page | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CACHE_KEYS:LongWord = 12;</code> | ||
+ | | style="width: 40%;"|The number of hash keys for the filesystem cache | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CACHE_MODE:LongWord = FILESYS_CACHE_MODE_READWRITE;</code> | ||
+ | | style="width: 40%;"|The default filesystem cache mode | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Filesystem support configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_FLOPPY_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem floppy drive support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_DRIVES_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem drive letter support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_ATA_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem ATA controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_ATAPI_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem ATAPI controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_SCSI_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem SCSI controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_USB_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem USB controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_MMC_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem MMC/SD controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_VIRTUAL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable filesystem virtual disk controller support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_FAT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable FAT filesystem support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_NTFS_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable NTFS filesystem support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_EXTFS_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable EXTFS filesystem support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CDFS_ENABLED:LongBool = True; </code> | ||
+ | | style="width: 40%;"|Enable CDFS filesystem support | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_CASE_FLAGS:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for case flags in filesystem entries (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_LONG_NAMES:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for long file names (greater than 8.3) (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_OEM_CONVERT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for ANSI to OEM/OEM to ANSI character set conversion (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_NUMERIC_TAIL:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for numeric tail on generated short file names (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_DIRTY_CHECK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for dirty check on volume mount (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_QUICK_CHECK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for quick volume checking (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_UPDATE_ACCESSTIME:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for updating last access time field (Where Applicable) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FILESYS_GLOBAL_CURRENTDIR:LongBool = False;</code> | ||
+ | | style="width: 40%;"|If True then make the current directory global instead of per thread (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''FAT configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_DEFAULT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable default recognition of non partitioned media as FAT | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_CASE_FLAGS:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for case flags in FAT filesystem entries | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_LONG_NAMES:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for FAT long file names (greater than 8.3) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_OEM_CONVERT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for FAT ANSI to OEM/OEM to ANSI character set conversion | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_NUMERIC_TAIL:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for numeric tail on generated FAT short file names | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_DIRTY_CHECK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for dirty check on FAT volume mount | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_QUICK_CHECK:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for quick FAT volume checking | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_INFO_SECTOR_ENABLE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for the FAT32 info sector to store free cluster count and next free cluster | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FAT_INFO_IMMEDIATE_UPDATE:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Enable immediate update of the FA32 info sector after cluster allocation or deallocation (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''NTFS configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Enable default recognition of non partitioned media as NTFS (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_RESET_LOG:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Reset the NTFS Log File if it was dirty on mount | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_FIXED_ZONE:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Use the Windows Vista/2008/7 Fixed MFT Zone values (not the Windows NT/2000/XP percentages) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_ALT_LAYOUT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Use the Windows Vista/2008/7 Volume Layout values (not the Windows NT/2000/XP layout) (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_LENIENT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Allow certain non fatal errors to be ignored (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_DEFENSIVE:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Perform more defensive checking of structures and values (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_AGGRESSIVE:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Attempt to correct certain errors during operation (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_NO_SHORT_NAMES:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Do not create alternate short file names (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_NULL_SECURITY:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Do not apply security when creating files and folders (only apply security when SetSecurity called) (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTFS_DEFAULT_SECURITY:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Apply default permissions (Everyone, Full Control) when creating files and folders (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''EXTFS configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EXTFS_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Enable default recognition of non partitioned media as EXTFS (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''CDFS configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CDFS_DEFAULT:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Enable default recognition of non partitioned media as CDFS (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CDFS_LONG_NAMES:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Enable support for CDFS long file names (greater than 8.3) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CDFS_SWAP_SERIAL:LongBool = False;</code> | ||
+ | | style="width: 40%;"|Swap the byte order of the CDFS serial number (Set to True for Windows 9x compatibility) (Default False) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Network, transport, protocol and sockets configuration''' | ||
+ | |||
+ | '''''Host configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HOST_NAME:String = 'localhost';</code> | ||
+ | | style="width: 40%;"|The network host name of the local machine | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HOST_DOMAIN:String = 'localdomain';</code> | ||
+ | | style="width: 40%;"|The network domain name of the local machine | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Winsock configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_NAME:String = 'Ultibo Winsock Version 1.1';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_LOW_VERSION:Word = $101;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_HIGH_VERSION:Word = $101;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_BUILD_VERSION:String = '1.10.43';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_MAX_SOCKETS:Word = SIZE_1K;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_MAX_UDP:Word = SIZE_8K;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the Winsock layer on boot (Only if Winsock unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the Winsock layer on boot (Only if WINSOCK_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Winsock2 configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_NAME:String = 'Ultibo Winsock Version 2.2';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_LOW_VERSION:Word = $101;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_HIGH_VERSION:Word = $202;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_BUILD_VERSION:String = '2.20.03';</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_MAX_SOCKETS:Word = SIZE_1K;</code> | ||
+ | | style="width: 40%;"|Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_MAX_UDP:Word = SIZE_8K;</code> | ||
+ | | style="width: 40%;"|Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the Winsock2 layer on boot (Only if Winsock2 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WINSOCK2_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the Winsock2 layer on boot (Only if WINSOCK2_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Sockets configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SOCKETS_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the sockets layer on boot (Only if Sockets unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SOCKETS_ASYNCSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start asynchronously using a worker thread instead of the main thread | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SOCKETS_STARTDELAY:LongWord = 0;</code> | ||
+ | | style="width: 40%;"|Number of milliseconds to delay starting the sockets layer on boot (Only if SOCKETS_ASYNCSTART is True) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Client configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DNS_CLIENT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|DNS client is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Protocol configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RAW_PROTOCOL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Raw socket protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UDP_PROTOCOL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|UDP protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TCP_PROTOCOL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|TCP protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ICMP_PROTOCOL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|ICMP protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ICMP6_PROTOCOL_ENABLED:LongBool = False;</code> | ||
+ | | style="width: 40%;"|ICMPv6 protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IGMP_PROTOCOL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|IGMP protocol is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TCP_MIN_BACKLOG:LongWord = 5;</code> | ||
+ | | style="width: 40%;"|Minimum accept queue length for listening sockets (per socket) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TCP_MAX_BACKLOG:LongWord = 200;</code> | ||
+ | | style="width: 40%;"|Maximum accept queue length for listening sockets (per socket) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TCP_RECEIVE_BACKLOG:LongWord = SIZE_1K;</code> | ||
+ | | style="width: 40%;"|Queue length for SYN received connections (per listening socket) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ARP_CONFIG_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|ARP configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RARP_CONFIG_ENABLED:LongBool = False;</code> | ||
+ | | style="width: 40%;"|RARP configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BOOTP_CONFIG_ENABLED:LongBool = False;</code> | ||
+ | | style="width: 40%;"|BOOTP configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DHCP_CONFIG_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|DHCP configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>STATIC_CONFIG_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Static configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOOPBACK_CONFIG_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Loopback configuration is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Transport configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IP_TRANSPORT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|IP transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IP6_TRANSPORT_ENABLED:LongBool = False;</code> | ||
+ | | style="width: 40%;"|IPv6 transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ARP_TRANSPORT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|ARP transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RARP_TRANSPORT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|RARP transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RSN_TRANSPORT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|RSN transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EAPOL_TRANSPORT_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|EAPOL transport is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Network configuration''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WIRED_NETWORK_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Wired network adapters are enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LOOPBACK_NETWORK_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Loopback network adapter is enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WIRELESS_NETWORK_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|Wireless network adapters are enabled if True | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Shell configuration''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_SHELL_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then automatically create a console shell window when a new console is registered (Only if ConsoleShell unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_SHELL_POSITION:LongWord = CONSOLE_POSITION_RIGHT;</code> | ||
+ | | style="width: 40%;"|The default Console Window position for the console shell | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CONSOLE_SHELL_DEVICE:String;</code> | ||
+ | | style="width: 40%;"|The console device Name (or Description) to create the shell window on, if blank create on default device unless forced (Only if ConsoleShell unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Specific service configuration''' | ||
+ | |||
+ | '''''NTP''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_SERVER_DEFAULT:String = 'pool.ntp.org';</code> | ||
+ | | style="width: 40%;"|The default NTP server(s) to poll | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_PORT_DEFAULT:Word = 123;</code> | ||
+ | | style="width: 40%;"|The default NTP port to poll | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_POLLING_INTERVAL:LongWord = 300;</code> | ||
+ | | style="width: 40%;"|The default NTP polling interval (300 seconds/5 minutes) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_POLLING_TIMEOUT:LongWord = 2000;</code> | ||
+ | | style="width: 40%;"|The default NTP polling timeout (2000 milliseconds/2 seconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_POLLING_RETRIES:LongWord = 3;</code> | ||
+ | | style="width: 40%;"|The default NTP polling retry count | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_RETRY_TIMEOUT:LongWord = 1000;</code> | ||
+ | | style="width: 40%;"|The default NTP retry interval (1000 milliseconds/1 second) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_CLOCK_TOLERANCE:LongWord = 10;</code> | ||
+ | | style="width: 40%;"|The default NTP clock tolerance, apply differences equal or larger than this (10 milliseconds) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_USE_CLOCK_OFFSET:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True use the calculated NTP clock offset, otherwise use the server transmit time | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NTP_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the NTP client on boot (Only if Services unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''Telnet''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TELNET_PORT_DEFAULT:Word = 23;</code> | ||
+ | | style="width: 40%;"|The default Telnet port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TELNET_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the Telnet server on boot (Only if RemoteShell unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''SSH''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SSH_PORT_DEFAULT:Word = 22;</code> | ||
+ | | style="width: 40%;"|The default SSH port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SSH_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the SSH server on boot (Only if RemoteShell unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''SysLog''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_BOUND_PORT:Word;</code> | ||
+ | | style="width: 40%;"|The local port for SysLog to bind to (0 for dynamic port) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_SERVER_DEFAULT:String = '127.0.0.1';</code> | ||
+ | | style="width: 40%;"|The default SysLog server to send messages to | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_PORT_DEFAULT:Word = 514;</code> | ||
+ | | style="width: 40%;"|The default SysLog port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_PROTOCOL_DEFAULT:LongWord = LOGGING_PROTOCOL_UDP;</code> | ||
+ | | style="width: 40%;"|The default SysLog protocol | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_OCTET_COUNTING:LongBool;</code> | ||
+ | | style="width: 40%;"|If True use the Octet Counting method of framing the SysLog message (LOGGING_PROTOCOL_TCP only)(See: RFC6587) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_BROADCAST_ENABLED:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True enable use of a broadcast address for the Syslog server | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the SysLog client on boot (Only if Services unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_REGISTER_LOGGING:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then register SysLog as a Logging device on boot (Only if Services unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SYSLOG_LOGGING_DEFAULT:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then SysLog can be the default Logging device (Only if Services unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''POP3''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>POP3_PORT_DEFAULT:Word = 110;</code> | ||
+ | | style="width: 40%;"|The default POP3 port | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''IMAP4''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IMAP4_PORT_DEFAULT:Word = 143;</code> | ||
+ | | style="width: 40%;"|The default IMAP4 port | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''SMTP''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SMTP_PORT_DEFAULT:Word = 25;</code> | ||
+ | | style="width: 40%;"|The default SMTP port | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''HTTP''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HTTP_PORT_DEFAULT:Word = 80;</code> | ||
+ | | style="width: 40%;"|The default HTTP port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HTTPS_PORT_DEFAULT:Word = 443;</code> | ||
+ | | style="width: 40%;"|The default HTTPS port | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''CIFS''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CIFS_PORT_DEFAULT:Word = 445;</code> | ||
+ | | style="width: 40%;"|The default CIFS port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CIFS_CLIENT_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the CIFS client on boot (Only if CIFS unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CIFS_SERVER_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the CIFS server on boot (Only if CIFS unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''NFS''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NFS_PORT_DEFAULT:Word = 111;</code> | ||
+ | | style="width: 40%;"|The default NFS port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NFSv4_PORT_DEFAULT:Word = 2049;</code> | ||
+ | | style="width: 40%;"|The default NFSv4 port | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NFS_CLIENT_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the NFS client on boot (Only if NFS unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>NFS_SERVER_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the NFS server on boot (Only if NFS unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Specific driver configuration''' | ||
+ | |||
+ | '''''PL2303''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PL2303_MAX_TRANSMIT:LongWord;</code> | ||
+ | | style="width: 40%;"|The maximum transmit size of the PL2303 USB to Serial converter (Defaults to maximum supported by the device if not specified) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''FTDI serial''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FTDISERIAL_MAX_TRANSMIT:LongWord;</code> | ||
+ | | style="width: 40%;"|The maximum transmit size of the FTDI USB to Serial converter (Defaults to maximum supported by the device if not specified) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''USB CDC ACM''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CDCACM_MAX_TRANSMIT:LongWord;</code> | ||
+ | | style="width: 40%;"|The maximum transmit size for USB CDC ACM Serial devices (Defaults to maximum supported by the device if not specified) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''DS1307''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DS1307_CHIP_TYPE:LongWord;</code> | ||
+ | | style="width: 40%;"|The specific chip to support in the DS1307 driver (See the DS1307_CHIP_* constants in the driver) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DS1307_I2C_ADDRESS:Word = $68;</code> | ||
+ | | style="width: 40%;"|The I2C address to use for the DS1307 RTC device | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DS1307_I2C_DEVICE:String = 'I2C0';</code> | ||
+ | | style="width: 40%;"|The I2C device (Name or Description) to use for the DS1307 RTC device | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''RT2800USB''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RT2800USB_HARDWARE_ENCRYPTION_DISABLED:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then use software only encryption for RT2800USB | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''AF16x2LCD''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>AF16X2LCD_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the AF16x2LCD device on boot (Only if AF16x2LCD unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''PiTFT28''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PiTFT28_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the PiTFT28 device on boot (Only if PiTFT28 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PITFT28_CAPACITIVE_TOUCH:LongBool;</code> | ||
+ | | style="width: 40%;"|If True then configure the capacitive touch version of the PiTFT28 (Only if PiTFT28 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''PiTFT35''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PiTFT35_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the PiTFT35 device on boot (Only if PiTFT35 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''IPSTFT19''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IPSTFT19_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the IPSTFT19 device on boot (Only if IPSTFT19 unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''RPiSenseHat''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RPISENSE_AUTOSTART:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then auto start the RPiSenseHat device on boot (Only if RPiSenseHat unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''''VideoCore VCHIQ''''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VCHIQ_FRAGMENT_WARNING:LongBool = True;</code> | ||
+ | | style="width: 40%;"|If True then issue warnings when VCHIQ fragment handling may cause data corruption, only applies when device tree is not in use (Only if VCHIQ unit included) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Global handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetLastErrorHandler:TGetLastError;</code> | ||
+ | | style="width: 40%;"|Registered handler for the global GetLastError function | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SetLastErrorHandler:TSetLastError;</code> | ||
+ | | style="width: 40%;"|Registered handler for the global SetLastError function | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Function declarations === | === Function declarations === | ||
Line 37: | Line 5,083: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| ''None applicable'' | | ''None applicable'' | ||
|- | |- | ||
Line 49: | Line 5,095: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| ''None applicable'' | | ''None applicable'' | ||
|- | |- | ||
Line 55: | Line 5,101: | ||
</div></div> | </div></div> | ||
<br /> | <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 Clamp(Value,Low,High:LongInt):LongInt;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 RoundUp(Value,Multiple:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Round Value to the next highest multiple of Multiple</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 RoundDown(Value,Multiple:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Round Value to the next lowest multiple of Multiple</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 DivRoundUp(Value,Divisor:LongInt):LongWord;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 DivRoundClosest(Value,Divisor:LongInt):LongWord;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 SignExtend32(Value,Bits:LongWord):LongInt;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Sign extend value from the current number of bits to 32 bits</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 SignExtend64(Value:UInt64; Bits:LongWord):Int64;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Sign extend value from the current number of bits to 64 bits</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 IsPowerOf2(Value: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 BIT(Number:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BIT_ULL(Number:LongWord):UInt64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT_ULL() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BIT_MASK(Number:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT_MASK() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BIT_WORD(Number:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT_WORD() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BIT_ULL_MASK(Number:LongWord):UInt64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT_ULL_MASK() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BIT_ULL_WORD(Number:LongWord):UInt64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the BIT_ULL_WORD() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 GENMASK(High,Low:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the GENMASK() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 GENMASK_ULL(High,Low:LongWord):UInt64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Implementation of the GENMASK_ULL() macro</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 HIWORD(L:LongInt):Word; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the high word of L</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 LOWORD(L:LongInt):Word; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the low word of L</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 HIBYTE(W:LongInt):Byte; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the high byte of W</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 LOBYTE(W:LongInt):Byte; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the low byte of W</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 MAKELONG(A,B:LongInt):LongInt; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Make a longword value from A and B</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 MAKEWORD(A,B:LongInt):Word; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Make a word value from A and B</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 MAKELANGID(PrimaryLang,SubLang:USHORT):WORD; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Construct a language identifier from a primary language and a sub language</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 WordNtoBE(Value:Word):Word; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert word Value from native to big endian</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 WordBEtoN(Value:Word):Word; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert word Value from big endian to native</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 WordNtoLE(Value:Word):Word; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 WordLEtoN(Value:Word):Word; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 LongWordNtoBE(Value:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert longword Value from native to big endian</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 LongWordBEtoN(Value:LongWord):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert longword Value from big endian to native</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 LongWordNtoLE(Value:LongWord):LongWord; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 LongWordLEtoN(Value:LongWord):LongWord; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 Int64NtoBE(const Value:Int64):Int64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert int64 Value from native to big endian</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 Int64BEtoN(const Value:Int64):Int64; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert int64 Value from big endian to native</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 Int64NtoLE(const Value:Int64):Int64; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 Int64LEtoN(const Value:Int64):Int64; inline;</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 | ||
+ | | These functions are simply wrappers to force the compiler to select the correct function without typecasting | ||
+ | |- | ||
+ | |} | ||
+ | </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 PtrLow(Value:Pointer):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the low 32-bits of a pointer</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 PtrHigh(Value:Pointer):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the high 32-bits of a pointer (Or 0 for 32-bit platforms)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 AddrLow(Value:PtrUInt):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the low 32-bits of an address</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 AddrHigh(Value:PtrUInt):LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the high 32-bits of an address (Or 0 for 32-bit platforms)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BCDtoBin(Value:Byte):Byte; inline;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BintoBCD(Value:Byte):Byte; inline;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 GetLastError:LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the last error code for the current thread</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure SetLastError(LastError:LongWord); inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the last error code for the current thread</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 StringHash(const Text:String):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Calculate the sum of (byte value + 1) * (position + 257) for all bytes in an uppercase string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | Case Insensitive Hash | ||
+ | |- | ||
+ | |} | ||
+ | </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 PtrShift:LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the pointer shift value for the current architecture (1 shl PtrShift = SizeOf(Pointer))</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 PtrToHex(Value:Pointer):String; inline;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 AddrToHex(Value:PtrUInt):String; inline;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 HandleToHex(Value:THandle):String; inline;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''Conversion functions''' | ||
+ | |||
+ | <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 ErrorToString(Error:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert an error code value to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 SysErrorToString(ErrorCode:Integer):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert an error code value to a string (RTL)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BooleanToString(Value:Boolean):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a boolean value to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CPUArchToString(CPUArch:LongWord):String;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CPUTypeToString(CPUType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a CPU type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CPUModelToString(CPUModel:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a CPU model constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CPUIDToString(CPUID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a CPU Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CPUIDToMask(CPUID:LongWord):LongWord;</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 CPUMaskToID(CPUMask:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Note: If Mask includes more than one CPU the result will be the first matched. Use CPUMaskCount to determine the CPU count</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 CPUMaskCount(CPUMask:LongWord):LongWord;</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 CPUGroupToString(CPUGroup:LongWord):String;</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 FPUTypeToString(FPUType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a FPU type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 GPUTypeToString(GPUType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a GPU type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 CacheTypeToString(CacheType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a filesystem Cache type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 BoardTypeToString(BoardType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Board type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 MachineTypeToString(MachineType:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Machine type constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 PowerIDToString(PowerID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Power Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 PowerStateToString(PowerState:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Power state constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 ClockIDToString(ClockID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Clock Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 ClockStateToString(ClockState:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Clock state constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 TurboIDToString(TurboID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Turbo Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 VoltageIDToString(VoltageID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Voltage Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 TemperatureIDToString(TemperatureID:LongWord):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Temperature Id constant to a string</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 ColorFormatToBytes(Format:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color format constant into the number of bytes per pixel</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format constant to get bytes for (eg COLOR_FORMAT_ARGB32) | ||
+ | |- | ||
+ | ! Return | ||
+ | | The number of bytes required for each pixel | ||
+ | |- | ||
+ | |} | ||
+ | </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 ColorFormatToString(Format:LongWord):String;</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 applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </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 ColorFormatToMask(Format:LongWord; Reverse:Boolean):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color format constant into the mask needed for color inversion</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format constant to get the mask for (eg COLOR_FORMAT_ARGB32) | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the mask | ||
+ | |- | ||
+ | ! Return | ||
+ | | The mask required for color inversion | ||
+ | |- | ||
+ | ! Note | ||
+ | | XOR the color with the returned mask to produce the inverted color | ||
+ | eg Result := Color xor Mask | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure ColorDefaultToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean); inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color value in the default format to the specified format</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert to (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Color | ||
+ | | The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT) | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted color | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the destination after conversion | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure ColorFormatToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color value in the specified format to the default format</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert from (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the color to convert | ||
+ | |- | ||
+ | ! Color | ||
+ | | The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT) | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the color after conversion | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure ColorDefaultAltToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color value in the default format to the specified format (Alternate)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert to (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Color | ||
+ | | The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT) | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted color | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the destination before conversion (Differs from ColorDefaultToFormat) | ||
+ | |- | ||
+ | ! Note | ||
+ | | Not inline | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure ColorFormatAltToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a color value in the specified format to the default format (Alternate)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert from (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the color to convert | ||
+ | |- | ||
+ | ! Color | ||
+ | | The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT) | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the source before conversion (Differs from ColorFormatToDefault) | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure PixelsDefaultToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert one or more pixels in the default color format to the specified format</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert to (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the pixels to convert | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted pixels | ||
+ | |- | ||
+ | ! Count | ||
+ | | The number of pixels to be converted | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the destination after conversion | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure PixelsFormatToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert one or more pixels in the specified color format to the default format</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert from (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the pixels to convert | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted pixels | ||
+ | |- | ||
+ | ! Count | ||
+ | | The number of pixels to be converted | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the destination after conversion | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure PixelsDefaultAltToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert one or more pixels in the default color format to the specified format (Alternate)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert to (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the pixels to convert | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted pixels | ||
+ | |- | ||
+ | ! Count | ||
+ | | The number of pixels to be converted | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the source before conversion (Differs from PixelsDefaultToFormat) | ||
+ | |- | ||
+ | |} | ||
+ | </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;">procedure PixelsFormatAltToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert one or more pixels in the specified color format to the default format (Alternate)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Format | ||
+ | | The color format to convert from (eg COLOR_FORMAT_RGB24) | ||
+ | |- | ||
+ | ! Source | ||
+ | | Pointer to the source buffer for the pixels to convert | ||
+ | |- | ||
+ | ! Dest | ||
+ | | Pointer to the destination buffer for the converted pixels | ||
+ | |- | ||
+ | ! Count | ||
+ | | The number of pixels to be converted | ||
+ | |- | ||
+ | ! Reverse | ||
+ | | If true then reverse the byte order of the source before conversion (Differs from PixelsFormatToDefault) | ||
+ | |- | ||
+ | |} | ||
+ | </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 LogLevelToLoggingSeverity(LogLevel:LongWord):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a log level constant to a severity level</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | ''None applicable'' | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
Return to [[Unit_Reference|Unit Reference]] | Return to [[Unit_Reference|Unit Reference]] |
Latest revision as of 03:33, 15 October 2024
Return to Unit Reference
Description
Ultibo Global Configuration Defaults unit
The GlobalConfig unit contains variables used throughout Ultibo core to provide configuration and parameters to common modules and sub systems. Many of these variables may also be passed on the command line as environment variables to customize the behavior of Ultibo core without needing to recompile the application. This unit also includes a small number of widely used common functions.
Constants
None defined
Type definitions
None defined
Public variables
Compiler and RTL configuration
Kernel image sections
Note: To access these from Pascal code use the address of the variable (eg @_bss_start). Empty record definition prevents access to contents.
_text_start: record end; external name '_text_start';
|
_etext: record end; external name '_etext';
|
_data: record end; external name '_data';
|
_edata: record end; external name '_edata';
|
_bss_start: record end; external name '_bss_start';
|
_bss_end: record end; external name '_bss_end';
|
Library initialization and finalization sections
Note: To access these from Pascal code use the address of the variable (eg @__ctors_start). Empty record definition prevents access to contents.
__preinit_array_start: record end; external name '__preinit_array_start';
|
__preinit_array_end: record end; external name '__preinit_array_end';
|
__init_array_start: record end; external name '__init_array_start';
|
__init_array_end: record end; external name '__init_array_end';
|
__fini_array_start: record end; external name '__fini_array_start';
|
__fini_array_end: record end; external name '__fini_array_end';
|
__ctors_start: record end; external name '__ctors_start';
|
__ctors_end: record end; external name '__ctors_end';
|
__dtors_start: record end; external name '__dtors_start';
|
__dtors_end: record end; external name '__dtors_end';
|
RTL initial heap allocation
RtlHeapAddr:record end; external name '__fpc_initialheap';
|
RtlHeapSize:PtrInt; external name '__heapsize';
|
RTL error handling
RtlErrorBase:Pointer; external name 'FPC_ERRORBASE';
|
RTL initialization
RtlInitFinalTable:record end; external name 'INITFINAL';
|
Memory and peripheral mapping configuration
Physical to IO address mapping
IO_BASE:PtrUInt;
|
The base for conversion from a Physical Address to an IO Address and back (Where Applicable) |
IO_ALIAS:PtrUInt;
|
The alias for conversion from a Physical Address to an IO Address and back (Where Applicable) |
Physical to bus address mapping
BUS_ALIAS:PtrUInt;
|
The mask for conversion from a Physical Address to a Bus Address and back (Where Applicable) |
IO base mapping
IO_LIMIT:UInt64;
|
The maximum range for an IO Address (Where Applicable) |
Secure boot
SECURE_BOOT:LongBool;
|
True if the boot process occurs in secure mode (Where Applicable) |
Emulator mode
EMULATOR_MODE:LongBool;
|
True if the boot process determines the machine is emulated (Where Applicable) |
Startup handler address
STARTUP_ADDRESS:LongWord;
|
The physical address of the Startup Handler on Reset |
Memory base mapping
MEMORY_BASE:PtrUInt;
|
The base (Physical) address for useable board memory |
MEMORY_SIZE:UInt64;
|
The size of the useable board address space |
MEMORY_PAGE_SIZE:LongWord;
|
The size of a memory page |
MEMORY_LARGEPAGE_SIZE:LongWord;
|
The size of a large memory page (Where applicable) |
MEMORY_SECTION_SIZE:LongWord;
|
The size of a memory section (Where applicable) |
MEMORY_LARGESECTION_SIZE:LongWord;
|
The size of a large memory section (Where applicable) |
Memory sizes
MEMORY_IRQ_SIZE:LongWord;
|
The size of the registered IRQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_FIQ_SIZE:LongWord;
|
The size of the registered FIQ memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_LOCAL_SIZE:LongWord;
|
The size of the registered local memory (Per CPU) (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_SHARED_SIZE:LongWord;
|
The size of the registered shared memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_DEVICE_SIZE:LongWord;
|
The size of the registered device memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_NOCACHE_SIZE:LongWord;
|
The size of the registered non cacheable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
MEMORY_NONSHARED_SIZE:LongWord;
|
The size of the registered non shareable memory (Must be a multiple of HEAP_REQUEST_ALIGNMENT size) |
Peripheral base mapping
PERIPHERALS_BASE:PtrUInt;
|
The base (Physical) address for accessing Peripherals |
PERIPHERALS_SIZE:UInt64;
|
The size of the Peripheral address space |
Local peripheral base mapping
LOCAL_PERIPHERALS_BASE:PtrUInt;
|
The base (Physical) address for accessing Local Peripherals (Peripherals local to each CPU) |
LOCAL_PERIPHERALS_SIZE:UInt64;
|
The size of the Local Peripheral address space |
Page table levels
PAGE_TABLE_LEVELS:LongWord = 2;
|
The number of Page Table levels for the current platform (Default 2) |
Page directory base mapping
PAGE_DIRECTORY_BASE:PtrUInt;
|
The base (Physical) address of the first level Page Directory (Where applicable) |
PAGE_DIRECTORY_SIZE:LongWord;
|
The size of the first level Page Directory address space (Where applicable) |
Page table base mapping
PAGE_TABLE_BASE:PtrUInt;
|
The base (Physical) address of the first or second level Page Table |
PAGE_TABLE_SIZE:LongWord;
|
The size of the first or second level Page Table address space |
Second level page tables
PAGE_TABLES_ADDRESS:PtrUInt;
|
The base (Physical) address of the second or third level Page Tables |
PAGE_TABLES_LENGTH:LongWord;
|
The size of the second or third level Page Table address space (Rounded to Page Size) |
PAGE_TABLES_COUNT:LongWord;
|
How many second or third level Page Tables allocated at this address |
PAGE_TABLES_SHIFT:LongWord;
|
The multiplier (left shift) to convert count to size (PAGE_TABLES_COUNT shl PAGE_TABLES_SHIFT = Actual Size) |
PAGE_TABLES_NEXT:PtrUInt;
|
The base (Physical) address of the next available second or third level Page Table |
PAGE_TABLES_USED:LongWord;
|
How many second or third level Page Tables are in use (During boot this will be set to the number required to cover the code and data plus initial stack, heap and overhead) |
PAGE_TABLES_FREE:LongWord = 1024;
|
How many second or third level Page Tables are available (The initial value here will be added to the number calculated during boot to provide extras for page allocation) |
Vector table base mapping
VECTOR_TABLE_BASE:PtrUInt;
|
The base (Physical) address of the Interrupt Vector Table |
VECTOR_TABLE_SIZE:LongWord;
|
The size of the Interrupt Vector Table address space |
VECTOR_TABLE_COUNT:LongWord;
|
The number of entries in the Interrupt Vector Table |
Machine and board configuration
Machine configuration
MACHINE_TYPE:LongWord;
|
Board configuration
BOARD_TYPE:LongWord;
|
CPU/FPU/GPU configuration
CPU configuration
CPU_ARCH:LongWord;
|
The current CPU architecture for this board |
CPU_TYPE:LongWord;
|
The current CPU model for this board |
CPU_COUNT:LongWord;
|
The current CPU count for this board |
CPU_MAX_COUNT:LongWord;
|
The maximum CPU count for this board |
CPU_BOOT:LongWord;
|
Which CPU is used for the boot process |
CPU_MASK:LongWord;
|
The mask of current CPUs for scheduling affinity |
CPU_MEMORY_BASE:PtrUInt;
|
The base (Physical) address for CPU memory |
CPU_MEMORY_SIZE:UInt64;
|
The size of the CPU address space |
CPU_MEMORY_RESTRICTED:LongBool;
|
Any areas of CPU address space with no physical memory are marked as no access |
FPU configuration
FPU_TYPE:LongWord;
|
The current FPU type for this board |
GPU configuration
GPU_TYPE:LongWord;
|
The current GPU type for this board |
GPU_MEMORY_BASE:PtrUInt;
|
The base (Physical) address for GPU memory |
GPU_MEMORY_SIZE:LongWord;
|
The size of the GPU address space |
GPU_MEMORY_CACHED:LongBool;
|
The GPU memory is cached when accessed by the CPU |
IRQ/FIQ/SWI configuration
IRQ_COUNT:LongWord;
|
The total number of IRQs supported for this board |
FIQ_COUNT:LongWord;
|
The total number of FIQs supported for this board |
IRQ_START:LongWord = 0;
|
The starting number for system wide IRQs/FIQs (Where Applicable)(Normally zero) |
IRQ_ROUTING:LongWord = CPU_ID_ALL;
|
Which CPU to route system wide IRQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual IRQs to any CPU) |
FIQ_ROUTING:LongWord = CPU_ID_ALL;
|
Which CPU to route system wide FIQs to (Where Applicable)(CPU_ID_ALL if system supports routing individual FIQs to any CPU) |
IRQ_LOCAL_COUNT:LongWord;
|
The number of local (Per CPU) IRQs supported for this board (Where Applicable) |
FIQ_LOCAL_COUNT:LongWord;
|
The number of local (Per CPU) FIQs supported for this board (Where Applicable) |
IRQ_LOCAL_START:LongWord;
|
The starting number for local (Per CPU) IRQs/FIQs (Where Applicable) |
IRQ_SOFTWARE_COUNT:LongWord;
|
The number of software (Per CPU) IRQs supported for this board (Where Applicable) |
FIQ_SOFTWARE_COUNT:LongWord;
|
The number of software (Per CPU) FIQs supported for this board (Where Applicable) |
IRQ_SOFTWARE_START:LongWord;
|
The starting number for software (Per CPU) IRQs/FIQs (Where Applicable) |
SWI_COUNT:LongWord;
|
The total number of SWIs supported for this board (Where Applicable) |
Interrupt and exception configuration
IRQ_ENABLED:LongBool;
|
The current CPU supports Interrupt Requests (IRQ) |
FIQ_ENABLED:LongBool;
|
The current CPU supports Fast Interrupt Requests (FIQ) |
IPI_ENABLED:LongBool;
|
The current CPU supports Inter Processor Interrupts (IPI) |
SWI_ENABLED:LongBool;
|
The current CPU supports Software Interrupt Handlers (SWI) |
ABORT_ENABLED:LongBool;
|
The current CPU supports Data and/or Prefetch Abort Handlers |
UNDEFINED_ENABLED:LongBool;
|
The current CPU supports Undefined Instruction Handlers |
IRQ_STACK_ENABLED:LongBool;
|
The current CPU uses an Interrupt Request Stack (IRQ) |
FIQ_STACK_ENABLED:LongBool;
|
The current CPU uses a Fast Interrupt Request Stack (FIQ) |
SWI_STACK_ENABLED:LongBool;
|
The current CPU uses a Software Interrupt Stack (SWI) |
ABORT_STACK_ENABLED:LongBool;
|
The current CPU uses a Data and/or Prefetch Abort Stack |
UNDEFINED_STACK_ENABLED:LongBool;
|
The current CPU uses an Undefined Instruction Stack |
Clock and timer configuration
Clock configuration
CLOCK_FREQUENCY:LongWord;
|
The frequency in Hz of the system timer used to provide the system clock (Clock cycles per second) |
CLOCK_TICKS_PER_SECOND:LongWord = 1000;
|
How many clock interrupts to schedule per second (1000 equals 1 per millisecond) |
CLOCK_TICKS_PER_MILLISECOND:LongWord = 1;
|
How many clock interrupts occur every millisecond (Normally 1 if CLOCK_TICKS_PER_SECOND is 1000) |
CLOCK_CYCLES_PER_TICK:LongWord;
|
How many clock cycles between clock interrupts (Normally CLOCK_FREQUENCY div CLOCK_TICKS_PER_SECOND) |
CLOCK_CYCLES_PER_MILLISECOND:LongWord;
|
How many clock cycles to a millisecond (Normally CLOCK_FREQUENCY div MILLISECONDS_PER_SECOND) |
CLOCK_CYCLES_PER_MICROSECOND:LongWord;
|
How many clock cycles to a microsecond (Normally CLOCK_FREQUENCY div MICROSECONDS_PER_SECOND) |
CLOCK_CYCLES_PER_NANOSECOND:LongWord;
|
How many clock cycles to a nanosecond (Normally CLOCK_FREQUENCY div NANOSECONDS_PER_SECOND) |
CLOCK_CYCLES_TOLERANCE:LongWord;
|
How many clock cycles tolerance when scheduling the next clock interrupt (Normally CLOCK_CYCLES_PER_TICK div 10) |
CLOCK_FIQ_ENABLED:LongBool;
|
The Clock uses Fast Interrupt Requests (FIQ) instead of IRQ |
TIME_TICKS_PER_CLOCK_INTERRUPT:LongWord;
|
How many 100 nanosecond time ticks per clock interrupt |
Timer configuration
TIMER_THREAD_COUNT:LongWord = 4;
|
How many timer threads to create |
TIMER_PRIORITY_THREAD_COUNT:LongWord = 1;
|
How many priority timer threads to create |
TIMER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;
|
Maximum number of messages for the timer messageslot |
Worker configuration
WORKER_THREAD_COUNT:LongWord = 8;
|
How many worker threads to create |
WORKER_PRIORITY_THREAD_COUNT:LongWord = 2;
|
How many priority worker threads to create |
WORKER_MESSAGESLOT_MAXIMUM:LongWord = SIZE_2K;
|
Maximum number of messages for the worker messageslot |
Spin, mutex, semaphore, critical section, event and buffer configuration
Spin defaults
SPIN_SHARED_MEMORY:LongBool;
|
Spin locks are allocated from Shared memory regions if True |
Mutex defaults
MUTEX_SHARED_MEMORY:LongBool;
|
Mutexs are allocated from Shared memory regions if True |
MUTEX_DEFAULT_SPINCOUNT:LongWord = 0;
|
Default number of times a mutex will spin before yielding (Overidden to 0 if CPU count equals 1) |
Semaphore defaults
SEMAPHORE_SHARED_MEMORY:LongBool;
|
Semaphores are allocated from Shared memory regions if True |
SEMAPHORE_DEFAULT_MAXIMUM:LongWord = $FFFFFFFF;
|
Default maximum count for a seamphore |
Synchronizer defaults
SYNCHRONIZER_SHARED_MEMORY:LongBool;
|
Synchronizers are allocated from Shared memory regions if True |
Condition defaults
CONDITION_SHARED_MEMORY:LongBool;
|
Condition variables are allocated from Shared memory regions if True |
Completion defaults
COMPLETION_SHARED_MEMORY:LongBool;
|
Completion variables are allocated from Shared memory regions if True |
Critical section defaults
CRITICAL_SECTION_SHARED_MEMORY:LongBool;
|
Critical Sections are allocated from Shared memory regions if True |
CRITICAL_SECTION_DEFAULT_SPINCOUNT:LongWord = 0;
|
Default number of times a critical section will spin before waiting (Overidden to 0 if CPU count equals 1) |
Messageslot defaults
MESSAGESLOT_SHARED_MEMORY:LongBool;
|
Messageslots are allocated from Shared memory regions if True |
MESSAGESLOT_DEFAULT_MAXIMUM:LongWord = SIZE_1K;
|
Default maximum number of messages that can be stored in a messageslot |
Mailslot defaults
MAILSLOT_SHARED_MEMORY:LongBool;
|
Mailslots are allocated from Shared memory regions if True |
Buffer defaults
BUFFER_SHARED_MEMORY:LongBool;
|
Buffers are allocated from Shared memory regions if True |
BUFFER_MIN_SIZE:LongWord = SizeOf(Pointer);
|
Minimum size of an item in a buffer |
BUFFER_MAX_SIZE:LongWord = SIZE_4K;
|
Maximum size of an item in a buffer |
BUFFER_MAX_COUNT:LongWord = SIZE_8K;
|
Maximum number of items in a buffer |
Event defaults
EVENT_SHARED_MEMORY:LongBool;
|
Events are allocated from Shared memory regions if True |
Handle defaults
HANDLE_SHARED_MEMORY:LongBool;
|
Handles are allocated from Shared memory regions if True |
Heap, stack, and thread configuration
Heap alignment
HEAP_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for the Heap Manager (Set by board specific initialization if not default)(Must be a power of 2) |
HEAP_REQUEST_ALIGNMENT:LongWord = SIZE_4K;
|
The required alignment for Heap Manager requests (eg RequestSharedHeapBlock etc) (Set by board specific initialization if not default)(Must be a power of 2) |
Heap behaviour
HEAP_NORMAL_SHARED:LongBool;
|
If True then Normal memory is considered Shared memory by the Heap Manager (Default False) |
HEAP_NORMAL_LOCAL:LongBool;
|
If True then Normal memory is considered Local memory by the Heap Manager (Default False) |
HEAP_NORMAL_CODE:LongBool;
|
If True then Normal memory is considered Code memory by the Heap Manager (Default False) |
HEAP_NORMAL_DEVICE:LongBool;
|
If True then Normal memory is considered Device memory by the Heap Manager (Default False) |
HEAP_NORMAL_NOCACHE:LongBool;
|
If True then Normal memory is considered Non Cached memory by the Heap Manager (Default False) |
HEAP_NORMAL_NONSHARED:LongBool;
|
If True then Normal memory is considered Non Shared memory by the Heap Manager (Default False) |
HEAP_LOCAL_CACHE_COHERENT:LongBool;
|
If True then Local memory is considered cache coherent (Default False) |
HEAP_IRQ_CACHE_COHERENT:LongBool;
|
If True then IRQ memory is considered cache coherent (Default False) |
HEAP_FIQ_CACHE_COHERENT:LongBool;
|
If True then FIQ memory is considered cache coherent (Default False) |
Heap locking
HEAP_LOCK_SPIN:LongBool;
|
If True then Heap lock uses Spin instead of Mutex (Default False) |
Stack alignment
STACK_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for Thread stacks (Set by board specific initialization if not default)(Must be a power of 2) |
Threadvar alignment
THREADVAR_MIN_ALIGNMENT:LongWord = SizeOf(Pointer);
|
The default alignment for Thread Vars (Set by board specific initialization if not default) |
Initial heap allocation (Used prior to Memory Manager initialization)
INITIAL_HEAP_SIZE:LongWord = SIZE_64K;
|
The size of the initial heap allocation (Set by board specific initialization if not default) |
INITIAL_HEAP_BASE:PtrUInt;
|
The base address of the initial heap allocation (Set by StartupHandler) |
Initial thread defaults
(The first created thread for the primary CPU which becomes either IRQ_THREAD_HANDLE[CPU_ID_0] or FIQ_THREAD_HANDLE[CPU_ID_0])
INITIAL_TLS_SIZE:LongWord = SIZE_16K;
|
Default TLS (Thread Var) block size for the Initial Thread (Calculated TLS size is used for all other threads) |
INITIAL_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for the Initial Thread |
INITIAL_STACK_BASE:PtrUInt;
|
The base address (Top) of the stack for the Initial Thread (Set by StartupHandler) |
Boot thread defaults
(The first created thread for each secondary CPU which becomes either IRQ_THREAD_HANDLE[CPUID] or FIQ_THREAD_HANDLE[CPUID])
BOOT_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for the Boot Threads |
BOOT_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Boot Threads (One per CPU, allocated by threads initialization) |
BOOT_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Boot Threads (One per CPU, allocated by threads initialization) |
Idle thread defaults
IDLE_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for Idle Threads |
IDLE_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Idle Threads (One per CPU, allocated by threads initialization) |
IRQ thread defaults
IRQ_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for IRQ Threads |
IRQ_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the IRQ Threads (One per CPU, allocated by threads initialization) |
IRQ_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the IRQ Threads (One per CPU, allocated by threads initialization) |
FIQ thread defaults
FIQ_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for FIQ Threads |
FIQ_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the FIQ Threads (One per CPU, allocated by threads initialization) |
FIQ_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the FIQ Threads (One per CPU, allocated by threads initialization) |
SWI thread defaults
SWI_STACK_SIZE:LongWord = SIZE_32K;
|
Default stack size for Software Interrupt Handlers (SWI) |
SWI_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Software Interrupt Handlers (One per CPU, allocated by threads initialization) |
SWI_THREAD_HANDLE:array of TThreadHandle;
|
Handles of the Software Interrupt Handler (SWI) Threads (One per CPU, allocated by threads initialization) |
Thread defaults
THREAD_SHARED_MEMORY:LongBool;
|
Threads are allocated from Shared memory regions if True |
THREAD_STACK_DEFAULT_SIZE:LongWord = SIZE_256K;
|
Default stack size for all threads (Unless specified during creation) |
THREAD_STACK_MINIMUM_SIZE:LongWord = SIZE_4K;
|
Minimum thread stack size |
THREAD_STACK_MAXIMUM_SIZE:LongWord = SIZE_4M;
|
Maximum thread stack size |
THREAD_STACK_GUARD_ENABLED:LongBool = True;
|
If True then each thread stack includes a guard page to detect stack overflows |
THREAD_NAME_DEFAULT:String;
|
The default name for new threads |
THREAD_MESSAGES_MAXIMUM:LongWord = SIZE_256;
|
Maximum number of messages that can be stored in a thread message list |
ABORT stack defaults
ABORT_STACK_SIZE:LongWord = SIZE_4K;
|
Default stack size for Data and/or Prefetch Abort Handlers |
ABORT_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Data and/or Prefetch Abort Handlers (One per CPU, allocated by threads initialization) |
UNDEFINED stack defaults
UNDEFINED_STACK_SIZE:LongWord = SIZE_4K;
|
Default stack size for Undefined Instruction Handlers |
UNDEFINED_STACK_BASE:array of PtrUInt;
|
The base address (Top) of the stack for the Undefined Instruction Handlers (One per CPU, allocated by threads initialization) |
Scheduler configuration
Scheduler defaults
SCHEDULER_INTERRUPTS_PER_SECOND:LongWord = 1000;
|
How many scheduler interrupts to schedule per second (1000 equals 1 per millisecond) |
SCHEDULER_INTERRUPTS_PER_MILLISECOND:LongWord = 1;
|
How many scheduler interrupts occur every millisecond (Normally 1 if SCHEDULER_INTERRUPTS_PER_SECOND is 1000) |
SCHEDULER_CLOCKS_PER_INTERRUPT:LongWord;
|
How many clock cycles between scheduler interrupts (Normally CLOCK_FREQUENCY div SCHEDULER_INTERRUPTS_PER_SECOND) |
SCHEDULER_CLOCKS_TOLERANCE:LongWord;
|
How many clock cycles tolerance when scheduling the next scheduler interrupt (Normally SCHEDULER_CLOCKS_PER_INTERRUPT div 10) |
SCHEDULER_CPU_COUNT:LongWord;
|
The current CPU count used by the scheduler (Requested from CPUGetCount) (Set by threads initialization) |
SCHEDULER_CPU_MASK:LongWord;
|
The current CPU mask used by the scheduler (Requested from CPUGetMask) (Set by threads initialization) |
SCHEDULER_CPU_BOOT:LongWord;
|
The current boot CPU Id used by the scheduler (Requested from CPUGetBoot) (Set by threads initialization) |
SCHEDULER_CPU_RESERVE:LongWord;
|
The reserved CPU mask used by the scheduler, reserved CPUs will be marked as allocation disabled during boot (Default: 0) |
SCHEDULER_THREAD_QUANTUM:LongWord = 6;
|
How many scheduler interrupts for the base thread quantum (Actual quantum is adjusted by priority) |
SCHEDULER_PRIORITY_QUANTUM:array of LongWord;
|
How many scheduler interrupts to adjust the base thread quantum for each priority level (One per priority level, allocated by threads initialization) |
SCHEDULER_MIGRATION_QUANTUM:LongWord = 100;
|
How many scheduler thread switches between thread migration checks |
SCHEDULER_STARVATION_QUANTUM:LongWord = 5;
|
How many scheduler thread switches between thread starvation checks |
SCHEDULER_TERMINATION_INITIAL:LongWord = 100;
|
How many scheduler interrupts to wait between thread termination and stack release |
SCHEDULER_TERMINATION_QUANTUM:LongWord = 30000;
|
How many scheduler interrupts to wait between thread termination and thread destruction |
SCHEDULER_MIGRATION_OFFSET:LongWord = 5;
|
The minimum offset between CPU thread counts for a migration to occur |
SCHEDULER_PRIORITY_MASK:array of LongWord;
|
Mask value of each thread priority level used for determining highest priority thread (One per priority level, allocated by threads initialization) |
SCHEDULER_FIQ_ENABLED:LongBool;
|
The Scheduler uses Fast Interrupt Requests (FIQ) instead of IRQ |
SCHEDULER_SWI_ENABLED:LongBool;
|
The Scheduler uses Software Interrupts for rescheduling instead of direct context switch |
SCHEDULER_SECONDARY_WAIT:LongBool = False;
|
If True all secondary CPUs wait until initialization is completed |
SCHEDULER_SECONDARY_DISABLED:LongBool;
|
If True all secondary CPUs will be put to sleep during boot |
SCHEDULER_IDLE_WAIT:LongBool;
|
If True then the idle loop will wait in low power state on each iteration (May affect utilization calculation) |
SCHEDULER_IDLE_OFFSET:LongWord;
|
Idle loop delay per iteration (Milliseconds) |
SCHEDULER_IDLE_PER_SECOND:LongWord;
|
How many idle loops complete in one second when no other tasks are running (Set by threads initialization) |
TIME_TICKS_PER_SCHEDULER_INTERRUPT:LongWord;
|
How many 100 nanosecond time ticks per scheduler interrupt |
Device tree configuration
DEVICE_TREE_BASE:PtrUInt;
|
The base address of the device tree information (If Applicable) |
DEVICE_TREE_SIZE:LongWord;
|
The total size of the device tree information (If Applicable) |
DEVICE_TREE_VALID:LongBool;
|
True if the device tree information has a valid signature (If Applicable) |
Peripheral configuration (Set by PeripheralInit)
Peripheral addresses
INTERRUPT_REGS_BASE:PtrUInt;
|
The base address of the Interrupt Controller registers (If Applicable) |
SYSTEMTIMER_REGS_BASE:PtrUInt;
|
The base address of the System Timer registers (If Applicable) |
TIMER_REGS_BASE:PtrUInt;
|
The base address of the Timer registers (If Applicable) |
GPIO_REGS_BASE:PtrUInt;
|
The base address of the GPIO registers (If Applicable) |
UART_REGS_BASE:PtrUInt;
|
The base address of the primary UART registers (If Applicable) |
SPI_REGS_BASE:PtrUInt;
|
The base address of the primary SPI registers (If Applicable) |
I2C_REGS_BASE:PtrUInt;
|
The base address of the primary I2C registers (If Applicable) |
I2S_REGS_BASE:PtrUInt;
|
The base address of the primary I2S registers (If Applicable) |
PWM_REGS_BASE:PtrUInt;
|
The base address of the primary PWM registers (If Applicable) |
LED configuration (Set by specific PlatformInit)
Power LED
POWER_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
The GPIO Pin for the Power LED (Where Applicable) |
POWER_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;
|
The GPIO Pull Select for the Power LED (Where Applicable) |
POWER_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;
|
The GPIO Function Select for the Power LED (Where Applicable) |
POWER_LED_ACTIVE_LOW:LongBool;
|
If True the Power LED is Active Low (Clear Pin to Turn On) (Where Applicable) |
Activity LED
ACTIVITY_LED_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
The GPIO Pin for the Activity LED (Where Applicable) |
ACTIVITY_LED_PULL:LongWord = GPIO_PULL_UNKNOWN;
|
The GPIO Pull Select for the Activity LED (Where Applicable) |
ACTIVITY_LED_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;
|
The GPIO Function Select for the Activity LED (Where Applicable) |
ACTIVITY_LED_ACTIVE_LOW:LongBool;
|
If True the Activity LED is Active Low (Clear Pin to Turn On) (Where Applicable) |
Console and frameBuffer configuration
Console
CONSOLE_DEFAULT_FORECOLOR:LongWord = COLOR_LIGHTGRAY;
|
The default foreground color for the console |
CONSOLE_DEFAULT_BACKCOLOR:LongWord = COLOR_BLACK;
|
The default background color for the console |
CONSOLE_DEFAULT_BORDERWIDTH:LongWord = 2;
|
The default border width for the console |
CONSOLE_DEFAULT_BORDERCOLOR:LongWord = COLOR_WHITE;
|
The default border color for the console |
CONSOLE_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;
|
The default Font for the console |
CONSOLE_DEFAULT_FONT_NAME:String;
|
The default Font name for the console |
CONSOLE_LINE_WRAP:LongBool = True;
|
If True then wrap long lines to the next line when writing to the console (Sets CONSOLE_FLAG_LINE_WRAP on device/WINDOW_FLAG_LINE_WRAP on windows) |
CONSOLE_AUTO_SCROLL:LongBool = True;
|
If True then automatically scroll up on reaching the last line of the console (Sets CONSOLE_FLAG_AUTO_SCROLL on device/WINDOW_FLAG_AUTO_SCROLL on windows) |
CONSOLE_FOCUS_CURSOR:LongBool = True;
|
If True then cursor (caret) is only visible on the focused (active) window (Sets CONSOLE_FLAG_FOCUS_CARET on device / WINDOW_FLAG_FOCUS_CURSOR on windows) |
CONSOLE_CURSOR_BLINK_RATE:LongWord = 500;
|
Blink rate (in milliseconds) of the console cursor (caret) |
CONSOLE_DMA_BOX:LongBool = True;
|
If True then use DMA (If available) to draw console window boxes (Sets CONSOLE_FLAG_DMA_BOX on device) |
CONSOLE_DMA_TEXT:LongBool = False;
|
If True then use DMA (If available) to draw console window text (Sets CONSOLE_FLAG_DMA_TEXT on device) |
CONSOLE_DMA_LINE:LongBool = True;
|
If True then use DMA (If available) to draw console window lines (Sets CONSOLE_FLAG_DMA_LINE on device) |
CONSOLE_DMA_FILL:LongBool = True;
|
If True then use DMA (If available) to fill console windows (Sets CONSOLE_FLAG_DMA_FILL on device) |
CONSOLE_DMA_CLEAR:LongBool = True;
|
If True then use DMA (If available) to clear console windows (Sets CONSOLE_FLAG_DMA_CLEAR on device) |
CONSOLE_DMA_SCROLL:LongBool = True;
|
If True then use DMA (If available) to scroll console windows (Sets CONSOLE_FLAG_DMA_SCROLL on device) |
CONSOLE_REGISTER_LOGGING:LongBool = False;
|
If True then register a Console device as a Logging device (Only if Console unit included) |
CONSOLE_LOGGING_DEFAULT:LongBool = False;
|
If True then a Console device can be the default Logging device |
CONSOLE_LOGGING_POSITION:LongWord = CONSOLE_POSITION_RIGHT;
|
The default Console Window position for the console Logging device |
CONSOLE_LOGGING_DEVICE:String;
|
The console device Name (or Desription) to create the Logging window on, if blank create on default device |
CONSOLE_CRT_POSITION:LongWord = CONSOLE_POSITION_FULL;
|
The default Console Window position for the CRT unit (Only if CRT unit included) |
CONSOLE_VIDEO_POSITION:LongWord = CONSOLE_POSITION_FULL;
|
The default Console Window position for the ConsoleVideo unit (Only if ConsoleVideo unit included) |
CONSOLE_VIDEO_DEVICE:String;
|
The console device Name (or Description) to create the ConsoleVideo window on, if blank create on default device |
CONSOLE_VIDEO_WINDOW:THandle = INVALID_HANDLE_VALUE;
|
The console window used or created by the ConsoleVideo unit |
CONSOLE_VIDEO_FONT:String;
|
The font name to use for the ConsoleVideo window, if blank use the default font (Default8x16) |
Window
WINDOW_DEFAULT_FORECOLOR:LongWord = COLOR_DARKGRAY;
|
The default foreground color for console windows |
WINDOW_DEFAULT_BACKCOLOR:LongWord = COLOR_WHITE;
|
The default background color for console windows |
WINDOW_DEFAULT_BORDERWIDTH:LongWord = 2;
|
The default border width for console windows |
WINDOW_DEFAULT_BORDERCOLOR:LongWord = COLOR_MIDGRAY;
|
The default border color for console windows |
WINDOW_DEFAULT_ACTIVEBORDER:LongWord = COLOR_GRAY;
|
The default active border color for console windows |
WINDOW_DEFAULT_FONT:THandle = INVALID_HANDLE_VALUE;
|
The default Font for console windows |
WINDOW_DEFAULT_FONT_NAME:String;
|
The default Font name for console windows |
Framebuffer console
FRAMEBUFFER_CONSOLE_AUTOCREATE:LongBool = True;
|
If True then auto create a console on any framebuffer device (Only if Console unit included) |
FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPOFFSET:LongWord = 48;
|
The default desktop offset for the framebuffer console |
FRAMEBUFFER_CONSOLE_DEFAULT_DESKTOPCOLOR:LongWord = COLOR_ULTIBO;
|
The default desktop color for the framebuffer console |
FRAMEBUFFER_CONSOLE_MESSAGE:String;
|
The message displayed in the top border of the framebuffer console |
Framebuffer
FRAMEBUFFER_DEFAULT_DEPTH:LongWord = FRAMEBUFFER_DEPTH_32;
|
The default (Detected/Configured) Framebuffer depth in bits per pixel |
FRAMEBUFFER_DEFAULT_ORDER:LongWord = FRAMEBUFFER_ORDER_RGB;
|
The default (Detected/Configured) Framebuffer pixel order |
FRAMEBUFFER_DEFAULT_MODE:LongWord = FRAMEBUFFER_MODE_ENABLED;
|
The default (Detected/Configured) Framebuffer alpha mode |
FRAMEBUFFER_DEFAULT_WIDTH:LongWord;
|
The default (Detected/Configured) Framebuffer width in pixels |
FRAMEBUFFER_DEFAULT_HEIGHT:LongWord;
|
The default (Detected/Configured) Framebuffer height in pixels |
FRAMEBUFFER_DEFAULT_OFFSET_X:LongWord;
|
The default (Configured) Framebuffer X offset in pixels |
FRAMEBUFFER_DEFAULT_OFFSET_Y:LongWord;
|
The default (Configured) Framebuffer Y offset in pixels |
FRAMEBUFFER_DEFAULT_OVERSCAN_TOP:LongWord;
|
The default (Detected/Configured) Framebuffer Top overscan in pixels |
FRAMEBUFFER_DEFAULT_OVERSCAN_BOTTOM:LongWord;
|
The default (Detected/Configured) Framebuffer Bottom overscan in pixels |
FRAMEBUFFER_DEFAULT_OVERSCAN_LEFT:LongWord;
|
The default (Detected/Configured) Framebuffer Left overscan in pixels |
FRAMEBUFFER_DEFAULT_OVERSCAN_RIGHT:LongWord;
|
The default (Detected/Configured) Framebuffer Right overscan in pixels |
FRAMEBUFFER_DEFAULT_ROTATION:LongWord = FRAMEBUFFER_ROTATION_0;
|
The default (Detected/Configured) Framebuffer rotation on degress (Where Applicable) |
Command line and environment configuration
Command line
KERNEL_NAME:PChar;
|
The name of the Kernel image (Returned by ParamStr(0) or argv[0]) |
KERNEL_CONFIG:PChar;
|
The name of the Kernel configuration file (Where Applicable) |
KERNEL_COMMAND:PChar;
|
The name of the Kernel command line file (Where Applicable) |
FIRMWARE_FILES:PChar;
|
The name of the Firmare files (Where Applicable) |
DTB_FILES:PChar;
|
The name of the Device Tree (DTB) files (Where Applicable) |
Environment
ENVIRONMENT_STRING_COUNT:LongWord = SIZE_64;
|
How many strings are allocated in the environment block (for Get/SetEnvironmentVariable) |
Initial ramdisk
INITIAL_RAMDISK_BASE:PtrUInt;
|
The starting address of the initial ramdisk passed from the bootloader (If applicable) |
INITIAL_RAMDISK_SIZE:UInt64;
|
The size in bytes of the initial ramdisk passed from the bootloader (If applicable) |
Date and time configuration
SYSTEM_DATE_FORMAT:String = 'dd-mmm-yyyy';
|
Default format for date to string conversion (System functions only) |
SYSTEM_TIME_FORMAT:String = 'hh:nn:ss.zzz';
|
Default format for time to string conversion (System functions only) |
ISO_DATE_FORMAT:String = 'yyyy-mm-dd';
|
Format specified in ISO8601 for date to string conversion |
ISO_TIME_FORMAT:String = 'hh:nn:ss';
|
Format specified in ISO8601 for time to string conversion |
Timezone configuration
TIMEZONE_TIME_OFFSET:LongInt;
|
The current time offset between UTC and Local time (Minutes) |
TIMEZONE_TIME_ADJUST:LongInt;
|
The current time offset between Local and Adjusted time (Minutes) |
TIMEZONE_UPDATE_LAST:Int64;
|
The clock time of the last timezone update check |
TIMEZONE_UPDATE_CURRENT:LongBool;
|
If true then a timezone update check is in progress |
TIMEZONE_DEFAULT_NAME:String;
|
The name of the default timezone |
DMA configuration
DMA defaults
DMA_ALIGNMENT:LongWord;
|
The default alignment for DMA memory allocations |
DMA_MULTIPLIER:LongWord;
|
The default multiplier for DMA memory allocations |
DMA_SHARED_MEMORY:LongBool;
|
DMA control blocks and DMA buffers are allocated from Shared memory regions if True |
DMA_NOCACHE_MEMORY:LongBool;
|
DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True |
DMA_BUS_ADDRESSES:LongBool;
|
DMA control blocks and DMA buffers are referenced by Bus addresses if True |
DMA_CACHE_COHERENT:LongBool;
|
DMA control blocks and DMA buffers are considered cache coherent if True |
Device configuration
Device defaults
DEVICE_SHARED_MEMORY:LongBool;
|
Devices are allocated from Shared memory regions if True |
DEVICE_REGISTER_CLOCK:LongBool = False;
|
If True then register the default clock device handlers (Default False) |
DEVICE_REGISTER_TIMER:LongBool = True;
|
If True then register the default timer device handlers |
DEVICE_REGISTER_RANDOM:LongBool = True;
|
If True then register the default random device handlers |
DEVICE_REGISTER_MAILBOX:LongBool = True;
|
If True then register the default mailbox device handlers |
DEVICE_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the default watchdog device handlers |
DEVICE_FIRMWARE_PATH:String = 'C:\firmware';
|
The default path for loading device specific firmware (If applicable) |
Driver configuration
Driver defaults
DRIVER_SHARED_MEMORY:LongBool;
|
Drivers are allocated from Shared memory regions if True |
Host configuration
Host defaults
HOST_SHARED_MEMORY:LongBool;
|
Hosts are allocated from Shared memory regions if True |
Serial configuration
SERIAL_REGISTER_LOGGING:LongBool = False;
|
If True then register a Serial device as a Logging device (Only if Serial unit included) |
SERIAL_LOGGING_DEFAULT:LongBool = False;
|
If True then a Serial device can be the default Logging device |
SERIAL_LOGGING_PARAMETERS:String = '0,N,8,1';
|
The default serial settings for the serial logging device (BaudRate,Parity,DataBits,StopBits)(BaudRate 0 equals use default rate) |
Logging configuration
Logging defaults
LOGGING_DIRECT_ENABLE:LongBool;
|
If True then logging output is written directly and not scheduled via the logging thread |
LOGGING_INCLUDE_COUNTER:LongBool = True;
|
If True then logging output includes an incrementing counter to detect missed entries |
LOGGING_INCLUDE_DATE:LongBool;
|
If True then logging output includes the current date for each entry |
LOGGING_INCLUDE_TIME:LongBool;
|
If True then logging output includes the current time for each entry |
LOGGING_INCLUDE_DATETIME:LongBool;
|
If True then logging output includes the current date and time for each entry |
LOGGING_INCLUDE_TICKCOUNT:LongBool;
|
If True then logging output includes the 64-bit tick count value for each entry |
LOGGING_MESSAGESLOT_MAXIMUM:LongWord = SIZE_8K;
|
Maximum number of messages for the logging messageslot |
Syscalls configuration
SYSCALLS_HEAP_BASE:PtrUInt = $C0000000;
|
The starting address for the dynamic C library heap space (Only if Syscalls unit included)(0 equals use static heap space only) |
SYSCALLS_HEAP_MIN:LongWord = SIZE_2M;
|
The minimum size of the dynamic C library heap space (Only if Syscalls unit included)(Or the total size if using static heap space) |
SYSCALLS_HEAP_MAX:UInt64 = SIZE_1G;
|
The maximum size of the dynamic C library heap space (Only if Syscalls unit included)(Ignored if using static heap space only) |
SYSCALLS_HEAP_BLOCKSIZE:LongWord = SIZE_1M;
|
The block size to request from the heap manager on each expansion of the dynamic C library heap space (Only if Syscalls unit included) |
Generic Peripheral configuration (Set by PeripheralInit)
GPIO
GPIO_PIN_COUNT:LongWord;
|
The number of GPIO pins available on this board |
Virtual GPIO
VIRTUAL_GPIO_PIN_COUNT:LongWord;
|
The number of Virtual GPIO pins available on this board |
Keyboard
KEYBOARD_NUM_LOCK_DEFAULT:LongBool = True;
|
If True then set Num Lock to On by default for all keyboards (Default: True) |
KEYBOARD_CAPS_LOCK_DEFAULT:LongBool = False;
|
If True then set Caps Lock to On by default for all keyboards |
KEYBOARD_SCROLL_LOCK_DEFAULT:LongBool = False;
|
If True then set Scroll Lock to On by default for all keyboards |
KEYBOARD_CTRL_ALT_IS_ALTGR:LongBool = False;
|
If True then pressing Ctrl+Alt acts as the AltGr key |
KEYBOARD_SHIFT_IS_CAPS_LOCK_OFF:LongBool = False;
|
If True then pressing Shift turns Off Caps Lock |
Mouse
MOUSE_SWAP_BUTTONS_DEFAULT:LongBool = False;
|
If True then set Swap Buttons (Left <-> Right) to On by default for all mice |
Touch
TOUCH_MOUSE_DATA_DEFAULT:LongBool = True;
|
If True then set all touch devices to add mouse data events for compatibility (Default: True) |
HID
HID_REGISTER_KEYBOARD:LongBool = True;
|
If True then register the HID keyboard consumer during boot (Only if HIDKeyboard unit included) |
HID_REGISTER_MOUSE:LongBool = True;
|
If True then register the HID mouse consumer during boot (Only if HIDMouse unit included) |
HID_REGISTER_TOUCH:LongBool = True;
|
If True then register the HID touch consumer during boot (Only if HIDTouch unit included) |
HID_REGISTER_JOYSTICK:LongBool = True;
|
If True then register the HID joystick consumer during boot (Only if HIDJoystick unit included) |
HID_REGISTER_GAMEPAD:LongBool = True;
|
If True then register the HID gamepad consumer during boot (Only if HIDGamepad unit included) |
HID_MOUSE_REJECT_TOUCH:LongBool;
|
If True then the HID mouse consumer should reject devices that include a touch screen collection |
PCI
PCI_AUTOSTART:LongBool = True;
|
If True then auto start the PCI subsystem on boot (Only if PCI unit included) |
PCI_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
PCI_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the PCI subsystem on boot (Only if PCI_ASYNCSTART is True) |
PCI_SCAN_ALL_PCIE_DEVICES:LongBool;
|
If True then PCI device scan will scan all PCIe slots instead of just slot 0 |
USB
USB_AUTOSTART:LongBool = True;
|
If True then auto start the USB subsystem on boot (Only if USB unit included) |
USB_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
USB_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the USB subsystem on boot (Only if USB_ASYNCSTART is True) |
USB_DMA_ALIGNMENT:LongWord;
|
The default alignment for USB DMA memory allocations |
USB_DMA_MULTIPLIER:LongWord;
|
The default multiplier for USB DMA memory allocations |
USB_DMA_SHARED_MEMORY:LongBool;
|
USB DMA buffers are allocated from Shared memory regions if True |
USB_DMA_NOCACHE_MEMORY:LongBool;
|
USB DMA buffers are allocated from Non Cached memory regions if True |
USB_DMA_BUS_ADDRESSES:LongBool;
|
USB DMA buffers are referenced by Bus addresses if True |
USB_DMA_CACHE_COHERENT:LongBool;
|
USB DMA buffers are considered cache coherent if True |
MMC
MMC_AUTOSTART:LongBool = True;
|
If True then auto start the MMC/SD subsystem on boot (Only if MMC unit included) |
MMC_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
MMC_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the MMC/SD subsystem on boot (Only if MMC_ASYNCSTART is True) |
MMC_DMA_ALIGNMENT:LongWord;
|
The default alignment for MMC DMA memory allocations |
MMC_DMA_MULTIPLIER:LongWord;
|
The default multiplier for MMC DMA memory allocations |
MMC_DMA_SHARED_MEMORY:LongBool;
|
MMC DMA buffers are allocated from Shared memory regions if True |
MMC_DMA_NOCACHE_MEMORY:LongBool;
|
MMC DMA buffers are allocated from Non Cached memory regions if True |
MMC_DMA_BUS_ADDRESSES:LongBool;
|
MMC DMA buffers are referenced by Bus addresses if True |
MMC_DMA_CACHE_COHERENT:LongBool;
|
MMC DMA buffers are considered cache coherent if True |
USB hub
USB_HUB_MESSAGESLOT_MAXIMUM:LongWord = SIZE_512;
|
Maximum number of messages for the USB hub messageslot |
USB_HUB_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB HUB driver during boot (Only if USB unit included) Note: USB cannot function correctly without a hub driver |
USB HID
USB_HID_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB HID driver during boot (Only if USBHID unit included) |
USB keyboard
USB_KEYBOARD_POLLING_INTERVAL:LongWord = 10;
|
Override the default polling interval for a USB keyboard (Milliseconds) |
USB_KEYBOARD_REGISTER_DRIVER:LongBool = False;
|
If True then register the USB Keyboard driver during boot (Only if Keyboard unit included) Note: Replaced by USB HID driver |
USB mouse
USB_MOUSE_POLLING_INTERVAL:LongWord = 10;
|
Override the default polling interval for a USB mouse (Milliseconds) |
USB_MOUSE_REGISTER_DRIVER:LongBool = False;
|
If True then register the USB Mouse driver during boot (Only if Mouse unit included) Note: Replaced by USB HID driver |
USB touch
USB_TOUCH_POLLING_INTERVAL:LongWord = 0;
|
Override the default polling interval for a USB touch screen (Milliseconds) |
USB storage
USB_STORAGE_FORCE_REMOVABLE:LongBool;
|
If True then all USB storage devices will be assumed to be removable |
USB_STORAGE_REGISTER_DRIVER:LongBool = True;
|
If True then register the USB Storage driver during boot (Only if Storage unit included) |
XHCI
XHCI_REGISTER_DRIVER:LongBool = True;
|
If True then register the XHCI PCI driver during boot (Only if XHCI unit included) |
Specific Peripheral configuration (Set by PeripheralInit)
DWCOTG (Synopsys DesignWare Hi-Speed USB 2.0 On-The-Go Controller)
DWCOTG_REGISTER_HOST:LongBool = True;
|
If True then register the DWCOTG USB Host during boot (Only if DWCOTG unit included) |
DWCOTG_IRQ:LongWord;
|
The IRQ number of the DWCOTG device |
DWCOTG_POWER_ID:LongWord;
|
The power Id of the DWCOTG device |
DWCOTG_REGS_BASE:PtrUInt;
|
The base address of the DWCOTG registers |
DWCOTG_FIQ_ENABLED:LongBool;
|
The DWCOTG device uses Fast Interrupt Requests (FIQ) instead of IRQ |
DWCOTG_DMA_ALIGNMENT:LongWord;
|
The default alignment for DWCOTG DMA memory allocations |
DWCOTG_DMA_MULTIPLIER:LongWord;
|
The default multiplier for DWCOTG DMA memory allocations |
DWCOTG_DMA_SHARED_MEMORY:LongBool;
|
DWCOTG DMA buffers are allocated from Shared memory regions if True |
DWCOTG_DMA_NOCACHE_MEMORY:LongBool;
|
DWCOTG DMA buffers are allocated from Non Cached memory regions if True |
DWCOTG_DMA_BUS_ADDRESSES:LongBool;
|
DWCOTG DMA buffers are referenced by Bus addresses if True |
DWCOTG_DMA_CACHE_COHERENT:LongBool;
|
DWCOTG DMA buffers are considered cache coherent if True |
DWCOTG_HOST_FRAME_INTERVAL:LongBool;
|
Update the host frame interval register on root port enable if True |
DWCOTG_FULL_SPEED_ONLY:LongBool;
|
Enable Full Speed and Low Speed device support only if True |
DWCOTG_FS_LS_LOW_POWER_CLOCK:LongBool;
|
Enable Low Power Clock Select for Full Speed / Low Speed devices if True |
DWCOTG_LS_LOW_PWR_PHY_CLOCK_6MHZ:LongBool;
|
Enable 6MHz Low Power PHY Clock for Low Speed devices if True |
BCMSDHOST
BCMSDHOST_DELAY_AFTER_STOP:LongWord;
|
Minimum time between stop and subsequent data transfer (in Microseconds) |
BCMSDHOST_OVERCLOCK_50:LongWord;
|
User's preferred frequency to use when 50MHz is requested (in MHz) |
BCMSDHOST_PIO_LIMIT:LongWord = 1;
|
Maximum block count for PIO (0 = always DMA / 0x7FFFFFF = always PIO) |
BCMSDHOST_FORCE_PIO:LongBool;
|
Force SDHOST driver to use PIO instead of DMA |
BRCMSTB
BRCMSTB_ENABLE_SSC:LongBool = True;
|
Enable Spread Spectrum Clocking for the BRCMSTB PCI host |
BRCMSTB_ENABLE_L1SS:LongBool;
|
Enable L1 Substate control of the CLKREQ signal for the BRCMSTB PCI host |
BRCMSTB_MAX_LINK_SPEED:LongWord;
|
Limit the BRCMSTB PCI host to a specific link speed (1, 2, 3 or 4) |
BRCMSTB_NOASPM_L0S:LongBool;
|
Disable L0s mode for Active State Power Management for the BRCMSTB PCI host |
BCM434XX (Broadcom / Cypress Wireless LAN Controller)
BCM434XX_WLAN_CLK_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
Wireless LAN 32KHz Clock GPIO pin |
BCM434XX_WLAN_CLK_PULL:LongWord = GPIO_PULL_UNKNOWN;
|
Wireless LAN 32KHz Clock GPIO pull |
BCM434XX_WLAN_CLK_FUNCTION:LongWord = GPIO_FUNCTION_UNKNOWN;
|
Wireless LAN 32KHz Clock GPIO function |
BCM434XX_WLAN_ON_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
Wireless LAN Power GPIO pin |
BCM434XX_WLAN_ON_PIN:LongWord = GPIO_PIN_UNKNOWN;
|
Wireless LAN Power GPIO pin |
BCM434XX_WLAN_ON_ACTIVE_LOW:LongBool;
|
True if Power pin is Active Low (default Active High) |
BCM434XX_WLAN_ON_VIRTUAL:LongBool;
|
True if Power pin is a Virtual GPIO |
LAN78XX (Microchip LAN78XX USB Gigabit Ethernet)
LAN78XX_MAC_ADDRESS:String;
|
The preconfigured MAC address for a LAN78XX device |
SMSC95XX (SMSC LAN95xx USB Ethernet Driver)
SMSC95XX_MAC_ADDRESS:String;
|
The preconfigured MAC address for a SMSC95XX device |
GENET (Broadcom Gigabit Ethernet controller)
GENET_MAC_ADDRESS:String;
|
The preconfigured MAC address for a GENET device |
BCM2708
BCM2708DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2708 DMA memory allocations |
BCM2708DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2708 DMA memory allocations |
BCM2708DMA_SHARED_MEMORY:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are allocated from Shared memory regions if True |
BCM2708DMA_NOCACHE_MEMORY:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True |
BCM2708DMA_BUS_ADDRESSES:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are referenced by Bus addresses if True |
BCM2708DMA_CACHE_COHERENT:LongBool;
|
BCM2708 DMA control blocks and DMA buffers are considered cache coherent if True |
BCM2708I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2708 I2C driver can do combined Write/Read transactions |
BCM2708FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2708 Framebuffer device |
BCM2708FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2708 Framebuffer device is in cached memory (Requires CleanCacheRange on write) |
BCM2708GPIO_FIQ_ENABLED:LongBool;
|
The BCM2708 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. |
BCM2708GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2708 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. |
BCM2708SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2708 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2708SDHOST_FIQ_ENABLED:LongBool;
|
The BCM2708 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2708ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2708 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2708_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2708 SPI0 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2708 SPI1 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2708 SPI2 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_I2C0:LongBool = False;
|
If True then register the BCM2708 I2C0 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2708 I2C1 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_I2C2:LongBool = False;
|
If True then register the BCM2708 I2C2 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2708 DMA host during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2708 PWM device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2708 PCM device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2708 GPIO device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2708 UART0 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2708 UART1 device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_SDHCI:LongBool = False;
|
If True then register the BCM2708 SDHCI host during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_SDHOST:LongBool = True;
|
If True then register the BCM2708 SDHOST host during boot (Only if BCMSDHOST unit included) |
BCM2708_REGISTER_SDIO:LongBool = True;
|
If True then use the BCM2708 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2708 unit included) |
BCM2708_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2708 SPI slave device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2708 I2C slave device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2708 PWM Audio device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2708 System Timer Clock device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2708 ARM Timer Clock device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2708 ARM Timer device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2708 Random device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2708 Mailbox device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2708 Watchdog device during boot (Only if BCM2708 unit included) |
BCM2708_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2708 Framebuffer device during boot (Only if BCM2708 unit included) |
BCM2709
BCM2709DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2709 DMA memory allocations |
BCM2709DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2709 DMA memory allocations |
BCM2709DMA_SHARED_MEMORY:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are allocated from Shared memory regions if True |
BCM2709DMA_NOCACHE_MEMORY:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True |
BCM2709DMA_BUS_ADDRESSES:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are referenced by Bus addresses if True |
BCM2709DMA_CACHE_COHERENT:LongBool;
|
BCM2709 DMA control blocks and DMA buffers are considered cache coherent if True |
BCM2709I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2709 I2C driver can do combined Write/Read transactions |
BCM2709FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2709 Framebuffer device |
BCM2709FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2709 Framebuffer device is in cached memory (Requires CleanCacheRange on write) |
BCM2709GPIO_FIQ_ENABLED:LongBool;
|
The BCM2709 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. |
BCM2709GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2709 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. |
BCM2709SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2709 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2709SDHOST_FIQ_ENABLED:LongBool;
|
The BCM2709 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2709ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2709 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2709LOCAL_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2709 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2709_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2709 SPI0 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2709 SPI1 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2709 SPI2 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_I2C0:LongBool = False;
|
If True then register the BCM2709 I2C0 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2709 I2C1 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_I2C2:LongBool = False;
|
If True then register the BCM2709 I2C2 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2709 DMA host during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2709 PWM device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2709 PCM device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2709 GPIO device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2709 UART0 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2709 UART1 device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_SDHCI:LongBool = False;
|
If True then register the BCM2709 SDHCI host during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_SDHOST:LongBool = True;
|
If True then register the BCM2709 SDHOST host during boot (Only if BCMSDHOST unit included) |
BCM2709_REGISTER_SDIO:LongBool = True;
|
If True then use the BCM2709 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2709 unit included) |
BCM2709_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2709 SPI slave device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2709 I2C slave device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2709 PWM Audio device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2709 System Timer Clock device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2709 ARM Timer Clock device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_LOCAL_CLOCK:LongBool = True;
|
If True then register the BCM2709 Local Timer Clock device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2709 ARM Timer device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_LOCAL_TIMER:LongBool = True;
|
If True then register the BCM2709 Local Timer device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2709 Random device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2709 Mailbox device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2709 Watchdog device during boot (Only if BCM2709 unit included) |
BCM2709_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2709 Framebuffer device during boot (Only if BCM2709 unit included) |
BCM2710
BCM2710DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2710 DMA memory allocations |
BCM2710DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2710 DMA memory allocations |
BCM2710DMA_SHARED_MEMORY:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are allocated from Shared memory regions if True |
BCM2710DMA_NOCACHE_MEMORY:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True |
BCM2710DMA_BUS_ADDRESSES:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are referenced by Bus addresses if True |
BCM2710DMA_CACHE_COHERENT:LongBool;
|
BCM2710 DMA control blocks and DMA buffers are considered cache coherent if True |
BCM2710I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2710 I2C driver can do combined Write/Read transactions |
BCM2710FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2710 Framebuffer device |
BCM2710FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2710 Framebuffer device is in cached memory (Requires CleanCacheRange on write) |
BCM2710GPIO_FIQ_ENABLED:LongBool;
|
The BCM2710 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ. Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple. |
BCM2710GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2710 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled). Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple}. |
BCM2710SDHCI_FIQ_ENABLED:LongBool;
|
The BCM2710 SDHCI device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2710SDHOST_FIQ_ENABLED:LongBool;
|
The BCM2710 SDHOST device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2710ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2710 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2710LOCAL_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2710 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2710_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2710 SPI0 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2710 SPI1 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2710 SPI2 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_I2C0:LongBool = False;
|
If True then register the BCM2710 I2C0 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2710 I2C1 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_I2C2:LongBool = False;
|
If True then register the BCM2710 I2C2 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2710 DMA host during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_PWM:LongBool = True;
|
If True then register the BCM2710 PWM device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2710 PCM device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2710 GPIO device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2710 UART0 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2710 UART1 device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SDHCI:LongBool = True;
|
If True then register the BCM2710 SDHCI host during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SDHOST:LongBool = False;
|
If True then register the BCM2710 SDHOST host during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SDIO:LongBool = False;
|
If True then use the BCM2710 SDHCI as an SDIO controller for WiFi support (Disables SDHCI)(Only if BCM2710 unit included) |
BCM2710_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2710 SPI slave device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2710 I2C slave device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2710 PWM Audio device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2710 System Timer Clock device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2710 ARM Timer Clock device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_LOCAL_CLOCK:LongBool = True;
|
If True then register the BCM2710 Local Timer Clock device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2710 ARM Timer device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_LOCAL_TIMER:LongBool = True;
|
If True then register the BCM2710 Local Timer device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2710 Random device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2710 Mailbox device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2710 Watchdog device during boot (Only if BCM2710 unit included) |
BCM2710_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2710 Framebuffer device during boot (Only if BCM2710 unit included) |
BCM2711
BCM2711DMA_ALIGNMENT:LongWord;
|
The default alignment for BCM2711 DMA memory allocations |
BCM2711DMA_MULTIPLIER:LongWord;
|
The default multiplier for BCM2711 DMA memory allocations |
BCM2711DMA_SHARED_MEMORY:LongBool;
|
BCM2711 DMA control blocks and DMA buffers are allocated from Shared memory regions if True |
BCM2711DMA_NOCACHE_MEMORY:LongBool;
|
BCM2711 DMA control blocks and DMA buffers are allocated from Non Cached memory regions if True |
BCM2711DMA_BUS_ADDRESSES:LongBool;
|
BCM2711 DMA control blocks and DMA buffers are referenced by Bus addresses if True |
BCM2711DMA_CACHE_COHERENT:LongBool;
|
BCM2711 DMA control blocks and DMA buffers are considered cache coherent if True |
BCM2711I2C_COMBINED_WRITEREAD:LongBool;
|
If True then the BCM2711 I2C driver can do combined Write/Read transactions |
BCM2711GPIO_FIQ_ENABLED:LongBool;
|
The BCM2711 GPIO device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711FRAMEBUFFER_ALIGNMENT:LongWord;
|
The memory alignment for the BCM2711 Framebuffer device |
BCM2711FRAMEBUFFER_CACHED:LongBool;
|
If True then the BCM2711 Framebuffer device is in cached memory (Requires CleanCacheRange on write) |
BCM2711GPIO_FIQ_BANK_NO:LongWord;
|
The BCM2711 GPIO bank number for Fast Interrupt Requests (FIQ) (0 or 1) (Only if Enabled) (Note: Only one device can be enabled for FIQ at once, ensure you do not attempt to enable multiple) |
BCM2711EMMC0_FIQ_ENABLED:LongBool;
|
The BCM2711 EMMC0 (SDHCI) device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711EMMC1_FIQ_ENABLED:LongBool;
|
The BCM2711 EMMC1 (SDHOST) device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711EMMC2_FIQ_ENABLED:LongBool;
|
The BCM2711 EMMC2 (SDHCI) device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711ARM_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2711 ARM Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711LOCAL_TIMER_FIQ_ENABLED:LongBool;
|
The BCM2711 Local Timer device uses Fast Interrupt Requests (FIQ) instead of IRQ |
BCM2711_REGISTER_SPI0:LongBool = True;
|
If True then register the BCM2711 SPI0 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI1:LongBool = True;
|
If True then register the BCM2711 SPI1 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI2:LongBool = True;
|
If True then register the BCM2711 SPI2 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI3:LongBool = True;
|
If True then register the BCM2711 SPI3 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI4:LongBool = True;
|
If True then register the BCM2711 SPI4 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI5:LongBool = True;
|
If True then register the BCM2711 SPI5 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPI6:LongBool = True;
|
If True then register the BCM2711 SPI6 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C0:LongBool = False;
|
If True then register the BCM2711 I2C0 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C1:LongBool = True;
|
If True then register the BCM2711 I2C1 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C2:LongBool = False;
|
If True then register the BCM2711 I2C2 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C3:LongBool = True;
|
If True then register the BCM2711 I2C3 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C4:LongBool = True;
|
If True then register the BCM2711 I2C4 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C5:LongBool = True;
|
If True then register the BCM2711 I2C5 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C6:LongBool = True;
|
If True then register the BCM2711 I2C6 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2C7:LongBool = False;
|
If True then register the BCM2711 I2C7 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_PWM0:LongBool = True;
|
If True then register the BCM2711 PWM0 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_PWM1:LongBool = True;
|
If True then register the BCM2711 PWM1 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART0:LongBool = True;
|
If True then register the BCM2711 UART0 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART1:LongBool = True;
|
If True then register the BCM2711 UART1 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART2:LongBool = True;
|
If True then register the BCM2711 UART2 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART3:LongBool = True;
|
If True then register the BCM2711 UART3 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART4:LongBool = True;
|
If True then register the BCM2711 UART4 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_UART5:LongBool = True;
|
If True then register the BCM2711 UART5 device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_EMMC0:LongBool = False;
|
If True then register the BCM2711 EMMC0 (SDHCI) host during boot (Disables EMMC2)(Only if BCM2711 unit included) |
BCM2711_REGISTER_EMMC1:LongBool = False;
|
If True then register the BCM2711 EMMC1 (SDHOST) host during boot (Only if BCMSDHOST unit included) |
BCM2711_REGISTER_EMMC2:LongBool = True;
|
If True then register the BCM2711 EMMC2 (SDHCI) host during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SDIO:LongBool = True;
|
If True then use the BCM2711 EMMC0 (SDHCI) as an SDIO controller for WiFi support (Disables EMMC0)(Only if BCM2711 unit included) |
BCM2711_REGISTER_DMA:LongBool = True;
|
If True then register the BCM2711 DMA host during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_PCM:LongBool = True;
|
If True then register the BCM2711 PCM device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_GPIO:LongBool = True;
|
If True then register the BCM2711 GPIO device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SPISLAVE:LongBool = True;
|
If True then register the BCM2711 SPI slave device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_I2CSLAVE:LongBool = True;
|
If True then register the BCM2711 I2C slave device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_PWMAUDIO:LongBool = True;
|
If True then register the BCM2711 PWM Audio device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_SYS_CLOCK:LongBool = True;
|
If True then register the BCM2711 System Timer Clock device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_ARM_CLOCK:LongBool = True;
|
If True then register the BCM2711 ARM Timer Clock device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_LOCAL_CLOCK:LongBool = True;
|
If True then register the BCM2711 Local Timer Clock device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_ARM_TIMER:LongBool = True;
|
If True then register the BCM2711 ARM Timer device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_LOCAL_TIMER:LongBool = True;
|
If True then register the BCM2711 Local Timer device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_RANDOM:LongBool = True;
|
If True then register the BCM2711 Random device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_MAILBOX:LongBool = True;
|
If True then register the BCM2711 Mailbox device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_WATCHDOG:LongBool = True;
|
If True then register the BCM2711 Watchdog device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the BCM2711 Framebuffer device during boot (Only if BCM2711 unit included) |
BCM2711_REGISTER_RTC:LongBool = True;
|
If True then register the BCM2711 RTC device during boot (CM4 only) (Only if RaspberryPi4 unit included) |
BCM2711_REGISTER_NETWORK:LongBool = True;
|
If True then register the BCM2711 GENET Network device during boot (Only if RaspberryPi4 unit included) |
BCM2711_REGISTER_PCI:LongBool = True;
|
If True then register the BCM2711 BRCNSTB PCIe host during boot (Only if RaspberryPi4 unit included) |
BCM2711_REGISTER_PCI_XHCI:LongBool = True;
|
If True then register the BCM2711 VL805 PCIe XHCI host during boot (Only if RaspberryPi4 unit included) |
BCM2711_REGISTER_INTERNAL_XHCI:LongBool = False;
|
If True then register the BCM2711 internal XHCI host during boot (Only if RaspberryPi4 unit included) |
QEMUVPB
QEMUVPB_REGISTER_DMA:LongBool = True;
|
If True then register the QEMU VersatilePB DMA device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_UART0:LongBool = True;
|
If True then register the QEMU VersatilePB UART0 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_UART1:LongBool = True;
|
If True then register the QEMU VersatilePB UART1 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_UART2:LongBool = True;
|
If True then register the QEMU VersatilePB UART2 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_UART3:LongBool = True;
|
If True then register the QEMU VersatilePB UART3 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_RTC:LongBool = True;
|
If True then register the QEMU VersatilePB RTC device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_CLOCK:LongBool = True;
|
If True then register the QEMU VersatilePB 24MHz Clock device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_MMC0:LongBool = True;
|
If True then register the QEMU VersatilePB MMC0 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_MMC1:LongBool = True;
|
If True then register the QEMU VersatilePB MMC1 device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_NETWORK:LongBool = True;
|
If True then register the QEMU VersatilePB Network device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_FRAMEBUFFER:LongBool = True;
|
If True then register the QEMU VersatilePB Framebuffer device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_MOUSE:LongBool = True;
|
If True then register the QEMU VersatilePB Mouse device during boot (Only if QEMUVersatilePB unit included) |
QEMUVPB_REGISTER_KEYBOARD:LongBool = True;
|
If True then register the QEMU VersatilePB Keyboard device during boot (Only if QEMUVersatilePB unit included) |
Country, codepage, locale and language configuration
COUNTRY_DEFAULT:LongWord = 0;
|
The current default country code |
CODEPAGE_OEM_DEFAULT:LongWord = 437;
|
The current OEM default code page |
CODEPAGE_ANSI_DEFAULT:LongWord = 1252;
|
The current ANSI default code page |
CODEPAGE_CONSOLE_INPUT:LongWord = 1252;
|
The current console input code page |
CODEPAGE_CONSOLE_OUTPUT:LongWord = 1252;
|
The current console output code page |
LOCALE_DEFAULT:LongWord;
|
(LCID) The current default locale |
LANGUAGE_DEFAULT:Word;
|
(LANGID) The current default language identifier |
KEYMAP_DEFAULT:String = 'US';
|
The name of the default keymap |
Disk, controller, filesystem and cache configuration
Filesystem configuration
FILESYS_AUTOSTART:LongBool = True;
|
If True then auto start the filesystem on boot (Only if FileSystem unit included) |
FILESYS_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
FILESYS_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the filesystem on boot (Only if FILESYS_ASYNCSTART is True) |
FILESYS_REGISTER_LOGGING:LongBool = True;
|
If True then register filesystem as a Logging device on boot (Only if FileSystem unit included) |
FILESYS_LOGGING_DEFAULT:LongBool = False;
|
If True then filesystem can be the default Logging device (Only if FileSystem unit included) |
FILESYS_LOGGING_FILE:String;
|
The name of the file to log messages to |
FILESYS_LOGGING_MAXSIZE:LongWord;
|
The maximum size of the logging file before rollover (0 for no maximum) |
FILESYS_LOGGING_MAXCOPIES:LongWord;
|
The number of old logging files to keep on rollover (0 for no copies) |
FILESYS_LOGGING_RESET:LongBool = False;
|
If True then reset the log file to empty on startup if it already exists |
Cache configuration
FILESYS_CACHE_SIZE:LongWord = SIZE_16M;
|
The default filesystem cache size |
FILESYS_CACHE_PAGE:LongWord = SIZE_32K;
|
The size of a filesystem cache page |
FILESYS_CACHE_KEYS:LongWord = 12;
|
The number of hash keys for the filesystem cache |
FILESYS_CACHE_MODE:LongWord = FILESYS_CACHE_MODE_READWRITE;
|
The default filesystem cache mode |
Filesystem support configuration
FILESYS_FLOPPY_ENABLED:LongBool = True;
|
Enable filesystem floppy drive support |
FILESYS_DRIVES_ENABLED:LongBool = True;
|
Enable filesystem drive letter support |
FILESYS_ATA_ENABLED:LongBool = True;
|
Enable filesystem ATA controller support |
FILESYS_ATAPI_ENABLED:LongBool = True;
|
Enable filesystem ATAPI controller support |
FILESYS_SCSI_ENABLED:LongBool = True;
|
Enable filesystem SCSI controller support |
FILESYS_USB_ENABLED:LongBool = True;
|
Enable filesystem USB controller support |
FILESYS_MMC_ENABLED:LongBool = True;
|
Enable filesystem MMC/SD controller support |
FILESYS_VIRTUAL_ENABLED:LongBool = True;
|
Enable filesystem virtual disk controller support |
FILESYS_FAT_ENABLED:LongBool = True;
|
Enable FAT filesystem support |
FILESYS_NTFS_ENABLED:LongBool = True;
|
Enable NTFS filesystem support |
FILESYS_EXTFS_ENABLED:LongBool = True;
|
Enable EXTFS filesystem support |
FILESYS_CDFS_ENABLED:LongBool = True;
|
Enable CDFS filesystem support |
FILESYS_CASE_FLAGS:LongBool = True;
|
Enable support for case flags in filesystem entries (Where Applicable) |
FILESYS_LONG_NAMES:LongBool = True;
|
Enable support for long file names (greater than 8.3) (Where Applicable) |
FILESYS_OEM_CONVERT:LongBool = True;
|
Enable support for ANSI to OEM/OEM to ANSI character set conversion (Where Applicable) |
FILESYS_NUMERIC_TAIL:LongBool = True;
|
Enable support for numeric tail on generated short file names (Where Applicable) |
FILESYS_DIRTY_CHECK:LongBool = True;
|
Enable support for dirty check on volume mount (Where Applicable) |
FILESYS_QUICK_CHECK:LongBool = True;
|
Enable support for quick volume checking (Where Applicable) |
FILESYS_UPDATE_ACCESSTIME:LongBool = True;
|
Enable support for updating last access time field (Where Applicable) |
FILESYS_GLOBAL_CURRENTDIR:LongBool = False;
|
If True then make the current directory global instead of per thread (Default False) |
FAT configuration
FAT_DEFAULT:LongBool = True;
|
Enable default recognition of non partitioned media as FAT |
FAT_CASE_FLAGS:LongBool = True;
|
Enable support for case flags in FAT filesystem entries |
FAT_LONG_NAMES:LongBool = True;
|
Enable support for FAT long file names (greater than 8.3) |
FAT_OEM_CONVERT:LongBool = True;
|
Enable support for FAT ANSI to OEM/OEM to ANSI character set conversion |
FAT_NUMERIC_TAIL:LongBool = True;
|
Enable support for numeric tail on generated FAT short file names |
FAT_DIRTY_CHECK:LongBool = True;
|
Enable support for dirty check on FAT volume mount |
FAT_QUICK_CHECK:LongBool = True;
|
Enable support for quick FAT volume checking |
FAT_INFO_SECTOR_ENABLE:LongBool = True;
|
Enable support for the FAT32 info sector to store free cluster count and next free cluster |
FAT_INFO_IMMEDIATE_UPDATE:LongBool = False;
|
Enable immediate update of the FA32 info sector after cluster allocation or deallocation (Default False) |
NTFS configuration
NTFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as NTFS (Default False) |
NTFS_RESET_LOG:LongBool = True;
|
Reset the NTFS Log File if it was dirty on mount |
NTFS_FIXED_ZONE:LongBool = True;
|
Use the Windows Vista/2008/7 Fixed MFT Zone values (not the Windows NT/2000/XP percentages) |
NTFS_ALT_LAYOUT:LongBool = False;
|
Use the Windows Vista/2008/7 Volume Layout values (not the Windows NT/2000/XP layout) (Default False) |
NTFS_LENIENT:LongBool = False;
|
Allow certain non fatal errors to be ignored (Default False) |
NTFS_DEFENSIVE:LongBool = False;
|
Perform more defensive checking of structures and values (Default False) |
NTFS_AGGRESSIVE:LongBool = False;
|
Attempt to correct certain errors during operation (Default False) |
NTFS_NO_SHORT_NAMES:LongBool = False;
|
Do not create alternate short file names (Default False) |
NTFS_NULL_SECURITY:LongBool = False;
|
Do not apply security when creating files and folders (only apply security when SetSecurity called) (Default False) |
NTFS_DEFAULT_SECURITY:LongBool = False;
|
Apply default permissions (Everyone, Full Control) when creating files and folders (Default False) |
EXTFS configuration
EXTFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as EXTFS (Default False) |
CDFS configuration
CDFS_DEFAULT:LongBool = False;
|
Enable default recognition of non partitioned media as CDFS (Default False) |
CDFS_LONG_NAMES:LongBool = True;
|
Enable support for CDFS long file names (greater than 8.3) |
CDFS_SWAP_SERIAL:LongBool = False;
|
Swap the byte order of the CDFS serial number (Set to True for Windows 9x compatibility) (Default False) |
Network, transport, protocol and sockets configuration
Host configuration
HOST_NAME:String = 'localhost';
|
The network host name of the local machine |
HOST_DOMAIN:String = 'localdomain';
|
The network domain name of the local machine |
Winsock configuration
WINSOCK_NAME:String = 'Ultibo Winsock Version 1.1';
|
WINSOCK_LOW_VERSION:Word = $101;
|
WINSOCK_HIGH_VERSION:Word = $101;
|
WINSOCK_BUILD_VERSION:String = '1.10.43';
|
WINSOCK_MAX_SOCKETS:Word = SIZE_1K;
|
WINSOCK_MAX_UDP:Word = SIZE_8K;
|
WINSOCK_AUTOSTART:LongBool = True;
|
If True then auto start the Winsock layer on boot (Only if Winsock unit included) |
WINSOCK_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
WINSOCK_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the Winsock layer on boot (Only if WINSOCK_ASYNCSTART is True) |
Winsock2 configuration
WINSOCK2_NAME:String = 'Ultibo Winsock Version 2.2';
|
WINSOCK2_LOW_VERSION:Word = $101;
|
WINSOCK2_HIGH_VERSION:Word = $202;
|
WINSOCK2_BUILD_VERSION:String = '2.20.03';
|
WINSOCK2_MAX_SOCKETS:Word = SIZE_1K;
|
Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack |
WINSOCK2_MAX_UDP:Word = SIZE_8K;
|
Note: As per Winsock2 specification, this value is for compatibility only and is ignored by the network stack |
WINSOCK2_AUTOSTART:LongBool = True;
|
If True then auto start the Winsock2 layer on boot (Only if Winsock2 unit included) |
WINSOCK2_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
WINSOCK2_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the Winsock2 layer on boot (Only if WINSOCK2_ASYNCSTART is True) |
Sockets configuration
SOCKETS_AUTOSTART:LongBool = True;
|
If True then auto start the sockets layer on boot (Only if Sockets unit included) |
SOCKETS_ASYNCSTART:LongBool = True;
|
If True then auto start asynchronously using a worker thread instead of the main thread |
SOCKETS_STARTDELAY:LongWord = 0;
|
Number of milliseconds to delay starting the sockets layer on boot (Only if SOCKETS_ASYNCSTART is True) |
Client configuration
DNS_CLIENT_ENABLED:LongBool = True;
|
DNS client is enabled if True |
Protocol configuration
RAW_PROTOCOL_ENABLED:LongBool = True;
|
Raw socket protocol is enabled if True |
UDP_PROTOCOL_ENABLED:LongBool = True;
|
UDP protocol is enabled if True |
TCP_PROTOCOL_ENABLED:LongBool = True;
|
TCP protocol is enabled if True |
ICMP_PROTOCOL_ENABLED:LongBool = True;
|
ICMP protocol is enabled if True |
ICMP6_PROTOCOL_ENABLED:LongBool = False;
|
ICMPv6 protocol is enabled if True |
IGMP_PROTOCOL_ENABLED:LongBool = True;
|
IGMP protocol is enabled if True |
TCP_MIN_BACKLOG:LongWord = 5;
|
Minimum accept queue length for listening sockets (per socket) |
TCP_MAX_BACKLOG:LongWord = 200;
|
Maximum accept queue length for listening sockets (per socket) |
TCP_RECEIVE_BACKLOG:LongWord = SIZE_1K;
|
Queue length for SYN received connections (per listening socket) |
ARP_CONFIG_ENABLED:LongBool = True;
|
ARP configuration is enabled if True |
RARP_CONFIG_ENABLED:LongBool = False;
|
RARP configuration is enabled if True |
BOOTP_CONFIG_ENABLED:LongBool = False;
|
BOOTP configuration is enabled if True |
DHCP_CONFIG_ENABLED:LongBool = True;
|
DHCP configuration is enabled if True |
STATIC_CONFIG_ENABLED:LongBool = True;
|
Static configuration is enabled if True |
LOOPBACK_CONFIG_ENABLED:LongBool = True;
|
Loopback configuration is enabled if True |
Transport configuration
IP_TRANSPORT_ENABLED:LongBool = True;
|
IP transport is enabled if True |
IP6_TRANSPORT_ENABLED:LongBool = False;
|
IPv6 transport is enabled if True |
ARP_TRANSPORT_ENABLED:LongBool = True;
|
ARP transport is enabled if True |
RARP_TRANSPORT_ENABLED:LongBool = True;
|
RARP transport is enabled if True |
RSN_TRANSPORT_ENABLED:LongBool = True;
|
RSN transport is enabled if True |
EAPOL_TRANSPORT_ENABLED:LongBool = True;
|
EAPOL transport is enabled if True |
Network configuration
WIRED_NETWORK_ENABLED:LongBool = True;
|
Wired network adapters are enabled if True |
LOOPBACK_NETWORK_ENABLED:LongBool = True;
|
Loopback network adapter is enabled if True |
WIRELESS_NETWORK_ENABLED:LongBool = True;
|
Wireless network adapters are enabled if True |
Shell configuration
CONSOLE_SHELL_ENABLED:LongBool = True;
|
If True then automatically create a console shell window when a new console is registered (Only if ConsoleShell unit included) |
CONSOLE_SHELL_POSITION:LongWord = CONSOLE_POSITION_RIGHT;
|
The default Console Window position for the console shell |
CONSOLE_SHELL_DEVICE:String;
|
The console device Name (or Description) to create the shell window on, if blank create on default device unless forced (Only if ConsoleShell unit included) |
Specific service configuration
NTP
NTP_SERVER_DEFAULT:String = 'pool.ntp.org';
|
The default NTP server(s) to poll |
NTP_PORT_DEFAULT:Word = 123;
|
The default NTP port to poll |
NTP_POLLING_INTERVAL:LongWord = 300;
|
The default NTP polling interval (300 seconds/5 minutes) |
NTP_POLLING_TIMEOUT:LongWord = 2000;
|
The default NTP polling timeout (2000 milliseconds/2 seconds) |
NTP_POLLING_RETRIES:LongWord = 3;
|
The default NTP polling retry count |
NTP_RETRY_TIMEOUT:LongWord = 1000;
|
The default NTP retry interval (1000 milliseconds/1 second) |
NTP_CLOCK_TOLERANCE:LongWord = 10;
|
The default NTP clock tolerance, apply differences equal or larger than this (10 milliseconds) |
NTP_USE_CLOCK_OFFSET:LongBool = True;
|
If True use the calculated NTP clock offset, otherwise use the server transmit time |
NTP_AUTOSTART:LongBool = True;
|
If True then auto start the NTP client on boot (Only if Services unit included) |
Telnet
TELNET_PORT_DEFAULT:Word = 23;
|
The default Telnet port |
TELNET_AUTOSTART:LongBool = True;
|
If True then auto start the Telnet server on boot (Only if RemoteShell unit included) |
SSH
SSH_PORT_DEFAULT:Word = 22;
|
The default SSH port |
SSH_AUTOSTART:LongBool = True;
|
If True then auto start the SSH server on boot (Only if RemoteShell unit included) |
SysLog
SYSLOG_BOUND_PORT:Word;
|
The local port for SysLog to bind to (0 for dynamic port) |
SYSLOG_SERVER_DEFAULT:String = '127.0.0.1';
|
The default SysLog server to send messages to |
SYSLOG_PORT_DEFAULT:Word = 514;
|
The default SysLog port |
SYSLOG_PROTOCOL_DEFAULT:LongWord = LOGGING_PROTOCOL_UDP;
|
The default SysLog protocol |
SYSLOG_OCTET_COUNTING:LongBool;
|
If True use the Octet Counting method of framing the SysLog message (LOGGING_PROTOCOL_TCP only)(See: RFC6587) |
SYSLOG_BROADCAST_ENABLED:LongBool = True;
|
If True enable use of a broadcast address for the Syslog server |
SYSLOG_AUTOSTART:LongBool = True;
|
If True then auto start the SysLog client on boot (Only if Services unit included) |
SYSLOG_REGISTER_LOGGING:LongBool = True;
|
If True then register SysLog as a Logging device on boot (Only if Services unit included) |
SYSLOG_LOGGING_DEFAULT:LongBool = True;
|
If True then SysLog can be the default Logging device (Only if Services unit included) |
POP3
POP3_PORT_DEFAULT:Word = 110;
|
The default POP3 port |
IMAP4
IMAP4_PORT_DEFAULT:Word = 143;
|
The default IMAP4 port |
SMTP
SMTP_PORT_DEFAULT:Word = 25;
|
The default SMTP port |
HTTP
HTTP_PORT_DEFAULT:Word = 80;
|
The default HTTP port |
HTTPS_PORT_DEFAULT:Word = 443;
|
The default HTTPS port |
CIFS
CIFS_PORT_DEFAULT:Word = 445;
|
The default CIFS port |
CIFS_CLIENT_AUTOSTART:LongBool = True;
|
If True then auto start the CIFS client on boot (Only if CIFS unit included) |
CIFS_SERVER_AUTOSTART:LongBool = True;
|
If True then auto start the CIFS server on boot (Only if CIFS unit included) |
NFS
NFS_PORT_DEFAULT:Word = 111;
|
The default NFS port |
NFSv4_PORT_DEFAULT:Word = 2049;
|
The default NFSv4 port |
NFS_CLIENT_AUTOSTART:LongBool = True;
|
If True then auto start the NFS client on boot (Only if NFS unit included) |
NFS_SERVER_AUTOSTART:LongBool = True;
|
If True then auto start the NFS server on boot (Only if NFS unit included) |
Specific driver configuration
PL2303
PL2303_MAX_TRANSMIT:LongWord;
|
The maximum transmit size of the PL2303 USB to Serial converter (Defaults to maximum supported by the device if not specified) |
FTDI serial
FTDISERIAL_MAX_TRANSMIT:LongWord;
|
The maximum transmit size of the FTDI USB to Serial converter (Defaults to maximum supported by the device if not specified) |
USB CDC ACM
CDCACM_MAX_TRANSMIT:LongWord;
|
The maximum transmit size for USB CDC ACM Serial devices (Defaults to maximum supported by the device if not specified) |
DS1307
DS1307_CHIP_TYPE:LongWord;
|
The specific chip to support in the DS1307 driver (See the DS1307_CHIP_* constants in the driver) |
DS1307_I2C_ADDRESS:Word = $68;
|
The I2C address to use for the DS1307 RTC device |
DS1307_I2C_DEVICE:String = 'I2C0';
|
The I2C device (Name or Description) to use for the DS1307 RTC device |
RT2800USB
RT2800USB_HARDWARE_ENCRYPTION_DISABLED:LongBool;
|
If True then use software only encryption for RT2800USB |
AF16x2LCD
AF16X2LCD_AUTOSTART:LongBool = True;
|
If True then auto start the AF16x2LCD device on boot (Only if AF16x2LCD unit included) |
PiTFT28
PiTFT28_AUTOSTART:LongBool = True;
|
If True then auto start the PiTFT28 device on boot (Only if PiTFT28 unit included) |
PITFT28_CAPACITIVE_TOUCH:LongBool;
|
If True then configure the capacitive touch version of the PiTFT28 (Only if PiTFT28 unit included) |
PiTFT35
PiTFT35_AUTOSTART:LongBool = True;
|
If True then auto start the PiTFT35 device on boot (Only if PiTFT35 unit included) |
IPSTFT19
IPSTFT19_AUTOSTART:LongBool = True;
|
If True then auto start the IPSTFT19 device on boot (Only if IPSTFT19 unit included) |
RPiSenseHat
RPISENSE_AUTOSTART:LongBool = True;
|
If True then auto start the RPiSenseHat device on boot (Only if RPiSenseHat unit included) |
VideoCore VCHIQ
VCHIQ_FRAGMENT_WARNING:LongBool = True;
|
If True then issue warnings when VCHIQ fragment handling may cause data corruption, only applies when device tree is not in use (Only if VCHIQ unit included) |
Global handlers
GetLastErrorHandler:TGetLastError;
|
Registered handler for the global GetLastError function |
SetLastErrorHandler:TSetLastError;
|
Registered handler for the global SetLastError function |
Function declarations
Global functions
function Min(A,B:LongInt):LongInt; inline;
Note | None applicable |
---|
function Max(A,B:LongInt):LongInt; inline;
Note | None applicable |
---|
function Clamp(Value,Low,High:LongInt):LongInt;
Note | None applicable |
---|
function RoundUp(Value,Multiple:LongWord):LongWord;
Note | None applicable |
---|
function RoundDown(Value,Multiple:LongWord):LongWord;
Note | None applicable |
---|
function DivRoundUp(Value,Divisor:LongInt):LongWord;
Note | None applicable |
---|
function DivRoundClosest(Value,Divisor:LongInt):LongWord;
Note | None applicable |
---|
function SignExtend32(Value,Bits:LongWord):LongInt;
Note | None documented |
---|
function SignExtend64(Value:UInt64; Bits:LongWord):Int64;
Note | None documented |
---|
function IsPowerOf2(Value:LongWord):Boolean;
Note | None documented |
---|
function BIT(Number:LongWord):LongWord; inline;
Note | None applicable |
---|
function BIT_ULL(Number:LongWord):UInt64; inline;
Note | None applicable |
---|
function BIT_MASK(Number:LongWord):LongWord; inline;
Note | None applicable |
---|
function BIT_WORD(Number:LongWord):LongWord; inline;
Note | None applicable |
---|
function BIT_ULL_MASK(Number:LongWord):UInt64; inline;
Note | None applicable |
---|
function BIT_ULL_WORD(Number:LongWord):UInt64; inline;
Note | None applicable |
---|
function GENMASK(High,Low:LongWord):LongWord; inline;
Note | None applicable |
---|
function GENMASK_ULL(High,Low:LongWord):UInt64; inline;
Note | None applicable |
---|
function HIWORD(L:LongInt):Word; inline;
Note | None applicable |
---|
function LOWORD(L:LongInt):Word; inline;
Note | None applicable |
---|
function HIBYTE(W:LongInt):Byte; inline;
Note | None applicable |
---|
function LOBYTE(W:LongInt):Byte; inline;
Note | None applicable |
---|
function MAKELONG(A,B:LongInt):LongInt; inline;
Note | None applicable |
---|
function MAKEWORD(A,B:LongInt):Word; inline;
Note | None applicable |
---|
function MAKELANGID(PrimaryLang,SubLang:USHORT):WORD; inline;
Note | None applicable |
---|
function WordNtoBE(Value:Word):Word; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function WordBEtoN(Value:Word):Word; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function WordNtoLE(Value:Word):Word; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function WordLEtoN(Value:Word):Word; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function LongWordNtoBE(Value:LongWord):LongWord; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function LongWordBEtoN(Value:LongWord):LongWord; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function LongWordNtoLE(Value:LongWord):LongWord; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function LongWordLEtoN(Value:LongWord):LongWord; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function Int64NtoBE(const Value:Int64):Int64; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function Int64BEtoN(const Value:Int64):Int64; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function Int64NtoLE(const Value:Int64):Int64; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function Int64LEtoN(const Value:Int64):Int64; inline;
Note | These functions are simply wrappers to force the compiler to select the correct function without typecasting |
---|
function PtrLow(Value:Pointer):LongWord; inline;
Note | None applicable |
---|
function PtrHigh(Value:Pointer):LongWord; inline;
Note | None applicable |
---|
function AddrLow(Value:PtrUInt):LongWord; inline;
Note | None applicable |
---|
function AddrHigh(Value:PtrUInt):LongWord; inline;
Note | None applicable |
---|
function BCDtoBin(Value:Byte):Byte; inline;
Note | None applicable |
---|
function BintoBCD(Value:Byte):Byte; inline;
Note | None applicable |
---|
function GetLastError:LongWord; inline;
Note | None applicable |
---|
procedure SetLastError(LastError:LongWord); inline;
Note | None applicable |
---|
function StringHash(const Text:String):LongWord;
Note | Case Insensitive Hash |
---|
function PtrShift:LongWord; inline;
Note | None applicable |
---|
function PtrToHex(Value:Pointer):String; inline;
Note | None applicable |
---|
function AddrToHex(Value:PtrUInt):String; inline;
Note | None applicable |
---|
function HandleToHex(Value:THandle):String; inline;
Note | None applicable |
---|
Conversion functions
function ErrorToString(Error:LongWord):String;
Note | None applicable |
---|
function SysErrorToString(ErrorCode:Integer):String;
Note | None applicable |
---|
function BooleanToString(Value:Boolean):String;
Note | None applicable |
---|
function CPUArchToString(CPUArch:LongWord):String;
Note | None applicable |
---|
function CPUTypeToString(CPUType:LongWord):String;
Note | None applicable |
---|
function CPUModelToString(CPUModel:LongWord):String;
Note | None applicable |
---|
function CPUIDToString(CPUID:LongWord):String;
Note | None applicable |
---|
function CPUIDToMask(CPUID:LongWord):LongWord;
Note | None documented |
---|
function CPUMaskToID(CPUMask:LongWord):LongWord;
Note | None documented |
---|
function CPUMaskCount(CPUMask:LongWord):LongWord;
Note | None documented |
---|
function CPUGroupToString(CPUGroup:LongWord):String;
Note | None documented |
---|
function FPUTypeToString(FPUType:LongWord):String;
Note | None applicable |
---|
function GPUTypeToString(GPUType:LongWord):String;
Note | None applicable |
---|
function CacheTypeToString(CacheType:LongWord):String;
Note | None applicable |
---|
function BoardTypeToString(BoardType:LongWord):String;
Note | None applicable |
---|
function MachineTypeToString(MachineType:LongWord):String;
Note | None applicable |
---|
function PowerIDToString(PowerID:LongWord):String;
Note | None applicable |
---|
function PowerStateToString(PowerState:LongWord):String;
Note | None applicable |
---|
function ClockIDToString(ClockID:LongWord):String;
Note | None applicable |
---|
function ClockStateToString(ClockState:LongWord):String;
Note | None applicable |
---|
function TurboIDToString(TurboID:LongWord):String;
Note | None applicable |
---|
function VoltageIDToString(VoltageID:LongWord):String;
Note | None applicable |
---|
function TemperatureIDToString(TemperatureID:LongWord):String;
Note | None applicable |
---|
function ColorFormatToBytes(Format:LongWord):LongWord;
Format | The color format constant to get bytes for (eg COLOR_FORMAT_ARGB32) |
---|---|
Return | The number of bytes required for each pixel |
function ColorFormatToString(Format:LongWord):String;
Note | None applicable |
---|
function ColorFormatToMask(Format:LongWord; Reverse:Boolean):LongWord;
Format | The color format constant to get the mask for (eg COLOR_FORMAT_ARGB32) |
---|---|
Reverse | If true then reverse the byte order of the mask |
Return | The mask required for color inversion |
Note | XOR the color with the returned mask to produce the inverted color
eg Result := Color xor Mask |
procedure ColorDefaultToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean); inline;
Format | The color format to convert to (eg COLOR_FORMAT_RGB24) |
---|---|
Color | The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT) |
Dest | Pointer to the destination buffer for the converted color |
Reverse | If true then reverse the byte order of the destination after conversion |
procedure ColorFormatToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;
Format | The color format to convert from (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the color to convert |
Color | The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT) |
Reverse | If true then reverse the byte order of the color after conversion |
procedure ColorDefaultAltToFormat(Format,Color:LongWord; Dest:Pointer; Reverse:Boolean);
Format | The color format to convert to (eg COLOR_FORMAT_RGB24) |
---|---|
Color | The color to be converted (Must be in the default format - See: COLOR_FORMAT_DEFAULT) |
Dest | Pointer to the destination buffer for the converted color |
Reverse | If true then reverse the byte order of the destination before conversion (Differs from ColorDefaultToFormat) |
Note | Not inline |
procedure ColorFormatAltToDefault(Format:LongWord; Source:Pointer; var Color:LongWord; Reverse:Boolean); inline;
Format | The color format to convert from (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the color to convert |
Color | The converted color (Will be returned in the default format - See: COLOR_FORMAT_DEFAULT) |
Reverse | If true then reverse the byte order of the source before conversion (Differs from ColorFormatToDefault) |
procedure PixelsDefaultToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Format | The color format to convert to (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the pixels to convert |
Dest | Pointer to the destination buffer for the converted pixels |
Count | The number of pixels to be converted |
Reverse | If true then reverse the byte order of the destination after conversion |
procedure PixelsFormatToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Format | The color format to convert from (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the pixels to convert |
Dest | Pointer to the destination buffer for the converted pixels |
Count | The number of pixels to be converted |
Reverse | If true then reverse the byte order of the destination after conversion |
procedure PixelsDefaultAltToFormat(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Format | The color format to convert to (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the pixels to convert |
Dest | Pointer to the destination buffer for the converted pixels |
Count | The number of pixels to be converted |
Reverse | If true then reverse the byte order of the source before conversion (Differs from PixelsDefaultToFormat) |
procedure PixelsFormatAltToDefault(Format:LongWord; Source,Dest:Pointer; Count:LongWord; Reverse:Boolean);
Format | The color format to convert from (eg COLOR_FORMAT_RGB24) |
---|---|
Source | Pointer to the source buffer for the pixels to convert |
Dest | Pointer to the destination buffer for the converted pixels |
Count | The number of pixels to be converted |
Reverse | If true then reverse the byte order of the source before conversion (Differs from PixelsFormatToDefault) |
function LogLevelToLoggingSeverity(LogLevel:LongWord):LongWord;
Note | None applicable |
---|
Return to Unit Reference