Merge from amd64 branch:
[reactos.git] / reactos / boot / freeldr / freeldr / include / arch / arm / hardware.h
1 /*
2 * PROJECT: ReactOS Boot Loader
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: boot/freeldr/include/arch/arm/hardware.h
5 * PURPOSE: Header for ARC definitions (to be cleaned up)
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9 #ifndef _ARM_HARDWARE_
10 #define __ARM_HARDWARE_
11
12 #ifndef __REGISTRY_H
13 #include "../../reactos/registry.h"
14 #endif
15
16 //
17 // Marvell Feroceon-based SoC:
18 // Buffalo Linkstation, KuroBox Pro, D-Link DS323 and others
19 //
20 #define MACH_TYPE_FEROCEON 526
21
22 //
23 // ARM Versatile PB:
24 // qemu-system-arm -M versatilepb, RealView Development Boards and others
25 //
26 #define MACH_TYPE_VERSATILE_PB 387
27
28 //
29 // TI Beagle Board, OMAP3530 SoC
30 // qemu-system-arm -M beagle, Beagle Board
31 //
32 #define MACH_TYPE_OMAP3_BEAGLE 1546
33
34 //
35 // Compatible boot-loaders should return us this information
36 //
37 #define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
38 #define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
39 typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
40 {
41 ULONG MajorVersion;
42 ULONG MinorVersion;
43 ULONG BoardType;
44 ULONG ClockRate;
45 ULONG TimerRegisterBase;
46 ULONG UartRegisterBase;
47 ULONG MemoryMapEntryCount;
48 PBIOS_MEMORY_MAP MemoryMap;
49 CHAR CommandLine[256];
50 } ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
51
52 //
53 // Static heap for ARC Hardware Component Tree
54 // 16KB oughta be enough for anyone.
55 //
56 #define HW_MAX_ARC_HEAP_SIZE 16 * 1024
57
58 //
59 // ARC Component Configuration Routines
60 //
61 VOID
62 NTAPI
63 FldrCreateSystemKey(
64 OUT PCONFIGURATION_COMPONENT_DATA *SystemKey
65 );
66
67 VOID
68 NTAPI
69 FldrCreateComponentKey(
70 IN PCONFIGURATION_COMPONENT_DATA SystemKey,,
71 IN CONFIGURATION_CLASS Class,
72 IN CONFIGURATION_TYPE Type,
73 IN IDENTIFIER_FLAG Flags,
74 IN ULONG Key,
75 IN ULONG Affinity,
76 IN PCHAR IdentifierString,
77 IN PCM_PARTIAL_RESOURCE_LIST ResourceList,
78 IN ULONG Size,
79 OUT PCONFIGURATION_COMPONENT_DATA *ComponentKey
80 );
81
82 VOID
83 ArmFeroSerialInit(IN ULONG Baudrate);
84
85 VOID
86 ArmFeroPutChar(IN INT Char);
87
88 INT
89 ArmFeroGetCh(VOID);
90
91 BOOLEAN
92 ArmFeroKbHit(VOID);
93
94 VOID
95 ArmOmap3SerialInit(IN ULONG Baudrate);
96
97 VOID
98 ArmOmap3PutChar(IN INT Char);
99
100 INT
101 ArmOmap3GetCh(VOID);
102
103 BOOLEAN
104 ArmOmap3KbHit(VOID);
105
106 VOID
107 ArmVersaSerialInit(IN ULONG Baudrate);
108
109 VOID
110 ArmVersaPutChar(IN INT Char);
111
112 INT
113 ArmVersaGetCh(VOID);
114
115 BOOLEAN
116 ArmVersaKbHit(VOID);
117
118 extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock;
119
120 #endif