mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
[ARMLLB]: Add support for ATAG_REVISION.
[ARMLLB]: Fix support of ATAG_MEM: there can be multiple tags, one per DRAM bank. [ARMLLB]: Fix the default case not to "return": it should "Break" instead. [ARMLLB]: Only apply the RAMDisk hack on Beagle for now. svn path=/trunk/; revision=49735
This commit is contained in:
parent
589fe32c63
commit
b9c9c55b77
1 changed files with 21 additions and 9 deletions
|
@ -9,10 +9,11 @@
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
|
||||||
ULONG LlbEnvHwPageSize;
|
ULONG LlbEnvHwPageSize;
|
||||||
ULONG LlbEnvHwMemStart;
|
ULONG LlbEnvHwMemStart = 0;
|
||||||
ULONG LlbEnvHwMemSize;
|
ULONG LlbEnvHwMemSize = 0;
|
||||||
ULONG LlbEnvRamDiskStart;
|
ULONG LlbEnvRamDiskStart = 0;
|
||||||
ULONG LlbEnvRamDiskSize;
|
ULONG LlbEnvRamDiskSize = 0;
|
||||||
|
ULONG LlbEnvHwRevision;
|
||||||
CHAR LlbEnvCmdLine[256];
|
CHAR LlbEnvCmdLine[256];
|
||||||
CHAR LlbValueData[32];
|
CHAR LlbValueData[32];
|
||||||
|
|
||||||
|
@ -35,11 +36,17 @@ LlbEnvParseArguments(IN PATAG Arguments)
|
||||||
LlbEnvHwPageSize = Atag->u.Core.PageSize;
|
LlbEnvHwPageSize = Atag->u.Core.PageSize;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ATAG_REVISION:
|
||||||
|
|
||||||
|
/* Save page size */
|
||||||
|
LlbEnvHwRevision = Atag->u.Revision.Rev;
|
||||||
|
break;
|
||||||
|
|
||||||
case ATAG_MEM:
|
case ATAG_MEM:
|
||||||
|
|
||||||
/* Save RAM start and size */
|
/* Save RAM start and size */
|
||||||
LlbEnvHwMemStart = Atag->u.Mem.Start;
|
if (!LlbEnvHwMemStart) LlbEnvHwMemStart = Atag->u.Mem.Start;
|
||||||
LlbEnvHwMemSize = Atag->u.Mem.Size;
|
LlbEnvHwMemSize += Atag->u.Mem.Size;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ATAG_INITRD2:
|
case ATAG_INITRD2:
|
||||||
|
@ -48,6 +55,7 @@ LlbEnvParseArguments(IN PATAG Arguments)
|
||||||
LlbEnvRamDiskStart = Atag->u.InitRd2.Start;
|
LlbEnvRamDiskStart = Atag->u.InitRd2.Start;
|
||||||
LlbEnvRamDiskSize = Atag->u.InitRd2.Size;
|
LlbEnvRamDiskSize = Atag->u.InitRd2.Size;
|
||||||
|
|
||||||
|
#ifdef _BEAGLE_
|
||||||
/* Make sure it's 16MB-aligned */
|
/* Make sure it's 16MB-aligned */
|
||||||
LlbEnvRamDiskSize = (LlbEnvRamDiskSize + (16 * 1024 * 1024) - 1)
|
LlbEnvRamDiskSize = (LlbEnvRamDiskSize + (16 * 1024 * 1024) - 1)
|
||||||
&~ ((16 * 1024 * 1024) - 1);
|
&~ ((16 * 1024 * 1024) - 1);
|
||||||
|
@ -55,6 +63,7 @@ LlbEnvParseArguments(IN PATAG Arguments)
|
||||||
/* The RAMDISK actually starts 16MB later */
|
/* The RAMDISK actually starts 16MB later */
|
||||||
LlbEnvRamDiskStart += 16 * 1024 * 1024;
|
LlbEnvRamDiskStart += 16 * 1024 * 1024;
|
||||||
LlbEnvRamDiskSize -= 16 * 1024 * 1024;
|
LlbEnvRamDiskSize -= 16 * 1024 * 1024;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ATAG_CMDLINE:
|
case ATAG_CMDLINE:
|
||||||
|
@ -68,7 +77,7 @@ LlbEnvParseArguments(IN PATAG Arguments)
|
||||||
/* Nothing left to handle */
|
/* Nothing left to handle */
|
||||||
case ATAG_NONE:
|
case ATAG_NONE:
|
||||||
default:
|
default:
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Next tag */
|
/* Next tag */
|
||||||
|
@ -76,8 +85,11 @@ LlbEnvParseArguments(IN PATAG Arguments)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For debugging */
|
/* For debugging */
|
||||||
DbgPrint("[BOOTROM] PageSize: %dKB RAM: %dMB CMDLINE: %s\n",
|
DbgPrint("[BOOTROM] Board Revision: %lx PageSize: %dKB RAM: %dMB CMDLINE: %s\n"
|
||||||
LlbEnvHwPageSize / 1024, LlbEnvHwMemSize / 1024 / 1024, LlbEnvCmdLine);
|
"[RAMDISK] Base: %lx Size: %dMB\n",
|
||||||
|
LlbEnvHwRevision,
|
||||||
|
LlbEnvHwPageSize / 1024, LlbEnvHwMemSize / 1024 / 1024, LlbEnvCmdLine,
|
||||||
|
LlbEnvRamDiskStart, LlbEnvRamDiskSize / 1024 / 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
|
Loading…
Reference in a new issue