xref: /reactos/boot/armllb/hw/versatile/hwinit.c (revision 3e1f4074)
1 /*
2  * PROJECT:         ReactOS Boot Loader
3  * LICENSE:         BSD - See COPYING.ARM in the top level directory
4  * FILE:            boot/armllb/hw/versatile/hwinit.c
5  * PURPOSE:         LLB Hardware Initialization Routines for Versatile
6  * PROGRAMMERS:     ReactOS Portable Systems Group
7  */
8 
9 #include "precomp.h"
10 
11 VOID
12 NTAPI
13 LlbHwInitialize(VOID)
14 {
15     /* Setup the CLCD (PL110) */
16     LlbHwVersaClcdInitialize();
17 
18     /* Setup the UART (PL011) */
19     LlbHwVersaUartInitialize();
20 
21     /* Setup the KMI (PL050) */
22     LlbHwVersaKmiInitialize();
23 }
24 
25 //
26 // Should go to hwdev.c
27 //
28 POSLOADER_INIT
29 NTAPI
30 LlbHwLoadOsLoaderFromRam(VOID)
31 {
32     ULONG Base, RootFs, Size;
33     PCHAR Offset;
34     CHAR CommandLine[64];
35 
36     /* On versatile we load the RAMDISK with initrd */
37     LlbEnvGetRamDiskInformation(&RootFs, &Size);
38 
39     /* The OS Loader is at 0x20000, always */
40     Base = 0x20000;
41 
42     /* Read image offset */
43     Offset = LlbEnvRead("rdoffset");
44 
45     /* Set parameters for the OS loader */
46     sprintf(CommandLine, "rdbase=0x%x rdsize=0x%x rdoffset=%s", RootFs, Size, Offset);
47     LlbSetCommandLine(CommandLine);
48 
49     /* Return the OS loader base address */
50     return (POSLOADER_INIT)Base;
51 }
52 
53 
54 /* EOF */
55