Difference between revisions of "Unit QEMUVersatilePB"

From Ultibo.org
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
This includes standard interfaces such as network, filesystem and storage as well as drivers that are specific to the VersatilePB and may or may not be included by anything else.
 
This includes standard interfaces such as network, filesystem and storage as well as drivers that are specific to the VersatilePB and may or may not be included by anything else.
  
The unit also provides a very simple clock device driver for the 24MHz clock included in the Verstile PB System Control registers. This clock is 32bit only, runs at a fixed rate of 24MHz and cannot be stopped or reset.
+
The unit also provides a very simple clock device driver for the 24MHz clock included in the Versatile PB System Control registers. This clock is 32bit only, runs at a fixed rate of 24MHz and cannot be stopped or reset.
  
 
Additional units can be included anywhere within a program and they will be linked during the compile process. This unit simply provides a convenient way to ensure all relevant units have been included and the standard drivers registered.
 
Additional units can be included anywhere within a program and they will be linked during the compile process. This unit simply provides a convenient way to ensure all relevant units have been included and the standard drivers registered.
Line 18: Line 18:
 
----
 
----
  
''None defined''
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''QEMUVersatilePB specific constants''' <code> NAME_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>VERSATILEPB_CLOCK_DESCRIPTION = 'VersatilePB 24MHz Clock';</code>
 +
| Description of 24MHz clock device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
Line 28: Line 39:
 
----
 
----
  
 
+
''None defined''
'''QEMUVersatilePB specific variables'''
+
 
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
{| 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
+
|-
+
|}
+
<br />
+
  
 
=== Function declarations ===
 
=== Function declarations ===
Line 123: Line 53:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Called only during system startup
 
| Called only during system startup
 
|-
 
|-
Line 138: Line 68:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| Not intended to be called directly by applications, use MMCDeviceGetCardDetect instead
+
| Not intended to be called directly by applications, use MMCDeviceGetCardDetect instead.
 
Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB
 
Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB
 
|-
 
|-
Line 151: Line 81:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| Not intended to be called directly by applications, use MMCDeviceGetWriteProtect instead
+
| Not intended to be called directly by applications, use MMCDeviceGetWriteProtect instead.
 
Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB
 
Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB
 
|-
 
|-
Line 167: Line 97:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| Not intended to be called directly by applications, use ClockDeviceRead instead
+
| Not intended to be called directly by applications, use ClockDeviceRead instead.
 
|-
 
|-
 
|}
 
|}
Line 179: Line 109:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| Not intended to be called directly by applications, use ClockDeviceRead64 instead
+
| Not intended to be called directly by applications, use ClockDeviceRead64 instead.
 
|-
 
|-
 
|}
 
|}

Latest revision as of 01:04, 25 April 2018

Return to Unit Reference


Description


Ultibo QEMU VersatilePB unit

This unit serves to include all units relevant to the QEMU VersatilePB and to register the drivers that are appropriate to the configuration.

This includes standard interfaces such as network, filesystem and storage as well as drivers that are specific to the VersatilePB and may or may not be included by anything else.

The unit also provides a very simple clock device driver for the 24MHz clock included in the Versatile PB System Control registers. This clock is 32bit only, runs at a fixed rate of 24MHz and cannot be stopped or reset.

Additional units can be included anywhere within a program and they will be linked during the compile process. This unit simply provides a convenient way to ensure all relevant units have been included and the standard drivers registered.

Constants



QEMUVersatilePB specific constants NAME_*
VERSATILEPB_CLOCK_DESCRIPTION = 'VersatilePB 24MHz Clock'; Description of 24MHz clock device


Type definitions


None defined

Public variables


None defined

Function declarations



Initialization functions

procedure QEMUVersatilePBInit;
Description: Initialize the QEMUVersatilePB unit and parameters
Note Called only during system startup


QEMUVersatilePB MMCI functions

function MMCIGetCardDetect(MMC:PMMCDevice):LongWord; 
Description: Implementation of MMCDeviceGetCardDetect API for QEMUVPB MMCI
Note Not intended to be called directly by applications, use MMCDeviceGetCardDetect instead.

Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB


function MMCIGetWriteProtect(MMC:PMMCDevice):LongWord;
Description: Implementation of MMCDeviceGetWriteProtect API for QEMUVPB MMCI
Note Not intended to be called directly by applications, use MMCDeviceGetWriteProtect instead.

Not currently used as the VERSATILEPB_SYS_MCI register is not connected in QEMUVPB


QEMUVersatilePB clock functions

function VersatilePBClockRead(Clock:PClockDevice):LongWord;
Description: Implementation of ClockDeviceRead API for the 24MHz Clock
Note Not intended to be called directly by applications, use ClockDeviceRead instead.


function VersatilePBClockRead64(Clock:PClockDevice):Int64;
Description: Implementation of ClockDeviceRead64 API for the 24MHz Clock
Note Not intended to be called directly by applications, use ClockDeviceRead64 instead.


Return to Unit Reference