Commit Graph

292 Commits

Author SHA1 Message Date
gikidy ebdad7f865 For X64 BASE_LIBRARY_JUMP_BUFFER is 64-bit aligned, not 128-bit aligned, replace movdqa with movdqu.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8508 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-10 09:00:21 +00:00
gikidy 63b65a9e4f Save/Restore xmm6-xmm15 in function setJump/longJump for GAS.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8507 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-10 08:07:37 +00:00
gikidy 9b9641c6d9 Save/Restore xmm6-xmm15 in function setJump/longJump.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8506 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-10 07:14:17 +00:00
klu2 0d654ba433 Need use 32-bit register to hold 32-bit stack address.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8481 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 13:36:09 +00:00
klu2 5a76206190 Need use 32-bit register to hold 32-bit stack address.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8480 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 13:31:58 +00:00
klu2 2e56bb155b Fix the bug that if code is run above 4G, AsmDisablePaging64 will be failed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8479 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 11:50:39 +00:00
klu2 ce4c0e31b0 Fix the bug that if code is run above 4G, AsmDisablePaging64 will be failure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8478 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 11:21:48 +00:00
xli24 287f4f47b4 Add ASSERT check for AsmFlushCacheRange().
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8465 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-04 14:29:12 +00:00
qhuang8 2561f56540 1. Fix the bug that we should use rip relative addressing for x64 label to prevent GNU assembly generate incorrect code.
2. Sync the bug fix of MS assembly in r8455.
3. Correct the function prototype in comments.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8456 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-03 08:15:18 +00:00
qhuang8 1a76fbef84 Save label "@F" to 64-bit register (r10) instead of 32-bit register (eax) in case label @F is above 4G.
Use "far retq" to load CS and 64-bit rip instead.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8455 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-03 08:11:34 +00:00
qhuang8 d48e8b0afa Use rip relative addressing for x64 label for Thunk16.S to prevent GCC assembly from generating 32-bit value with HIGHLOW fixup.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8444 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-02 23:40:06 +00:00
qhuang8 a81c3daf0a Correct one minor instruction to clear the lower 4 bits of r11.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8391 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 12:04:46 +00:00
qhuang8 a148780114 Fix the bug in x64 thunk code that it cannot handle the case when GDT is loaded in above 4G table memory.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8390 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-26 11:41:12 +00:00
xli24 132f41f0a9 Replace .globl with ASM_GLOBAL
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8346 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 10:22:09 +00:00
xli24 d5172f911d 1. Remove .extern from GCC assembly.
2. Define macro for .global/.globl in GCC assembly.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8344 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-20 09:42:59 +00:00
rsun3 faeb3214d4 Fix the implementation of AsciiStrStr() and StrStr() in MdePkg. If the length of SearchString is zero, then String is returned.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8297 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-12 03:33:34 +00:00
rsun3 62e71e2fbe Fix bugs in StrStr() and AsciiStrStr().
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8261 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-08 05:22:17 +00:00
klu2 8243b089ab Update function comments for AsmPrepareThunk16, AsmThunk16, AsmPrepareAndThunk16 interface. These interfaces could be used in either physical mode or virtual modes with paging enabled where virtual to physical mappings for ThunkContext.RealModeBuffer is mapped to 1:1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8231 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-04 03:33:53 +00:00
klu2 d1be17ab87 Add checking for ThunkAttribute to avoid THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL and THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 are set at same time.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8230 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-04 03:00:08 +00:00
qhuang8 744e71a3bf Fix the bug that EnablePaging64() should assert() for x64 platform.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8223 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-30 07:17:52 +00:00
klu2 52fa075c38 Add limitation clarification for usage of AsmPrepareThunk16(), AsmThunk16(), AsmPrepareAndThunk16() interfaces that they are could only be used in physical mode but can not be used in virtual mode with paging.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8202 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-29 06:23:35 +00:00
eric_tian 53e9661036 update string function comment to clear the semantic meaning.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8153 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-23 03:11:45 +00:00
qhuang8 0fe43214e3 Save segment registers on stack in case the thunk code assembly calls CF9 soft reset and the x64 registers get cleared.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8123 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-17 07:38:57 +00:00
jljusten c9268416b9 Fix some build issues encountered with ELFGCC.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8060 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-10 20:58:07 +00:00
eric_tian dfbe9de95f add assertion condition to satisfy the requirement in MdePkg library spec 0.61p
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8033 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-07 09:14:33 +00:00
qhuang8 ff565d71e1 Remove incorrect assertion. According to spec, it should not assert and should return 0.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7853 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-10 13:58:52 +00:00
xli24 053b13f296 Fix the error that part of instructions of AsmWriteIva() is not included into the function body.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7751 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-02 03:54:47 +00:00
qhuang8 440ceebd78 Clean up to remove unreferenced data structure
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7599 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-23 07:04:13 +00:00
lgao4 9e5acfd583 Change style 0 == Index to Index == 0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7493 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-10 13:17:51 +00:00
mdkinney bbc3c2d526 Split out Synchronization Library from Base Library
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7378 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-30 00:47:57 +00:00
mdkinney 720d3c5fb3 Split out Synchronization Library from Base Library
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7377 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-30 00:45:13 +00:00
xli24 63d7211ebc Fix the bug that EntryPoint of DisablePaging64() is corrupted.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7250 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-13 04:20:22 +00:00
gikidy 34b0820ec6 INF file verified, and Coding Style reviewed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7232 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-09 07:23:31 +00:00
vanjeff 0a6c0fd563 Update function header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7210 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-08 08:20:28 +00:00
qhuang8 373ade0eb6 Update copyright for files modified in this year
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7148 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-29 14:07:07 +00:00
qhuang8 6446db6e74 Update to use Dos format for all .s files
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7087 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-22 12:47:53 +00:00
qhuang8 4e16d2cd28 Add AccessMsrDb.s for MSFT tool chain. It uses raw data to represent instructions "mov msr[]=" and "mov =msr[]", which is only supported by INTEL & GCC tool chain.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7069 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-17 09:58:39 +00:00
qhuang8 59e0bb0cbd 1. Simplify the implementation of AsmReadApplicationRegister() & AsmReadControlRegister() for IPF architecture.
2. Add AsmReadMsr() & AsmWriteMsr() for IPF architecture
3. update AsmCpuMisc.s to only support GCC tool chain to avoid symbol collision.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7034 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-15 15:51:43 +00:00
gikidy 77f863ee03 Fix some typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7007 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-12 05:54:07 +00:00
gikidy efb2311707 Synchronize MdePkg h files to Library/Base* c files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6984 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-11 04:45:23 +00:00
gikidy 2fc60b7038 Synchronize BaseLib h files to c files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6983 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-11 02:59:41 +00:00
gikidy 2fe241a290 Synchronize comment of BaseLib.h and it's implementation to match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6929 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-09 07:02:26 +00:00
gikidy 62991af27f Make comments match the Spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6876 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 09:50:02 +00:00
qhuang8 030cd1a2e9 Update the text to use "x64" instead of "X64" in MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6854 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-05 03:23:13 +00:00
gikidy cc39b88baa Change function IpfFlushCacheRange() to AsmFlushCacheRange() follow the Mde_Lib_Spec 0.61k
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6834 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 06:52:09 +00:00
qhuang8 be5f161485 Add AsmEnableCache() and AsmDisableCache() as the IA32 & x64 specific BaseLib API.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6807 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 02:19:49 +00:00
qhuang8 cd2ed84a47 De-Unicode in MdePkg source files.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6794 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-01 14:06:25 +00:00
klu2 891193ee4f Fix the issue that wrong doxygen header comments.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6788 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-01 07:34:29 +00:00
lgao4 ac7e320cb8 Remove NibbleToHexChar() function from BaseLib
Move IsHexDigit, BufToHexString, HexStringToBuf from BaseLib to MdeModulePkg IfrSupportLib. The reason is:
1) IsHexDigit function provides the logic to check Hex Digit and convert it to Decimal value, which is required by IScsi LUN and HII user input. But this logic is not provided by any functions in MdeLib. So, it can't be deleted. It is moved to IfrSupportLib.
2) BufToHexString function converts a array of buffers to hex string. If the buffer length is less than sizeof (UINT64), it can be directly replaced by UnicodeValueToString(). But HII modules may use BufToHexString to convert the buffers whose length > sizeof (UINT64). For example:
.\MdeModulePkg\Universal\HiiDatabaseDxe\ConfigRouting.c line 201, 1148
.\Universal\SetupBrowserDxe\Setup.c line line 1457, 1503
Like this case, it is not easy to use UnicodeValueToString to replace BufToHexString. So, BufToHexString is still kept. Because such usages are in HII modules, this function is moved to IfrSupportLib. 
3) HexStringToBuf is moved to IfrSupportLib. The reason is similar to BufToHexString.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6782 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-01 02:32:12 +00:00
qhuang8 aad6137d5c 1. Removal PalCallStatic API
2. Two two new ReadApplicationRegister.c(), ReadControlRegister.c() API together with its related definitions in BaseLib.h
3. Remove prototype of AsmSwitchStackAndBackingStore() in public BaseLib.h, it is supposed to be a worker function for AsmSwitchStack()

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6757 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-27 06:48:03 +00:00