From 804405e7d10525e41720216137b2551f62a0663f Mon Sep 17 00:00:00 2001 From: eric_tian Date: Mon, 30 Jun 2008 05:08:49 +0000 Subject: Port EdkUnixPkg to UnixPkg. The changes are listed as follows: 1. change *.msa to *.inf, and create platform configuration files .dec&.dsc&.fdf to comply with Edk2 build process 2. using PCD mechanism to replace macro. 3. change Sec code to cowork with PI1.0 Pei Core and produce temparory memory ppi. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5380 6f19259b-4bc3-4df7-8a09-765794883524 --- UnixPkg/Include/Ppi/UnixAutoScan.h | 66 +++++++++++++++++++++++++++++++++++ UnixPkg/Include/Ppi/UnixFwh.h | 62 ++++++++++++++++++++++++++++++++ UnixPkg/Include/Ppi/UnixPeiLoadFile.h | 65 ++++++++++++++++++++++++++++++++++ UnixPkg/Include/Ppi/UnixThunk.h | 56 +++++++++++++++++++++++++++++ 4 files changed, 249 insertions(+) create mode 100644 UnixPkg/Include/Ppi/UnixAutoScan.h create mode 100644 UnixPkg/Include/Ppi/UnixFwh.h create mode 100644 UnixPkg/Include/Ppi/UnixPeiLoadFile.h create mode 100644 UnixPkg/Include/Ppi/UnixThunk.h (limited to 'UnixPkg/Include/Ppi') diff --git a/UnixPkg/Include/Ppi/UnixAutoScan.h b/UnixPkg/Include/Ppi/UnixAutoScan.h new file mode 100644 index 0000000000..0c04d8202e --- /dev/null +++ b/UnixPkg/Include/Ppi/UnixAutoScan.h @@ -0,0 +1,66 @@ +/*++ + +Copyright (c) 2006, 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. + +Module Name: + + UnixAutoscan.h + +Abstract: + +Unix Autoscan PPI + +--*/ + +#ifndef __UNIX_PEI_AUTOSCAN_H__ +#define __UNIX_PEI_AUTOSCAN_H__ + +#include + +#define PEI_UNIX_AUTOSCAN_PPI_GUID \ + { \ + 0xf2ed3d14, 0x8985, 0x11db, {0xb0, 0x57, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \ + } + +typedef +EFI_STATUS +(EFIAPI *PEI_UNIX_AUTOSCAN) ( + IN UINTN Index, + OUT EFI_PHYSICAL_ADDRESS *MemoryBase, + OUT UINT64 *MemorySize + ); + +/*++ + +Routine Description: + This service is called from Index == 0 until it returns EFI_UNSUPPORTED. + It allows discontiguous memory regions to be supported by the emulator. + It uses gSystemMemory[] and gSystemMemoryCount that were created by + parsing the host environment variable EFI_MEMORY_SIZE. + The size comes from the varaible and the address comes from the call to + WinNtOpenFile. + +Arguments: + Index - Which memory region to use + MemoryBase - Return Base address of memory region + MemorySize - Return size in bytes of the memory region + +Returns: + EFI_SUCCESS - If memory region was mapped + EFI_UNSUPPORTED - If Index is not supported + +--*/ +typedef struct { + PEI_UNIX_AUTOSCAN UnixAutoScan; +} PEI_UNIX_AUTOSCAN_PPI; + +extern EFI_GUID gPeiUnixAutoScanPpiGuid; + +#endif diff --git a/UnixPkg/Include/Ppi/UnixFwh.h b/UnixPkg/Include/Ppi/UnixFwh.h new file mode 100644 index 0000000000..a9885a57bf --- /dev/null +++ b/UnixPkg/Include/Ppi/UnixFwh.h @@ -0,0 +1,62 @@ +/*++ + +Copyright (c) 2006, 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. + +Module Name: + + UnixFwh.h + +Abstract: + + Unix FWH PPI as defined in Tiano + +--*/ + +#ifndef __UNIX_PEI_FWH_H__ +#define __UNIX_PEI_FWH_H__ + +#include + +#define UNIX_FWH_PPI_GUID \ + { \ + 0xf2f0dc30, 0x8985, 0x11db, {0xa1, 0x5b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \ + } + +typedef +EFI_STATUS +(EFIAPI *UNIX_FWH_INFORMATION) ( + IN UINTN Index, + IN OUT EFI_PHYSICAL_ADDRESS *FdBase, + IN OUT UINT64 *FdSize + ); + +/*++ + +Routine Description: + Return the FD Size and base address. Since the FD is loaded from a + file into host memory only the SEC will know it's address. + +Arguments: + Index - Which FD, starts at zero. + FdSize - Size of the FD in bytes + FdBase - Start address of the FD. Assume it points to an FV Header + +Returns: + EFI_SUCCESS - Return the Base address and size of the FV + EFI_UNSUPPORTED - Index does nto map to an FD in the system + +--*/ +typedef struct { + UNIX_FWH_INFORMATION UnixFwh; +} UNIX_FWH_PPI; + +extern EFI_GUID gUnixFwhPpiGuid; + +#endif diff --git a/UnixPkg/Include/Ppi/UnixPeiLoadFile.h b/UnixPkg/Include/Ppi/UnixPeiLoadFile.h new file mode 100644 index 0000000000..b91c630b5a --- /dev/null +++ b/UnixPkg/Include/Ppi/UnixPeiLoadFile.h @@ -0,0 +1,65 @@ +/*++ + +Copyright (c) 2006, 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. + +Module Name: + + UnixPeiLoadFile.h + +Abstract: + + Unix Load File PPI. + + When the PEI core is done it calls the DXE IPL via PPI + +--*/ + +#ifndef __UNIX_PEI_LOAD_FILE_H__ +#define __UNIX_PEI_LOAD_FILE_H__ + +#include + +#define UNIX_PEI_LOAD_FILE_GUID \ + { \ + 0xf2f48768, 0x8985, 0x11db, {0xb8, 0xda, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \ + } + +typedef +EFI_STATUS +(EFIAPI *UNIX_PEI_LOAD_FILE) ( + VOID *Pe32Data, + EFI_PHYSICAL_ADDRESS *ImageAddress, + UINT64 *ImageSize, + EFI_PHYSICAL_ADDRESS *EntryPoint + ); + +/*++ + +Routine Description: + Loads and relocates a PE/COFF image into memory. + +Arguments: + Pe32Data - The base address of the PE/COFF file that is to be loaded and relocated + ImageAddress - The base address of the relocated PE/COFF image + ImageSize - The size of the relocated PE/COFF image + EntryPoint - The entry point of the relocated PE/COFF image + +Returns: + EFI_SUCCESS - The file was loaded and relocated + EFI_OUT_OF_RESOURCES - There was not enough memory to load and relocate the PE/COFF file + +--*/ +typedef struct { + UNIX_PEI_LOAD_FILE PeiLoadFileService; +} UNIX_PEI_LOAD_FILE_PPI; + +extern EFI_GUID gUnixPeiLoadFilePpiGuid; + +#endif diff --git a/UnixPkg/Include/Ppi/UnixThunk.h b/UnixPkg/Include/Ppi/UnixThunk.h new file mode 100644 index 0000000000..866bd61398 --- /dev/null +++ b/UnixPkg/Include/Ppi/UnixThunk.h @@ -0,0 +1,56 @@ +/*++ + +Copyright (c) 2006, 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. + +Module Name: + + UnixThunk.h + +Abstract: + + Unix Thunk interface PPI + +--*/ + +#ifndef __UNIX_PEI_UNIX_THUNK_H__ +#define __UNIX_PEI_UNIX_THUNK_H__ + +#include + +#define PEI_UNIX_THUNK_PPI_GUID \ + { \ + 0xf2f830f2, 0x8985, 0x11db, {0x80, 0x6b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \ + } + +typedef +VOID * +(EFIAPI *PEI_UNIX_THUNK_INTERFACE) ( + VOID + ); + +/*++ + +Routine Description: + Export of EFI_UNIX_THUNK_PROTOCOL from the Unix SEC. + +Arguments: + InterfaceBase - Address of the EFI_UNIX_THUNK_PROTOCOL + +Returns: + EFI_SUCCESS - Data returned + +--*/ +typedef struct { + PEI_UNIX_THUNK_INTERFACE UnixThunk; +} PEI_UNIX_THUNK_PPI; + +extern EFI_GUID gPeiUnixThunkPpiGuid; + +#endif -- cgit v1.2.3