Initial import.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
bbahnsen
2006-04-21 22:54:32 +00:00
commit 878ddf1fc3
2651 changed files with 624620 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<LibraryModuleBuildDescription xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
<MbdLibHeader>
<BaseName>BaseCacheMaintenanceLib</BaseName>
<Guid>123dd843-57c9-4158-8418-ce68b3944ce7</Guid>
<Version>0</Version>
<Description>FIX ME!</Description>
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
<License>
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.
</License>
<Created>2006-03-09 23:16</Created>
<Modified>2006-03-19 15:17</Modified>
</MbdLibHeader>
</LibraryModuleBuildDescription>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<LibraryModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://nwlxweb02.jf.intel.com/2006/Edk2.0/SurfaceArea.xsd">
<MsaLibHeader>
<BaseName>BaseCacheMaintenanceLib</BaseName>
<ModuleType>BASE</ModuleType>
<ComponentType>LIBRARY</ComponentType>
<Guid>123dd843-57c9-4158-8418-ce68b3944ce7</Guid>
<Version>0</Version>
<Abstract>Library Dependencies:BaseLib</Abstract>
<Description>FIX ME!</Description>
<Copyright>Copyright (c) 2006, Intel Corporation</Copyright>
<License>
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.
</License>
<Specification>0</Specification>
<Created>2006-03-09 23:16</Created>
<Updated>2006-03-19 15:17</Updated>
</MsaLibHeader>
<LibraryClassDefinitions>
<LibraryClass Usage="ALWAYS_PRODUCED">CacheMaintenanceLib</LibraryClass>
<LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>
</LibraryClassDefinitions>
<SourceFiles>
<Arch ArchType="IA32">
<Filename>x86Cache.c</Filename>
</Arch>
<Arch ArchType="X64">
<Filename>x86Cache.c</Filename>
</Arch>
<Arch ArchType="EBC">
<Filename>EbcCache.c</Filename>
</Arch>
<Arch ArchType="IPF">
<Filename>IpfCache.c</Filename>
<Filename>Ipf/Cpu.s</Filename>
<Filename>Ipf/CallPalProc.s</Filename>
</Arch>
</SourceFiles>
<Includes>
<PackageName>MdePkg</PackageName>
</Includes>
</LibraryModuleSurfaceArea>

View File

@@ -0,0 +1,85 @@
/** @file
Cache Maintenance Functions.
Copyright (c) 2006, Intel Corporation<BR>
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.
**/
VOID
EFIAPI
InvalidateInstructionCache (
VOID
)
{
}
VOID *
EFIAPI
InvalidateInstructionCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}
VOID
EFIAPI
WriteBackInvalidateDataCache (
VOID
)
{
}
VOID *
EFIAPI
WriteBackInvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}
VOID
EFIAPI
WriteBackDataCache (
VOID
)
{
}
VOID *
EFIAPI
WriteBackDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}
VOID
EFIAPI
InvalidateDataCache (
VOID
)
{
}
VOID *
EFIAPI
InvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}

View File

@@ -0,0 +1,38 @@
/// @file
/// Contains an implementation of CallPalProcStatic on Itanium-based
/// architecture.
///
/// Copyright (c) 2006, Intel Corporation
/// All rights reserved. This program and the accompanying materials
/// are licensed and made available under the terms and conditions of the BSD License
/// which accompanies this distribution. The full text of the license may be found at
/// http://opensource.org/licenses/bsd-license.php
///
/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
///
/// Module Name: CallPalProc.s
///
///
.auto
.text
.proc CallPalProcStatic
.type CallPalProcStatic, @function
CallPalProcStatic::
mov r9 = ar.k5
mov r8 = ip
add r8 = (PalProcReturn - CallPalProcStatic), r8
mov r28 = r32
mov b7 = r9
mov r29 = r33
mov r30 = r34
mov r31 = r35
mov r32 = b0
mov b0 = r8
br.sptk b7
PalProcReturn:
mov b0 = r32
br.ret.sptk.many b0
.endp CallPalProcStatic

View File

@@ -0,0 +1,106 @@
//++
// Copyright (c) 2006, Intel Corporation
// All rights reserved. This program and the accompanying materials
// are licensed and made available under the terms and conditions of the BSD License
// which accompanies this distribution. The full text of the license may be found at
// http://opensource.org/licenses/bsd-license.php
//
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// Module Name:
//
// Cpu.s
//
// Abstract:
//
//
// Revision History:
//
//--
.file "Cpu.s"
.radix D
.section .text, "ax", "progbits"
.align 32
.section .pdata, "a", "progbits"
.align 4
.section .xdata, "a", "progbits"
.align 8
.section .data, "wa", "progbits"
.align 16
.section .rdata, "a", "progbits"
.align 16
.section .bss, "wa", "nobits"
.align 16
.section .tls$, "was", "progbits"
.align 16
.section .sdata, "was", "progbits"
.align 16
.section .sbss, "was", "nobits"
.align 16
.section .srdata, "as", "progbits"
.align 16
.section .rdata, "a", "progbits"
.align 16
.section .rtcode, "ax", "progbits"
.align 32
.type InvalidateInstructionCacheRange# ,@function
.global InvalidateInstructionCacheRange#
// Function compile flags: /Ogsy
.section .rtcode
// Begin code for function: InvalidateInstructionCacheRange:
.proc InvalidateInstructionCacheRange#
.align 32
InvalidateInstructionCacheRange:
// File e:\tmp\pioflush.c
{ .mii //R-Addr: 0X00
alloc r3=2, 0, 0, 0 //11, 00000002H
cmp4.leu p0,p6=32, r33;; //15, 00000020H
(p6) mov r33=32;; //16, 00000020H
}
{ .mii //R-Addr: 0X010
nop.m 0
zxt4 r29=r33;; //21
dep.z r30=r29, 0, 5;; //21, 00000005H
}
{ .mii //R-Addr: 0X020
cmp4.eq p0,p7=r0, r30 //21
shr.u r28=r29, 5;; //19, 00000005H
(p7) adds r28=1, r28;; //22, 00000001H
}
{ .mii //R-Addr: 0X030
nop.m 0
shl r27=r28, 5;; //25, 00000005H
zxt4 r26=r27;; //25
}
{ .mfb //R-Addr: 0X040
add r31=r26, r32 //25
nop.f 0
nop.b 0
}
$L143:
{ .mii //R-Addr: 0X050
fc r32 //27
adds r32=32, r32;; //28, 00000020H
cmp.ltu p14,p15=r32, r31 //29
}
{ .mfb //R-Addr: 0X060
nop.m 0
nop.f 0
(p14) br.cond.dptk.few $L143#;; //29, 880000/120000
}
{ .mmi
sync.i;;
srlz.i
nop.i 0;;
}
{ .mfb //R-Addr: 0X070
nop.m 0
nop.f 0
br.ret.sptk.few b0;; //31
}
// End code for function:
.endp InvalidateInstructionCacheRange#
// END

View File

@@ -0,0 +1,95 @@
/** @file
Cache Maintenance Functions.
Copyright (c) 2006, Intel Corporation<BR>
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.
**/
typedef struct {
UINT64 Status;
UINT64 r9;
UINT64 r10;
UINT64 r11;
} PAL_PROC_RETURN;
PAL_PROC_RETURN
CallPalProcStatic (
IN UINT64 Arg1,
IN UINT64 Arg2,
IN UINT64 Arg3,
IN UINT64 Arg4
);
VOID
EFIAPI
InvalidateInstructionCache (
VOID
)
{
CallPalProcStatic (1, 1, 1, 0);
}
VOID
EFIAPI
WriteBackInvalidateDataCache (
VOID
)
{
CallPalProcStatic (1, 2, 1, 0);
}
VOID *
EFIAPI
WriteBackInvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
WriteBackInvalidateDataCache ();
return Address;
}
VOID
EFIAPI
WriteBackDataCache (
VOID
)
{
CallPalProcStatic (1, 2, 0, 0);
}
VOID *
EFIAPI
WriteBackDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
WriteBackDataCache ();
return Address;
}
VOID
EFIAPI
InvalidateDataCache (
VOID
)
{
}
VOID *
EFIAPI
InvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?><!-- Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
<project basedir="." default="BaseCacheMaintenanceLib"><!--Apply external ANT tasks-->
<taskdef resource="GenBuild.tasks"/>
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<property environment="env"/>
<property name="WORKSPACE_DIR" value="${env.WORKSPACE}"/>
<import file="${WORKSPACE_DIR}\Tools\Conf\BuildMacro.xml"/><!--MODULE_RELATIVE PATH is relative to PACKAGE_DIR-->
<property name="MODULE_RELATIVE_PATH" value="Library\BaseCacheMaintenanceLib"/>
<property name="MODULE_DIR" value="${PACKAGE_DIR}\${MODULE_RELATIVE_PATH}"/>
<property name="COMMON_FILE" value="${WORKSPACE_DIR}\Tools\Conf\Common.xml"/>
<target name="BaseCacheMaintenanceLib">
<GenBuild baseName="BaseCacheMaintenanceLib" mbdFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.mbd" msaFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.msa"/>
</target>
<target depends="BaseCacheMaintenanceLib_clean" name="clean"/>
<target depends="BaseCacheMaintenanceLib_cleanall" name="cleanall"/>
<target name="BaseCacheMaintenanceLib_clean">
<OutputDirSetup baseName="BaseCacheMaintenanceLib" mbdFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.mbd" msaFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.msa"/>
<if>
<available file="${DEST_DIR_OUTPUT}\BaseCacheMaintenanceLib_build.xml"/>
<then>
<ant antfile="${DEST_DIR_OUTPUT}\BaseCacheMaintenanceLib_build.xml" target="clean"/>
</then>
</if>
<delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
</target>
<target name="BaseCacheMaintenanceLib_cleanall">
<OutputDirSetup baseName="BaseCacheMaintenanceLib" mbdFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.mbd" msaFilename="${MODULE_DIR}\BaseCacheMaintenanceLib.msa"/>
<if>
<available file="${DEST_DIR_OUTPUT}\BaseCacheMaintenanceLib_build.xml"/>
<then>
<ant antfile="${DEST_DIR_OUTPUT}\BaseCacheMaintenanceLib_build.xml" target="cleanall"/>
</then>
</if>
<delete dir="${DEST_DIR_OUTPUT}"/>
<delete dir="${DEST_DIR_DEBUG}"/>
<delete>
<fileset dir="${BIN_DIR}" includes="**BaseCacheMaintenanceLib*"/>
</delete>
</target>
</project>

View File

@@ -0,0 +1,95 @@
/** @file
Cache Maintenance Functions.
Copyright (c) 2006, Intel Corporation<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: x86Cache.c
**/
VOID
EFIAPI
InvalidateInstructionCache (
VOID
)
{
return;
}
VOID *
EFIAPI
InvalidateInstructionCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}
VOID
EFIAPI
WriteBackInvalidateDataCache (
VOID
)
{
AsmWbinvd ();
}
VOID *
EFIAPI
WriteBackInvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
if (Length != 0) {
AsmWbinvd ();
}
return Address;
}
VOID
EFIAPI
WriteBackDataCache (
VOID
)
{
AsmWbinvd ();
}
VOID *
EFIAPI
WriteBackDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
AsmWbinvd ();
return Address;
}
VOID
EFIAPI
InvalidateDataCache (
VOID
)
{
AsmInvd ();
}
VOID *
EFIAPI
InvalidateDataCacheRange (
IN VOID *Address,
IN UINTN Length
)
{
return Address;
}