We implemented console support (through serial port), for the current board types...
[reactos.git] / reactos / boot / freeldr / freeldr / include / arch / arm / hardware.h
index bc651d6..973f7e5 100644 (file)
@@ -2,8 +2,8 @@
  * PROJECT:         ReactOS Boot Loader
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            boot/freeldr/include/arch/arm/hardware.h
- * PURPOSE:         Implements routines to support booting from a RAM Disk
- * PROGRAMMERS:     alex@winsiderss.com
+ * PURPOSE:         Header for ARC definitions (to be cleaned up)
+ * PROGRAMMERS:     ReactOS Portable Systems Group
  */
 
 #ifndef _ARM_HARDWARE_
 #include "../../reactos/registry.h"
 #endif
 
+//
+// The only things we support
+//
+typedef enum _ARM_BOARD_TYPE
+{
+    //
+    // Marvell Feroceon-based SoC:
+    // Buffalo Linkstation, KuroBox Pro, D-Link DS323 and others
+    //
+    ARM_FEROCEON = 1,
+} ARM_BOARD_TYPE;
+
+//
+// Compatible boot-loaders should return us this information
+//
+#define ARM_BOARD_CONFIGURATION_MAJOR_VERSION 1
+#define ARM_BOARD_CONFIGURATION_MINOR_VERSION 1
+typedef struct _ARM_BOARD_CONFIGURATION_BLOCK
+{
+    ULONG MajorVersion;
+    ULONG MinorVersion;
+    ARM_BOARD_TYPE BoardType;
+    ULONG ClockRate;
+    ULONG TimerRegisterBase;
+    ULONG UartRegisterBase;
+    PBIOS_MEMORY_MAP MemoryMap;
+    CHAR CommandLine[256];
+} ARM_BOARD_CONFIGURATION_BLOCK, *PARM_BOARD_CONFIGURATION_BLOCK;
+
 //
 // Static heap for ARC Hardware Component Tree
 // 16KB oughta be enough for anyone.
@@ -63,4 +92,18 @@ FldrSetConfigurationData(
     IN ULONG Size
 );
 
+VOID
+ArmFeroSerialInit(IN ULONG Baudrate);
+
+VOID
+ArmFeroPutChar(IN INT Char);
+
+INT
+ArmFeroGetCh(VOID);
+
+BOOLEAN
+ArmFeroKbHit(VOID);
+
+extern PARM_BOARD_CONFIGURATION_BLOCK ArmBoardBlock;
+
 #endif