Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to Project Mu #93

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Handle line endings automatically for files detected as text
# and leave all files detected as binary untouched.
* text=auto
*.sh eol=lf
50 changes: 50 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## @file
# Dependabot configuration file to enable GitHub services for managing and updating
# dependencies.
#
# This dependabot file is limited to syncing the following type of dependencies. Other files
# are already available in Mu DevOps to sync other dependency types.
# - GitHub Actions (`github-actions`)
# - Git Submodules (`gitsubmodule`)
# - Python PIP Modules (`pip`)
#
# - Mu DevOps Repo: https://github.com/microsoft/mu_devops
# - File Sync Settings: https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
# Please see the documentation for all dependabot configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
##

version: 2

updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
commit-message:
prefix: "GitHub Action"
labels:
- "type:dependencies"

- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
labels:
- "type:submodules"
- "type:dependencies"

- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
commit-message:
prefix: "pip"
labels:
- "language:python"
- "type:dependencies"
31 changes: 13 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
# Dynamic Generated
Driver/SmBiosTableDxe/ReleaseInfo.h
Application/BdsMenuApp/ReleaseInfo.h
Include/Resources/ReleaseInfo.h
Platforms/Lumia950Pkg/Include/Resources/ReleaseInfo.h
Platforms/Lumia950XLPkg/Include/Resources/ReleaseInfo.h

# Local
.DS_Store
.vs
.vscode

# Variable Services: Defer
Driver/BlockRamVariableDxe
Driver/FaultTolerantWriteDxe
Driver/VariableRuntimeDxe
Library/BlockRamVariableLib

# USB: Defer
Driver/UsbTypeCDxe

# RTC: Defer
Library/QcomPmicRealTimeClockLib
/Build/
.DS_Store
*_extdep/
*.pyc
__pycache__/
tags/
.vscode/
*.bak
BuildConfig.conf

# SSDT
AcpiTables/8992/generated
AcpiTables/8994/generated
AcpiTables/Hapanero/generated
/Conf/
/Lumia/
26 changes: 26 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[submodule "MU_BASECORE"]
path = MU_BASECORE
url = https://github.com/microsoft/mu_basecore.git
branch = release/202208
[submodule "Common/MU_TIANO"]
path = Common/MU_TIANO
url = https://github.com/microsoft/mu_tiano_plus.git
branch = release/202208
[submodule "Common/MU"]
path = Common/MU
url = https://github.com/microsoft/mu_plus.git
branch = release/202208
[submodule "Common/MU_OEM_SAMPLE"]
path = Common/MU_OEM_SAMPLE
url = https://github.com/microsoft/mu_oem_sample.git
branch = release/202208
[submodule "Silicon/Arm/MU_TIANO"]
path = Silicon/Arm/MU_TIANO
url = https://github.com/microsoft/mu_silicon_arm_tiano.git
branch = release/202208
[submodule "Features/DFCI"]
path = Features/DFCI
url = https://github.com/microsoft/mu_feature_dfci
[submodule "Features/CONFIG"]
path = Features/CONFIG
url = https://github.com/microsoft/mu_feature_config.git
182 changes: 182 additions & 0 deletions .pytool/CISettings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# @file
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
import os
import logging
import io
from edk2toolext.environment import shell_environment
from edk2toolext.invocables.edk2_ci_build import CiBuildSettingsManager
from edk2toolext.invocables.edk2_ci_setup import CiSetupSettingsManager
from edk2toolext.invocables.edk2_setup import SetupSettingsManager, RequiredSubmodule
from edk2toolext.invocables.edk2_update import UpdateSettingsManager
from edk2toolext.invocables.edk2_pr_eval import PrEvalSettingsManager
from edk2toollib.utility_functions import GetHostInfo,RunCmd


class Settings(CiSetupSettingsManager, CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManager, PrEvalSettingsManager):

def __init__(self):
self.ActualPackages = []
self.ActualTargets = []
self.ActualArchitectures = []
self.ActualToolChainTag = ""

# ####################################################################################### #
# Extra CmdLine configuration #
# ####################################################################################### #

def AddCommandLineOptions(self, parserObj):
pass

def RetrieveCommandLineOptions(self, args):
pass

# ####################################################################################### #
# Default Support for this Ci Build #
# ####################################################################################### #

def GetPackagesSupported(self):
''' return iterable of edk2 packages supported by this build.
These should be edk2 workspace relative paths '''

return ("Lumia950Pkg","Lumia950XLPkg")

def GetArchitecturesSupported(self):
''' return iterable of edk2 architectures supported by this build '''
return ("AARCH64")

def GetTargetsSupported(self):
''' return iterable of edk2 target tags supported by this build '''
return ("DEBUG", "RELEASE", "NO-TARGET", "NOOPT")

# ####################################################################################### #
# Verify and Save requested Ci Build Config #
# ####################################################################################### #

def SetPackages(self, list_of_requested_packages):
''' Confirm the requested package list is valid and configure SettingsManager
to build the requested packages.

Raise UnsupportedException if a requested_package is not supported
'''
unsupported = set(list_of_requested_packages) - \
set(self.GetPackagesSupported())
if(len(unsupported) > 0):
logging.critical(
"Unsupported Package Requested: " + " ".join(unsupported))
raise Exception("Unsupported Package Requested: " +
" ".join(unsupported))
self.ActualPackages = list_of_requested_packages

def SetArchitectures(self, list_of_requested_architectures):
''' Confirm the requests architecture list is valid and configure SettingsManager
to run only the requested architectures.

Raise Exception if a list_of_requested_architectures is not supported
'''
unsupported = set(list_of_requested_architectures) - \
set(self.GetArchitecturesSupported())
if(len(unsupported) > 0):
logging.critical(
"Unsupported Architecture Requested: " + " ".join(unsupported))
raise Exception(
"Unsupported Architecture Requested: " + " ".join(unsupported))
self.ActualArchitectures = list_of_requested_architectures

def SetTargets(self, list_of_requested_target):
''' Confirm the request target list is valid and configure SettingsManager
to run only the requested targets.

Raise UnsupportedException if a requested_target is not supported
'''
unsupported = set(list_of_requested_target) - \
set(self.GetTargetsSupported())
if(len(unsupported) > 0):
logging.critical(
"Unsupported Targets Requested: " + " ".join(unsupported))
raise Exception("Unsupported Targets Requested: " +
" ".join(unsupported))
self.ActualTargets = list_of_requested_target

# ####################################################################################### #
# Actual Configuration for Ci Build #
# ####################################################################################### #

def GetActiveScopes(self):
''' return tuple containing scopes that should be active for this process '''
scopes = ("cibuild", "edk2-build", "host-based-test")

self.ActualToolChainTag = shell_environment.GetBuildVars().GetValue("TOOL_CHAIN_TAG", "")

if GetHostInfo().os.upper() == "LINUX" and self.ActualToolChainTag.upper().startswith("GCC"):
if "AARCH64" in self.ActualArchitectures:
scopes += ("gcc_aarch64_linux",)
if "ARM" in self.ActualArchitectures:
scopes += ("gcc_arm_linux",)
if "RISCV64" in self.ActualArchitectures:
scopes += ("gcc_riscv64_unknown",)

return scopes

def GetRequiredSubmodules(self):
''' return iterable containing RequiredSubmodule objects.
If no RequiredSubmodules return an empty iterable
'''
rs = []

# To avoid maintenance of this file for every new submodule
# lets just parse the .gitmodules and add each if not already in list.
# The GetRequiredSubmodules is designed to allow a build to optimize
# the desired submodules but it isn't necessary for this repository.
result = io.StringIO()
ret = RunCmd("git", "config --file .gitmodules --get-regexp path",
workingdir=self.GetWorkspaceRoot(), outstream=result)
# Cmd output is expected to look like:
# submodule.CryptoPkg/Library/OpensslLib/openssl.path CryptoPkg/Library/OpensslLib/openssl
# submodule.SoftFloat.path ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3
if ret == 0:
for line in result.getvalue().splitlines():
_, _, path = line.partition(" ")
if path is not None:
if path not in [x.path for x in rs]:
# add it with recursive since we don't know
rs.append(RequiredSubmodule(path, True))
return rs

def GetName(self):
return "Lumia950XLPkg"

def GetDependencies(self):
''' Return Git Repository Dependencies

Return an iterable of dictionary objects with the following fields
{
Path: <required> Workspace relative path
Url: <required> Url of git repo
Commit: <optional> Commit to checkout of repo
Branch: <optional> Branch to checkout (will checkout most recent commit in branch)
Full: <optional> Boolean to do shallow or Full checkout. (default is False)
ReferencePath: <optional> Workspace relative path to git repo to use as "reference"
}
'''
return []

def GetPackagesPath(self):
''' Return a list of workspace relative paths that should be mapped as edk2 PackagesPath '''

# Include all submodule paths
result = ["Platforms"]
for submodule in self.GetRequiredSubmodules():
result.append(submodule.path)

return result

def GetWorkspaceRoot(self):
''' get WorkspacePath '''
return os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

def FilterPackagesToTest(self, changedFilesList: list, potentialPackagesList: list) -> list:
''' Filter potential packages to test based on changed files. '''
return []
1 change: 1 addition & 0 deletions Common/MU
Submodule MU added at ed5ff8
1 change: 1 addition & 0 deletions Common/MU_OEM_SAMPLE
Submodule MU_OEM_SAMPLE added at f273f5
1 change: 1 addition & 0 deletions Common/MU_TIANO
Submodule MU_TIANO added at a2e6e2
1 change: 1 addition & 0 deletions Features/CONFIG
Submodule CONFIG added at b53666
1 change: 1 addition & 0 deletions Features/DFCI
Submodule DFCI added at 3bfb66
18 changes: 9 additions & 9 deletions FvWrapper.ld → ImageResources/FvWrapper.ld
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
ENTRY(_start);
SECTIONS
{
_start = 0x00200000;
. = 0x00200000;
.data : {
*(.data)
}
ENTRY(_start);

SECTIONS
{
_start = 0x00200000;
. = 0x00200000;
.data : {
*(.data)
}
}
45 changes: 0 additions & 45 deletions Include/Configuration/BootDevices.h

This file was deleted.

10 changes: 0 additions & 10 deletions Include/Resources/ReleaseStampStub.h

This file was deleted.

Loading