summaryrefslogtreecommitdiff
path: root/Platform
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2017-07-19 11:47:13 +0800
committerGuo Mang <mang.guo@intel.com>2017-07-19 11:47:13 +0800
commit9d76578cf4304e42b1f5fee7d38d351a9a9b38e9 (patch)
tree58d388f0a2ebb57bc29faa60fdbaf461012ff5a5 /Platform
parent5bec30e826e7a1c90cdb1810bde5c235ea19cfc1 (diff)
downloadedk2-platforms-9d76578cf4304e42b1f5fee7d38d351a9a9b38e9.tar.xz
Remove unused files
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'Platform')
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.c586
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.h330
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm54
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.S42
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.Asm49
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.S41
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipPrivate.h168
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipUtil.c247
-rw-r--r--Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/PlatformBdsLib.inf10
9 files changed, 1 insertions, 1526 deletions
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.c b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.c
deleted file mode 100644
index 4b99d0014f..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.c
+++ /dev/null
@@ -1,586 +0,0 @@
-/** @file
- This file include all platform action which can be customized by IBV/OEM.
-
- Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-
- 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 "EfiBootStub.h"
-#include "OsipPrivate.h"
-#include <Library/DxeServicesLib.h>
-#include <Protocol/BlockIo.h>
-#include <Protocol/DevicePath.h>
-#include <Protocol/SimpleFileSystem.h>
-
-//
-// Global descriptor table (GDT) Template
-//
-STATIC GDT_ENTRIES GdtTemplate = {
- //
- // NULL_SEL
- //
- {
- 0x0, // limit 15:0
- 0x0, // base 15:0
- 0x0, // base 23:16
- 0x0, // type
- 0x0, // limit 19:16, flags
- 0x0, // base 31:24
- },
-
- //
- // NULL_SEL2
- //
- {
- 0x0, // limit 15:0
- 0x0, // base 15:0
- 0x0, // base 23:16
- 0x0, // type
- 0x0, // limit 19:16, flags
- 0x0, // base 31:24
- },
-
- //
- // SYS_CODE_SEL
- //
- {
- 0x0FFFF, // limit 0xFFFFF
- 0x0, // base 0
- 0x0,
- 0x09B, // present, ring 0, data, expand-up, writable
- 0x0CF, // page-granular, 32-bit
- 0x0,
- },
-
- //
- // SYS_DATA_SEL
- //
- {
- 0x0FFFF, // limit 0xFFFFF
- 0x0, // base 0
- 0x0,
- 0x093, // present, ring 0, data, expand-up, writable
- 0x0CF, // page-granular, 32-bit
- 0x0,
- }
-};
-
-VOID
-AsmStartLinuxKernel (
- UINT32 KernelEntry
- );
-
-EFI_STATUS
-IsFileExistent (
- IN EFI_HANDLE Device,
- IN CONST CHAR16 *FileName
- )
-{
- EFI_STATUS Status;
- EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *Volume;
- EFI_FILE_HANDLE Root;
- EFI_FILE_HANDLE ThisFile;
-
- Root = NULL;
- ThisFile = NULL;
- //
- // Handle the file system interface to the device
- //
- Status = gBS->HandleProtocol (
- Device,
- &gEfiSimpleFileSystemProtocolGuid,
- (VOID **) &Volume
- );
- if (EFI_ERROR (Status)) {
- goto Done;
- }
-
- Status = Volume->OpenVolume (
- Volume,
- &Root
- );
- if (EFI_ERROR (Status)) {
- Root = NULL;
- goto Done;
- }
- ASSERT (Root != NULL);
- Status = Root->Open (Root, &ThisFile, (CHAR16 *) FileName, EFI_FILE_MODE_READ, 0);
- if (EFI_ERROR (Status)) {
- goto Done;
- }
- ASSERT (ThisFile != NULL);
-
-Done:
- if (ThisFile != NULL) {
- ThisFile->Close (ThisFile);
- }
- if (Root != NULL) {
- Root->Close (Root);
- }
- return Status;
-}
-
-
-EFI_STATUS
-LoadFileFromFileSystem (
- IN CONST CHAR16 *FileName,
- OUT VOID **FileBuffer,
- OUT UINTN *FileSize
- )
-{
- EFI_HANDLE *FileSystemHandles;
- UINTN NumberFileSystemHandles;
- UINTN Index;
- EFI_STATUS Status;
- EFI_DEVICE_PATH_PROTOCOL *FilePath;
- UINT32 AuthenticationStatus;
-
- *FileBuffer = NULL;
- *FileSize = 0;
- //
- // If there is simple file protocol which does not consume block Io protocol,
- // create a boot option for it here.
- //
- FileSystemHandles = NULL;
- gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiSimpleFileSystemProtocolGuid,
- NULL,
- &NumberFileSystemHandles,
- &FileSystemHandles
- );
-
- for (Index = 0; Index < NumberFileSystemHandles; Index++) {
- Status = IsFileExistent (FileSystemHandles[Index], FileName);
- if (!EFI_ERROR (Status)) {
- FilePath = FileDevicePath (FileSystemHandles[Index], FileName);
- *FileBuffer = GetFileBufferByFilePath (TRUE, FilePath, FileSize,&AuthenticationStatus);
- FreePool (FilePath);
-
- if (*FileBuffer != NULL)
- break;
- }
- }
-
- if (FileSystemHandles) {
- FreePool (FileSystemHandles);
- }
-
- if (*FileBuffer == NULL)
- return EFI_NOT_FOUND;
-
- return EFI_SUCCESS;
-}
-
-
-VOID
-setup_boot_params (
- IN struct boot_params *bp,
- struct setup_header *sh,
- IN VOID *CmdLine,
- IN VOID *InitrdPtr,
- IN UINTN InitrdSize
- )
-{
- UINT8 Index;
-
- ZeroMem (bp, sizeof (struct boot_params));
- bp->screen_info.orig_video_mode = 0;
- bp->screen_info.orig_video_lines = 0;
- bp->screen_info.orig_video_cols = 0;
- bp->alt_mem_k = 128 * 1024; // hard coded 128M mem here, since SFI will override it
- CopyMem (&bp->hdr, sh, sizeof (struct setup_header));
- bp->hdr.cmd_line_ptr = (UINT32) (UINTN) CmdLine;
- bp->hdr.cmdline_size = (UINT32) (AsciiStrLen ((CONST CHAR8 *) (UINTN) CmdLine));
- bp->hdr.type_of_loader = 0xff; //bootstub is unknown bootloader for kernel :)
- bp->hdr.ramdisk_size = (UINT32) InitrdSize;
- bp->hdr.ramdisk_image = (bp->alt_mem_k * 1024 - bp->hdr.ramdisk_size) & 0xFFFFF000;
- bp->hdr.hardware_subarch = X86_SUBARCH_MRST;
-
- DEBUG ((EFI_D_INFO, "Relocating initramfs to high memory ...\n"));
- CopyMem ((UINT8 *) (UINTN) bp->hdr.ramdisk_image, (UINT8 *) InitrdPtr, (UINTN) bp->hdr.ramdisk_size);
-
- //
- // Prepare the e820 , hard code now
- //
- Index = 0;
- bp->e820_map[Index].addr = 0x00000;
- bp->e820_map[Index].size = 0x8f000;
- bp->e820_map[Index++].type = 1;
-
- bp->e820_map[Index].addr = 0x8f000;
- bp->e820_map[Index].size = 0x90000 - 0x8f000;
- bp->e820_map[Index++].type = 2;
-
- bp->e820_map[Index].addr = 0x90000;
- bp->e820_map[Index].size = 0xa0000 - 0x90000;
- bp->e820_map[Index++].type = 1;
-
- bp->e820_map[Index].addr = 0x100000;
- bp->e820_map[Index].size = 0x3afcf000 - 0x100000;
- bp->e820_map[Index++].type = 1;
-
- bp->e820_map[Index].addr = 0x3afcf000;
- bp->e820_map[Index].size = 0x3b7ff000 - 0x3afcf000;
- bp->e820_map[Index++].type = 2;
-
- bp->e820_map[Index].addr = 0x3b7ff000;
- bp->e820_map[Index].size = 0x3b800000 - 0x3b7ff000;
- bp->e820_map[Index++].type = 2;
-
- bp->e820_entries = Index;
-
-}
-
-
-UINT32
-get_32bit_entry (
- unsigned char *ptr
- )
-{
- while (1){
- if (*(UINT32 *) ptr == SETUP_SIGNATURE && *(UINT32 *) (ptr+4) == 0)
- break;
- ptr++;
- }
- ptr+=4;
- return (UINT32) (((UINTN) ptr + 511) / 512) * 512;
-}
-
-
-EFI_STATUS
-EfiBootStub (
- IN VOID *CmdLine,
- IN VOID *KernelPtr,
- IN UINTN KernelSize,
- IN VOID *InitrdPtr,
- IN UINTN InitrdSize
- )
-{
- GDT_ENTRIES *gdt;
- IA32_DESCRIPTOR gdtPtr;
- IA32_DESCRIPTOR idtPtr = {0, 0};
- UINT32 KernelEntry;
-
- setup_boot_params (
- (struct boot_params *) (UINTN) BOOT_PARAMS_OFFSET,
- (struct setup_header *) (UINTN) SETUP_HEADER_OFFSET,
- CmdLine,
- InitrdPtr,
- InitrdSize
- );
-
- SetInterruptState (FALSE);
-
- //
- // Load idt and gdt
- //
- AsmWriteIdtr (&idtPtr);
-
- gdt = (GDT_ENTRIES *) (UINTN) ((UINTN) CmdLine - 0x1000);
- CopyMem (gdt, &GdtTemplate, sizeof (GdtTemplate));
-
- //
- // Write GDT register
- //
- gdtPtr.Base = (UINT32) (UINTN) (VOID *) gdt;
- gdtPtr.Limit = (UINT16) (sizeof (GdtTemplate) - 1);
- AsmWriteGdtr (&gdtPtr);
-
- //
- // Jmp to the kernel entry
- //
-#if X64_BUILD_ENABLE
- //
- //put X64 jump here...
- //
- KernelEntry = 0;
-#else
- KernelEntry = get_32bit_entry ((unsigned char *) (UINTN) BZIMAGE_OFFSET);
- AsmStartLinuxKernel (KernelEntry);
-#endif
-
- return EFI_DEVICE_ERROR;
-}
-
-
-EFI_STATUS
-BdsBootAndroidFromUsb (
- VOID
- )
-{
- EFI_STATUS Status;
- VOID *KernelFileBuffer;
- UINTN KernelFileSize;
- VOID *InitrdFileBuffer;
- UINTN InitrdFileSize;
- UINT8 *CmdPtr;
- CHAR8 DefaultCmdLine [] = "console=ttyS0,115200 console=logk0 earlyprintk=nologger loglevel=8 kmemleak=off androidboot.bootmedia=sdcard androidboot.hardware=baylake emmc_ipanic.ipanic_part_number=1 vga=current i915.modeset=1 drm.vblankoffdelay=1 acpi_backlight=vendor";
- CHAR8 MainBootMode [] = "androidboot.wakesrc=00 androidboot.mode=main";
-
- //
- // Load the kernel image
- //
- KernelFileBuffer = NULL;
- KernelFileSize = 0;
- Status = LoadFileFromFileSystem (L"\\kernel.img", &KernelFileBuffer, &KernelFileSize);
- if (EFI_ERROR (Status))
- return EFI_NOT_FOUND;
-
- //
- // Load the initrd image
- //
- InitrdFileBuffer = NULL;
- InitrdFileSize = 0;
- Status = LoadFileFromFileSystem (L"\\initrd.img", &InitrdFileBuffer, &InitrdFileSize);
- if (EFI_ERROR (Status))
- return EFI_NOT_FOUND;
-
- //
- // Prepare the cmd line at 0x1100000
- //
- CmdPtr = (UINT8 *) (UINTN) CMDLINE_OFFSET;
- ZeroMem (CmdPtr, 0x200);
- CopyMem (CmdPtr, DefaultCmdLine, sizeof (DefaultCmdLine));
- CmdPtr += (sizeof (DefaultCmdLine) - 1);
- *CmdPtr = 0x20;
- CmdPtr += 1;
- CopyMem (CmdPtr, MainBootMode, sizeof (MainBootMode));
- CmdPtr += (sizeof (MainBootMode) - 1);
- *CmdPtr = 0x0A;
-
- //
- // Copy the kernel image to 0x1102000
- //
- CmdPtr = (UINT8 *) (UINTN) BZIMAGE_OFFSET;
- CopyMem (CmdPtr, KernelFileBuffer, KernelFileSize);
-
- //
- // Start Efi Boot Stub
- //
- EfiBootStub ((UINT8 *) (UINTN) CMDLINE_OFFSET, (UINT8 *) (UINTN) BZIMAGE_OFFSET, KernelFileSize, InitrdFileBuffer, InitrdFileSize);
-
- FreePool (KernelFileBuffer);
- FreePool (InitrdFileBuffer);
-
- return EFI_DEVICE_ERROR;
-}
-
-
-EFI_STATUS
-LoadOsipImageFromBlockDevices (
- IN UINTN ImageIndex,
- OUT EFI_PHYSICAL_ADDRESS *ImageBase,
- OUT UINTN *ImageSize,
- OUT EFI_PHYSICAL_ADDRESS *EntryPoint
- )
-{
- EFI_STATUS Status;
- EFI_HANDLE *BlockIoHandles;
- UINTN NumberBlockIoHandles;
- UINTN Index;
- EFI_BLOCK_IO_PROTOCOL *TestBlockIo;
- EFI_BLOCK_IO_PROTOCOL *EmmcBlockIo;
- VOID *OsipBuffer;
- OSIP_HEADER *pOSIP;
- UINTN FirstBlock;
- UINTN NumberBlocks;
- VOID *pLoadAddress;
- UINTN OSSize;
- UINTN VrlSize;
- BOOLEAN SignedOs;
-
- EmmcBlockIo = NULL;
- pOSIP = NULL;
-
- OsipBuffer = NULL;
- OsipBuffer = AllocatePages (OSP_BLOCKS_TO_PAGES (OSIP_SIZE_IN_BLOCKS));
- if (!OsipBuffer)
- return EFI_OUT_OF_RESOURCES;
-
- BlockIoHandles = NULL;
- gBS->LocateHandleBuffer (
- ByProtocol,
- &gEfiBlockIoProtocolGuid,
- NULL,
- &NumberBlockIoHandles,
- &BlockIoHandles
- );
-
- for (Index = 0; Index < NumberBlockIoHandles; Index++) {
- TestBlockIo = NULL;
- Status = gBS->HandleProtocol(
- BlockIoHandles[Index],
- &gEfiBlockIoProtocolGuid,
- (VOID **) &TestBlockIo
- );
- if ((EFI_ERROR (Status)) || (TestBlockIo == NULL)) {
- continue;
- }
-
- //
- // Read OSIP block from the block devices
- //
- ZeroMem (OsipBuffer, OSIP_SIZE_IN_BLOCKS * OSP_BLOCK_SIZE);
- Status = TestBlockIo->ReadBlocks(
- TestBlockIo,
- TestBlockIo->Media->MediaId,
- (EFI_LBA) 0, // OSIP hard coded to start at LBA 0
- OSIP_SIZE_IN_BLOCKS * OSP_BLOCK_SIZE,
- (VOID *) (UINTN) OsipBuffer);
- if (EFI_ERROR (Status))
- continue;
-
- pOSIP = (OSIP_HEADER *) (UINTN) OsipBuffer;
- if (pOSIP->Signature == OSIP_HEADER_SIGNATURE) {
- EmmcBlockIo = TestBlockIo;
- ValidateOsip(pOSIP, 1);
- break;
- }
-
- pOSIP = NULL;
- }
-
- if (BlockIoHandles) {
- FreePool (BlockIoHandles);
- }
-
- if ((!EmmcBlockIo) || (!pOSIP)) {
- if (OsipBuffer) {
- FreePages (OsipBuffer, OSP_BLOCKS_TO_PAGES(OSIP_SIZE_IN_BLOCKS));
- }
-
- return EFI_NOT_FOUND;
- }
-
- //
- // Parse OSII entry and find OS Image size in bytes
- //
- FirstBlock = pOSIP->Osii[ImageIndex].FirstBlock;
- NumberBlocks = pOSIP->Osii[ImageIndex].BlockCount;
- pLoadAddress = (VOID *) (UINTN)(pOSIP->Osii[ImageIndex].LoadAddress);
- OSSize = NumberBlocks * OSP_BLOCK_SIZE;
-
- //
- // Load OS image to the address required
- //
- Status = EmmcBlockIo->ReadBlocks(
- EmmcBlockIo,
- EmmcBlockIo->Media->MediaId,
- FirstBlock,
- OSSize,
- (VOID *) (UINTN) pLoadAddress);
- if (EFI_ERROR(Status)) {
- if (OsipBuffer) {
- FreePages (OsipBuffer, OSP_BLOCKS_TO_PAGES (OSIP_SIZE_IN_BLOCKS));
- }
-
- return EFI_DEVICE_ERROR;
- }
-
- SignedOs = ((pOSIP->Osii[ImageIndex].Attributes & 1) == 0) ? TRUE : FALSE;
- if (SignedOs) {
- VrlSize = 0x1e0;
- } else {
- VrlSize = 0;
- }
-
- OSSize -= VrlSize;
-
- if (ImageBase)
- *ImageBase = (EFI_PHYSICAL_ADDRESS) (UINTN)pLoadAddress;
-
- if (ImageSize)
- *ImageSize = OSSize;
-
- if (EntryPoint)
- *EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) pOSIP->Osii[ImageIndex].EntryPoint;
-
- if (OsipBuffer) {
- FreePages (OsipBuffer, OSP_BLOCKS_TO_PAGES (OSIP_SIZE_IN_BLOCKS));
- }
-
- return EFI_SUCCESS;
-}
-
-
-EFI_STATUS
-BdsBootAndroidFromEmmc (
- VOID
- )
-{
- EFI_STATUS Status;
- UINTN KernelSize;
- VOID *InitrdBuffer;
- UINTN InitrdSize;
- UINT8 *CmdPtr;
- CHAR8 DefaultCmdLine [] = "console=ttyS0,115200 console=logk0 earlyprintk=nologger loglevel=8 kmemleak=off androidboot.bootmedia=sdcard androidboot.hardware=baylake emmc_ipanic.ipanic_part_number=1 vga=current i915.modeset=1 drm.vblankoffdelay=1 acpi_backlight=vendor";
- CHAR8 MainBootMode [] = "androidboot.wakesrc=00 androidboot.mode=main";
-
- Status = LoadOsipImageFromBlockDevices (0, NULL, NULL, NULL);
- if (EFI_ERROR (Status)) {
- DEBUG ((EFI_D_ERROR, "Failed to find OSIP Structure in any block devices \n"));
- return EFI_NOT_FOUND;
- }
-
- //
- // Prepare the cmd line at 0x1100000
- //
- CmdPtr = (UINT8 *) (UINTN) CMDLINE_OFFSET;
- ZeroMem (CmdPtr, 0x200);
- CopyMem (CmdPtr, DefaultCmdLine, sizeof (DefaultCmdLine));
- CmdPtr += (sizeof (DefaultCmdLine) - 1);
- *CmdPtr = 0x20;
- CmdPtr += 1;
- CopyMem (CmdPtr, MainBootMode, sizeof (MainBootMode));
- CmdPtr += (sizeof (MainBootMode) - 1);
- *CmdPtr = 0x0A;
-
- //
- // Get the kernel and initrd information
- //
- KernelSize = *((UINT32 *) (UINTN) BZIMAGE_SIZE_OFFSET);
- InitrdSize = *((UINT32 *) (UINTN) INITRD_SIZE_OFFSET);
- InitrdBuffer = (VOID *) (UINTN) (BZIMAGE_OFFSET + KernelSize);
-
- //
- // Start Efi Boot Stub
- //
- EfiBootStub ((UINT8 *) (UINTN) CMDLINE_OFFSET, (UINT8 *) (UINTN) BZIMAGE_OFFSET, KernelSize, InitrdBuffer, InitrdSize);
-
- return EFI_DEVICE_ERROR;
-}
-
-
-EFI_STATUS
-BdsBootAndroid (
- VOID
- )
-{
- UINTN KernelSize;
- VOID *InitrdBuffer;
- UINTN InitrdSize;
-
- //
- // Get the kernel and initrd information
- //
- KernelSize = *((UINT32 *) (UINTN) BZIMAGE_SIZE_OFFSET);
- InitrdSize = *((UINT32 *) (UINTN) INITRD_SIZE_OFFSET);
- InitrdBuffer = (VOID *) (UINTN) (BZIMAGE_OFFSET + KernelSize);
-
- //
- // Start Efi Boot Stub
- //
- EfiBootStub ((UINT8 *) (UINTN) CMDLINE_OFFSET, (UINT8 *) (UINTN) BZIMAGE_OFFSET, KernelSize, InitrdBuffer, InitrdSize);
-
- return EFI_DEVICE_ERROR;
-}
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.h b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.h
deleted file mode 100644
index 71a9048a24..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.h
+++ /dev/null
@@ -1,330 +0,0 @@
-/** @file
- This file include all platform action which can be customized by IBV/OEM.
-
- Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-
- 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 <Library/DevicePathLib.h>
-#include "BdsPlatform.h"
-
-#pragma pack(1)
-
-typedef unsigned char __u8;
-typedef unsigned short __u16;
-typedef unsigned int __u32;
-typedef unsigned long long __u64;
-
-#define EDD_MBR_SIG_MAX 16
-#define E820MAX 128
-#define EDDMAXNR 6
-
-struct screen_info {
- __u8 orig_x;
- __u8 orig_y;
- __u16 ext_mem_k;
- __u16 orig_video_page;
- __u8 orig_video_mode;
- __u8 orig_video_cols;
- __u16 unused2;
- __u16 orig_video_ega_bx;
- __u16 unused3;
- __u8 orig_video_lines;
- __u8 orig_video_isVGA;
- __u16 orig_video_points;
-
- //
- // VESA graphic mode -- linear frame buffer
- //
- __u16 lfb_width;
- __u16 lfb_height;
- __u16 lfb_depth;
- __u32 lfb_base;
- __u32 lfb_size;
- __u16 cl_magic, cl_offset;
- __u16 lfb_linelength;
- __u8 red_size;
- __u8 red_pos;
- __u8 green_size;
- __u8 green_pos;
- __u8 blue_size;
- __u8 blue_pos;
- __u8 rsvd_size;
- __u8 rsvd_pos;
- __u16 vesapm_seg;
- __u16 vesapm_off;
- __u16 pages;
- __u16 vesa_attributes;
- __u32 capabilities;
- __u8 _reserved[6];
-};
-
-
-struct apm_bios_info {
- __u16 version;
- __u16 cseg;
- __u32 offset;
- __u16 cseg_16;
- __u16 dseg;
- __u16 flags;
- __u16 cseg_len;
- __u16 cseg_16_len;
- __u16 dseg_len;
-};
-
-struct ist_info {
- __u32 signature;
- __u32 command;
- __u32 event;
- __u32 perf_level;
-};
-
-struct sys_desc_table {
- __u16 length;
- __u8 table[14];
-};
-
-struct efi_info {
- __u32 efi_loader_signature;
- __u32 efi_systab;
- __u32 efi_memdesc_size;
- __u32 efi_memdesc_version;
- __u32 efi_memmap;
- __u32 efi_memmap_size;
- __u32 efi_systab_hi;
- __u32 efi_memmap_hi;
-};
-
-struct setup_header {
- __u8 setup_sects;
- __u16 root_flags;
- __u32 syssize;
- __u16 ram_size;
- __u16 vid_mode;
- __u16 root_dev;
- __u16 boot_flag;
- __u16 jump;
- __u32 header;
- __u16 version;
- __u32 realmode_swtch;
- __u16 start_sys;
- __u16 kernel_version;
- __u8 type_of_loader;
- __u8 loadflags;
- __u16 setup_move_size;
- __u32 code32_start;
- __u32 ramdisk_image;
- __u32 ramdisk_size;
- __u32 bootsect_kludge;
- __u16 heap_end_ptr;
- __u16 _pad1;
- __u32 cmd_line_ptr;
- __u32 initrd_addr_max;
- __u32 kernel_alignment;
- __u8 relocatable_kernel;
- __u8 _pad2[3];
- __u32 cmdline_size;
- __u32 hardware_subarch;
- __u64 hardware_subarch_data;
- __u32 payload_offset;
- __u32 payload_length;
- __u64 setup_data;
-};
-
-struct edid_info {
- unsigned char dummy[128];
-};
-
-struct e820entry {
- __u64 addr; ///< start of memory segment
- __u64 size; ///< size of memory segment
- __u32 type; ///< type of memory segment
-};
-
-struct edd_device_params {
- __u16 length;
- __u16 info_flags;
- __u32 num_default_cylinders;
- __u32 num_default_heads;
- __u32 sectors_per_track;
- __u64 number_of_sectors;
- __u16 bytes_per_sector;
- __u32 dpte_ptr; ///< 0xFFFFFFFF for our purposes
- __u16 key; ///< = 0xBEDD
- __u8 device_path_info_length; ///< = 44
- __u8 reserved2;
- __u16 reserved3;
- __u8 host_bus_type[4];
- __u8 interface_type[8];
- union {
- struct {
- __u16 base_address;
- __u16 reserved1;
- __u32 reserved2;
- } isa;
- struct {
- __u8 bus;
- __u8 slot;
- __u8 function;
- __u8 channel;
- __u32 reserved;
- } pci;
-
- //
- // pcix is same as pci
- //
- struct {
- __u64 reserved;
- } ibnd;
- struct {
- __u64 reserved;
- } xprs;
- struct {
- __u64 reserved;
- } htpt;
- struct {
- __u64 reserved;
- } unknown;
- } interface_path;
- union {
- struct {
- __u8 device;
- __u8 reserved1;
- __u16 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } ata;
- struct {
- __u8 device;
- __u8 lun;
- __u8 reserved1;
- __u8 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } atapi;
- struct {
- __u16 id;
- __u64 lun;
- __u16 reserved1;
- __u32 reserved2;
- } scsi;
- struct {
- __u64 serial_number;
- __u64 reserved;
- } usb;
- struct {
- __u64 eui;
- __u64 reserved;
- } i1394;
- struct {
- __u64 wwid;
- __u64 lun;
- } fibre;
- struct {
- __u64 identity_tag;
- __u64 reserved;
- } i2o;
- struct {
- __u32 array_number;
- __u32 reserved1;
- __u64 reserved2;
- } raid;
- struct {
- __u8 device;
- __u8 reserved1;
- __u16 reserved2;
- __u32 reserved3;
- __u64 reserved4;
- } sata;
- struct {
- __u64 reserved1;
- __u64 reserved2;
- } unknown;
- } device_path;
- __u8 reserved4;
- __u8 checksum;
-};
-
-struct edd_info {
- __u8 device;
- __u8 version;
- __u16 interface_support;
- __u16 legacy_max_cylinder;
- __u8 legacy_max_head;
- __u8 legacy_sectors_per_track;
- struct edd_device_params params;
-};
-
-//
-// The so-called "zeropage"
-//
-struct boot_params {
- struct screen_info screen_info;
- struct apm_bios_info apm_bios_info;
- __u8 _pad2[12];
- struct ist_info ist_info;
- __u8 _pad3[16];
- __u8 hd0_info[16];
- __u8 hd1_info[16];
- struct sys_desc_table sys_desc_table;
- __u8 _pad4[144];
- struct edid_info edid_info;
- struct efi_info efi_info;
- __u32 alt_mem_k;
- __u32 scratch;
- __u8 e820_entries;
- __u8 eddbuf_entries;
- __u8 edd_mbr_sig_buf_entries;
- __u8 _pad6[6];
- struct setup_header hdr;
- __u8 _pad7[0x290 - 0x1f1 - sizeof (struct setup_header)];
- __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX];
- struct e820entry e820_map[E820MAX];
- __u8 _pad8[48];
- struct edd_info eddbuf[EDDMAXNR];
- __u8 _pad9[276];
-} ;
-
-#define X86_SUBARCH_PC 0
-#define X86_SUBARCH_LGUEST 1
-#define X86_SUBARCH_XEN 2
-#define X86_SUBARCH_MRST 3
-
-typedef struct _GDT_ENTRY {
- UINT16 Limit15_0;
- UINT16 Base15_0;
- UINT8 Base23_16;
- UINT8 Type;
- UINT8 Limit19_16_and_flags;
- UINT8 Base31_24;
-} GDT_ENTRY;
-
-typedef struct _GDT_ENTRIES {
- GDT_ENTRY Null;
- GDT_ENTRY Null2;
- GDT_ENTRY SysCode;
- GDT_ENTRY SysData;
-} GDT_ENTRIES;
-
-#pragma pack()
-
-#define CMDLINE_OFFSET 0x1100000
-#define BZIMAGE_SIZE_OFFSET (CMDLINE_OFFSET + 0x400)
-#define INITRD_SIZE_OFFSET (BZIMAGE_SIZE_OFFSET + 4)
-#define STACK_OFFSET 0x1101000
-#define BZIMAGE_OFFSET 0x1102000
-
-#define SETUP_HEADER_OFFSET (BZIMAGE_OFFSET + 0x1F1)
-#define SETUP_HEADER_SIZE (0x0202 + *(unsigned char*)(0x0201+BZIMAGE_OFFSET))
-#define BOOT_PARAMS_OFFSET 0x8000
-
-#define SETUP_SIGNATURE 0x5a5aaa55
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm
deleted file mode 100644
index 4cd4bfe001..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm
+++ /dev/null
@@ -1,54 +0,0 @@
-;; @file
-; This is the ASM for Jump to a specific address.
-;
-; Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-;
-; 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
-;
-;;
-
- .686P
- .MMX
- .MODEL SMALL
- .CODE
-
-
-JumpToVector PROTO C \
- EntryPoint:PTR DWORD, \
- Parameter:DWORD
-;
-; Routine Description:
-; This allows the caller to switch the stack and goes to the new entry point
-;
-; Arguments:
-; EntryPoint - Pointer to the location to enter
-; Parameter - Parameter to pass in
-;
-; Returns:
-;
-; Nothing. Goes to the Entry Point passing in the new parameters
-;
-JumpToVector PROC C \
- EntryPoint:PTR DWORD, \
- Parameter:DWORD
-
- push ebx
-
- mov ebx, Parameter
- mov ecx, EntryPoint
- push ebx
- push 0
- jmp ecx
-
- pop ebx
- ret
-
-JumpToVector ENDP
- END
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.S b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.S
deleted file mode 100644
index 657158ddd7..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.S
+++ /dev/null
@@ -1,42 +0,0 @@
-## @file
-# This is the ASM for Jump to a specific address
-#
-# Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-#
-# 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
-#
-##
-
-#
-# Routine Description:
-# This allows the caller to switch the stack and goes to the new entry point
-#
-# Arguments:
-# EntryPoint - Pointer to the location to enter
-# Parameter - Parameter to pass in
-#
-# Returns:
-#
-# Nothing. Goes to the Entry Point passing in the new parameters
-#
-ASM_GLOBAL ASM_PFX(JumpToVector)
-ASM_PFX(JumpToVector):
-
- push %ebx
-
- mov 12(%esp), %ebx # ebx = Parameter
- mov 8(%esp), %ecx # ecx = EntryPoint
- push %ebx
- push $0
- jmp %ecx
-
- pop %ebx
- ret
-
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.Asm b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.Asm
deleted file mode 100644
index 87cc8c4467..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.Asm
+++ /dev/null
@@ -1,49 +0,0 @@
-;; @file
-; This is the ASM for starting a linux kernel.
-;
-; Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-;
-; 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
-;
-;;
-
- .686P
- .MMX
- .MODEL SMALL
- .CODE
-
-AsmStartLinuxKernel PROC near C PUBLIC
- mov eax, [esp+4]
- sub esp, 010h
- lea ebx, NewSelectorJmp
- mov [esp], ebx
- mov ebx, 010h
- mov [esp+4], ebx
- jmp fword ptr [esp]
-
-NewSelectorJmp:
- add esp, 010h
-
- mov ebx, 018h
- mov ds, ebx
- mov es, ebx
- mov fs, ebx
- mov gs, ebx
- mov ss, ebx
-
- mov esi, 08000h
- xor ebp, ebp
- xor edi, edi
- xor ebx, ebx
- jmp eax
- ret
-AsmStartLinuxKernel ENDP
-
- END
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.S b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.S
deleted file mode 100644
index 847ae342d2..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.S
+++ /dev/null
@@ -1,41 +0,0 @@
-## @file
-# This is the ASM for starting a linux kernel.
-#
-# Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-#
-# 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
-#
-##
-
-ASM_GLOBAL ASM_PFX(AsmStartLinuxKernel)
-ASM_PFX(AsmStartLinuxKernel):
- movl 4(%esp), %eax
- subl $0x10, %esp
- leal NewSelectorJmp, %ebx
- movl %ebx, (%esp)
- movl $0x10, %ebx
- movl %ebx, 4(%esp)
- jmpl (%esp)
-
-NewSelectorJmp:
- addl $0x10, %esp
-
- movl $0x18, %ebx
- movl %ebx, %ds
- movl %ebx, %es
- movl %ebx, %fs
- movl %ebx, %gs
- movl %ebx, %ss
-
- movl $0x8000, %esi
- xorl %ebp, %ebp
- xorl %edi, %edi
- xorl %ebx, %ebx
- jmpl %eax
- ret
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipPrivate.h b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipPrivate.h
deleted file mode 100644
index 9567e42c90..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipPrivate.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/** @file
- This file include all platform action which can be customized by IBV/OEM.
-
- Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-
- 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 <Library/DevicePathLib.h>
-#include "BdsPlatform.h"
-
-#pragma pack(1)
-//
-// Forward declarations
-//
-typedef struct _OSIP_HEADER_V0100 OSIP_HEADER_V0100;
-typedef struct _OSII_ENTRY_V0100 OSII_ENTRY_V0100 ;
-
-//
-// Supported values for OSIP version 1.0 (PNW A0)
-//
-#define OSIP_HEADER_MAJOR_REVISION 1
-#define OSIP_HEADER_MINOR_REVISION 0
-#define OSIP_HEADER_SIGNATURE 0x24534F24
-#define OSIP_SIZE_IN_BLOCKS 1
-#define OSIP_HEADER OSIP_HEADER_V0100
-#define OSII_ENTRY OSII_ENTRY_V0100
-
-//
-// Module global definitions
-//
-#define OSP_BLOCK_SIZE 512
-#define OSP_BLOCKS_TO_PAGES(x) (EFI_SIZE_TO_PAGES(x * OSP_BLOCK_SIZE))
-#define MAX_OSII_ENTRIES ((OSIP_SIZE_IN_BLOCKS * OSP_BLOCK_SIZE - sizeof (OSIP_HEADER)) / sizeof (OSII_ENTRY))
-#define VRL_SIZE_LOCATION 0x20
-
-//
-// Definitions for PNW A0...
-//
-typedef struct _SMIP_FHOB_DWORD0 {
- UINT8 MsicModuleId : 2;
- UINT8 Qualifier : 1;
- UINT8 OSRCR : 1;
- UINT8 EOSR : 1;
- UINT8 SafeModeJumper : 1;
- UINT8 MM : 1;
- UINT8 NOREn : 1; ///< 8
- UINT8 OSVEn : 1;
- UINT8 OSDnX : 1;
- UINT8 Reserved11to10 : 2;
- UINT8 Reserved19to12 : 8; ///< 20
- UINT8 Reserved25to20 : 6;
- UINT8 MemoryChannels : 1;
- UINT8 MemoryBurstLength : 1; ///< 28
- UINT8 MemoryDeviceDensity : 2;
- UINT8 MemoryRanks : 1;
- UINT8 MemoryFrequencyRatio : 1; ///< 32
-} SMIP_FHOB_DWORD0 ;
-
-struct _OSII_ENTRY_V0100 {
- UINT16 MinorRevision;
- UINT16 MajorRevision;
- UINT32 FirstBlock;
- UINT32 LoadAddress;
- UINT32 EntryPoint;
- UINT32 BlockCount;
- UINT8 Attributes;
- UINT8 Reserved1[3];
-} ;
-
-struct _OSIP_HEADER_V0100 {
- UINT32 Signature;
- UINT8 Reserved1;
- UINT8 MinorRevision;
- UINT8 MajorRevision;
- UINT8 Checksum;
- UINT8 NumberOfPointers;
- UINT8 NumberOfImages;
- UINT16 HeaderSize;
- UINT8 Reserved2[0x14];
- OSII_ENTRY Osii[1];
-} ;
-
-#pragma pack()
-
-//
-// Global Variables
-//
-#include <Protocol/BlockIo.h>
-
-extern OSIP_HEADER *mOsip;
-extern OSIP_HEADER *mOsip;
-extern BOOLEAN mOsipFound;
-extern EFI_BLOCK_IO_PROTOCOL *mEmmcBlockIo;
-extern EFI_BLOCK_IO_PROTOCOL *mSdBlockIo;
-extern EFI_BLOCK_IO_PROTOCOL *mBootableBlockIo;
-
-//
-// Functions oustide of the main module
-//
-
-//
-// OspUtil.c
-//
-EFI_STATUS
-ValidateFvHeader (
- IN VOID *Buffer,
- IN UINTN Size
- );
-
-EFI_STATUS
-ValidateOsip (
- IN OSIP_HEADER *OsipHdr,
- IN UINTN MaxBlocks
- );
-
-EFI_STATUS
-ConnectSecondStageFvDevice (
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePathToConnect,
- OUT EFI_HANDLE *MatchingHandle
- );
-
-VOID
-RebaseImage (
- IN EFI_PHYSICAL_ADDRESS DstBuffer,
- IN EFI_PHYSICAL_ADDRESS SrcBuffer,
- IN UINTN NumberOfBytes
- );
-
-UINTN
-GetImageSizeByNumber (
- IN UINTN ImageNumber
- );
-
-EFI_STATUS
-LoadImageByNumber (
- IN UINTN ImageNumber,
- OUT EFI_PHYSICAL_ADDRESS *ImageBase,
- OUT UINTN *NumberOfPages
- );
-
-//
-// OsrIpc.c
-//
-EFI_STATUS
-OsrIpcGetDnx ();
-
-EFI_STATUS
-OsrIpcGetOsip (
- IN EFI_PHYSICAL_ADDRESS osipBase
- );
-
-EFI_STATUS
-OsrIpcGetOsImage (
- IN OSII_ENTRY *osiiEntry,
- OUT EFI_PHYSICAL_ADDRESS osBuffer
- );
-
-EFI_STATUS
-OsrIpcEndOfUpdate ();
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipUtil.c b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipUtil.c
deleted file mode 100644
index b277a3562f..0000000000
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipUtil.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/** @file
- This file include all platform action which can be customized by IBV/OEM.
-
- Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
-
- 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 <Library/DebugLib.h>
-#include <Library/DxeServicesTableLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include "OsipPrivate.h"
-#include "BdsPlatform.h"
-
-#define EFI_MAX_E820_ENTRY 100
-
-typedef enum {
- EfiAcpiAddressRangeMemory = 1,
- EfiAcpiAddressRangeReserved = 2,
- EfiAcpiAddressRangeACPI = 3,
- EfiAcpiAddressRangeNVS = 4
-} EFI_ACPI_MEMORY_TYPE;
-
-#pragma pack(1)
-
-typedef struct {
- UINT32 BaseAddr;
- UINT32 Length;
- UINT32 Type;
-} EFI_E820_ENTRY;
-
-#pragma pack()
-
-EFI_STATUS
-ValidateFvHeader (
- IN VOID *Buffer,
- IN UINTN Size
- )
-{
- EFI_FIRMWARE_VOLUME_HEADER *FvHdr;
-
- FvHdr = (EFI_FIRMWARE_VOLUME_HEADER *) Buffer;
-
- if (FvHdr->Signature != EFI_FVH_SIGNATURE) {
- DEBUG ((EFI_D_ERROR, "Error: Invalid FV signature\n"));
- return EFI_VOLUME_CORRUPTED;
- }
-
- if (FvHdr->FvLength > Size) {
- DEBUG ((EFI_D_ERROR,
- "Error: FV length (0x%x) is larger than data read (0x%x)\n",
- FvHdr->FvLength,
- Size));
- return EFI_VOLUME_CORRUPTED;
- }
-
- return EFI_SUCCESS;
-}
-
-
-EFI_STATUS
-ValidateOsip (
- IN OSIP_HEADER *Osip,
- IN UINTN MaxBlocks
- )
-{
- UINTN idx;
- UINTN nextBlock = OSIP_SIZE_IN_BLOCKS;
-
- DEBUG ((EFI_D_INFO, "Parsing OSIP Header...\n")) ;
- DEBUG ((EFI_D_INFO, " Signature : %x\n", Osip->Signature));
- DEBUG ((EFI_D_INFO, " MajorRevision : %x\n", Osip->MajorRevision));
- DEBUG ((EFI_D_INFO, " MinorRevision : %x\n", Osip->MinorRevision));
- DEBUG ((EFI_D_INFO, " NumberOfPointers : %x\n", Osip->NumberOfPointers));
- DEBUG ((EFI_D_INFO, " NumberOfImages : %x\n", Osip->NumberOfImages));
- DEBUG ((EFI_D_INFO, " Checksum : %x\n", Osip->Checksum));
-
- if (Osip->Signature != OSIP_HEADER_SIGNATURE) return EFI_INVALID_PARAMETER;
- if (Osip->MajorRevision != OSIP_HEADER_MAJOR_REVISION) return EFI_INVALID_PARAMETER;
- if (Osip->MinorRevision != OSIP_HEADER_MINOR_REVISION) return EFI_INVALID_PARAMETER;
- if (Osip->NumberOfPointers == 0) return EFI_INVALID_PARAMETER;
- if (Osip->NumberOfPointers > MAX_OSII_ENTRIES) return EFI_INVALID_PARAMETER;
- if (Osip->NumberOfImages == 0) return EFI_INVALID_PARAMETER;
- if (Osip->NumberOfImages > Osip->NumberOfPointers) return EFI_INVALID_PARAMETER;
-
- //
- // TODO: Validate checksum, not sure what good that does though...
- //
- DEBUG ((EFI_D_INFO, "Parsing OSII Entries...\n"));
-
- for (idx = 0; idx < Osip->NumberOfPointers; idx++) {
- DEBUG((EFI_D_INFO, "Image %d\n", idx + 1));
- DEBUG((EFI_D_INFO, " MajorRevision : %x\n", Osip->Osii[idx].MajorRevision));
- DEBUG((EFI_D_INFO, " MinorRevision : %x\n", Osip->Osii[idx].MinorRevision));
- DEBUG((EFI_D_INFO, " FirstBlock : %x\n", Osip->Osii[idx].FirstBlock));
- DEBUG((EFI_D_INFO, " LoadAddress : %x\n", Osip->Osii[idx].LoadAddress));
- DEBUG((EFI_D_INFO, " EntryPoint : %x\n", Osip->Osii[idx].EntryPoint));
- DEBUG((EFI_D_INFO, " BlockCount : %x\n", Osip->Osii[idx].BlockCount));
- DEBUG((EFI_D_INFO, " Attributes : %x\n", Osip->Osii[idx].Attributes));
-
- //
- // Enforce ordering, do not permit empty entries or holes
- //
- if (Osip->Osii[idx].FirstBlock != nextBlock) return EFI_INVALID_PARAMETER;
- if (Osip->Osii[idx].BlockCount == 0) return EFI_INVALID_PARAMETER;
- nextBlock += Osip->Osii[idx].BlockCount;
-
- //
- // TODO: More intensive OSII validation
- //
- }
-
- //
- // Make sure numBlocks is not pointing past the end of the device
- //
- if (nextBlock > MaxBlocks) return EFI_INVALID_PARAMETER;
-
- return EFI_SUCCESS;
-}
-
-
-VOID
-RebaseImage (
- IN EFI_PHYSICAL_ADDRESS DstBuffer,
- IN EFI_PHYSICAL_ADDRESS SrcBuffer,
- IN UINTN NumberOfBytes
- )
-{
- UINT8 *sptr;
- UINT8 *dptr;
- UINTN idx;
-
- sptr = (UINT8 *) (UINTN) SrcBuffer;
- dptr = (UINT8 *) (UINTN) DstBuffer;
-
- for (idx = 0; idx < NumberOfBytes; ++idx, ++dptr, ++sptr) {
- *dptr = *sptr;
- }
-
- return;
-}
-
-
-UINTN
-GetImageSizeByNumber (
- IN UINTN ImageNumber
- )
-{
- return mOsip->Osii[ImageNumber].BlockCount * OSP_BLOCK_SIZE;
-}
-
-
-EFI_STATUS
-LoadImageByNumber (
- IN UINTN ImageNumber,
- OUT EFI_PHYSICAL_ADDRESS *ImageBase,
- OUT UINTN *NumberOfPages
- )
-{
- EFI_STATUS Status;
- EFI_PHYSICAL_ADDRESS physAddr;
- UINTN firstBlock;
- UINTN numBlocks;
- UINTN numPages;
-
- //
- // Parse OSII entry and find OS Image size in bytes
- //
- firstBlock = mOsip->Osii[ImageNumber].FirstBlock;
- numBlocks = mOsip->Osii[ImageNumber].BlockCount;
- numPages = OSP_BLOCKS_TO_PAGES (numBlocks);
-
- //
- // Allocate image buffer
- //
- Status = gBS->AllocatePages (
- AllocateAnyPages,
- EfiBootServicesData,
- numPages,
- &physAddr);
-
- if (EFI_ERROR (Status)) ASSERT_EFI_ERROR (Status);
-
- //
- // Copy OSII[ImageNumber] to buffer
- //
- Status = mBootableBlockIo->ReadBlocks (
- mBootableBlockIo,
- mBootableBlockIo->Media->MediaId,
- firstBlock,
- numBlocks * OSP_BLOCK_SIZE,
- (VOID *) (UINTN) physAddr
- );
-
- if (EFI_ERROR (Status)) {
- gBS->FreePages (physAddr, numPages);
- return EFI_DEVICE_ERROR;
- }
-
- *ImageBase = physAddr;
- *NumberOfPages = numPages;
-
- return EFI_SUCCESS;
-}
-
-
-/**
- Convert EFI Memory Type to E820 Memory Type.
-
- @param[in] Type EFI Memory Type
-
- @retval ACPI Memory Type for EFI Memory Type
-
-**/
-EFI_ACPI_MEMORY_TYPE
-EfiMemoryTypeToE820Type (
- IN UINT32 Type
- )
-{
- switch (Type) {
- case EfiLoaderCode:
- case EfiLoaderData:
- case EfiBootServicesCode:
- case EfiBootServicesData:
- case EfiConventionalMemory:
- case EfiRuntimeServicesCode:
- case EfiRuntimeServicesData:
- return EfiAcpiAddressRangeMemory;
-
- case EfiACPIReclaimMemory:
- return EfiAcpiAddressRangeACPI;
-
- case EfiACPIMemoryNVS:
- return EfiAcpiAddressRangeNVS;
-
- default:
- return EfiAcpiAddressRangeReserved;
- }
-}
-
diff --git a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/PlatformBdsLib.inf b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/PlatformBdsLib.inf
index 777d5f97a8..a9ecd25cc0 100644
--- a/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/PlatformBdsLib.inf
+++ b/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/PlatformBdsLib.inf
@@ -1,7 +1,7 @@
## @file
# Component name for module PlatformBdsLib.
#
-# Copyright (c) 2008 - 2016, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -33,14 +33,6 @@
BdsPlatform.c
BdsPlatform.h
PlatformData.c
- OsipUtil.c
- EfiBootStub.c
-
-[Sources.IA32]
- Ia32/JumpToVector.Asm
- Ia32/JumpToVector.S
- Ia32/StartKernel.Asm
- Ia32/StartKernel.S
[Packages]
BroxtonPlatformPkg/PlatformPkg.dec