[edk2-devel] [edk2-platforms][PATCH V3 02/16] Platform/Loongson: Support SEC And Add Readme.md
Add SEC Code And Readme.md for LoongArchQemu REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4054 Signed-off-by: xianglai li --- Maintainers.txt | 4 + .../Include/LoongArchAsmMacro.h | 23 + .../Loongson/LoongArchQemuPkg/Loongson.dec| 36 ++ .../Loongson/LoongArchQemuPkg/Loongson.dsc| 131 + .../Loongson/LoongArchQemuPkg/Loongson.fdf| 53 ++ .../LoongArchQemuPkg/Loongson.fdf.inc | 21 + Platform/Loongson/LoongArchQemuPkg/Readme.md | 59 ++ .../LoongArchQemuPkg/Sec/LoongArch64/Start.S | 76 +++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.c | 510 ++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.inf | 47 ++ Readme.md | 9 + 11 files changed, 969 insertions(+) create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dec create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dsc create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc create mode 100644 Platform/Loongson/LoongArchQemuPkg/Readme.md create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/LoongArch64/Start.S create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.inf diff --git a/Maintainers.txt b/Maintainers.txt index 700ca0af60..8921d6b4e1 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -329,6 +329,10 @@ M: Bob Feng M: Liming Gao R: Yuwei Chen +Loongson platforms +F: Platform/Loongson/ +M: xianglai li + Marvell platforms and silicon F: Platform/Marvell/ F: Platform/SolidRun/Armada80x0McBin/ diff --git a/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h b/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h new file mode 100644 index 00..366d4308e8 --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h @@ -0,0 +1,23 @@ +/** @file + LoongArch ASM macro definition. + + Copyright (c) 2021, Loongson Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + +#ifndef LOONGARCH_ASM_MACRO_H_ +#define LOONGARCH_ASM_MACRO_H_ + +#include + +#define _ASM_FUNC(Name, Section)\ + .global Name ; \ + .section #Section, "ax"; \ + .type Name, %function ; \ + Name: + +#define ASM_FUNC(Name)_ASM_FUNC(ASM_PFX(Name), .text. ## Name) + +#endif // __LOONGARCH_ASM_MACRO_H__ diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec new file mode 100644 index 00..8cfa63ee8a --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec @@ -0,0 +1,36 @@ +## @file +# +# Copyright (c) 2021 Loongson Technology Corporation Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION = 0x00010005 + PACKAGE_NAME = LoongArchQemuPkg + PACKAGE_GUID = b51d765a-41da-45fc-a537-de3ee785c0f6 + PACKAGE_VERSION= 0.1 + + +# +# Include Section - list of Include Paths that are provided by this package. +# Comments are used for Keywords and Module Types. +# +# Supported Module Types: +# BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION +# + +[Includes.common] + Include# Root include for the package + +[Guids] + gLoongArchQemuPkgTokenSpaceGuid = { 0x0e0383ce, 0x0151, 0x4d01, { 0x80, 0x0e, 0x3f, 0xef, 0x8b, 0x27, 0x6d, 0x52 } } + +[PcdsFixedAtBuild, PcdsDynamic] + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|0x0|UINT64|0x0003 + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize|0x0|UINT32|0x0004 + gLoongArchQemuPkgTokenSpaceGuid.PcdSecPeiTempRamBase|0|UINT64|0x001c + gLoongArchQemuPkgTokenSpaceGuid.PcdSecPeiTempRamSize|0|UINT32|0x001d + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvBase|0x0|UINT64|0x0028 + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvSize|0x0|UINT32|0x0029 diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc new file mode 100644 index 00..52ab11de9a --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc @@ -0,0 +1,131 @@ +## @file +# +# Copyright (c) 2021 Loongson Technology Corporation Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + + +# +# Defines Section - statements that will be processed to create a Ma
[edk2-devel] [edk2-platforms][PATCH V3 02/16] Platform/Loongson: Support SEC And Add Readme.md
Add SEC Code And Readme.md for LoongArchQemu REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4054 Signed-off-by: xianglai li Signed-off-by: xianglai li --- Maintainers.txt | 4 + .../Include/LoongArchAsmMacro.h | 23 + .../Loongson/LoongArchQemuPkg/Loongson.dec| 36 ++ .../Loongson/LoongArchQemuPkg/Loongson.dsc| 131 + .../Loongson/LoongArchQemuPkg/Loongson.fdf| 53 ++ .../LoongArchQemuPkg/Loongson.fdf.inc | 21 + Platform/Loongson/LoongArchQemuPkg/Readme.md | 59 ++ .../LoongArchQemuPkg/Sec/LoongArch64/Start.S | 76 +++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.c | 510 ++ .../Loongson/LoongArchQemuPkg/Sec/SecMain.inf | 47 ++ Readme.md | 9 + 11 files changed, 969 insertions(+) create mode 100644 Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dec create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.dsc create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf create mode 100644 Platform/Loongson/LoongArchQemuPkg/Loongson.fdf.inc create mode 100644 Platform/Loongson/LoongArchQemuPkg/Readme.md create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/LoongArch64/Start.S create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.c create mode 100644 Platform/Loongson/LoongArchQemuPkg/Sec/SecMain.inf diff --git a/Maintainers.txt b/Maintainers.txt index 700ca0af60..8921d6b4e1 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -329,6 +329,10 @@ M: Bob Feng M: Liming Gao R: Yuwei Chen +Loongson platforms +F: Platform/Loongson/ +M: xianglai li + Marvell platforms and silicon F: Platform/Marvell/ F: Platform/SolidRun/Armada80x0McBin/ diff --git a/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h b/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h new file mode 100644 index 00..366d4308e8 --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Include/LoongArchAsmMacro.h @@ -0,0 +1,23 @@ +/** @file + LoongArch ASM macro definition. + + Copyright (c) 2021, Loongson Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + + **/ + +#ifndef LOONGARCH_ASM_MACRO_H_ +#define LOONGARCH_ASM_MACRO_H_ + +#include + +#define _ASM_FUNC(Name, Section)\ + .global Name ; \ + .section #Section, "ax"; \ + .type Name, %function ; \ + Name: + +#define ASM_FUNC(Name)_ASM_FUNC(ASM_PFX(Name), .text. ## Name) + +#endif // __LOONGARCH_ASM_MACRO_H__ diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dec b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec new file mode 100644 index 00..8cfa63ee8a --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dec @@ -0,0 +1,36 @@ +## @file +# +# Copyright (c) 2021 Loongson Technology Corporation Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION = 0x00010005 + PACKAGE_NAME = LoongArchQemuPkg + PACKAGE_GUID = b51d765a-41da-45fc-a537-de3ee785c0f6 + PACKAGE_VERSION= 0.1 + + +# +# Include Section - list of Include Paths that are provided by this package. +# Comments are used for Keywords and Module Types. +# +# Supported Module Types: +# BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION +# + +[Includes.common] + Include# Root include for the package + +[Guids] + gLoongArchQemuPkgTokenSpaceGuid = { 0x0e0383ce, 0x0151, 0x4d01, { 0x80, 0x0e, 0x3f, 0xef, 0x8b, 0x27, 0x6d, 0x52 } } + +[PcdsFixedAtBuild, PcdsDynamic] + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvBase|0x0|UINT64|0x0003 + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashPeiFvSize|0x0|UINT32|0x0004 + gLoongArchQemuPkgTokenSpaceGuid.PcdSecPeiTempRamBase|0|UINT64|0x001c + gLoongArchQemuPkgTokenSpaceGuid.PcdSecPeiTempRamSize|0|UINT32|0x001d + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvBase|0x0|UINT64|0x0028 + gLoongArchQemuPkgTokenSpaceGuid.PcdFlashSecFvSize|0x0|UINT32|0x0029 diff --git a/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc new file mode 100644 index 00..52ab11de9a --- /dev/null +++ b/Platform/Loongson/LoongArchQemuPkg/Loongson.dsc @@ -0,0 +1,131 @@ +## @file +# +# Copyright (c) 2021 Loongson Technology Corporation Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + + +# +# Defines Section - statements that will