From 2ef2b01e07c02db339f34004445734a2dbdd80e1 Mon Sep 17 00:00:00 2001 From: AJFISH Date: Sun, 6 Dec 2009 01:57:05 +0000 Subject: Adding support for BeagleBoard. ArmPkg - Supoprt for ARM specific things that can change as the architecture changes. Plus semihosting JTAG drivers. EmbeddedPkg - Generic support for an embeddded platform. Including a light weight command line shell. BeagleBoardPkg - Platform specifics for BeagleBoard. SD Card works, but USB has issues. Looks like a bug in the open source USB stack (Our internal stack works fine). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9518 6f19259b-4bc3-4df7-8a09-765794883524 --- EmbeddedPkg/TemplateSec/TemplateSec.c | 76 +++++++++++++++++++++++++++++++++ EmbeddedPkg/TemplateSec/TemplateSec.inf | 66 ++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 EmbeddedPkg/TemplateSec/TemplateSec.c create mode 100644 EmbeddedPkg/TemplateSec/TemplateSec.inf (limited to 'EmbeddedPkg/TemplateSec') diff --git a/EmbeddedPkg/TemplateSec/TemplateSec.c b/EmbeddedPkg/TemplateSec/TemplateSec.c new file mode 100644 index 0000000000..dbbf3cb815 --- /dev/null +++ b/EmbeddedPkg/TemplateSec/TemplateSec.c @@ -0,0 +1,76 @@ +/** @file + + Copyright (c) 2008-2009, Apple Inc. All rights reserved. + + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include + +#include +#include +#include + +#include + +VOID +_ModuleEntryPoint ( + VOID + ) +{ +} + +VOID +CEntryPoint ( + VOID *MemoryBase, + UINTN MemorySize, + VOID *StackBase, + UINTN StackSize + ) +{ + EFI_PHYSICAL_ADDRESS MemoryBegin; + UINT64 MemoryLength; + VOID *HobBase; + + // + // Boot strap the C environment so the other library services will work properly. + // + MemoryBegin = (EFI_PHYSICAL_ADDRESS)(UINTN)MemoryBase; + MemoryLength = (UINT64)MemorySize; + HobBase = (VOID *)(UINTN)(FixedPcdGet32(PcdEmbeddedFdBaseAddress) + FixedPcdGet32(PcdEmbeddedFdSize)); + CreateHobList (MemoryBase, MemorySize, HobBase, StackBase); + + MemoryBegin = (EFI_PHYSICAL_ADDRESS)(UINTN)StackBase; + MemoryLength = (UINT64)StackSize; + UpdateStackHob (MemoryBegin, MemoryLength); + + DEBUG ((DEBUG_ERROR, "CEntryPoint (%x,%x,%x,%x)\n", MemoryBase, MemorySize, StackBase, StackSize)); + + // + // Add your C code stuff here.... + // + + + // + // Load the DXE Core and transfer control to it + // + + // Give the DXE Core access to our DEBUG and ASSERT infrastructure so this will work prior + // to the DXE version being loaded. Thus we close the debugging gap between phases. + AddDxeCoreReportStatusCodeCallback (); + + //BuildFvHobs (PcdBfvBase, PcdBfvSize, NULL); + + LoadDxeCoreFromFv (NULL, 0); + + // DXE Core should always load and never return + ASSERT (FALSE); +} + diff --git a/EmbeddedPkg/TemplateSec/TemplateSec.inf b/EmbeddedPkg/TemplateSec/TemplateSec.inf new file mode 100644 index 0000000000..5c62b7520e --- /dev/null +++ b/EmbeddedPkg/TemplateSec/TemplateSec.inf @@ -0,0 +1,66 @@ +#%HEADER% +#/** @file +# +# Component description file for DxeIpl module +# +# The responsibility of this module is to load the DXE Core from a Firmware Volume. This implementation i used to load a 32-bit DXE Core. +# +# Copyright (c) 2006 - 2008, Intel Corporation.
+# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#**/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = TemplateSec + FILE_GUID = 1D6F730F-5A55-4078-869B-E0A18324BDC8 + MODULE_TYPE = SEC + VERSION_STRING = 1.0 + + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 ARM +# + +[Sources.common] + TemplateSec.c + +[Sources.Ia32] +# Ia32/ResetVector.asm | MSFT +# Ia32/ResetVector.S | GCC + +[Sources.X64] +# X64/ResetVector.asm | MSFT +# X64/ResetVector.S | GCC + +[Sources.ARM] +# Arm/ResetVector.asm | RVCT +# Arm/ResetVector.S | GCC + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + EmbeddedPkg/EmbeddedPkg.dec + + +[LibraryClasses] + BaseLib + DebugLib + BaseMemoryLib + UefiDecompressLib + PeCoffLib + CacheMaintenanceLib + PrePiLib + +[Pcd] + gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress + gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize + -- cgit v1.2.3