

	List of maintainers and how to submit coreboot changes

Please try to follow the guidelines below.  This will make things
easier on the maintainers.  Not all of these guidelines matter for every
trivial patch so apply some common sense.

1.	Always _test_ your changes, however small, on at least 1 or
	2 people, preferably many more.

2.	Try to release a few ALPHA test versions to gerrit. Announce
	them onto the coreboot mailing list and IRC channel and await
	results. This is especially important on coreboot core changes,
	but also for device drivers, because often that's the only way
	you will find things like the fact revision 3 chipset needs
	a magic fix you didn't know about, or some clown changed the
	chips on a board and not its name.  (Don't laugh!)

3.	Make sure your changes compile correctly in multiple
	configurations. In particular check that changes work for all
	boards in the tree (use abuild!)

4.	When you are happy with a change make it generally available for
	testing in gerrit and await feedback.

5.	Make your patch available through coreboot's gerrit code review
	system, and add the relevant maintainer from this list as a code
	reviewer. Be prepared to get your changes sent back with seemingly
	silly requests about formatting and variable names.  These aren't
	as silly as they seem. One job the maintainers do is to keep
	things looking the same.  Sometimes this means that the clever
	hack in your mainboard or chipset to get around a problem actually
	needs to become a generalized coreboot feature ready for next time.

	PLEASE check your patch with the automated style checker
	(util/lint/checkpatch.pl) to catch trival style violations.
	See https://www.coreboot.org/Coding_Style for guidance here.

	PLEASE add the maintainers that are generated by
	util/scripts/get_maintainer.pl as reviewers.  The results returned
	by the script will be best if you have git installed and are
	making your changes in a branch derived from coreboot.org's latest
	git tree.

	PLEASE try to include any credit lines you want added with the
	patch. It avoids people being missed off by mistake and makes
	it easier to know who wants adding and who doesn't.

	PLEASE document known bugs. If it doesn't work for everything
	or does something very odd once a month document it.

	PLEASE remember that submissions must be made under the terms
	of the OSDL certificate of contribution and should include a
	Signed-off-by: line.  The current version of this "Developer's
	Certificate of Origin" (DCO) is listed at
	https://www.coreboot.org/Development_Guidelines#Sign-off_Procedure.

6.	Make sure you have the right to send any changes you make. If you
	do changes at work you may find your employer owns the patch
	not you.

7.	Happy hacking.

Descriptions of section entries:

	M: Maintainer: FullName <address@domain>
	R: Designated reviewer: FullName <address@domain>
	   These reviewers should be CCed on patches.
	L: Mailing list that is relevant to this area
	W: Web-page with status/info
	Q: Patchwork web based patch tracking system site
	T: SCM tree type and location.
	   Type is one of: git, hg, quilt, stgit, topgit
	S: Status, one of the following:
	   Supported:	Someone is actually paid to look after this.
	   Maintained:	Someone actually looks after it.
	   Odd Fixes:	It has a maintainer but they don't have time to do
			much other than throw the odd patch in. See below..
	   Orphan:	No current maintainer [but maybe you could take the
			role as you write your new code].
	   Obsolete:	Old code. Something tagged obsolete generally means
			it has been replaced by a better system and you
			should be using that.
	F: Files and directories with wildcard patterns.
	   A trailing slash includes all files and subdirectory files.
	   F:	drivers/net/	all files in and below drivers/net
	   F:	drivers/net/*	all files in drivers/net, but not below
	   F:	*/net/*		all files in "any top level directory"/net
	   One pattern per line.  Multiple F: lines acceptable.
	N: Files and directories with regex patterns.
	   N:	[^a-z]tegra	all files whose path contains the word tegra
	   One pattern per line.  Multiple N: lines acceptable.
	   scripts/get_maintainer.pl has different behavior for files that
	   match F: pattern and matches of N: patterns.  By default,
	   get_maintainer will not look at git log history when an F: pattern
	   match occurs.  When an N: match occurs, git log history is used
	   to also notify the people that have git commit signatures.
	X: Files and directories that are NOT maintained, same rules as F:
	   Files exclusions are tested before file matches.
	   Can be useful for excluding a specific subdirectory, for instance:
	   F:	net/
	   X:	net/ipv6/
	   matches all files in and below net excluding net/ipv6/
	K: Keyword perl extended regex pattern to match content in a
	   patch or file.  For instance:
	   K: of_get_profile
	      matches patches or files that contain "of_get_profile"
	   K: \b(printk|pr_(info|err))\b
	      matches patches or files that contain one or more of the words
	      printk, pr_info or pr_err
	   One regex pattern per line.  Multiple K: lines acceptable.

Note: For the hard of thinking, this list is meant to remain in alphabetical
order. If you could add yourselves to it in alphabetical order that would be
so much easier [Ed]

Maintainers List (try to look for most precise areas first)

		-----------------------------------

RISC-V ARCHITECTURE
M:	Ronald Minnich <rminnich@gmail.com>
M:	Jonathan Neuschäfer <j.neuschaefer@gmx.net>
S:	Maintained
F:	src/arch/riscv/
F:	src/soc/lowrisc
F:	src/soc/ucb/
F:	src/mainboard/emulation/*-riscv/
F:	src/mainboard/lowrisc

POWER8 ARCHITECTURE
M:	Ronald Minnich <rminnich@gmail.com>
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Maintained
F:	src/arch/power8/
F:	src/cpu/qemu-power8/
F:	src/mainboard/emulation/qemu-power8/

LENOVO EC
M:	Alexander Couzens <lynxis@fe80.eu>
S:	Maintained
F:	src/ec/lenovo/

LENOVO MAINBOARDS
M:	Alexander Couzens <lynxis@fe80.eu>
M:	Patrick Rudolph <siro@das-labor.org>
S:	Maintained
F:	src/mainboard/lenovo/

INTEL PINEVIEW CHIPSET
M:	Damien Zammit <damien@zamaudio.com>
S:	Maintained
F:	src/northbridge/intel/pineview/

INTEL D510MO MAINBOARD
M:	Damien Zammit <damien@zamaudio.com>
S:	Maintained
F:	src/mainboard/intel/d510mo

INTEL X4X CHIPSET
M:	Damien Zammit <damien@zamaudio.com>
S:	Maintained
F:	src/northbridge/intel/x4x/

GIGABYTE GA-G41M-ES2L MAINBOARD
M:	Damien Zammit <damien@zamaudio.com>
S:	Maintained
F:	src/mainboard/gigabyte/ga-g41m-es2l

GOOGLE PANTHER MAINBOARD
M:	Stefan Reinauer <stefan.reinauer@coreboot.org>
S:	Supported
F:	src/mainboard/google/panther/

INTEL MINNOWBOARD MAX MAINBOARD
M:	Huang Jin <huang.jin@intel.com>
M:	York Yang <york.yang@intel.com>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	src/mainboard/intel/minnowmax/

INTEL FSP BAYTRAIL CHIP & CRBs
M:	Huang Jin <huang.jin@intel.com>
M:	York Yang <york.yang@intel.com>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	src/soc/intel/fsp_baytrail/
F:	src/vendorcode/intel/fsp1_0/baytrail/
F:	src/mainboard/intel/bakersport_fsp/
F:	src/mainboard/intel/bayleybay_fsp/

INTEL FSP BROADWELL-DE SOC & CRB
M:	York Yang <york.yang@intel.com>
S:	Supported
F:	src/soc/intel/fsp_broadwell_de/
F:	src/vendorcode/intel/fsp1_0/broadwell_de/
F:	src/mainboard/intel/camelbackmountain_fsp/

INTEL FSP IVYBRIDGE/PANTHERPOINT/CAVECREEK & CRBs
M:	York Yang <york.yang@intel.com>
S:	Supported
F:	src/cpu/intel/fsp_model_206ax/
F:	src/northbridge/intel/fsp_sandybridge/
F:	src/southbridge/intel/fsp_bd82x6x/
F:	src/southbridge/intel/fsp_i89xx/
F:	src/vendorcode/intel/fsp1_0/ivybridge_bd82x6x
F:	src/vendorcode/intel/fsp1_0/ivybridge_i89xx
F:	src/mainboard/intel/cougar_canyon2/
F:	src/mainboard/intel/stargo2/

FSP 1.0 RANGELEY & CRB
M:	David Guckian <david.guckian@intel.com>
M:	Fei Wang <fei.z.wang@intel.com>
S:	Supported
F:	src/cpu/intel/fsp_model_406dx/
F:	src/northbridge/intel/fsp_rangeley/
F:	src/southbridge/intel/fsp_rangeley/
F:	src/vendorcode/intel/fsp1_0/rangeley/
F:	src/mainboard/intel/mohonpeak/

INTEL LITTLE PLAINS MAINBOARD
M:	Marcin Wojciechowski <marcin.wojciechowski@intel.com>
S:	Supported
F:	src/mainboard/intel/littleplains/

INTEL FSP 1.0
M:	Huang Jin <huang.jin@intel.com>
M:	York Yang <york.yang@intel.com>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	src/drivers/intel/fsp1_0/

INTEL FSP 1.1
M:	Lee Leahy <leroy.p.leahy@intel.com>
M:	Andrey Petrov <andrey.petrov@intel.com>
M:	Huang Jin <huang.jin@intel.com>
M:	York Yang <york.yang@intel.com>
S:	Supported
F:	src/drivers/intel/fsp1_1/

INTEL FSP 2.0
M:	Andrey Petrov <andrey.petrov@intel.com>
S:	Supported
F:	src/drivers/intel/fsp2_0/

INTEL STRAGO MAINBOARD
M:	Hannah Williams <hannah.williams@intel.com>
S:	Supported
F:	/src/mainboard/intel/strago/

INTEL BRASWELL SOC
M:	Hannah Williams <hannah.williams@intel.com>
S:	Supported
F:	/src/soc/intel/braswell
F:	/src/vendorcode/intel/fsp/fsp1_1/braswell

INTEL APOLLOLAKE_SOC
M:	Andrey Petrov <andrey.petrov@intel.com>
S:	Supported
F:	src/soc/intel/apollolake/

ASUS KFSN4-DRE & KFSN4-DRE_K8 MAINBOARDS
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/mainboard/asus/kfsn4-dre/
F:	src/mainboard/asus/kfsn4-dre_k8/

ASUS KCMA-D8 MAINBOARD
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/mainboard/asus/kcma-d8/

ASUS KGPE-D16 MAINBOARD
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/mainboard/asus/kgpe-d16/

AMD FAMILY10H & FAMILY15H (NON-AGESA) CPUS & NORTHBRIDGE
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/cpu/amd/family_10h-family_15h/
F:	src/northbridge/amd/amdfam10/
F:	src/northbridge/amd/amdmct/
F:	src/northbridge/amd/amdht/

AMD SB700 (NON-CIMX) SOUTHBRIDGE
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/southbridge/amd/sb700/

AMD SR5650 SOUTHBRIDGE
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/southbridge/amd/sr5650/

ASPEED AST2050 DRIVER & COMMON CODE
M:	Timothy Pearson <tpearson@raptorengineeringinc.com>
S:	Supported
F:	src/drivers/aspeed/common/
F:	src/drivers/aspeed/ast2050/

ATI MACH64 Driver
S:	Orphan
F:	src/drivers/ati/mach64/

ABUILD
M:	Patrick Georgi <patrick@georgi-clan.de>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	util/abuild/

ACPI
F:	src/acpi/
F:	src/arch/x86/acpi/
F:	util/acpi/

ARM ARCHITECTURE
M:	Julius Werner <jwerner@chromium.org>
S:	Supported
F:	src/arch/arm/
F:	src/arch/arm64/
F:	src/soc/mediatek/
F:	src/soc/nvidia/
F:	src/soc/rockchip/
F:	util/nvidia/
F:	util/rockchip/

ORPHANED ARM SOCS
S:	Orphaned
F:	src/cpu/allwinner/
F:	src/cpu/armltd/
F:	src/cpu/ti/
F:	src/soc/broadcom/
F:	src/soc/marvell/
F:	src/soc/qualcomm/
F:	src/soc/samsung/
F:	util/arm_boot_tools/
F:	util/broadcom/
F:	util/exynos/
F:	util/ipqheader/

MIPS ARCHITECTURE
F:	src/arch/mips/
F:	src/cpu/mips/
F:	src/soc/imgtec/
F:	util/bimgtool/

X86 ARCHITECTURE
F:	src/arch/x86/
F:	src/cpu/x86/
F:	src/drivers/pc80/
F:	src/include/pc80/
F:	src/include/cpu/x86/

INTEL SUPPORT
M:	Patrick Rudolph <siro@das-labor.org>
S:	Maintained
F:	src/vendorcode/intel/
F:	src/cpu/intel/
F:	src/northbridge/intel/
F:	src/southbridge/intel/
F:	src/soc/intel/
F:	src/drivers/intel/
F:	src/include/cpu/intel/

AMD SUPPORT
F:	src/vendorcode/amd/
F:	src/cpu/amd/
F:	src/northbridge/amd/
F:	src/southbridge/amd/
F:	src/include/cpu/amd/

VIA SUPPORT
F:	src/cpu/via/
F:	src/northbridge/via/
F:	src/southbridge/via/

LINT SCRIPTS
M:	Patrick Georgi <patrick@georgi-clan.de>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	util/lint/

INTELTOOL
M:	Stefan Reinauer <stefan.reinauer@coreboot.org>
F:	util/inteltool/

INTELMETOOL
M:	Philipp Deppenwiese <zaolin.daisuki@gmail.com>
F:	util/intelmetool/

ME_CLEANER
M:	Nicola Corna <nicola@corna.info>
W:	https://github.com/corna/me_cleaner
S:	Maintained
F:	util/me_cleaner/

IFDTOOL
M:	Stefan Reinauer <stefan.reinauer@coreboot.org>
F:	util/ifdtool/
F:	util/ifdfake/

BUILD SYSTEM
M:	Patrick Georgi <patrick@georgi-clan.de>
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	Makefile
F:	*.inc
F:	src/include/kconfig.h
F:	util/kconfig/
F:	util/sconfig/
F:	util/xcompile/
F:	util/genbuild_h/

BOARD STATUS
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	util/board_status/

BINARY OBJECTS
F:	3rdparty/blobs/

VERIFIED BOOT
F:	3rdparty/vboot/
F:	src/vendorcode/google/chromeos/
F:	src/include/tpm.h
F:	src/include/tpm_lite/

RESOURCE ALLOCATOR
F:	src/device/*
F:	src/include/device/
F:	src/include/cpu/cpu.h

OPTION ROM EXECUTION & X86EMU
F:	src/device/oprom/

CBFS
F:	src/include/cbfs.h
F:	src/include/cbfs_serialized.h
F:	util/cbfstool/

CBMEM
F:	src/include/cbmem.h
F:	src/include/cbmem_id.h
F:	util/cbmem/

CONSOLE
F:	src/console/
F:	src/include/console/
F:	src/drivers/uart/

NVRAM
F:	util/nvramtool/
F:	util/optionlist/
F:	payloads/nvramcui/

LIBPAYLOAD
F:	payloads/libpayload/

BAYOU PAYLOAD
F:	payloads/bayou/

COREINFO PAYLOAD
F:	payloads/coreinfo/

EXTERNAL PAYLOADS INTEGRATION
M:	Stefan Reinauer <stefan.reinauer@coreboot.org>
M:	Martin Roth <gaumless@gmail.com>
F:	payloads/external

VERIFIED BOOT 2
M:	Aaron Durbin <adurbin@chromium.org>
F:	src/vendorcode/google/chromeos/vboot2/

TPM SUPPORT
M:	Philipp Deppenwiese <zaolin.daisuki@gmail.com>
F:	src/drivers/*/tpm/
F:	src/security/tpm12/
F:	src/security/tpm20/
F:	util/tss-generator/

DOCKER
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	util/docker/

TOOLCHAIN
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	util/crossgcc/

GIT
M:	Martin Roth <gaumless@gmail.com>
S:	Supported
F:	.git*
F:	/util/gitconfig

SUPERIOS & SUPERIOTOOL
M:	Felix Held <felix-coreboot@felixheld.de>
S:	Maintained
F:	src/superio/
F:	util/superiotool/

MEMLAYOUT
M:	Julius Werner <jwerner@chromium.org>
S:	Supported
F:	*/memlayout.h
F:	*.ld

MISSING: TIMERS / DELAYS

MISSING: TIMESTAMPS

MISSING: FMAP

MISSING: GPIO

MISSING: SMP

MISSING: DMP / QEMU-X86

MISSING: ELOG

MISSING: SPI

THE REST
M:	Stefan Reinauer <stefan.reinauer@coreboot.org>
T:	git https://review.coreboot.org/coreboot
S:	Buried alive in mainboards
F:	*
F:	*/
