2 * PROJECT: ReactOS Boot Loader
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: boot/freeldr/arch/arm/stubs.c
5 * PURPOSE: Non-completed ARM hardware-specific routines
6 * PROGRAMMERS: ReactOS Portable Systems Group
9 /* INCLUDES *******************************************************************/
13 /* GLOBALS ********************************************************************/
15 ULONG PageDirectoryStart
, PageDirectoryEnd
;
17 /* FUNCTIONS ******************************************************************/
20 FrLdrStartup(IN ULONG Magic
)
28 ArmDiskGetBootVolume(IN PULONG DriveNumber
,
29 IN PULONGLONG StartSector
,
30 IN PULONGLONG SectorCount
,
38 ArmDiskGetBootDevice(OUT PULONG BootDevice
)
44 ArmDiskBootingFromFloppy(VOID
)
51 ArmDiskGetSystemVolume(IN PCHAR SystemPath
,
52 OUT PCHAR RemainingPath
,
54 OUT PULONG DriveNumber
,
55 OUT PULONGLONG StartSector
,
56 OUT PULONGLONG SectorCount
,
64 ArmDiskGetBootPath(IN PCHAR BootPath
,
72 ArmDiskNormalizeSystemPath(IN PCHAR SystemPath
,
80 ArmDiskGetDriveGeometry(IN ULONG DriveNumber
,
81 OUT PGEOMETRY Geometry
)
88 ArmDiskGetPartitionEntry(IN ULONG DriveNumber
,
89 IN ULONG PartitionNumber
,
90 OUT PPARTITION_TABLE_ENTRY PartitionTableEntry
)
97 ArmDiskReadLogicalSectors(IN ULONG DriveNumber
,
98 IN ULONGLONG SectorNumber
,
107 ArmDiskGetCacheableBlockCount(IN ULONG DriveNumber
)
114 ArmPrepareForReactOS(IN BOOLEAN Setup
)
119 PCONFIGURATION_COMPONENT_DATA
127 ArmMemGetMemoryMap(OUT PBIOS_MEMORY_MAP BiosMemoryMap
,
128 IN ULONG MaxMemoryMapSize
)
135 MachInit(IN PCCH CommandLine
)
138 // Setup board-specific ARM routines
140 switch (ArmBoardBlock
->BoardType
)
143 // Check for Feroceon-base boards
148 // These boards use a UART16550. Set us up for 115200 bps
150 ArmFeroSerialInit(115200);
151 MachVtbl
.ConsPutChar
= ArmFeroPutChar
;
152 MachVtbl
.ConsKbHit
= ArmFeroKbHit
;
153 MachVtbl
.ConsGetCh
= ArmFeroGetCh
;
161 // Setup generic ARM routines
163 MachVtbl
.PrepareForReactOS
= ArmPrepareForReactOS
;
164 MachVtbl
.GetMemoryMap
= ArmMemGetMemoryMap
;
165 MachVtbl
.DiskGetBootVolume
= ArmDiskGetBootVolume
;
166 MachVtbl
.DiskGetSystemVolume
= ArmDiskGetSystemVolume
;
167 MachVtbl
.DiskGetBootPath
= ArmDiskGetBootPath
;
168 MachVtbl
.DiskGetBootDevice
= ArmDiskGetBootDevice
;
169 MachVtbl
.DiskBootingFromFloppy
= ArmDiskBootingFromFloppy
;
170 MachVtbl
.DiskNormalizeSystemPath
= ArmDiskNormalizeSystemPath
;
171 MachVtbl
.DiskReadLogicalSectors
= ArmDiskReadLogicalSectors
;
172 MachVtbl
.DiskGetPartitionEntry
= ArmDiskGetPartitionEntry
;
173 MachVtbl
.DiskGetDriveGeometry
= ArmDiskGetDriveGeometry
;
174 MachVtbl
.DiskGetCacheableBlockCount
= ArmDiskGetCacheableBlockCount
;
175 MachVtbl
.HwDetect
= ArmHwDetect
;
178 // We can now print to the console
180 TuiPrintf("%s for ARM\n", GetFreeLoaderVersionString());