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
10 #define __ARM_HARDWARE_
13 #include "../../reactos/registry.h"
17 // Marvell Feroceon-based SoC:
18 // Buffalo Linkstation, KuroBox Pro, D-Link DS323 and others
20 #define MACH_TYPE_FEROCEON 526
24 // qemu-system-arm -M versatilepb, RealView Development Boards and others
26 #define MACH_TYPE_VERSATILE_PB 387
29 // TI Beagle Board, OMAP3530 SoC
30 // qemu-system-arm -M beagle, Beagle Board
32 #define MACH_TYPE_OMAP3_BEAGLE 1546
35 // Compatible boot-loaders should return us this information
37 #define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
38 #define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
39 typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
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
;
53 // Static heap for ARC Hardware Component Tree
54 // 16KB oughta be enough for anyone.
56 #define HW_MAX_ARC_HEAP_SIZE 16 * 1024
59 // ARC Component Configuration Routines
64 OUT PCONFIGURATION_COMPONENT_DATA
*SystemKey
69 FldrCreateComponentKey(
70 IN PCONFIGURATION_COMPONENT_DATA SystemKey
,,
71 IN CONFIGURATION_CLASS Class
,
72 IN CONFIGURATION_TYPE Type
,
73 IN IDENTIFIER_FLAG Flags
,
76 IN PCHAR IdentifierString
,
77 IN PCM_PARTIAL_RESOURCE_LIST ResourceList
,
79 OUT PCONFIGURATION_COMPONENT_DATA
*ComponentKey
83 ArmFeroSerialInit(IN ULONG Baudrate
);
86 ArmFeroPutChar(IN INT Char
);
95 ArmOmap3SerialInit(IN ULONG Baudrate
);
98 ArmOmap3PutChar(IN INT Char
);
107 ArmVersaSerialInit(IN ULONG Baudrate
);
110 ArmVersaPutChar(IN INT Char
);
118 extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock
;