From 9d76578cf4304e42b1f5fee7d38d351a9a9b38e9 Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Wed, 19 Jul 2017 11:47:13 +0800 Subject: Remove unused files Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../Common/Library/PlatformBdsLib/EfiBootStub.c | 586 --------------------- .../Common/Library/PlatformBdsLib/EfiBootStub.h | 330 ------------ .../Library/PlatformBdsLib/Ia32/JumpToVector.Asm | 54 -- .../Library/PlatformBdsLib/Ia32/JumpToVector.S | 42 -- .../Library/PlatformBdsLib/Ia32/StartKernel.Asm | 49 -- .../Library/PlatformBdsLib/Ia32/StartKernel.S | 41 -- .../Common/Library/PlatformBdsLib/OsipPrivate.h | 168 ------ .../Common/Library/PlatformBdsLib/OsipUtil.c | 247 --------- .../Library/PlatformBdsLib/PlatformBdsLib.inf | 10 +- 9 files changed, 1 insertion(+), 1526 deletions(-) delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.c delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/EfiBootStub.h delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.S delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.Asm delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/StartKernel.S delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipPrivate.h delete mode 100644 Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/OsipUtil.c (limited to 'Platform/BroxtonPlatformPkg/Common/Library') 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.
- - 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 -#include -#include -#include - -// -// 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.
- - 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 "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.
-; -; 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.
-# -# 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.
-; -; 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.
-# -# 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.
- - 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 "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 - -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.
- - 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 "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.
+# Copyright (c) 2008 - 2017, 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 @@ -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 -- cgit v1.2.3