Removed certain ARM Machine Callbacks which we shouldn't need at all until much later...
[reactos.git] / reactos / boot / freeldr / freeldr / arch / arm / stubs.c
1 /*
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
7 */
8
9 /* INCLUDES *******************************************************************/
10
11 #include <freeldr.h>
12
13 /* GLOBALS ********************************************************************/
14
15 ULONG PageDirectoryStart, PageDirectoryEnd;
16
17 /* FUNCTIONS ******************************************************************/
18
19 VOID
20 FrLdrStartup(IN ULONG Magic)
21 {
22 //
23 // Start the OS
24 //
25 }
26
27
28 BOOLEAN
29 ArmDiskGetDriveGeometry(IN ULONG DriveNumber,
30 OUT PGEOMETRY Geometry)
31 {
32 ASSERT(gRamDiskBase == NULL);
33 return FALSE;
34 }
35
36 BOOLEAN
37 ArmDiskReadLogicalSectors(IN ULONG DriveNumber,
38 IN ULONGLONG SectorNumber,
39 IN ULONG SectorCount,
40 IN PVOID Buffer)
41 {
42 ASSERT(gRamDiskBase == NULL);
43 return FALSE;
44 }
45
46 ULONG
47 ArmDiskGetCacheableBlockCount(IN ULONG DriveNumber)
48 {
49 ASSERT(gRamDiskBase == NULL);
50 return FALSE;
51 }
52
53 BOOLEAN
54 ArmDiskGetBootVolume(IN PULONG DriveNumber,
55 IN PULONGLONG StartSector,
56 IN PULONGLONG SectorCount,
57 OUT PINT FsType)
58 {
59 //
60 // We only support RAM disk for now -- add support for NAND later
61 //
62 ASSERT(gRamDiskBase);
63 ASSERT(gRamDiskSize);
64
65 //
66 // Use magic ramdisk drive number and count the number of 512-byte sectors
67 //
68 *DriveNumber = 0x49;
69 *StartSector = 63;
70 *SectorCount = gRamDiskSize * 512;
71
72 //
73 // Ramdisk support is FAT-only for now
74 //
75 *FsType = FS_FAT;
76
77 //
78 // Now that ramdisk is enabled, use ramdisk routines
79 //
80 RamDiskSwitchFromBios();
81 return TRUE;
82 }
83
84 BOOLEAN
85 ArmDiskGetSystemVolume(IN PCHAR SystemPath,
86 OUT PCHAR RemainingPath,
87 OUT PULONG Device,
88 OUT PULONG DriveNumber,
89 OUT PULONGLONG StartSector,
90 OUT PULONGLONG SectorCount,
91 OUT PINT FsType)
92 {
93 while (TRUE);
94 return FALSE;
95 }
96
97 BOOLEAN
98 ArmDiskNormalizeSystemPath(IN PCHAR SystemPath,
99 IN unsigned Size)
100 {
101 while (TRUE);
102 return FALSE;
103 }
104
105 VOID
106 ArmPrepareForReactOS(IN BOOLEAN Setup)
107 {
108 while (TRUE);
109 }
110
111 PCONFIGURATION_COMPONENT_DATA
112 ArmHwDetect(VOID)
113 {
114 while (TRUE);
115 return NULL;
116 }
117
118 ULONG
119 ArmMemGetMemoryMap(OUT PBIOS_MEMORY_MAP BiosMemoryMap,
120 IN ULONG MaxMemoryMapSize)
121 {
122 //
123 // Return whatever the board returned to us (CS0 Base + Size and FLASH0)
124 //
125 RtlCopyMemory(BiosMemoryMap,
126 ArmBoardBlock->MemoryMap,
127 ArmBoardBlock->MemoryMapEntryCount * sizeof(BIOS_MEMORY_MAP));
128 return ArmBoardBlock->MemoryMapEntryCount;
129 }
130
131 VOID
132 MachInit(IN PCCH CommandLine)
133 {
134 //
135 // Setup board-specific ARM routines
136 //
137 switch (ArmBoardBlock->BoardType)
138 {
139 //
140 // Check for Feroceon-base boards
141 //
142 case ARM_FEROCEON:
143
144 //
145 // These boards use a UART16550. Set us up for 115200 bps
146 //
147 ArmFeroSerialInit(115200);
148 MachVtbl.ConsPutChar = ArmFeroPutChar;
149 MachVtbl.ConsKbHit = ArmFeroKbHit;
150 MachVtbl.ConsGetCh = ArmFeroGetCh;
151 break;
152
153 default:
154 ASSERT(FALSE);
155 }
156
157 //
158 // Setup generic ARM routines
159 //
160 MachVtbl.PrepareForReactOS = ArmPrepareForReactOS;
161 MachVtbl.GetMemoryMap = ArmMemGetMemoryMap;
162 MachVtbl.DiskGetBootVolume = ArmDiskGetBootVolume;
163 MachVtbl.DiskGetSystemVolume = ArmDiskGetSystemVolume;
164 MachVtbl.DiskNormalizeSystemPath = ArmDiskNormalizeSystemPath;
165 MachVtbl.DiskReadLogicalSectors = ArmDiskReadLogicalSectors;
166 MachVtbl.DiskGetDriveGeometry = ArmDiskGetDriveGeometry;
167 MachVtbl.DiskGetCacheableBlockCount = ArmDiskGetCacheableBlockCount;
168 MachVtbl.HwDetect = ArmHwDetect;
169
170 //
171 // We can now print to the console
172 //
173 TuiPrintf("%s for ARM\n", GetFreeLoaderVersionString());
174 TuiPrintf("Bootargs: %s\n", CommandLine);
175 }