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 // Compatible boot-loaders should return us this information
31 #define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
32 #define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
33 typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
39 ULONG TimerRegisterBase
;
40 ULONG UartRegisterBase
;
41 ULONG MemoryMapEntryCount
;
42 PBIOS_MEMORY_MAP MemoryMap
;
43 CHAR CommandLine
[256];
44 } ARM_BOARD_CONFIGURATION_BLOCK
, *PARM_BOARD_CONFIGURATION_BLOCK
;
47 // Static heap for ARC Hardware Component Tree
48 // 16KB oughta be enough for anyone.
50 #define HW_MAX_ARC_HEAP_SIZE 16 * 1024
53 // ARC Component Configuration Routines
57 FldrSetComponentInformation(
58 IN PCONFIGURATION_COMPONENT_DATA ComponentKey
,
59 IN IDENTIFIER_FLAG Flags
,
67 IN PCONFIGURATION_COMPONENT_DATA ComponentKey
,
74 OUT PCONFIGURATION_COMPONENT_DATA
*SystemKey
79 FldrCreateComponentKey(
80 IN PCONFIGURATION_COMPONENT_DATA SystemKey
,
83 IN CONFIGURATION_CLASS Class
,
84 IN CONFIGURATION_TYPE Type
,
85 OUT PCONFIGURATION_COMPONENT_DATA
*ComponentKey
90 FldrSetConfigurationData(
91 IN PCONFIGURATION_COMPONENT_DATA ComponentKey
,
92 IN PCM_PARTIAL_RESOURCE_LIST ResourceList
,
97 ArmFeroSerialInit(IN ULONG Baudrate
);
100 ArmFeroPutChar(IN INT Char
);
109 ArmVersaSerialInit(IN ULONG Baudrate
);
112 ArmVersaPutChar(IN INT Char
);
120 extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock
;