Port UnixPkg to also support X64. Currently only supports Unix x86_64 ABI. In the future we can make Sec support x86_64 ABI and the rest of the code support X64 EFI ABI. This will require assembly gaskets to fix the calling convention differences. I currently have noop gaskets in place for x86_64 ABI. This has only been tested on OS X 10.6.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10685 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
92a4f6f3c7
commit
b9c8e50e20
@ -74,7 +74,9 @@ Abstract:
|
|||||||
// st_size is 64-bit but starts on a 32-bit offset in the structure. The compiler
|
// st_size is 64-bit but starts on a 32-bit offset in the structure. The compiler
|
||||||
// flags used to produce compatible EFI images, break struct stat
|
// flags used to produce compatible EFI images, break struct stat
|
||||||
//
|
//
|
||||||
|
#ifdef MDE_CPU_IA32
|
||||||
#pragma pack(4)
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if __DARWIN_64_BIT_INO_T
|
#if __DARWIN_64_BIT_INO_T
|
||||||
|
|
||||||
@ -128,7 +130,10 @@ typedef struct stat_fix {
|
|||||||
} STAT_FIX;
|
} STAT_FIX;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#pragma pack()
|
|
||||||
|
#ifdef MDE_CPU_IA32
|
||||||
|
#pragma pack(4)
|
||||||
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -155,40 +160,75 @@ VOID
|
|||||||
|
|
||||||
typedef
|
typedef
|
||||||
VOID
|
VOID
|
||||||
(*UnixSetTimer) (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs));
|
(*UnixSetTimer) (
|
||||||
|
UINT64 PeriodMs,
|
||||||
|
VOID (*CallBack)(UINT64 DeltaMs)
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
VOID
|
VOID
|
||||||
(*UnixGetLocalTime) (EFI_TIME *Time);
|
(*UnixGetLocalTime) (
|
||||||
|
EFI_TIME *Time
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
struct tm *
|
struct tm *
|
||||||
(*UnixGmTime)(const time_t *timep);
|
(*UnixGmTime)(
|
||||||
|
const time_t *timep
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
long
|
long
|
||||||
(*UnixGetTimeZone)(void);
|
(*UnixGetTimeZone)(
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixGetDayLight)(void);
|
(*UnixGetDayLight)(
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixPoll)(struct pollfd *pfd, int nfds, int timeout);
|
(*UnixPoll)(
|
||||||
|
struct pollfd *pfd,
|
||||||
|
unsigned int nfds,
|
||||||
|
int timeout
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
long
|
||||||
(*UnixRead) (int fd, void *buf, int count);
|
(*UnixRead) (
|
||||||
|
int fd,
|
||||||
|
void *buf,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
long
|
||||||
(*UnixWrite) (int fd, const void *buf, int count);
|
(*UnixWrite) (
|
||||||
|
int fd,
|
||||||
|
const void *buf,
|
||||||
|
int count
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
char *
|
char *
|
||||||
(*UnixGetenv) (const char *var);
|
(*UnixGetenv) (const char *var);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixOpen) (const char *name, int flags, int mode);
|
(*UnixOpen) (const char *name, int flags, int mode);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
off_t
|
off_t
|
||||||
(*UnixSeek) (int fd, off_t off, int whence);
|
(*UnixSeek) (int fd, off_t off, int whence);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixFtruncate) (int fd, long int len);
|
(*UnixFtruncate) (int fd, long int len);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixClose) (int fd);
|
(*UnixClose) (int fd);
|
||||||
@ -196,45 +236,59 @@ int
|
|||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixMkdir)(const char *pathname, mode_t mode);
|
(*UnixMkdir)(const char *pathname, mode_t mode);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixRmDir)(const char *pathname);
|
(*UnixRmDir)(const char *pathname);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixUnLink)(const char *pathname);
|
(*UnixUnLink)(const char *pathname);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixGetErrno)(VOID);
|
(*UnixGetErrno)(VOID);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
DIR *
|
DIR *
|
||||||
(*UnixOpenDir)(const char *pathname);
|
(*UnixOpenDir)(const char *pathname);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
void
|
void
|
||||||
(*UnixRewindDir)(DIR *dir);
|
(*UnixRewindDir)(DIR *dir);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
struct dirent *
|
struct dirent *
|
||||||
(*UnixReadDir)(DIR *dir);
|
(*UnixReadDir)(DIR *dir);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixCloseDir)(DIR *dir);
|
(*UnixCloseDir)(DIR *dir);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixStat)(const char *path, STAT_FIX *buf);
|
(*UnixStat)(const char *path, STAT_FIX *buf);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixStatFs)(const char *path, struct statfs *buf);
|
(*UnixStatFs)(const char *path, struct statfs *buf);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixRename)(const char *oldpath, const char *newpath);
|
(*UnixRename)(const char *oldpath, const char *newpath);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
time_t
|
time_t
|
||||||
(*UnixMkTime)(struct tm *tm);
|
(*UnixMkTime)(struct tm *tm);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixFSync)(int fd);
|
(*UnixFSync)(int fd);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixChmod)(const char *path, mode_t mode);
|
(*UnixChmod)(const char *path, mode_t mode);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
int
|
int
|
||||||
(*UnixUTime)(const char *filename, const struct utimbuf *buf);
|
(*UnixUTime)(const char *filename, const struct utimbuf *buf);
|
||||||
@ -282,21 +336,9 @@ int
|
|||||||
(*UnixTcsetattr) (int __fd, int __optional_actions,
|
(*UnixTcsetattr) (int __fd, int __optional_actions,
|
||||||
__const struct termios *__termios_p);
|
__const struct termios *__termios_p);
|
||||||
|
|
||||||
typedef
|
|
||||||
VOID *
|
|
||||||
(*UnixDlopen) (const char *FileName, int Flag);
|
|
||||||
|
|
||||||
typedef
|
|
||||||
char *
|
|
||||||
(*UnixDlerror) (VOID);
|
|
||||||
|
|
||||||
typedef
|
|
||||||
VOID *
|
|
||||||
(*UnixDlsym) (VOID* Handle, const char* Symbol);
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Work functions to enable source level debug in the emulator
|
// Worker functions to enable source level debug in the emulator
|
||||||
//
|
//
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
@ -364,9 +406,6 @@ typedef struct _EFI_UNIX_THUNK_PROTOCOL {
|
|||||||
UnixCfsetospeed Cfsetospeed;
|
UnixCfsetospeed Cfsetospeed;
|
||||||
UnixTcgetattr Tcgetattr;
|
UnixTcgetattr Tcgetattr;
|
||||||
UnixTcsetattr Tcsetattr;
|
UnixTcsetattr Tcsetattr;
|
||||||
UnixDlopen Dlopen;
|
|
||||||
UnixDlerror Dlerror;
|
|
||||||
UnixDlsym Dlsym;
|
|
||||||
UnixPeCoffGetEntryPoint PeCoffGetEntryPoint;
|
UnixPeCoffGetEntryPoint PeCoffGetEntryPoint;
|
||||||
UnixPeCoffRelocateImageExtraAction PeCoffRelocateImageExtraAction;
|
UnixPeCoffRelocateImageExtraAction PeCoffRelocateImageExtraAction;
|
||||||
UnixPeCoffLoaderUnloadImageExtraAction PeCoffUnloadImageExtraAction;
|
UnixPeCoffLoaderUnloadImageExtraAction PeCoffUnloadImageExtraAction;
|
||||||
|
@ -20,33 +20,41 @@ Abstract:
|
|||||||
#ifndef _UNIX_UGA_IO_H_
|
#ifndef _UNIX_UGA_IO_H_
|
||||||
#define _UNIX_UGA_IO_H_
|
#define _UNIX_UGA_IO_H_
|
||||||
|
|
||||||
#define EFI_UNIX_UGA_IO_PROTOCOL_GUID \
|
#define EFI_UNIX_UGA_IO_PROTOCOL_GUID {0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } }
|
||||||
{ \
|
|
||||||
0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } \
|
|
||||||
}
|
|
||||||
|
|
||||||
struct _EFI_UNIX_UGA_IO_PROTOCOL;
|
|
||||||
typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
|
typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(*UGAClose)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
|
(*UGAClose)(
|
||||||
|
EFI_UNIX_UGA_IO_PROTOCOL *Uga
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(*UGASize)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, UINT32 Width, UINT32 Height);
|
(*UGASize)(
|
||||||
|
EFI_UNIX_UGA_IO_PROTOCOL *Uga,
|
||||||
|
UINT32 Width,
|
||||||
|
UINT32 Height
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(*UGACheckKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga);
|
(*UGACheckKey)(
|
||||||
|
EFI_UNIX_UGA_IO_PROTOCOL *Uga
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(*UGAGetKey)(EFI_UNIX_UGA_IO_PROTOCOL *Uga, EFI_INPUT_KEY *key);
|
(*UGAGetKey)(
|
||||||
|
EFI_UNIX_UGA_IO_PROTOCOL *Uga,
|
||||||
|
EFI_INPUT_KEY *key
|
||||||
|
);
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
(*UGABlt)(EFI_UNIX_UGA_IO_PROTOCOL *Uga,
|
(*UGABlt)(
|
||||||
|
IN EFI_UNIX_UGA_IO_PROTOCOL *Uga,
|
||||||
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
|
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
|
||||||
IN EFI_UGA_BLT_OPERATION BltOperation,
|
IN EFI_UGA_BLT_OPERATION BltOperation,
|
||||||
IN UINTN SourceX,
|
IN UINTN SourceX,
|
||||||
@ -55,7 +63,8 @@ EFI_STATUS
|
|||||||
IN UINTN DestinationY,
|
IN UINTN DestinationY,
|
||||||
IN UINTN Width,
|
IN UINTN Width,
|
||||||
IN UINTN Height,
|
IN UINTN Height,
|
||||||
IN UINTN Delta OPTIONAL);
|
IN UINTN Delta OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
struct _EFI_UNIX_UGA_IO_PROTOCOL {
|
struct _EFI_UNIX_UGA_IO_PROTOCOL {
|
||||||
VOID *Private;
|
VOID *Private;
|
||||||
|
@ -74,20 +74,20 @@ GasketGetDayLight (void)
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
Gasketpoll (struct pollfd *pfd, int nfds, int timeout)
|
Gasketpoll (struct pollfd *pfd, unsigned int nfds, int timeout)
|
||||||
{
|
{
|
||||||
return GasketUintnUintnUintn (poll, (UINTN)pfd, nfds, timeout);
|
return GasketUintnUintnUintn (poll, (UINTN)pfd, nfds, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
long
|
||||||
Gasketread (int fd, void *buf, int count)
|
Gasketread (int fd, void *buf, int count)
|
||||||
{
|
{
|
||||||
return GasketUintnUintnUintn (read, fd, (UINTN)buf, count);
|
return GasketUintnUintnUintn (read, fd, (UINTN)buf, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
long
|
||||||
Gasketwrite (int fd, const void *buf, int count)
|
Gasketwrite (int fd, const void *buf, int count)
|
||||||
{
|
{
|
||||||
return GasketUintnUintnUintn (write, fd, (UINTN)buf, count);
|
return GasketUintnUintnUintn (write, fd, (UINTN)buf, count);
|
||||||
@ -168,10 +168,11 @@ Gasketopendir (const char *pathname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void *
|
void
|
||||||
Gasketrewinddir (DIR *dir)
|
Gasketrewinddir (DIR *dir)
|
||||||
{
|
{
|
||||||
return (void *)(UINTN)GasketUintn (rewinddir, (UINTN)dir);
|
GasketUintn (rewinddir, (UINTN)dir);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -372,7 +373,7 @@ GasketUnixPeCoffRelocateImageExtraAction (
|
|||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
GasketPeCoffLoaderUnloadImageExtraAction (
|
GasketUnixPeCoffUnloadImageExtraAction (
|
||||||
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
|
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -33,9 +33,9 @@ void GasketGetLocalTime (EFI_TIME *Time);
|
|||||||
struct tm *Gasketgmtime (const time_t *clock);
|
struct tm *Gasketgmtime (const time_t *clock);
|
||||||
long GasketGetTimeZone (void);
|
long GasketGetTimeZone (void);
|
||||||
int GasketGetDayLight (void);
|
int GasketGetDayLight (void);
|
||||||
int Gasketpoll (struct pollfd *pfd, int nfds, int timeout);
|
int Gasketpoll (struct pollfd *pfd, unsigned int nfds, int timeout);
|
||||||
int Gasketread (int fd, void *buf, int count);
|
long Gasketread (int fd, void *buf, int count);
|
||||||
int Gasketwrite (int fd, const void *buf, int count);
|
long Gasketwrite (int fd, const void *buf, int count);
|
||||||
char *Gasketgetenv (const char *name);
|
char *Gasketgetenv (const char *name);
|
||||||
int Gasketopen (const char *name, int flags, int mode);
|
int Gasketopen (const char *name, int flags, int mode);
|
||||||
off_t Gasketlseek (int fd, off_t off, int whence);
|
off_t Gasketlseek (int fd, off_t off, int whence);
|
||||||
@ -46,7 +46,7 @@ int Gasketrmdir (const char *pathname);
|
|||||||
int Gasketunlink (const char *pathname);
|
int Gasketunlink (const char *pathname);
|
||||||
int GasketGetErrno (void);
|
int GasketGetErrno (void);
|
||||||
DIR *Gasketopendir (const char *pathname);
|
DIR *Gasketopendir (const char *pathname);
|
||||||
void *Gasketrewinddir (DIR *dir);
|
void Gasketrewinddir (DIR *dir);
|
||||||
struct dirent *Gasketreaddir (DIR *dir);
|
struct dirent *Gasketreaddir (DIR *dir);
|
||||||
int Gasketclosedir (DIR *dir);
|
int Gasketclosedir (DIR *dir);
|
||||||
int Gasketstat (const char *path, STAT_FIX *buf);
|
int Gasketstat (const char *path, STAT_FIX *buf);
|
||||||
@ -88,21 +88,22 @@ GasketUnixPeCoffRelocateImageExtraAction (
|
|||||||
);
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
GasketPeCoffLoaderUnloadImageExtraAction (
|
GasketUnixPeCoffUnloadImageExtraAction (
|
||||||
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
|
IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
int GasketVoid (void *api);
|
UINTN GasketVoid (void *api);
|
||||||
int GasketUintn (void *api, UINTN a);
|
UINTN GasketUintn (void *api, UINTN a);
|
||||||
int GasketUintnUintn (void *api, UINTN a, UINTN b);
|
UINTN GasketUintnUintn (void *api, UINTN a, UINTN b);
|
||||||
int GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c);
|
UINTN GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c);
|
||||||
int GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d);
|
UINTN GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d);
|
||||||
int GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j);
|
UINTN GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j);
|
||||||
int GasketUint64Uintn (void *api, UINT64 a, UINTN b);
|
UINTN GasketUint64Uintn (void *api, UINT64 a, UINTN b);
|
||||||
UINT64 GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c);
|
UINT64 GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c);
|
||||||
int GasketUintnUint16 (void *api, UINTN a, UINT16 b);
|
UINTN GasketUintnUint16 (void *api, UINTN a, UINT16 b);
|
||||||
|
|
||||||
|
UINTN ReverseGasketUint64 (void *api, UINT64 a);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
|
// Gasket functions for EFI_UNIX_UGA_IO_PROTOCOL
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
# on Leopard and _stat$INDOE64 on Snow Leopard. That is why we pass stat()
|
# on Leopard and _stat$INDOE64 on Snow Leopard. That is why we pass stat()
|
||||||
# into one of these gaskets from C code.
|
# into one of these gaskets from C code.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
||||||
# This program and the accompanying materials
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# 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
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -235,7 +235,23 @@ _GasketUintnUint16:
|
|||||||
call *%eax
|
call *%eax
|
||||||
leave
|
leave
|
||||||
ret
|
ret
|
||||||
|
.globl _ReverseGasketUint64
|
||||||
|
_ReverseGasketUint64:
|
||||||
|
pushl %ebp
|
||||||
|
movl %esp, %ebp
|
||||||
|
subl $56, %esp
|
||||||
|
movl 12(%ebp), %eax
|
||||||
|
movl %eax, -32(%ebp)
|
||||||
|
movl 16(%ebp), %eax
|
||||||
|
movl %eax, -28(%ebp)
|
||||||
|
movl 8(%ebp), %eax
|
||||||
|
movl %eax, -12(%ebp)
|
||||||
|
movl -32(%ebp), %eax
|
||||||
|
movl %eax, (%esp)
|
||||||
|
movl -12(%ebp), %eax
|
||||||
|
call *%eax
|
||||||
|
leave
|
||||||
|
ret
|
||||||
.subsections_via_symbols
|
.subsections_via_symbols
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -138,5 +138,14 @@ GasketUintnUint16 (void *api, UINTN a, UINT16 b)
|
|||||||
return func (a, b);
|
return func (a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ReverseGasketUint64 (void *api, UINT64 a)
|
||||||
|
{
|
||||||
|
GASKET_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN)api;
|
||||||
|
func (a);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -827,7 +827,7 @@ Returns:
|
|||||||
// If the memory buffer could not be allocated at the FD build address
|
// If the memory buffer could not be allocated at the FD build address
|
||||||
// the Fixup is the difference.
|
// the Fixup is the difference.
|
||||||
//
|
//
|
||||||
*FixUp = *FdBase - PcdGet32 (PcdUnixFdBaseAddress);
|
*FixUp = *FdBase - PcdGet64 (PcdUnixFdBaseAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
|
@ -373,9 +373,10 @@ UgaCheckKey(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo)
|
|||||||
{
|
{
|
||||||
UGA_IO_PRIVATE *drv = (UGA_IO_PRIVATE *)UgaIo;
|
UGA_IO_PRIVATE *drv = (UGA_IO_PRIVATE *)UgaIo;
|
||||||
HandleEvents(drv);
|
HandleEvents(drv);
|
||||||
if (drv->key_count != 0)
|
|
||||||
|
if (drv->key_count != 0) {
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
else {
|
} else {
|
||||||
/* EFI is certainly polling. Be CPU-friendly. */
|
/* EFI is certainly polling. Be CPU-friendly. */
|
||||||
msSleep (20);
|
msSleep (20);
|
||||||
return EFI_NOT_READY;
|
return EFI_NOT_READY;
|
||||||
@ -631,8 +632,8 @@ EFI_STATUS EFIAPI GasketUgaBlt (
|
|||||||
XStoreName (drv->display, drv->win, title);
|
XStoreName (drv->display, drv->win, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
XSelectInput (drv->display, drv->win,
|
XSelectInput (drv->display, drv->win, ExposureMask | KeyPressMask);
|
||||||
ExposureMask | KeyPressMask);
|
|
||||||
drv->gc = DefaultGC (drv->display, drv->screen);
|
drv->gc = DefaultGC (drv->display, drv->screen);
|
||||||
|
|
||||||
*Uga = (EFI_UNIX_UGA_IO_PROTOCOL *)drv;
|
*Uga = (EFI_UNIX_UGA_IO_PROTOCOL *)drv;
|
||||||
|
@ -55,8 +55,14 @@ settimer_handler (int sig)
|
|||||||
- ((UINT64)settimer_timeval.tv_sec * 1000)
|
- ((UINT64)settimer_timeval.tv_sec * 1000)
|
||||||
- (settimer_timeval.tv_usec / 1000);
|
- (settimer_timeval.tv_usec / 1000);
|
||||||
settimer_timeval = timeval;
|
settimer_timeval = timeval;
|
||||||
if (settimer_callback)
|
|
||||||
(*settimer_callback)(delta);
|
if (settimer_callback) {
|
||||||
|
#ifdef __APPLE__
|
||||||
|
ReverseGasketUint64 (settimer_callback, delta);
|
||||||
|
#else
|
||||||
|
(*settimer_callback)(delta);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
@ -94,13 +100,18 @@ SetTimer (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs))
|
|||||||
void
|
void
|
||||||
msSleep (unsigned long Milliseconds)
|
msSleep (unsigned long Milliseconds)
|
||||||
{
|
{
|
||||||
struct timespec ts;
|
struct timespec rq, rm;
|
||||||
|
|
||||||
ts.tv_sec = Milliseconds / 1000;
|
rq.tv_sec = Milliseconds / 1000;
|
||||||
ts.tv_nsec = (Milliseconds % 1000) * 1000000;
|
rq.tv_nsec = (Milliseconds % 1000) * 1000000;
|
||||||
|
|
||||||
|
while (nanosleep (&rq, &rm) != -1) {
|
||||||
|
if (errno != EINTR) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
rq = rm;
|
||||||
|
}
|
||||||
|
|
||||||
while (nanosleep (&ts, &ts) != 0 && errno == EINTR)
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -174,20 +185,20 @@ EFI_UNIX_THUNK_PROTOCOL mUnixThunkTable = {
|
|||||||
Gasketgmtime,
|
Gasketgmtime,
|
||||||
GasketGetTimeZone,
|
GasketGetTimeZone,
|
||||||
GasketGetDayLight,
|
GasketGetDayLight,
|
||||||
(UnixPoll)Gasketpoll,
|
Gasketpoll,
|
||||||
(UnixRead)Gasketread,
|
Gasketread,
|
||||||
(UnixWrite)Gasketwrite,
|
Gasketwrite,
|
||||||
Gasketgetenv,
|
Gasketgetenv,
|
||||||
(UnixOpen)Gasketopen,
|
Gasketopen,
|
||||||
(UnixSeek)Gasketlseek,
|
Gasketlseek,
|
||||||
(UnixFtruncate)Gasketftruncate,
|
Gasketftruncate,
|
||||||
Gasketclose,
|
Gasketclose,
|
||||||
Gasketmkdir,
|
Gasketmkdir,
|
||||||
Gasketrmdir,
|
Gasketrmdir,
|
||||||
Gasketunlink,
|
Gasketunlink,
|
||||||
GasketGetErrno,
|
GasketGetErrno,
|
||||||
Gasketopendir,
|
Gasketopendir,
|
||||||
(UnixRewindDir)Gasketrewinddir,
|
Gasketrewinddir,
|
||||||
Gasketreaddir,
|
Gasketreaddir,
|
||||||
Gasketclosedir,
|
Gasketclosedir,
|
||||||
Gasketstat,
|
Gasketstat,
|
||||||
@ -206,14 +217,9 @@ EFI_UNIX_THUNK_PROTOCOL mUnixThunkTable = {
|
|||||||
Gasketcfsetospeed,
|
Gasketcfsetospeed,
|
||||||
Gaskettcgetattr,
|
Gaskettcgetattr,
|
||||||
Gaskettcsetattr,
|
Gaskettcsetattr,
|
||||||
|
GasketUnixPeCoffGetEntryPoint,
|
||||||
dlopen, // Update me with a gasket
|
GasketUnixPeCoffRelocateImageExtraAction,
|
||||||
dlerror, // Update me with a gasket
|
GasketUnixPeCoffUnloadImageExtraAction
|
||||||
dlsym, // Update me with a gasket
|
|
||||||
|
|
||||||
SecPeCoffGetEntryPoint, // Update me with a gasket
|
|
||||||
SecPeCoffRelocateImageExtraAction, // Update me with a gasket
|
|
||||||
SecPeCoffLoaderUnloadImageExtraAction // Update me with a gasket
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
msSleep, /* Sleep */
|
msSleep, /* Sleep */
|
||||||
@ -255,9 +261,6 @@ EFI_UNIX_THUNK_PROTOCOL mUnixThunkTable = {
|
|||||||
cfsetospeed,
|
cfsetospeed,
|
||||||
tcgetattr,
|
tcgetattr,
|
||||||
tcsetattr,
|
tcsetattr,
|
||||||
dlopen,
|
|
||||||
dlerror,
|
|
||||||
dlsym,
|
|
||||||
SecPeCoffGetEntryPoint,
|
SecPeCoffGetEntryPoint,
|
||||||
SecPeCoffRelocateImageExtraAction,
|
SecPeCoffRelocateImageExtraAction,
|
||||||
SecPeCoffLoaderUnloadImageExtraAction
|
SecPeCoffLoaderUnloadImageExtraAction
|
||||||
|
@ -27,10 +27,10 @@ LCFI4:
|
|||||||
subq $32, %rsp
|
subq $32, %rsp
|
||||||
LCFI5:
|
LCFI5:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
@ -43,15 +43,15 @@ LFB4:
|
|||||||
LCFI6:
|
LCFI6:
|
||||||
movq %rsp, %rbp
|
movq %rsp, %rbp
|
||||||
LCFI7:
|
LCFI7:
|
||||||
subq $32, %rsp
|
subq $48, %rsp
|
||||||
LCFI8:
|
LCFI8:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movl %edx, -32(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -32(%rbp), %esi
|
movq -40(%rbp), %rsi
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
@ -67,14 +67,14 @@ LCFI10:
|
|||||||
subq $48, %rsp
|
subq $48, %rsp
|
||||||
LCFI11:
|
LCFI11:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movl %edx, -32(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movl %ecx, -36(%rbp)
|
movq %rcx, -48(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -36(%rbp), %edx
|
movq -48(%rbp), %rdx
|
||||||
movl -32(%rbp), %esi
|
movq -40(%rbp), %rsi
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
@ -87,19 +87,19 @@ LFB6:
|
|||||||
LCFI12:
|
LCFI12:
|
||||||
movq %rsp, %rbp
|
movq %rsp, %rbp
|
||||||
LCFI13:
|
LCFI13:
|
||||||
subq $48, %rsp
|
subq $64, %rsp
|
||||||
LCFI14:
|
LCFI14:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movl %edx, -32(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movl %ecx, -36(%rbp)
|
movq %rcx, -48(%rbp)
|
||||||
movl %r8d, -40(%rbp)
|
movq %r8, -56(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -40(%rbp), %ecx
|
movq -56(%rbp), %rcx
|
||||||
movl -36(%rbp), %edx
|
movq -48(%rbp), %rdx
|
||||||
movl -32(%rbp), %esi
|
movq -40(%rbp), %rsi
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
@ -112,35 +112,35 @@ LFB7:
|
|||||||
LCFI15:
|
LCFI15:
|
||||||
movq %rsp, %rbp
|
movq %rsp, %rbp
|
||||||
LCFI16:
|
LCFI16:
|
||||||
subq $80, %rsp
|
subq $96, %rsp
|
||||||
LCFI17:
|
LCFI17:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movl %edx, -32(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movl %ecx, -36(%rbp)
|
movq %rcx, -48(%rbp)
|
||||||
movl %r8d, -40(%rbp)
|
movq %r8, -56(%rbp)
|
||||||
movl %r9d, -44(%rbp)
|
movq %r9, -64(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -44(%rbp), %edx
|
movq -64(%rbp), %rdx
|
||||||
movl -40(%rbp), %ecx
|
movq -56(%rbp), %rcx
|
||||||
movl -36(%rbp), %esi
|
movq -48(%rbp), %rsi
|
||||||
movl -32(%rbp), %edi
|
movq -40(%rbp), %rdi
|
||||||
movl -28(%rbp), %r10d
|
movq -32(%rbp), %r10
|
||||||
movl 48(%rbp), %eax
|
movq 48(%rbp), %rax
|
||||||
movl %eax, 24(%rsp)
|
movq %rax, 24(%rsp)
|
||||||
movl 40(%rbp), %eax
|
movq 40(%rbp), %rax
|
||||||
movl %eax, 16(%rsp)
|
movq %rax, 16(%rsp)
|
||||||
movl 32(%rbp), %eax
|
movq 32(%rbp), %rax
|
||||||
movl %eax, 8(%rsp)
|
movq %rax, 8(%rsp)
|
||||||
movl 24(%rbp), %eax
|
movq 24(%rbp), %rax
|
||||||
movl %eax, (%rsp)
|
movq %rax, (%rsp)
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
movl 16(%rbp), %r9d
|
movq 16(%rbp), %r9
|
||||||
movl %edx, %r8d
|
movq %rdx, %r8
|
||||||
movl %esi, %edx
|
movq %rsi, %rdx
|
||||||
movl %edi, %esi
|
movq %rdi, %rsi
|
||||||
movl %r10d, %edi
|
movq %r10, %rdi
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
ret
|
ret
|
||||||
@ -156,10 +156,10 @@ LCFI19:
|
|||||||
LCFI20:
|
LCFI20:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movq %rsi, -32(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movl %edx, -36(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -36(%rbp), %esi
|
movq -40(%rbp), %rsi
|
||||||
movq -32(%rbp), %rdi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
@ -176,14 +176,14 @@ LCFI22:
|
|||||||
subq $48, %rsp
|
subq $48, %rsp
|
||||||
LCFI23:
|
LCFI23:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movq %rdx, -40(%rbp)
|
movq %rdx, -40(%rbp)
|
||||||
movl %ecx, -44(%rbp)
|
movq %rcx, -48(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movl -44(%rbp), %edx
|
movq -48(%rbp), %rdx
|
||||||
movq -40(%rbp), %rsi
|
movq -40(%rbp), %rsi
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
@ -196,20 +196,39 @@ LFB10:
|
|||||||
LCFI24:
|
LCFI24:
|
||||||
movq %rsp, %rbp
|
movq %rsp, %rbp
|
||||||
LCFI25:
|
LCFI25:
|
||||||
subq $32, %rsp
|
subq $48, %rsp
|
||||||
LCFI26:
|
LCFI26:
|
||||||
movq %rdi, -24(%rbp)
|
movq %rdi, -24(%rbp)
|
||||||
movl %esi, -28(%rbp)
|
movq %rsi, -32(%rbp)
|
||||||
movw %dx, -32(%rbp)
|
movw %dx, -36(%rbp)
|
||||||
movq -24(%rbp), %rax
|
movq -24(%rbp), %rax
|
||||||
movq %rax, -8(%rbp)
|
movq %rax, -8(%rbp)
|
||||||
movzwl -32(%rbp), %esi
|
movzwl -36(%rbp), %esi
|
||||||
movl -28(%rbp), %edi
|
movq -32(%rbp), %rdi
|
||||||
movq -8(%rbp), %rax
|
movq -8(%rbp), %rax
|
||||||
call *%rax
|
call *%rax
|
||||||
leave
|
leave
|
||||||
ret
|
ret
|
||||||
LFE10:
|
LFE10:
|
||||||
|
.globl _ReverseGasketUint64
|
||||||
|
_ReverseGasketUint64:
|
||||||
|
LFB11:
|
||||||
|
pushq %rbp
|
||||||
|
LCFI27:
|
||||||
|
movq %rsp, %rbp
|
||||||
|
LCFI28:
|
||||||
|
subq $32, %rsp
|
||||||
|
LCFI29:
|
||||||
|
movq %rdi, -24(%rbp)
|
||||||
|
movq %rsi, -32(%rbp)
|
||||||
|
movq -24(%rbp), %rax
|
||||||
|
movq %rax, -8(%rbp)
|
||||||
|
movq -32(%rbp), %rdi
|
||||||
|
movq -8(%rbp), %rax
|
||||||
|
call *%rax
|
||||||
|
leave
|
||||||
|
ret
|
||||||
|
LFE11:
|
||||||
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
|
||||||
EH_frame1:
|
EH_frame1:
|
||||||
.set L$set$0,LECIE1-LSCIE1
|
.set L$set$0,LECIE1-LSCIE1
|
||||||
@ -455,4 +474,29 @@ LASFDE17:
|
|||||||
.byte 0x6
|
.byte 0x6
|
||||||
.align 3
|
.align 3
|
||||||
LEFDE17:
|
LEFDE17:
|
||||||
|
.globl _ReverseGasketUint64.eh
|
||||||
|
_ReverseGasketUint64.eh:
|
||||||
|
LSFDE19:
|
||||||
|
.set L$set$37,LEFDE19-LASFDE19
|
||||||
|
.long L$set$37
|
||||||
|
LASFDE19:
|
||||||
|
.long LASFDE19-EH_frame1
|
||||||
|
.quad LFB11-.
|
||||||
|
.set L$set$38,LFE11-LFB11
|
||||||
|
.quad L$set$38
|
||||||
|
.byte 0x0
|
||||||
|
.byte 0x4
|
||||||
|
.set L$set$39,LCFI27-LFB11
|
||||||
|
.long L$set$39
|
||||||
|
.byte 0xe
|
||||||
|
.byte 0x10
|
||||||
|
.byte 0x86
|
||||||
|
.byte 0x2
|
||||||
|
.byte 0x4
|
||||||
|
.set L$set$40,LCFI28-LCFI27
|
||||||
|
.long L$set$40
|
||||||
|
.byte 0xd
|
||||||
|
.byte 0x6
|
||||||
|
.align 3
|
||||||
|
LEFDE19:
|
||||||
.subsections_via_symbols
|
.subsections_via_symbols
|
||||||
|
153
UnixPkg/Sec/X64/GasketTemplate.c
Normal file
153
UnixPkg/Sec/X64/GasketTemplate.c
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
/** @file
|
||||||
|
Template file used to create Gasket.S
|
||||||
|
|
||||||
|
This file is built on the command line via gcc GasketTemplate.c -S
|
||||||
|
and it will create GasketTemplate.s and this was used to create
|
||||||
|
Gasket.S. This builds code for Unix ABI on both sides. To convert
|
||||||
|
to EFI ABI will require changing the code by hand
|
||||||
|
|
||||||
|
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||||
|
Portions copyright (c) 2008 - 2010, Apple Inc. 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 <stdint.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
typedef int8_t INT8;
|
||||||
|
typedef uint8_t UINT8;
|
||||||
|
typedef int16_t INT16;
|
||||||
|
typedef uint16_t UINT16;
|
||||||
|
typedef int32_t INT32;
|
||||||
|
typedef uint32_t UINT32;
|
||||||
|
typedef int64_t INT64;
|
||||||
|
typedef uint64_t UINT64;
|
||||||
|
typedef UINT64 UINTN;
|
||||||
|
|
||||||
|
|
||||||
|
typedef UINTN (*GASKET_VOID) ();
|
||||||
|
typedef UINTN (*GASKET_UINTN) (UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINTN_UINTN) (UINTN, UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINTN_UINTN_UINTN_UINTN) (UINTN, UINTN, UINTN, UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINTN_10ARGS) (UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN, UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINT64_UINTN) (UINT64, UINTN);
|
||||||
|
typedef UINT64 (*GASKET_UINTN_UINT64_UINTN) (UINTN, UINT64, UINTN);
|
||||||
|
typedef UINTN (*GASKET_UINTN_UINT16) (UINTN, UINT16);
|
||||||
|
|
||||||
|
UINTN GasketVoid (void *api);
|
||||||
|
UINTN GasketUintn (void *api, UINTN a);
|
||||||
|
UINTN GasketUintnUintn (void *api, UINTN a, UINTN b);
|
||||||
|
UINTN GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c);
|
||||||
|
UINTN GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d);
|
||||||
|
UINTN GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j);
|
||||||
|
UINTN GasketUint64Uintn (void *api, UINT64 a, UINTN b);
|
||||||
|
UINT64 GasketUintnUiny64Uintn (void *api, UINTN a, UINT64 b, UINTN c);
|
||||||
|
UINTN GasketUintnUint16 (void *api, UINTN a, UINT16 b);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketVoid (void *api)
|
||||||
|
{
|
||||||
|
GASKET_VOID func;
|
||||||
|
|
||||||
|
func = (GASKET_VOID)api;
|
||||||
|
return func ();
|
||||||
|
}
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintn (void *api, UINTN a)
|
||||||
|
{
|
||||||
|
GASKET_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN)api;
|
||||||
|
return func (a);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintnUintn (void *api, UINTN a, UINTN b)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_UINTN)api;
|
||||||
|
return func (a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_UINTN_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_UINTN_UINTN)api;
|
||||||
|
return func (a, b, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintnUintnUintnUintn (void *api, UINTN a, UINTN b, UINTN c, UINTN d)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_UINTN_UINTN_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_UINTN_UINTN_UINTN)api;
|
||||||
|
return func (a, b, c, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintn10Args (void *api, UINTN a, UINTN b, UINTN c, UINTN d, UINTN e, UINTN f, UINTN g, UINTN h, UINTN i, UINTN j)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_10ARGS func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_10ARGS)api;
|
||||||
|
return func (a, b, c, d, e, f, g, h, i, j);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUint64Uintn (void *api, UINT64 a, UINTN b)
|
||||||
|
{
|
||||||
|
GASKET_UINT64_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINT64_UINTN)api;
|
||||||
|
return func (a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINT64
|
||||||
|
GasketUintnUint64Uintn (void *api, UINTN a, UINT64 b, UINTN c)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_UINT64_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_UINT64_UINTN)api;
|
||||||
|
return func (a, b, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
UINTN
|
||||||
|
GasketUintnUint16 (void *api, UINTN a, UINT16 b)
|
||||||
|
{
|
||||||
|
GASKET_UINTN_UINT16 func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN_UINT16)api;
|
||||||
|
return func (a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ReverseGasketUint64 (void *api, UINT64 a)
|
||||||
|
{
|
||||||
|
GASKET_UINTN func;
|
||||||
|
|
||||||
|
func = (GASKET_UINTN)api;
|
||||||
|
func (a);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -117,7 +117,7 @@ Returns:
|
|||||||
PcdGet32 (PcdFlashNvStorageFtwSpareSize) +
|
PcdGet32 (PcdFlashNvStorageFtwSpareSize) +
|
||||||
PcdGet32 (PcdUnixFlashNvStorageEventLogSize);
|
PcdGet32 (PcdUnixFlashNvStorageEventLogSize);
|
||||||
|
|
||||||
BuildFvHob (FdFixUp + PcdGet32 (PcdUnixFlashNvStorageVariableBase), FdSize);
|
BuildFvHob (FdFixUp + PcdGet64 (PcdUnixFlashNvStorageVariableBase), FdSize);
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// For other FD's just map them in.
|
// For other FD's just map them in.
|
||||||
|
@ -83,9 +83,9 @@ Returns:
|
|||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
PcdSet32 (PcdFlashNvStorageVariableBase, PcdGet32 (PcdUnixFlashNvStorageVariableBase) + (UINT32)FdFixUp);
|
PcdSet64 (PcdFlashNvStorageVariableBase64, PcdGet64 (PcdUnixFlashNvStorageVariableBase) + FdFixUp);
|
||||||
PcdSet32 (PcdFlashNvStorageFtwWorkingBase, PcdGet32 (PcdUnixFlashNvStorageFtwWorkingBase) + (UINT32)FdFixUp);
|
PcdSet64 (PcdFlashNvStorageFtwWorkingBase64, PcdGet64 (PcdUnixFlashNvStorageFtwWorkingBase) + FdFixUp);
|
||||||
PcdSet32 (PcdFlashNvStorageFtwSpareBase, PcdGet32 (PcdUnixFlashNvStorageFtwSpareBase) + (UINT32)FdFixUp);
|
PcdSet64 (PcdFlashNvStorageFtwSpareBase64, PcdGet64 (PcdUnixFlashNvStorageFtwSpareBase) + FdFixUp);
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -55,11 +55,11 @@
|
|||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64
|
||||||
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase
|
||||||
|
@ -59,14 +59,14 @@
|
|||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareVolume|L"..\\Fv\\Fv_Recovery.fd"|VOID*|0x00001009
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareVolume|L"..\\Fv\\Fv_Recovery.fd"|VOID*|0x00001009
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixMemorySizeForSecMain|L"64!64"|VOID*|0x0000100c
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixMemorySizeForSecMain|L"64!64"|VOID*|0x0000100c
|
||||||
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageVariableBase|0x0|UINT32|0x00001014
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageVariableBase|0x0|UINT64|0x00001014
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase|0x0|UINT32|0x00001015
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase|0x0|UINT64|0x00001015
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase|0x0|UINT32|0x00001016
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase|0x0|UINT64|0x00001016
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFdBaseAddress|0x0|UINT32|0x00001017
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFdBaseAddress|0x0|UINT64|0x00001017
|
||||||
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogBase|0x0|UINT32|0x0000100e
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogBase|0x0|UINT64|0x0000100e
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogSize|0x0|UINT32|0x0000100f
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogSize|0x0|UINT32|0x0000100f
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|0x0|UINT32|0x00001010
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|0x0|UINT64|0x00001010
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize|0x0|UINT32|0x00001011
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize|0x0|UINT32|0x00001011
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareFdSize|0x0|UINT32|0x00001012
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareFdSize|0x0|UINT32|0x00001012
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareBlockSize|0|UINT32|0x00001013
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareBlockSize|0|UINT32|0x00001013
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
PLATFORM_VERSION = 0.3
|
PLATFORM_VERSION = 0.3
|
||||||
DSC_ SPECIFICATION = 0x00010005
|
DSC_ SPECIFICATION = 0x00010005
|
||||||
OUTPUT_DIRECTORY = Build/Unix
|
OUTPUT_DIRECTORY = Build/Unix
|
||||||
SUPPORTED_ARCHITECTURES = IA32|X64
|
SUPPORTED_ARCHITECTURES = IA32
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
BUILD_TARGETS = DEBUG|RELEASE
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
SKUID_IDENTIFIER = DEFAULT
|
||||||
FLASH_DEFINITION = UnixPkg/UnixPkg.fdf
|
FLASH_DEFINITION = UnixPkg/UnixPkg.fdf
|
||||||
@ -154,6 +154,9 @@
|
|||||||
[LibraryClasses.common.UEFI_APPLICATION]
|
[LibraryClasses.common.UEFI_APPLICATION]
|
||||||
PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
|
PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
|
||||||
|
|
||||||
|
[LibraryClasses.X64]
|
||||||
|
BaseLib|UnixPkg/Library/UnixBaseLib/UnixBaseLib.inf
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
|
||||||
@ -182,24 +185,19 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
[PcdsDynamicDefault.common.DEFAULT]
|
[PcdsDynamicDefault.common.DEFAULT]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0|UINT32|4
|
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0|UINT32|4
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixConsole|L"Bus Driver Console Window"
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0|UINT32|4
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixUga|L"UGA Window"
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x0|UINT32|4
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFileSystem|L".!../../../../EdkShellBinPkg/Bin/Ia32/Apps"
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0|UINT32|4
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixVirtualDisk|L"disk1.img:FW"
|
||||||
gEfiGenericPlatformTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x0|UINT32|4
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixPhysicalDisk|L"E:RW;245760;512"
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixConsole|L"Bus Driver Console Window"|VOID*|50
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuModel|L"Intel(R) Processor Model"
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixUga|L"UGA Window"|VOID*|50
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuSpeed|L"3000"
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixFileSystem|L".!../../../../EdkShellBinPkg/Bin/Ia32/Apps"|VOID*|106
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixMemorySize|L"128!128"
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixVirtualDisk|L"disk1.img:FW"|VOID*|24
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixSerialPort|L"/dev/ttyS0!/dev/ttyS1"
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixPhysicalDisk|L"E:RW;245760;512"|VOID*|30
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuModel|L"Intel(R) Processor Model"|VOID*|48
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuSpeed|L"3000"|VOID*|8
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixMemorySize|L"64!64"|VOID*|10
|
|
||||||
gEfiUnixPkgTokenSpaceGuid.PcdUnixSerialPort|L"/dev/ttyS0!/dev/ttyS1"|VOID*|20
|
|
||||||
|
|
||||||
[PcdsDynamicHii.common.DEFAULT]
|
[PcdsDynamicHii.common.DEFAULT]
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Setup"|gEfiUnixSystemConfigGuid|0x0|80
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Setup"|gEfiUnixSystemConfigGuid|0x0|80
|
||||||
|
@ -243,43 +243,22 @@ INF MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
|||||||
#INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
#INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
||||||
#INF UnixPkg/SnpUnixDxe/SnpUnixDxe.inf
|
#INF UnixPkg/SnpUnixDxe/SnpUnixDxe.inf
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build from source or use checked in binary
|
||||||
|
#
|
||||||
#INF FatPkg/EnhancedFatDxe/Fat.inf
|
#INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||||
|
INF RuleOverride = BINARY USE = IA32 FatBinPkg/EnhancedFatDxe/Fat.inf
|
||||||
|
|
||||||
|
# If you build GccShellPkg you can source level debug shell
|
||||||
|
#FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
|
||||||
|
# SECTION PE32 =Build/GccShellPkg/DEBUG_XCODE32/IA32/ShellFull.efi
|
||||||
|
#}
|
||||||
|
INF RuleOverride = BINARY USE = IA32 EdkShellBinPkg/FullShell/FullShell.inf
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# FILE statements are provided so that a platform integrator can include
|
|
||||||
# complete EFI FFS files, as well as a method for constructing FFS files
|
|
||||||
# using curly "{}" brace scoping. The following three FILEs are
|
|
||||||
# for binary shell, binary fat and logo module.
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
|
|
||||||
SECTION COMPRESS PI_STD {
|
|
||||||
SECTION GUIDED {
|
|
||||||
SECTION PE32 = EdkShellBinPkg/FullShell/Ia32/Shell_Full.efi
|
|
||||||
# SECTION PE32 =Build/GccShellPkg/DEBUG_XCODE32/IA32/ShellFull.efi
|
|
||||||
# SECTION PE32 = Build/Unix/DEBUG_XCODE32/IA32/Ebl.efi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FILE DRIVER = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F {
|
|
||||||
SECTION COMPRESS PI_STD {
|
|
||||||
SECTION GUIDED {
|
|
||||||
SECTION PE32 = FatBinPkg/EnhancedFatDxe/Ia32/Fat.efi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
||||||
SECTION COMPRESS PI_STD {
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
||||||
SECTION GUIDED {
|
}
|
||||||
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -380,3 +359,20 @@ FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_DRIVER.BINARY]
|
||||||
|
FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
DXE_DEPEX DXE_DEPEX Optional |.depex
|
||||||
|
PE32 PE32 |.efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_APPLICATION.BINARY]
|
||||||
|
FILE APPLICATION = $(NAMED_GUID) {
|
||||||
|
PE32 PE32 |.efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
||||||
|
324
UnixPkg/UnixPkgX64.dsc
Normal file
324
UnixPkg/UnixPkgX64.dsc
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
## @file
|
||||||
|
#
|
||||||
|
# EFI/Framework Emulation Platform with UEFI HII interface supported.
|
||||||
|
#
|
||||||
|
# The Emulation Platform can be used to debug individual modules, prior to creating
|
||||||
|
# a real platform. This also provides an example for how an DSC is created.
|
||||||
|
# Copyright (c) 2006 - 2010, 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.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Defines Section - statements that will be processed to create a Makefile.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[Defines]
|
||||||
|
PLATFORM_NAME = Unix
|
||||||
|
PLATFORM_GUID = 7b3c1fb4-8986-11db-b5b2-0040d02b1835
|
||||||
|
PLATFORM_VERSION = 0.3
|
||||||
|
DSC_ SPECIFICATION = 0x00010005
|
||||||
|
OUTPUT_DIRECTORY = Build/UnixX64
|
||||||
|
SUPPORTED_ARCHITECTURES = X64
|
||||||
|
BUILD_TARGETS = DEBUG|RELEASE
|
||||||
|
SKUID_IDENTIFIER = DEFAULT
|
||||||
|
FLASH_DEFINITION = UnixPkg/UnixPkgX64.fdf
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# SKU Identification section - list of all SKU IDs supported by this Platform.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[SkuIds]
|
||||||
|
0|DEFAULT
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Library Class section - list of all Library Classes needed by this Platform.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[LibraryClasses]
|
||||||
|
#
|
||||||
|
# Entry point
|
||||||
|
#
|
||||||
|
PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
|
||||||
|
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
||||||
|
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
||||||
|
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
||||||
|
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
||||||
|
#
|
||||||
|
# Basic
|
||||||
|
#
|
||||||
|
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
||||||
|
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
|
||||||
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
||||||
|
CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
|
||||||
|
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
||||||
|
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
||||||
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||||
|
#
|
||||||
|
# UEFI & PI
|
||||||
|
#
|
||||||
|
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
||||||
|
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
||||||
|
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
||||||
|
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
||||||
|
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
||||||
|
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
||||||
|
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||||
|
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
||||||
|
PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
||||||
|
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
||||||
|
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
||||||
|
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
||||||
|
#
|
||||||
|
# Generic Modules
|
||||||
|
#
|
||||||
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||||
|
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
||||||
|
IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
|
||||||
|
UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
|
||||||
|
DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
|
||||||
|
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
||||||
|
GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
|
||||||
|
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
||||||
|
TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
|
||||||
|
SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
|
||||||
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||||
|
#
|
||||||
|
# Platform
|
||||||
|
#
|
||||||
|
PlatformBdsLib|UnixPkg/Library/UnixBdsLib/PlatformBds.inf
|
||||||
|
#
|
||||||
|
# Misc
|
||||||
|
#
|
||||||
|
DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||||
|
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
||||||
|
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.USER_DEFINED]
|
||||||
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||||
|
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
||||||
|
ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
||||||
|
OemHookStatusCodeLib|UnixPkg/Library/PeiUnixOemHookStatusCodeLib/PeiUnixOemHookStatusCodeLib.inf
|
||||||
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.PEIM, LibraryClasses.common.PEI_CORE]
|
||||||
|
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
||||||
|
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
||||||
|
ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
||||||
|
PeCoffGetEntryPointLib|UnixPkg/Library/EdkUnixPeiPeCoffGetEntryPointLib/EdkUnixPeiPeCoffGetEntryPointLib.inf
|
||||||
|
PeCoffExtraActionLib|UnixPkg/Library/PeiUnixPeCoffExtraActionLib/PeiUnixPeCoffExtraActionLib.inf
|
||||||
|
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.PEIM]
|
||||||
|
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
|
||||||
|
OemHookStatusCodeLib|UnixPkg/Library/PeiUnixOemHookStatusCodeLib/PeiUnixOemHookStatusCodeLib.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.PEI_CORE]
|
||||||
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.DXE_CORE]
|
||||||
|
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
||||||
|
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
||||||
|
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||||
|
PeCoffExtraActionLib|UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.inf
|
||||||
|
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.DXE_SMM_DRIVER]
|
||||||
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
|
MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
|
||||||
|
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||||
|
OemHookStatusCodeLib|UnixPkg/Library/DxeUnixOemHookStatusCodeLib/DxeUnixOemHookStatusCodeLib.inf
|
||||||
|
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.DXE_DRIVER, LibraryClasses.common.UEFI_APPLICATION]
|
||||||
|
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
||||||
|
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
||||||
|
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
||||||
|
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||||
|
UnixLib|UnixPkg/Library/DxeUnixLib/DxeUnixLib.inf
|
||||||
|
OemHookStatusCodeLib|UnixPkg/Library/DxeUnixOemHookStatusCodeLib/DxeUnixOemHookStatusCodeLib.inf
|
||||||
|
PeCoffExtraActionLib|UnixPkg/Library/DxeUnixPeCoffExtraActionLib/DxeUnixPeCoffExtraActionLib.inf
|
||||||
|
|
||||||
|
[LibraryClasses.common.UEFI_APPLICATION]
|
||||||
|
PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
|
||||||
|
|
||||||
|
[LibraryClasses.X64]
|
||||||
|
BaseLib|UnixPkg/Library/UnixBaseLib/UnixBaseLib.inf
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[PcdsFeatureFlag]
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|FALSE
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|FALSE
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|FALSE
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseOEM|TRUE
|
||||||
|
|
||||||
|
[PcdsFixedAtBuild]
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000040
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0f
|
||||||
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x1f
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0x0
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x0
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareFdSize|0x002a0000
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareBlockSize|0x10000
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareVolume|L"../FV/FV_RECOVERY.fd"
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
[PcdsDynamicDefault.common.DEFAULT]
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixConsole|L"Bus Driver Console Window"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixUga|L"UGA Window"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFileSystem|L".!../../../../EdkShellBinPkg/Bin/Ia32/Apps"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixVirtualDisk|L"disk1.img:FW"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixPhysicalDisk|L"E:RW;245760;512"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuModel|L"Intel(R) Processor Model"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixCpuSpeed|L"3000"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixMemorySize|L"128!128"
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixSerialPort|L"/dev/ttyS0!/dev/ttyS1"
|
||||||
|
|
||||||
|
[PcdsDynamicHii.common.DEFAULT]
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|L"Setup"|gEfiUnixSystemConfigGuid|0x0|80
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|L"Setup"|gEfiUnixSystemConfigGuid|0x4|25
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10
|
||||||
|
|
||||||
|
###################################################################################################
|
||||||
|
#
|
||||||
|
# Components Section - list of the modules and components that will be processed by compilation
|
||||||
|
# tools and the EDK II tools to generate PE32/PE32+/Coff image files.
|
||||||
|
#
|
||||||
|
# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
|
||||||
|
# into firmware volume images. This section is just a list of modules to compile from
|
||||||
|
# source into UEFI-compliant binaries.
|
||||||
|
# It is the FDF file that contains information on combining binary files into firmware
|
||||||
|
# volume images, whose concept is beyond UEFI and is described in PI specification.
|
||||||
|
# Binary modules do not need to be listed in this section, as they should be
|
||||||
|
# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
|
||||||
|
# Logo (Logo.bmp), and etc.
|
||||||
|
# There may also be modules listed in this section that are not required in the FDF file,
|
||||||
|
# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
|
||||||
|
# generated for it, but the binary will not be put into any firmware volume.
|
||||||
|
#
|
||||||
|
###################################################################################################
|
||||||
|
[Components.common]
|
||||||
|
##
|
||||||
|
# SEC Phase modules
|
||||||
|
##
|
||||||
|
UnixPkg/Sec/SecMain.inf
|
||||||
|
|
||||||
|
##
|
||||||
|
# PEI Phase modules
|
||||||
|
##
|
||||||
|
MdeModulePkg/Core/Pei/PeiMain.inf
|
||||||
|
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
}
|
||||||
|
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
||||||
|
UnixPkg/BootModePei/BootModePei.inf
|
||||||
|
UnixPkg/UnixFlashMapPei/FlashMap.inf
|
||||||
|
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||||
|
UnixPkg/UnixAutoScanPei/UnixAutoScan.inf
|
||||||
|
UnixPkg/UnixFirmwareVolumePei/UnixFwh.inf
|
||||||
|
UnixPkg/UnixThunkPpiToProtocolPei/UnixThunkPpiToProtocol.inf
|
||||||
|
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
||||||
|
|
||||||
|
##
|
||||||
|
# DXE Phase modules
|
||||||
|
##
|
||||||
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
||||||
|
}
|
||||||
|
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
}
|
||||||
|
|
||||||
|
UnixPkg/MetronomeDxe/Metronome.inf
|
||||||
|
UnixPkg/RealTimeClockRuntimeDxe/RealTimeClock.inf
|
||||||
|
UnixPkg/ResetRuntimeDxe/Reset.inf
|
||||||
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
|
UnixPkg/FvbServicesRuntimeDxe/UnixFwh.inf
|
||||||
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
|
MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|
||||||
|
MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
||||||
|
UnixPkg/UnixThunkDxe/UnixThunk.inf
|
||||||
|
UnixPkg/CpuRuntimeDxe/Cpu.inf
|
||||||
|
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
||||||
|
UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.inf
|
||||||
|
UnixPkg/TimerDxe/Timer.inf
|
||||||
|
IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
|
||||||
|
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||||
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
|
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||||
|
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||||
|
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||||
|
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||||
|
IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||||
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
||||||
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||||
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||||
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
|
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
||||||
|
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||||
|
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||||
|
IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
|
||||||
|
UnixPkg/UnixBusDriverDxe/UnixBusDriver.inf
|
||||||
|
|
||||||
|
UnixPkg/UnixBlockIoDxe/UnixBlockIo.inf
|
||||||
|
UnixPkg/UnixSerialIoDxe/UnixSerialIo.inf
|
||||||
|
UnixPkg/UnixUgaDxe/UnixUga.inf
|
||||||
|
UnixPkg/UnixConsoleDxe/UnixConsole.inf
|
||||||
|
UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.inf
|
||||||
|
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
||||||
|
|
||||||
|
#
|
||||||
|
# Network stack drivers
|
||||||
|
# To test network drivers, need network Io driver(SnpNt32Io.dll), please refer to NETWORK-IO Subproject.
|
||||||
|
#
|
||||||
|
MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
|
||||||
|
MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
||||||
|
|
||||||
|
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
|
||||||
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||||
|
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||||
|
MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
|
||||||
|
MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||||
|
}
|
||||||
|
|
||||||
|
FatPkg/EnhancedFatDxe/Fat.inf
|
||||||
|
|
376
UnixPkg/UnixPkgX64.fdf
Normal file
376
UnixPkg/UnixPkgX64.fdf
Normal file
@ -0,0 +1,376 @@
|
|||||||
|
## @file
|
||||||
|
# This is Unix FDF file with UEFI HII features enabled
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 - 2010, 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# FD Section
|
||||||
|
# The [FD] Section is made up of the definition statements and a
|
||||||
|
# description of what goes into the Flash Device Image. Each FD section
|
||||||
|
# defines one flash "device" image. A flash device image may be one of
|
||||||
|
# the following: Removable media bootable image (like a boot floppy
|
||||||
|
# image,) an Option ROM image (that would be "flashed" into an add-in
|
||||||
|
# card,) a System "Flash" image (that would be burned into a system's
|
||||||
|
# flash) or an Update ("Capsule") image that will be used to update and
|
||||||
|
# existing system flash.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[FD.Fv_Recovery]
|
||||||
|
#
|
||||||
|
# In OS X PEIMs are really XIP, so we need to make this address match the malloced
|
||||||
|
# buffer for the FD (0x41000000). If this address does not match the FV will get
|
||||||
|
# relocated in place (works, but not a great idea).
|
||||||
|
#
|
||||||
|
BaseAddress = 0x41000000|gEfiUnixPkgTokenSpaceGuid.PcdUnixFdBaseAddress #The base address of the FLASH Device.
|
||||||
|
Size = 0x004a0000|gEfiUnixPkgTokenSpaceGuid.PcdUnixFirmwareFdSize #The size in bytes of the FLASH Device
|
||||||
|
ErasePolarity = 1
|
||||||
|
BlockSize = 0x10000
|
||||||
|
NumBlocks = 0x4a
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Following are lists of FD Region layout which correspond to the locations of different
|
||||||
|
# images within the flash device.
|
||||||
|
#
|
||||||
|
# Regions must be defined in ascending order and may not overlap.
|
||||||
|
#
|
||||||
|
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
||||||
|
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
||||||
|
# "0x" characters. Like:
|
||||||
|
# Offset|Size
|
||||||
|
# PcdOffsetCName|PcdSizeCName
|
||||||
|
# RegionType <FV, DATA, or FILE>
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
0x00000000|0x00480000
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoveryBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashFvRecoverySize
|
||||||
|
FV = FvRecovery
|
||||||
|
|
||||||
|
0x00480000|0x0000c000
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
||||||
|
#NV_VARIABLE_STORE
|
||||||
|
DATA = {
|
||||||
|
## This is the EFI_FIRMWARE_VOLUME_HEADER
|
||||||
|
# ZeroVector []
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
# FileSystemGuid: gEfiSystemNvDataFvGuid =
|
||||||
|
# { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
||||||
|
0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
|
||||||
|
0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
|
||||||
|
# FvLength: 0x20000
|
||||||
|
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
# Signature "_FVH" #Attributes
|
||||||
|
0x5f, 0x46, 0x56, 0x48, 0xff, 0xfe, 0x04, 0x00,
|
||||||
|
# HeaderLength #CheckSum #ExtHeaderOffset #Reserved #Revision
|
||||||
|
0x48, 0x00, 0x36, 0x09, 0x00, 0x00, 0x00, 0x02,
|
||||||
|
# Blockmap[0]: 2 Blocks * 0x10000 Bytes / Block
|
||||||
|
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||||
|
# Blockmap[1]: End
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
## This is the VARIABLE_STORE_HEADER
|
||||||
|
#Signature: gEfiVariableGuid =
|
||||||
|
# { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
|
||||||
|
0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,
|
||||||
|
0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,
|
||||||
|
#Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xBFB8
|
||||||
|
# This can speed up the Variable Dispatch a bit.
|
||||||
|
0xB8, 0xBF, 0x00, 0x00,
|
||||||
|
#FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32
|
||||||
|
0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
}
|
||||||
|
|
||||||
|
0x0048c000|0x00002000
|
||||||
|
#NV_EVENT_LOG
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogBase|gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageEventLogSize
|
||||||
|
|
||||||
|
0x0048e000|0x00002000
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
|
||||||
|
#NV_FTW_WORKING
|
||||||
|
DATA = {
|
||||||
|
# EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER->Signature = gEfiSystemNvDataFvGuid =
|
||||||
|
# { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
|
||||||
|
0x8D, 0x2B, 0xF1, 0xFF, 0x96, 0x76, 0x8B, 0x4C,
|
||||||
|
0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50,
|
||||||
|
# Crc:UINT32 #WorkingBlockValid:1, WorkingBlockInvalid:1, Reserved
|
||||||
|
0x77, 0x13, 0x9B, 0xD7, 0xFE, 0xFF, 0xFF, 0xFF,
|
||||||
|
# WriteQueueSize: UINT64
|
||||||
|
0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
}
|
||||||
|
|
||||||
|
0x00490000|0x00010000
|
||||||
|
#NV_FTW_SPARE
|
||||||
|
gEfiUnixPkgTokenSpaceGuid.PcdUnixFlashNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# FV Section
|
||||||
|
#
|
||||||
|
# [FV] section is used to define what components or modules are placed within a flash
|
||||||
|
# device file. This section also defines order the components and modules are positioned
|
||||||
|
# within the image. The [FV] section consists of define statements, set statements and
|
||||||
|
# module statements.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
[FV.FvRecovery]
|
||||||
|
FvAlignment = 16 #FV alignment and FV attributes setting.
|
||||||
|
ERASE_POLARITY = 1
|
||||||
|
MEMORY_MAPPED = TRUE
|
||||||
|
STICKY_WRITE = TRUE
|
||||||
|
LOCK_CAP = TRUE
|
||||||
|
LOCK_STATUS = TRUE
|
||||||
|
WRITE_DISABLED_CAP = TRUE
|
||||||
|
WRITE_ENABLED_CAP = TRUE
|
||||||
|
WRITE_STATUS = TRUE
|
||||||
|
WRITE_LOCK_CAP = TRUE
|
||||||
|
WRITE_LOCK_STATUS = TRUE
|
||||||
|
READ_DISABLED_CAP = TRUE
|
||||||
|
READ_ENABLED_CAP = TRUE
|
||||||
|
READ_STATUS = TRUE
|
||||||
|
READ_LOCK_CAP = TRUE
|
||||||
|
READ_LOCK_STATUS = TRUE
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# The INF statements point to EDK component and EDK II module INF files, which will be placed into this FV image.
|
||||||
|
# Parsing tools will scan the INF file to determine the type of component or module.
|
||||||
|
# The component or module type is used to reference the standard rules
|
||||||
|
# defined elsewhere in the FDF file.
|
||||||
|
#
|
||||||
|
# The format for INF statements is:
|
||||||
|
# INF $(PathAndInfFileName)
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
##
|
||||||
|
# PEI Phase modules
|
||||||
|
##
|
||||||
|
##
|
||||||
|
# PEI Apriori file example, more PEIM module added later.
|
||||||
|
##
|
||||||
|
APRIORI PEI {
|
||||||
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
||||||
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
||||||
|
}
|
||||||
|
APRIORI DXE {
|
||||||
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
||||||
|
INF IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
|
||||||
|
INF UnixPkg/MetronomeDxe/Metronome.inf
|
||||||
|
}
|
||||||
|
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
||||||
|
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
||||||
|
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
||||||
|
INF UnixPkg/BootModePei/BootModePei.inf
|
||||||
|
INF UnixPkg/UnixFlashMapPei/FlashMap.inf
|
||||||
|
INF UnixPkg/UnixAutoScanPei/UnixAutoScan.inf
|
||||||
|
INF UnixPkg/UnixFirmwareVolumePei/UnixFwh.inf
|
||||||
|
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||||
|
INF UnixPkg/UnixThunkPpiToProtocolPei/UnixThunkPpiToProtocol.inf
|
||||||
|
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
||||||
|
|
||||||
|
##
|
||||||
|
# DXE Phase modules
|
||||||
|
##
|
||||||
|
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
||||||
|
INF IntelFrameworkModulePkg/Universal/StatusCode/RuntimeDxe/StatusCodeRuntimeDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
||||||
|
INF UnixPkg/MetronomeDxe/Metronome.inf
|
||||||
|
INF UnixPkg/RealTimeClockRuntimeDxe/RealTimeClock.inf
|
||||||
|
INF UnixPkg/ResetRuntimeDxe/Reset.inf
|
||||||
|
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||||
|
INF UnixPkg/FvbServicesRuntimeDxe/UnixFwh.inf
|
||||||
|
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
|
||||||
|
INF UnixPkg/UnixThunkDxe/UnixThunk.inf
|
||||||
|
INF UnixPkg/CpuRuntimeDxe/Cpu.inf
|
||||||
|
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
||||||
|
INF UnixPkg/MiscSubClassPlatformDxe/MiscSubClassDriver.inf
|
||||||
|
INF UnixPkg/TimerDxe/Timer.inf
|
||||||
|
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||||
|
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
|
INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
||||||
|
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||||
|
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||||
|
INF IntelFrameworkModulePkg/Bus/Pci/IdeBusDxe/IdeBusDxe.inf
|
||||||
|
INF UnixPkg/UnixBusDriverDxe/UnixBusDriver.inf
|
||||||
|
|
||||||
|
INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
|
||||||
|
INF UnixPkg/UnixBlockIoDxe/UnixBlockIo.inf
|
||||||
|
INF UnixPkg/UnixSerialIoDxe/UnixSerialIo.inf
|
||||||
|
INF UnixPkg/UnixUgaDxe/UnixUga.inf
|
||||||
|
#INF UnixPkg/UnixConsoleDxe/UnixConsole.inf
|
||||||
|
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||||
|
INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
|
||||||
|
INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||||
|
INF UnixPkg/UnixSimpleFileSystemDxe/UnixSimpleFileSystem.inf
|
||||||
|
INF MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf
|
||||||
|
INF MdeModulePkg/Application/HelloWorld/HelloWorld.inf
|
||||||
|
|
||||||
|
#
|
||||||
|
# Need to port this to UnixPkg
|
||||||
|
# Network stack drivers
|
||||||
|
# To test network drivers, need network Io driver(SnpNt32Io.dll), please refer to NETWORK-IO Subproject.
|
||||||
|
#
|
||||||
|
#INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
|
||||||
|
#INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
|
||||||
|
#INF UnixPkg/SnpUnixDxe/SnpUnixDxe.inf
|
||||||
|
|
||||||
|
INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||||
|
|
||||||
|
FILE APPLICATION = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile) {
|
||||||
|
SECTION PE32 =Build/GccShellPkg/DEBUG_XCODE32/X64/ShellFull.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Note: Warning current X64 port does not use EFI ABI so thease bins will crash
|
||||||
|
#INF RuleOverride = BINARY USE = X64 FatBinPkg/EnhancedFatDxe/Fat.inf
|
||||||
|
#INF RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf
|
||||||
|
|
||||||
|
|
||||||
|
FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
|
||||||
|
SECTION RAW = MdeModulePkg/Logo/Logo.bmp
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Rules are use with the [FV] section's module INF type to define
|
||||||
|
# how an FFS file is created for a given INF file. The following Rule are the default
|
||||||
|
# rules for the different module type. User can add the customized rules to define the
|
||||||
|
# content of the FFS file.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section #
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
#[Rule.Common.DXE_DRIVER]
|
||||||
|
# FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||||
|
# COMPRESS PI_STD {
|
||||||
|
# GUIDED {
|
||||||
|
# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
# UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
[Rule.Common.PEI_CORE]
|
||||||
|
FILE PEI_CORE = $(NAMED_GUID) {
|
||||||
|
PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING ="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.PEIM]
|
||||||
|
FILE PEIM = $(NAMED_GUID) {
|
||||||
|
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||||
|
PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.DXE_CORE]
|
||||||
|
FILE DXE_CORE = $(NAMED_GUID) {
|
||||||
|
COMPRESS PI_STD {
|
||||||
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_DRIVER]
|
||||||
|
FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||||
|
COMPRESS PI_STD {
|
||||||
|
GUIDED {
|
||||||
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.DXE_DRIVER]
|
||||||
|
FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||||
|
COMPRESS PI_STD {
|
||||||
|
GUIDED {
|
||||||
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.DXE_RUNTIME_DRIVER]
|
||||||
|
FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
|
||||||
|
COMPRESS PI_STD {
|
||||||
|
GUIDED {
|
||||||
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_APPLICATION]
|
||||||
|
FILE APPLICATION = $(NAMED_GUID) {
|
||||||
|
COMPRESS PI_STD {
|
||||||
|
GUIDED {
|
||||||
|
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_DRIVER.BINARY]
|
||||||
|
FILE DRIVER = $(NAMED_GUID) {
|
||||||
|
DXE_DEPEX DXE_DEPEX Optional |.depex
|
||||||
|
PE32 PE32 |.efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
||||||
|
[Rule.Common.UEFI_APPLICATION.BINARY]
|
||||||
|
FILE APPLICATION = $(NAMED_GUID) {
|
||||||
|
PE32 PE32 |.efi
|
||||||
|
UI STRING="$(MODULE_NAME)" Optional
|
||||||
|
VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
|
||||||
|
}
|
||||||
|
|
@ -152,13 +152,13 @@
|
|||||||
showTypeColumn = 0;
|
showTypeColumn = 0;
|
||||||
sourceDirectories = (
|
sourceDirectories = (
|
||||||
);
|
);
|
||||||
startupPath = ../../../Build/Unix/DEBUG_XCODE32/X64;
|
startupPath = ../../../Build/UnixX64/DEBUG_XCODE32/X64;
|
||||||
};
|
};
|
||||||
BA11A1020FB10BCE00D06FEC /* SecMain.dll */ = {
|
BA11A1020FB10BCE00D06FEC /* SecMain.dll */ = {
|
||||||
isa = PBXFileReference;
|
isa = PBXFileReference;
|
||||||
lastKnownFileType = "compiled.mach-o.executable";
|
lastKnownFileType = "compiled.mach-o.executable";
|
||||||
name = SecMain.dll;
|
name = SecMain.dll;
|
||||||
path = ../../../Build/Unix/DEBUG_XCODE32/X64/SecMain;
|
path = ../../../Build/UnixX64/DEBUG_XCODE32/X64/SecMain;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
BA11A11A0FB10E0700D06FEC /* SecGdbScriptBreak */ = {
|
BA11A11A0FB10E0700D06FEC /* SecGdbScriptBreak */ = {
|
||||||
|
@ -100,7 +100,7 @@ done
|
|||||||
echo $PATH
|
echo $PATH
|
||||||
echo `which build`
|
echo `which build`
|
||||||
# Uncomment this if you want to build the shell.
|
# Uncomment this if you want to build the shell.
|
||||||
#build -p $WORKSPACE/EdkShellPkg/EdkShellPkg.dsc -a IA32 -t $TARGET_TOOLS $1 $2 $3 $4 $5 $6 $7 $8
|
#build -p $WORKSPACE/GccShellPkg/GccShellPkg.dsc -a IA32 -t $TARGET_TOOLS -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||||
build -p $WORKSPACE/UnixPkg/UnixPkg.dsc -a IA32 -t $TARGET_TOOLS $1 $2 $3 $4 $5 $6 $7 $8
|
build -p $WORKSPACE/UnixPkg/UnixPkg.dsc -a IA32 -t $TARGET_TOOLS -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||||
exit $?
|
exit $?
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ case `uname` in
|
|||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
BUILD_ROOT_ARCH=$WORKSPACE/Build/Unix/DEBUG_"$TARGET_TOOLS"/X64
|
BUILD_ROOT_ARCH=$WORKSPACE/Build/UnixX64/DEBUG_"$TARGET_TOOLS"/X64
|
||||||
|
|
||||||
if [[ ! -f `which build` || ! -f `which GenFv` ]];
|
if [[ ! -f `which build` || ! -f `which GenFv` ]];
|
||||||
then
|
then
|
||||||
@ -80,7 +80,7 @@ do
|
|||||||
# This .gdbinit script sets a breakpoint that loads symbols for the PE/COFFEE
|
# This .gdbinit script sets a breakpoint that loads symbols for the PE/COFFEE
|
||||||
# images that get loaded in SecMain
|
# images that get loaded in SecMain
|
||||||
#
|
#
|
||||||
cp $WORKSPACE/UnixPkg/.gdbinit $WORKSPACE/Build/Unix/DEBUG_"$TARGET_TOOLS"/X64
|
cp $WORKSPACE/UnixPkg/.gdbinit $WORKSPACE/Build/UnixX64/DEBUG_"$TARGET_TOOLS"/X64
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ done
|
|||||||
echo $PATH
|
echo $PATH
|
||||||
echo `which build`
|
echo `which build`
|
||||||
# Uncomment this if you want to build the shell.
|
# Uncomment this if you want to build the shell.
|
||||||
#build -p $WORKSPACE/EdkShellPkg/EdkShellPkg.dsc -a X64 -t $TARGET_TOOLS $1 $2 $3 $4 $5 $6 $7 $8
|
build -p $WORKSPACE/GccShellPkg/GccShellPkg.dsc -a X64 -t $TARGET_TOOLS -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||||
build -p $WORKSPACE/UnixPkg/UnixPkg.dsc -a X64 -t $TARGET_TOOLS $1 $2 $3 $4 $5 $6 $7 $8
|
build -p $WORKSPACE/UnixPkg/UnixPkgX64.dsc -a X64 -t $TARGET_TOOLS -n 3 $1 $2 $3 $4 $5 $6 $7 $8
|
||||||
exit $?
|
exit $?
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user