Merge remote-tracking branch 'upstream/master' into system75
This commit is contained in:
commit
c8600c36d7
1
.gitignore
vendored
1
.gitignore
vendored
@ -56,6 +56,7 @@ site-local
|
|||||||
*.\#
|
*.\#
|
||||||
*.bin
|
*.bin
|
||||||
*.debug
|
*.debug
|
||||||
|
!Kconfig.debug
|
||||||
*.elf
|
*.elf
|
||||||
*.o
|
*.o
|
||||||
*.out
|
*.out
|
||||||
|
5
.gitmodules
vendored
5
.gitmodules
vendored
@ -37,3 +37,8 @@
|
|||||||
[submodule "3rdparty/ffs"]
|
[submodule "3rdparty/ffs"]
|
||||||
path = 3rdparty/ffs
|
path = 3rdparty/ffs
|
||||||
url = https://github.com/coreboot/ffs.git
|
url = https://github.com/coreboot/ffs.git
|
||||||
|
[submodule "3rdparty/amd_blobs"]
|
||||||
|
path = 3rdparty/amd_blobs
|
||||||
|
url = https://review.coreboot.org/amd_blobs.git
|
||||||
|
update = none
|
||||||
|
ignore = dirty
|
||||||
|
1
3rdparty/amd_blobs
vendored
Submodule
1
3rdparty/amd_blobs
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit cf227316b0fbd3995854ce21e81a63270b29bfb5
|
2
3rdparty/libgfxinit
vendored
2
3rdparty/libgfxinit
vendored
@ -1 +1 @@
|
|||||||
Subproject commit a815704c84b4823f5b723404a37efed9d6c85d66
|
Subproject commit fe7985f2a0692bc773d470a92ec54d22d3c12e4b
|
26
AUTHORS
26
AUTHORS
@ -13,12 +13,17 @@ Advanced Micro Devices, Inc.
|
|||||||
Alex Züpke
|
Alex Züpke
|
||||||
Alexander Couzens
|
Alexander Couzens
|
||||||
Alexandru Gagniuc
|
Alexandru Gagniuc
|
||||||
|
Analog Devices Inc.
|
||||||
Andy Fleming
|
Andy Fleming
|
||||||
ARM Limited and Contributors
|
ARM Limited and Contributors
|
||||||
Arthur Heymans
|
Arthur Heymans
|
||||||
|
ASPEED Technology Inc.
|
||||||
|
Atheros Corporation
|
||||||
|
Atmel Corporation
|
||||||
Carl-Daniel Hailfinger
|
Carl-Daniel Hailfinger
|
||||||
coresystems GmbH
|
coresystems GmbH
|
||||||
Damien Zammit
|
Damien Zammit
|
||||||
|
David Brownell
|
||||||
David Hendricks
|
David Hendricks
|
||||||
David Mosberger-Tang
|
David Mosberger-Tang
|
||||||
Denis Dowling
|
Denis Dowling
|
||||||
@ -26,6 +31,7 @@ DENX Software Engineering
|
|||||||
DMP Electronics Inc.
|
DMP Electronics Inc.
|
||||||
Drew Eckhardt
|
Drew Eckhardt
|
||||||
Egbert Eich
|
Egbert Eich
|
||||||
|
Eltan B.V
|
||||||
Eric Biederman
|
Eric Biederman
|
||||||
Eswar Nallusamy
|
Eswar Nallusamy
|
||||||
Facebook, Inc.
|
Facebook, Inc.
|
||||||
@ -37,12 +43,16 @@ Gary Jennejohn
|
|||||||
Gerd Hoffmann
|
Gerd Hoffmann
|
||||||
Google LLC
|
Google LLC
|
||||||
Greg Watson
|
Greg Watson
|
||||||
|
Idwer Vollering
|
||||||
Imagination Technologies
|
Imagination Technologies
|
||||||
|
Infineon Technologies
|
||||||
Intel Corporation
|
Intel Corporation
|
||||||
Jason Zhao
|
Jason Zhao
|
||||||
|
Jonathan Neuschäfer
|
||||||
Jordan Crouse
|
Jordan Crouse
|
||||||
Joseph Smith
|
Joseph Smith
|
||||||
Keith Hui
|
Keith Hui
|
||||||
|
Keith Packard
|
||||||
Kshitij
|
Kshitij
|
||||||
Kyösti Mälkki
|
Kyösti Mälkki
|
||||||
Lei Wen
|
Lei Wen
|
||||||
@ -50,43 +60,58 @@ Li-Ta Lo
|
|||||||
Libra Li
|
Libra Li
|
||||||
Linus Torvalds
|
Linus Torvalds
|
||||||
Linux Networx, Inc.
|
Linux Networx, Inc.
|
||||||
|
Luc Verhaegen
|
||||||
Marc Jones
|
Marc Jones
|
||||||
Marek Vasut
|
Marek Vasut
|
||||||
Marius Gröger
|
Marius Gröger
|
||||||
Martin Mares
|
Martin Mares
|
||||||
|
Marvell International Ltd.
|
||||||
Marvell Semiconductor Inc.
|
Marvell Semiconductor Inc.
|
||||||
MediaTek Inc.
|
MediaTek Inc.
|
||||||
MontaVista Software, Inc.
|
MontaVista Software, Inc.
|
||||||
Myles Watson
|
Myles Watson
|
||||||
|
Network Appliance Inc.
|
||||||
Nicholas Sielicki
|
Nicholas Sielicki
|
||||||
Nick Barker
|
Nick Barker
|
||||||
Nico Huber
|
Nico Huber
|
||||||
|
Ollie Lo
|
||||||
|
Orion Technologies, LLC
|
||||||
Patrick Georgi
|
Patrick Georgi
|
||||||
Patrick Rudolph
|
Patrick Rudolph
|
||||||
PC Engines GmbH
|
PC Engines GmbH
|
||||||
Per Odlund
|
Per Odlund
|
||||||
Peter Stuge
|
Peter Stuge
|
||||||
Raptor Engineering, LLC
|
Raptor Engineering, LLC
|
||||||
|
Red Hat Inc
|
||||||
|
Reinhard Meyer
|
||||||
Richard Woodruff
|
Richard Woodruff
|
||||||
Ronald G. Minnich
|
Ronald G. Minnich
|
||||||
Rudolf Marek
|
Rudolf Marek
|
||||||
Russell King
|
Russell King
|
||||||
Sage Electronic Engineering, LLC
|
Sage Electronic Engineering, LLC
|
||||||
|
Samsung Electronics
|
||||||
SciTech Software, Inc.
|
SciTech Software, Inc.
|
||||||
|
Sebastian Grzywna
|
||||||
secunet Security Networks AG
|
secunet Security Networks AG
|
||||||
Siemens AG
|
Siemens AG
|
||||||
Silicon Integrated System Corporation
|
Silicon Integrated System Corporation
|
||||||
Stefan Reinauer
|
Stefan Reinauer
|
||||||
Steve Magnani
|
Steve Magnani
|
||||||
|
ST Microelectronics
|
||||||
SUSE LINUX AG
|
SUSE LINUX AG
|
||||||
Sven Schnelle
|
Sven Schnelle
|
||||||
Syed Mohammed Khasim
|
Syed Mohammed Khasim
|
||||||
Texas Instruments
|
Texas Instruments
|
||||||
The Linux Foundation
|
The Linux Foundation
|
||||||
|
Thomas Winischhofer
|
||||||
Timothy Pearson
|
Timothy Pearson
|
||||||
|
Tungsten Graphics, Inc.
|
||||||
Tyan Computer Corp.
|
Tyan Computer Corp.
|
||||||
|
ucRobotics Inc.
|
||||||
Uwe Hermann
|
Uwe Hermann
|
||||||
VIA Technologies, Inc
|
VIA Technologies, Inc
|
||||||
|
Vipin Kumar
|
||||||
|
Ward Vandewege
|
||||||
Wolfgang Denk
|
Wolfgang Denk
|
||||||
Yinghai Lu
|
Yinghai Lu
|
||||||
|
|
||||||
@ -99,3 +124,4 @@ src/commonlib
|
|||||||
src/console
|
src/console
|
||||||
src/cpu
|
src/cpu
|
||||||
src/device
|
src/device
|
||||||
|
src/drivers
|
||||||
|
@ -1,290 +0,0 @@
|
|||||||
New config language for LinuxBIOS
|
|
||||||
|
|
||||||
\begin{abstract}
|
|
||||||
We describe the new configuration language for LinuxBIOS.
|
|
||||||
\end{abstract}
|
|
||||||
|
|
||||||
\section{Scope}
|
|
||||||
This document defines the new configuration language for LinuxBIOS.
|
|
||||||
|
|
||||||
\section{Goals}
|
|
||||||
The goals of the new language are these:
|
|
||||||
\begin{itemize}
|
|
||||||
\item Simplified Makefiles so people can see what is set
|
|
||||||
\item Move from the regular-expression-based language to something
|
|
||||||
a bit more comprehensible and flexible
|
|
||||||
\item make the specification easier for people to use and understand
|
|
||||||
\item allow unique register-set-specifiers for each chip
|
|
||||||
\item allow generic register-set-specifiers for each chip
|
|
||||||
\item generate static initialization code, as needed, for the
|
|
||||||
specifiers.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\section{Language}
|
|
||||||
Here is the new language. It is very similar to the old one, differing
|
|
||||||
in only a few respects. It borrows heavily from Greg Watson's suggestions.
|
|
||||||
|
|
||||||
I am presenting it in a pseudo-BNF in the hopes it will be easier. Things
|
|
||||||
in '' are keywords; things in ``'' are strings in the actual text.
|
|
||||||
\begin{verbatim}
|
|
||||||
#exprs are composed of factor or factor + factor etc.
|
|
||||||
expr ::= factor ( ``+'' factor | ``-'' factor | )*
|
|
||||||
#factors are term or term * term or term / term or ...
|
|
||||||
factor ::= term ( ``*'' term | ``/'' term | ... )*
|
|
||||||
#
|
|
||||||
unary-op ::= ``!'' ID
|
|
||||||
# term is a number, hexnumber, ID, unary-op, or a full-blown expression
|
|
||||||
term ::= NUM | XNUM | ID | unary-op | ``(`` expr ``)''
|
|
||||||
|
|
||||||
# Option command. Can be an expression or quote-string.
|
|
||||||
# Options are used in the config tool itself (in expressions and 'if')
|
|
||||||
# and are also passed to the C compiler when building linuxbios.
|
|
||||||
# It is an error to have two option commands in a file.
|
|
||||||
# It is an error to have an option command after the ID has been used
|
|
||||||
# in an expression (i.e. 'set after used' is an error)
|
|
||||||
option ::= 'option' ID '=' (``value'' | term)
|
|
||||||
|
|
||||||
# Default command. The ID is set to this value if no option command
|
|
||||||
# is scanned.
|
|
||||||
# Multiple defaults for an ID will produce warning, but not errors.
|
|
||||||
# It is OK to scan a default command after use of an ID.
|
|
||||||
# Options always over-ride defaults.
|
|
||||||
default ::= 'default' ID '=' (``value'' | term)
|
|
||||||
|
|
||||||
# the mainboard, southbridge, northbridge commands
|
|
||||||
# cause sourcing of Config.lb files as in the old config tool
|
|
||||||
# as parts are sourced, a device tree is built. The structure
|
|
||||||
# of the tree is determined by the structure of the components
|
|
||||||
# as they are specified. To attach a superio to a southbridge, for
|
|
||||||
# example, one would do this:
|
|
||||||
# southbridge acer/5432
|
|
||||||
# superio nsc/123
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
# the tool generates static initializers for this hierarchy.
|
|
||||||
|
|
||||||
# add C code to the current component (motherboard, etc. )
|
|
||||||
# to initialise the component-INDEPENDENT structure members
|
|
||||||
init ::= 'init' ``CODE''
|
|
||||||
|
|
||||||
# add C code to the current component (motherboard, etc. )
|
|
||||||
# to initialise the component-DEPENDENT structure members
|
|
||||||
register ::= 'register' ``CODE''
|
|
||||||
|
|
||||||
|
|
||||||
# mainboard command
|
|
||||||
# statements in this block will set variables controlling the mainboard,
|
|
||||||
# and will also place components (northbridge etc.) in the device tree
|
|
||||||
# under this mainboard
|
|
||||||
mainboard ::= 'mainboard' PATH (statements)* 'end'
|
|
||||||
|
|
||||||
# standard linuxbios commands
|
|
||||||
southbridge ::= 'southbridge' PATH (statemnts)* 'end'
|
|
||||||
northbridge ::= 'northbridge' PATH (statemnts)* 'end'
|
|
||||||
superio ::= 'superio PATH (statemnts)* 'end'
|
|
||||||
cpu ::= 'cpu' PATH (statemnts)* 'end'
|
|
||||||
arch ::= 'arch' PATH (statemnts)* 'end'
|
|
||||||
|
|
||||||
# files for building linuxbios
|
|
||||||
# include a file in crt0.S
|
|
||||||
mainboardinit ::= 'mainboardinit' PATH
|
|
||||||
|
|
||||||
# object file
|
|
||||||
object ::= 'object' PATH
|
|
||||||
# driver objects are just built into the image in a different way
|
|
||||||
driver ::= 'driver' PATH
|
|
||||||
|
|
||||||
# Use the Config.lb file in the PATH
|
|
||||||
dir ::= 'dir' PATH
|
|
||||||
|
|
||||||
# add a file to the set of ldscript files
|
|
||||||
ldscript ::= 'ldscript' PATH
|
|
||||||
|
|
||||||
# dependencies or actions for the makerule command
|
|
||||||
dep ::= 'dep' ``dependency-string''
|
|
||||||
act ::= 'act' ``actions''
|
|
||||||
depsacts ::= (dep | act)*
|
|
||||||
# set up a makerule
|
|
||||||
#
|
|
||||||
makerule ::= 'makerule' PATH depsacts
|
|
||||||
|
|
||||||
#defines for use in makefiles only
|
|
||||||
# note usable in the config tool, not passed to cc
|
|
||||||
makedefine ::= 'makedefine' ``RAWTEXT''
|
|
||||||
|
|
||||||
# add an action to an existing make rule
|
|
||||||
addaction ::= 'addaction' PATH ``ACTION''
|
|
||||||
|
|
||||||
# statements
|
|
||||||
statement ::=
|
|
||||||
option
|
|
||||||
| default
|
|
||||||
| cpu
|
|
||||||
| arch
|
|
||||||
| northbridge
|
|
||||||
| southbridge
|
|
||||||
| superio
|
|
||||||
| object
|
|
||||||
| driver
|
|
||||||
| mainboardinit
|
|
||||||
| makerule
|
|
||||||
| makedefine
|
|
||||||
| addaction
|
|
||||||
| init
|
|
||||||
| register
|
|
||||||
| iif
|
|
||||||
| dir
|
|
||||||
| ldscript
|
|
||||||
|
|
||||||
statements ::= (statement)*
|
|
||||||
|
|
||||||
# target directory specification
|
|
||||||
target ::= 'target' PATH
|
|
||||||
|
|
||||||
# and the whole thing
|
|
||||||
board ::= target (option)* mainboard
|
|
||||||
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\subsubsection{Command definitions}
|
|
||||||
\subsubsubsection{option}
|
|
||||||
\subsubsubsection{default}
|
|
||||||
\subsubsubsection{cpu}
|
|
||||||
\subsubsubsection{arch}
|
|
||||||
\subsubsubsection{northbridge}
|
|
||||||
\subsubsubsection{southbridge}
|
|
||||||
\subsubsubsection{superio}
|
|
||||||
\subsubsubsection{object}
|
|
||||||
\subsubsubsection{driver}
|
|
||||||
\subsubsubsection{mainboardinit}
|
|
||||||
\subsubsubsection{makerule}
|
|
||||||
\subsubsubsection{makedefine}
|
|
||||||
\subsubsubsection{addaction}
|
|
||||||
\subsubsubsection{init}
|
|
||||||
\subsubsubsection{register}
|
|
||||||
\subsubsubsection{iif}
|
|
||||||
\subsubsubsection{dir}
|
|
||||||
\subsubsubsection{ldscript}
|
|
||||||
|
|
||||||
|
|
||||||
A sample file:
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
target x
|
|
||||||
|
|
||||||
# over-ride the default ROM size in the mainboard file
|
|
||||||
option CONFIG_ROM_SIZE=1024*1024
|
|
||||||
mainboard amd/solo
|
|
||||||
end
|
|
||||||
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
Sample mainboard file
|
|
||||||
\begin{verbatim}
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Set all of the defaults for an x86 architecture
|
|
||||||
###
|
|
||||||
arch i386 end
|
|
||||||
cpu k8 end
|
|
||||||
#
|
|
||||||
option CONFIG_DEBUG=1
|
|
||||||
default CONFIG_USE_FALLBACK_IMAGE=1
|
|
||||||
option A=(1+2)
|
|
||||||
option B=0xa
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Build our 16 bit and 32 bit linuxBIOS entry code
|
|
||||||
###
|
|
||||||
mainboardinit cpu/i386/entry16.inc
|
|
||||||
mainboardinit cpu/i386/entry32.inc
|
|
||||||
ldscript cpu/i386/entry16.lds
|
|
||||||
ldscript cpu/i386/entry32.lds
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Build our reset vector (This is where linuxBIOS is entered)
|
|
||||||
###
|
|
||||||
if CONFIG_USE_FALLBACK_IMAGE
|
|
||||||
mainboardinit cpu/i386/reset16.inc
|
|
||||||
ldscript cpu/i386/reset16.lds
|
|
||||||
else
|
|
||||||
mainboardinit cpu/i386/reset32.inc
|
|
||||||
ldscript cpu/i386/reset32.lds
|
|
||||||
end
|
|
||||||
.
|
|
||||||
.
|
|
||||||
.
|
|
||||||
if CONFIG_USE_FALLBACK_IMAGE mainboardinit arch/i386/lib/noop_failover.inc end
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Romcc output
|
|
||||||
###
|
|
||||||
#makerule ./failover.E dep "$(CONFIG_MAINBOARD)/failover.c" act "$(CPP) -I$(TOP)/src $(CPPFLAGS) $(CONFIG_MAINBOARD)/failover.c > ./failever.E"
|
|
||||||
#makerule ./failover.inc dep "./romcc ./failover.E" act "./romcc -O ./failover.E > failover.inc"
|
|
||||||
#mainboardinit ./failover.inc
|
|
||||||
makerule ./auto.E dep "$(CONFIG_MAINBOARD)/auto.c" act "$(CPP) -I$(TOP)/src -$(ROMCCPPFLAGS) $(CPPFLAGS) $(CONFIG_MAINBOARD)/auto.c > ./auto.E"
|
|
||||||
makerule ./auto.inc dep "./romcc ./auto.E" act "./romcc -O ./auto.E > auto.inc"
|
|
||||||
mainboardinit ./auto.inc
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Include the secondary Configuration files
|
|
||||||
###
|
|
||||||
northbridge amd/amdk8
|
|
||||||
end
|
|
||||||
southbridge amd/amd8111
|
|
||||||
end
|
|
||||||
#mainboardinit arch/i386/smp/secondary.inc
|
|
||||||
superio nsc/pc87360
|
|
||||||
register "com1={1} com2={0} floppy=1 lpt=1 keyboard=1"
|
|
||||||
end
|
|
||||||
dir /pc80
|
|
||||||
##dir /src/superio/winbond/w83627hf
|
|
||||||
cpu p5 end
|
|
||||||
cpu p6 end
|
|
||||||
cpu k7 end
|
|
||||||
cpu k8 end
|
|
||||||
#
|
|
||||||
###
|
|
||||||
### Build the objects we have code for in this directory.
|
|
||||||
###
|
|
||||||
##object mainboard.o
|
|
||||||
driver mainboard.o
|
|
||||||
object static_devices.o
|
|
||||||
if CONFIG_HAVE_MP_TABLE object mptable.o end
|
|
||||||
if CONFIG_HAVE_PIRQ_TABLE object irq_tables.o end
|
|
||||||
### Location of the DIMM EEPROMS on the SMBUS
|
|
||||||
### This is fixed into a narrow range by the DIMM package standard.
|
|
||||||
###
|
|
||||||
option SMBUS_MEM_DEVICE_START=(0xa << 3)
|
|
||||||
option SMBUS_MEM_DEVICE_END=(SMBUS_MEM_DEVICE_START +1)
|
|
||||||
option SMBUS_MEM_DEVICE_INC=1
|
|
||||||
#
|
|
||||||
### The linuxBIOS bootloader.
|
|
||||||
###
|
|
||||||
option CONFIG_PAYLOAD_SIZE = (CONFIG_ROM_SECTION_SIZE - CONFIG_ROM_IMAGE_SIZE)
|
|
||||||
option CONFIG_ROM_PAYLOAD_START = (0xffffffff - CONFIG_ROM_SIZE + CONFIG_ROM_SECTION_OFFSET + 1)
|
|
||||||
#
|
|
||||||
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
I've found the output of the new tool to be easier to
|
|
||||||
handle. Makefile.settings looks like this, for example:
|
|
||||||
\begin{verbatim}
|
|
||||||
TOP:=/home/rminnich/src/yapps2/freebios2
|
|
||||||
TARGET_DIR:=x
|
|
||||||
export CONFIG_MAINBOARD:=/home/rminnich/src/yapps2/freebios2/src/mainboard/amd/solo
|
|
||||||
export CONFIG_ARCH:=i386
|
|
||||||
export CONFIG_RAMBASE:=0x4000
|
|
||||||
export CONFIG_ROM_IMAGE_SIZE:=65535
|
|
||||||
export CONFIG_PAYLOAD_SIZE:=131073
|
|
||||||
export CONFIG_MAX_CPUS:=1
|
|
||||||
export CONFIG_HEAP_SIZE:=8192
|
|
||||||
export CONFIG_STACK_SIZE:=8192
|
|
||||||
export CONFIG_MEMORY_HOLE:=0
|
|
||||||
export COREBOOT_VERSION:=1.1.0
|
|
||||||
export CC:=$(CONFIG_CROSS_COMPILE)gcc
|
|
||||||
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
In other words, instead of expressions, we see the values. It's easier to
|
|
||||||
deal with.
|
|
@ -16,24 +16,36 @@ In order to add support for x86_64 the following assumptions are made:
|
|||||||
* The reference implementation is qemu
|
* The reference implementation is qemu
|
||||||
* The CPU supports 1GiB hugepages
|
* The CPU supports 1GiB hugepages
|
||||||
|
|
||||||
## Assuptions for ARCH_ROMSTAGE_X86_64 reference implementation
|
## Assuptions for all stages using the reference implementation
|
||||||
* 0-4GiB are identity mapped using 1GiB huge-pages
|
* 0-4GiB are identity mapped using 2MiB-pages as WB
|
||||||
* Memory above 4GiB isn't accessible
|
* Memory above 4GiB isn't accessible
|
||||||
* pagetables reside in _pagetables
|
* page tables reside in memory mapped ROM
|
||||||
* Romstage must install new pagetables in CBMEM after RAMINIT
|
* A stage can install new page tables in RAM
|
||||||
|
|
||||||
## Assuptions for ARCH_RAMSTAGE_X86_64 reference implementation
|
## Page tables
|
||||||
* Romstage installed pagetables according to memory layout
|
Page tables are generated by a tool in `util/pgtblgen/pgtblgen`. It writes
|
||||||
* Memory above 4GiB is accessible
|
the page tables to a file which is then included into the CBFS as file called
|
||||||
|
`pagetables`.
|
||||||
|
|
||||||
|
To generate the static page tables it must know the physical address where to
|
||||||
|
place the file.
|
||||||
|
|
||||||
|
The page tables contains the following structure:
|
||||||
|
* PML4E pointing to PDPE
|
||||||
|
* PDPE with *$n* entries each pointing to PDE
|
||||||
|
* *$n* PDEs with 512 entries each
|
||||||
|
|
||||||
|
At the moment *$n* is 4, which results in identity mapping the lower 4 GiB.
|
||||||
|
|
||||||
## Steps to add basic support for x86_64
|
## Steps to add basic support for x86_64
|
||||||
* Add x86_64 toolchain support - *DONE*
|
* Add x86_64 toolchain support - *DONE*
|
||||||
* Fix compilation errors - *DONE*
|
* Fix compilation errors - *DONE*
|
||||||
* Fix linker errors - *TODO*
|
* Fix linker errors - *TODO*
|
||||||
* Add x86_64 rmodule support - *ONGERRIT*
|
* Add x86_64 rmodule support - *DONE*
|
||||||
* Add x86_64 exception handlers - *TODO*
|
* Add x86_64 exception handlers - *TODO*
|
||||||
* Setup page tables for long mode - *TODO*
|
* Setup page tables for long mode - *DONE*
|
||||||
* Add assembly code for long mode - *TODO*
|
* Add assembly code for long mode - *DONE*
|
||||||
|
* Add assembly code for postcar stage - *TODO*
|
||||||
* Add assembly code to return to protected mode - *TODO*
|
* Add assembly code to return to protected mode - *TODO*
|
||||||
* Implement reference code for mainboard `emulation/qemu-q35` - *TODO*
|
* Implement reference code for mainboard `emulation/qemu-q35` - *TODO*
|
||||||
|
|
||||||
|
45
Documentation/community/services.md
Normal file
45
Documentation/community/services.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Accounts on coreboot.org
|
||||||
|
|
||||||
|
There are a number of places where you can benefit from creaating an account
|
||||||
|
in our community. Since there is no single sign-on system in place (at this
|
||||||
|
time), they come with their own setup routines.
|
||||||
|
|
||||||
|
## Gerrit code review
|
||||||
|
We exchange and review patches to the code using our [Gerrit code review
|
||||||
|
system](https://review.coreboot.org).
|
||||||
|
|
||||||
|
It allows logging in with a Google or GitHub account using OAuth2 as well
|
||||||
|
as with any OpenID provider that you may already use.
|
||||||
|
|
||||||
|
On the [settings screen](https://review.coreboot.org/settings) you can register
|
||||||
|
all your email addresses you intend to use in the context of coreboot
|
||||||
|
development so that commits with your email address in them are associated with
|
||||||
|
you properly.
|
||||||
|
|
||||||
|
### https push access
|
||||||
|
When using the https URLs to git repositories, you can push with the "HTTP
|
||||||
|
Credentials" you can have Gerrit generate for you on that page. By default,
|
||||||
|
git uses `$HOME/.netrc` for http authentication data, so add a line there
|
||||||
|
stating:
|
||||||
|
|
||||||
|
machine review.coreboot.org login $your-user-name password $your-password
|
||||||
|
|
||||||
|
### Gerrit user avatar
|
||||||
|
To setup an avatar to show in Gerrit, clone the avatars repository at
|
||||||
|
https://review.coreboot.org/gerrit-avatars.git and add a file named
|
||||||
|
$your-user-ID.jpg (the user ID is a number shown on the [settings screen](https://review.coreboot.org/settings)).
|
||||||
|
The image must be provided in JPEG format, must be square and have at most 50000
|
||||||
|
bytes.
|
||||||
|
|
||||||
|
After you push for review, the system will automatically verify your change
|
||||||
|
and, if adhering to these constraints, approve it. You can then immediately
|
||||||
|
submit it.
|
||||||
|
|
||||||
|
## Issue tracker
|
||||||
|
We have an [issue tracker](https://ticket.coreboot.org) that is used for
|
||||||
|
coreboot and related code, such as libpayload, as well as for the project's
|
||||||
|
infrastructure.
|
||||||
|
|
||||||
|
It can be helpful to refer to issues we track there in commit messages:
|
||||||
|
|
||||||
|
Fixes: https://ticket.coreboot.org/issues/$id
|
@ -1,6 +1,6 @@
|
|||||||
# coreboot architecture
|
# coreboot architecture
|
||||||
|
|
||||||
## Overwiew
|
## Overview
|
||||||
![][architecture]
|
![][architecture]
|
||||||
|
|
||||||
[architecture]: comparision_coreboot_uefi.svg
|
[architecture]: comparision_coreboot_uefi.svg
|
||||||
|
@ -14,18 +14,40 @@ coreboot uses [Sphinx] documentation tool. We prefer the markdown format
|
|||||||
over reStructuredText so only embedded ReST is supported. Checkout the
|
over reStructuredText so only embedded ReST is supported. Checkout the
|
||||||
[Markdown Guide] for more information.
|
[Markdown Guide] for more information.
|
||||||
|
|
||||||
### Install Sphinx
|
### option 1: Use the docker image
|
||||||
|
|
||||||
|
The easiest way to build the documentation is using a docker image.
|
||||||
|
To build the image run the following in the base directory:
|
||||||
|
|
||||||
|
make -C util/docker/ doc.coreboot.org
|
||||||
|
|
||||||
|
Before building the documentation make sure the output directory is given
|
||||||
|
the correct permissions before running docker.
|
||||||
|
|
||||||
|
mkdir -p Documentation/_build
|
||||||
|
|
||||||
|
To build the documentation:
|
||||||
|
|
||||||
|
make -C util/docker docker-build-docs
|
||||||
|
|
||||||
|
To have the documentation build and served over a web server live run:
|
||||||
|
|
||||||
|
make -C util/docker docker-livehtml-docs
|
||||||
|
|
||||||
|
On the host machine, open a browser to the address <http://0.0.0.0:8000>.
|
||||||
|
|
||||||
|
### option 2: Install Sphinx
|
||||||
|
|
||||||
Please follow this official [guide] to install sphinx.
|
Please follow this official [guide] to install sphinx.
|
||||||
You will also need python-recommonmark for sphinx to be able to handle
|
You will also need python-recommonmark for sphinx to be able to handle
|
||||||
markdown documenation.
|
markdown documentation.
|
||||||
|
|
||||||
The recommended version is sphinx 1.7.7, sphinx_rtd_theme 0.4.1 and
|
The recommended version is sphinx 1.7.7, sphinx_rtd_theme 0.4.1 and
|
||||||
recommonmark 0.4.0.
|
recommonmark 0.4.0.
|
||||||
|
|
||||||
### Optional
|
### Optional
|
||||||
|
|
||||||
Install [shpinx-autobuild] for rebuilding markdown/rst sources on the fly!
|
Install [sphinx-autobuild] for rebuilding markdown/rst sources on the fly!
|
||||||
|
|
||||||
## Basic and simple rules
|
## Basic and simple rules
|
||||||
|
|
||||||
@ -116,7 +138,7 @@ TOC tree.
|
|||||||
|
|
||||||
[coreboot]: https://coreboot.org
|
[coreboot]: https://coreboot.org
|
||||||
[Documentation]: https://review.coreboot.org/cgit/coreboot.git/tree/Documentation
|
[Documentation]: https://review.coreboot.org/cgit/coreboot.git/tree/Documentation
|
||||||
[shpinx-autobuild]: https://github.com/GaretJax/sphinx-autobuild
|
[sphinx-autobuild]: https://github.com/GaretJax/sphinx-autobuild
|
||||||
[guide]: http://www.sphinx-doc.org/en/stable/install.html
|
[guide]: http://www.sphinx-doc.org/en/stable/install.html
|
||||||
[Sphinx]: http://www.sphinx-doc.org/en/master/
|
[Sphinx]: http://www.sphinx-doc.org/en/master/
|
||||||
[Markdown Guide]: https://www.markdownguide.org/
|
[Markdown Guide]: https://www.markdownguide.org/
|
||||||
|
@ -7,13 +7,14 @@ Introduction and Current State in coreboot
|
|||||||
*libgfxinit* is a library of full-featured graphics initialization
|
*libgfxinit* is a library of full-featured graphics initialization
|
||||||
(aka. modesetting) drivers. It's implemented in SPARK (a subset of
|
(aka. modesetting) drivers. It's implemented in SPARK (a subset of
|
||||||
Ada with formal verification features). While not restricted to in
|
Ada with formal verification features). While not restricted to in
|
||||||
any way, it currently only supports Intel's integrated gfx control-
|
any way, it currently only supports Intel's integrated graphics
|
||||||
lers (GMA).
|
controllers (GMA).
|
||||||
|
|
||||||
Currently, it supports the Intel Core i3/i5/i7 processor line and
|
Currently, it supports the Intel Core i3/i5/i7 processor line, HDMI
|
||||||
will support HDMI and DP on the Atom successor Apollo Lake. At the
|
and DP on the Apollo Lake processors and everything but SDVO on G45
|
||||||
time of writing, Sandy Bridge, Ivy Bridge, and Haswell are veri-
|
and GM45 chipsets. At the time of writing, G45, GM45, everything
|
||||||
fied to work within *coreboot*.
|
from Arrandale to Coffee Lake, and Apollo Lake are verified to work
|
||||||
|
within *coreboot*.
|
||||||
|
|
||||||
GMA: Framebuffer Configuration
|
GMA: Framebuffer Configuration
|
||||||
------------------------------
|
------------------------------
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# ifdtool
|
||||||
|
|
||||||
Contents:
|
Contents:
|
||||||
|
|
||||||
|
@ -166,10 +166,11 @@ Contents:
|
|||||||
* [Project Ideas](contributing/project_ideas.md)
|
* [Project Ideas](contributing/project_ideas.md)
|
||||||
* [Code of Conduct](community/code_of_conduct.md)
|
* [Code of Conduct](community/code_of_conduct.md)
|
||||||
* [Community forums](community/forums.md)
|
* [Community forums](community/forums.md)
|
||||||
|
* [Project services](community/services.md)
|
||||||
* [coreboot at conferences](community/conferences.md)
|
* [coreboot at conferences](community/conferences.md)
|
||||||
* [Payloads](payloads.md)
|
* [Payloads](payloads.md)
|
||||||
* [Distributions](distributions.md)
|
* [Distributions](distributions.md)
|
||||||
* [Dealing with Untrusted Input in SMM](technotes/2017-02-dealing-with-untrusted-input-in-smm.md)
|
* [Technotes](technotes/index.md)
|
||||||
* [GPIO toggling in ACPI AML](acpi/gpio.md)
|
* [GPIO toggling in ACPI AML](acpi/gpio.md)
|
||||||
* [Adding devices to a device tree](acpi/devicetree.md)
|
* [Adding devices to a device tree](acpi/devicetree.md)
|
||||||
* [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md)
|
* [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md)
|
||||||
|
@ -17,7 +17,7 @@ something else) should have its own Flashmap section, and everything else should
|
|||||||
normally go into CBFS.
|
normally go into CBFS.
|
||||||
|
|
||||||
The Flashmap itself starts with a header `struct fmap` and followed by a list of
|
The Flashmap itself starts with a header `struct fmap` and followed by a list of
|
||||||
section descriptions in `strcut fmap_area`.
|
section descriptions in `struct fmap_area`.
|
||||||
|
|
||||||
### Header
|
### Header
|
||||||
The header `struct fmap` has following fields:
|
The header `struct fmap` has following fields:
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
# AMD platforms documentation
|
|
||||||
|
|
||||||
This section contains documentation about specific AMD mainboards.
|
|
||||||
|
|
||||||
## Mainboard
|
|
||||||
|
|
||||||
- [padmelon](padmelon/padmelon.md)
|
|
@ -75,6 +75,6 @@ Three items are marked in this picture
|
|||||||
|
|
||||||
[Merlin Falcon BKDG][merlinfalcon]
|
[Merlin Falcon BKDG][merlinfalcon]
|
||||||
|
|
||||||
[merlinfalcon]: ../../soc/amd/family15h.md
|
[merlinfalcon]: ../../../soc/amd/family15h.md
|
||||||
[padmelon]: padmelon.jpg
|
[padmelon]: padmelon.jpg
|
||||||
[padmelon_io]: padmelon_io.jpg
|
[padmelon_io]: padmelon_io.jpg
|
||||||
|
@ -70,7 +70,7 @@ facing towards the bottom of the board.
|
|||||||
- The VGA port doesn't work until the OS reinitialises the display.
|
- The VGA port doesn't work until the OS reinitialises the display.
|
||||||
|
|
||||||
- There is no automatic, OS-independent fan control. This is because
|
- There is no automatic, OS-independent fan control. This is because
|
||||||
the super I/O hardware monitor can only obtain valid CPU temperature
|
the Super I/O hardware monitor can only obtain valid CPU temperature
|
||||||
readings from the PECI agent, but the required driver doesn't exist
|
readings from the PECI agent, but the required driver doesn't exist
|
||||||
in coreboot. The `coretemp` driver can still be used for accurate CPU
|
in coreboot. The `coretemp` driver can still be used for accurate CPU
|
||||||
temperature readings from an OS.
|
temperature readings from an OS.
|
||||||
|
@ -49,7 +49,7 @@ region is not readable even by the host.
|
|||||||
suspend.
|
suspend.
|
||||||
|
|
||||||
- There is no automatic, OS-independent fan control. This is because
|
- There is no automatic, OS-independent fan control. This is because
|
||||||
the super I/O hardware monitor can only obtain valid CPU temperature
|
the Super I/O hardware monitor can only obtain valid CPU temperature
|
||||||
readings from the PECI agent, whose complete initialisation is not
|
readings from the PECI agent, whose complete initialisation is not
|
||||||
publicly documented. The `coretemp` driver can still be used for
|
publicly documented. The `coretemp` driver can still be used for
|
||||||
accurate CPU temperature readings.
|
accurate CPU temperature readings.
|
||||||
|
@ -46,7 +46,7 @@ region is not readable even by the host.
|
|||||||
## Known issues
|
## Known issues
|
||||||
|
|
||||||
- There is no automatic, OS-independent fan control. This is because
|
- There is no automatic, OS-independent fan control. This is because
|
||||||
the super I/O hardware monitor can only obtain valid CPU temperature
|
the Super I/O hardware monitor can only obtain valid CPU temperature
|
||||||
readings from the PECI agent, whose complete initialisation is not
|
readings from the PECI agent, whose complete initialisation is not
|
||||||
publicly documented. The `coretemp` driver can still be used for
|
publicly documented. The `coretemp` driver can still be used for
|
||||||
accurate CPU temperature readings.
|
accurate CPU temperature readings.
|
||||||
|
9
Documentation/mainboard/facebook/fbg1701.md
Normal file → Executable file
9
Documentation/mainboard/facebook/fbg1701.md
Normal file → Executable file
@ -5,16 +5,17 @@ This page describes how to run coreboot on the Facebook FBG1701.
|
|||||||
FBG1701 are assembled with different onboard memory modules:
|
FBG1701 are assembled with different onboard memory modules:
|
||||||
Rev 1.0 Onboard Samsung K4B8G1646D-MYKO memory
|
Rev 1.0 Onboard Samsung K4B8G1646D-MYKO memory
|
||||||
Rev 1.1 and 1.2 Onboard Micron MT41K512M16HA-125A memory
|
Rev 1.1 and 1.2 Onboard Micron MT41K512M16HA-125A memory
|
||||||
|
Rev 1.3 Onboard Kingston B5116ECMDXGGB memory
|
||||||
|
|
||||||
Use make menuconfig to configure `onboard memory manufacturer` in Mainboard
|
Use make menuconfig to configure `onboard memory manufacturer Samsung` in
|
||||||
menu.
|
Mainboard menu.
|
||||||
|
|
||||||
## Required blobs
|
## Required blobs
|
||||||
|
|
||||||
This board currently requires:
|
This board currently requires:
|
||||||
fsp blob 3rdparty/fsp/BraswellFspBinPkg/FspBin/BSWFSP.fd
|
fsp blob 3rdparty/fsp/BraswellFspBinPkg/FspBin/BSWFSP.fd
|
||||||
Microcode Intel Braswell cpuid 1046C4 version 410
|
Microcode Intel Braswell cpuid 1046C4 version 410
|
||||||
(Used pre-build binary retrieved from Intel site)
|
(Used pre-built binary retrieved from Intel site)
|
||||||
|
|
||||||
## Flashing coreboot
|
## Flashing coreboot
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ The main SPI flash can be accessed using [flashrom].
|
|||||||
### External programming
|
### External programming
|
||||||
|
|
||||||
The system has an internal flash chip which is a 8 MiB soldered SOIC-8 chip.
|
The system has an internal flash chip which is a 8 MiB soldered SOIC-8 chip.
|
||||||
This chip is located to the top middle side of the board. It's located
|
This chip is located on the top middle side of the board. It's located
|
||||||
between SoC and Q7 connector. Use clip (or solder wires) to program
|
between SoC and Q7 connector. Use clip (or solder wires) to program
|
||||||
the chip.
|
the chip.
|
||||||
Specifically, it's a Winbond W25Q64FW (1.8V), whose datasheet can be found
|
Specifically, it's a Winbond W25Q64FW (1.8V), whose datasheet can be found
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
This section contains documentation about coreboot on specific mainboards.
|
This section contains documentation about coreboot on specific mainboards.
|
||||||
|
|
||||||
|
## AMD
|
||||||
|
- [padmelon](amd/padmelon/padmelon.md)
|
||||||
|
|
||||||
## ASRock
|
## ASRock
|
||||||
|
|
||||||
- [H81M-HDS](asrock/h81m-hds.md)
|
- [H81M-HDS](asrock/h81m-hds.md)
|
||||||
@ -62,9 +65,18 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
|
|
||||||
- [Mainboard codenames](lenovo/codenames.md)
|
- [Mainboard codenames](lenovo/codenames.md)
|
||||||
- [Hardware Maintenance Manual of ThinkPads](lenovo/thinkpad_hmm.md)
|
- [Hardware Maintenance Manual of ThinkPads](lenovo/thinkpad_hmm.md)
|
||||||
|
- [R60](lenovo/r60.md)
|
||||||
- [T4xx common](lenovo/t4xx_series.md)
|
- [T4xx common](lenovo/t4xx_series.md)
|
||||||
- [X2xx common](lenovo/x2xx_series.md)
|
- [X2xx common](lenovo/x2xx_series.md)
|
||||||
|
|
||||||
|
### Nehalem series
|
||||||
|
|
||||||
|
- [T410](lenovo/t410.md)
|
||||||
|
|
||||||
|
### GM45 series
|
||||||
|
|
||||||
|
- [X301](lenovo/x301.md)
|
||||||
|
|
||||||
### Sandy Bridge series
|
### Sandy Bridge series
|
||||||
|
|
||||||
- [T420](lenovo/t420.md)
|
- [T420](lenovo/t420.md)
|
||||||
@ -79,6 +91,14 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
- [T430 / T530 / X230 / W530 common](lenovo/xx30_series.md)
|
- [T430 / T530 / X230 / W530 common](lenovo/xx30_series.md)
|
||||||
- [T431s](lenovo/t431s.md)
|
- [T431s](lenovo/t431s.md)
|
||||||
|
|
||||||
|
### Haswell series
|
||||||
|
|
||||||
|
- [T440p](lenovo/t440p.md)
|
||||||
|
|
||||||
|
## Portwell
|
||||||
|
|
||||||
|
- [PQ7-M107](portwell/pq7-m107.md)
|
||||||
|
|
||||||
## MSI
|
## MSI
|
||||||
|
|
||||||
- [MS-7707](msi/ms7707/ms7707.md)
|
- [MS-7707](msi/ms7707/ms7707.md)
|
||||||
@ -108,7 +128,7 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
## Supermicro
|
## Supermicro
|
||||||
|
|
||||||
- [X10SLM+-F](supermicro/x10slm-f.md)
|
- [X10SLM+-F](supermicro/x10slm-f.md)
|
||||||
- [X11 LGA1151 series](supermicro/x11-lga1151-series/index.md)
|
- [X11 LGA1151 series](supermicro/x11-lga1151-series/x11-lga1151-series.md)
|
||||||
|
|
||||||
## UP
|
## UP
|
||||||
|
|
||||||
|
44
Documentation/mainboard/lenovo/r60.md
Normal file
44
Documentation/mainboard/lenovo/r60.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Lenovo Thinkpad R60
|
||||||
|
|
||||||
|
Untested on boards with external Radeon graphics adapter. If you have such
|
||||||
|
board, proceed at your own risk and document if it does work.
|
||||||
|
|
||||||
|
## Flashing instructions
|
||||||
|
|
||||||
|
### External flashing
|
||||||
|
|
||||||
|
The flash IC is located at the bottom center of the mainboard. Access to
|
||||||
|
the flash chip is blocked by the magnesium frame, so you need to disassemble
|
||||||
|
the entire laptop and remove the mainboard. The flash chip is referenced as U49 in
|
||||||
|
the schematics and in the boardview.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
To disassemble the laptop, follow the [Hardware Maintenance Manual](https://thinkpads.com/support/hmm/hmm_pdf/42x3749_02.pdf).
|
||||||
|
|
||||||
|
### Internal flashing on Vendor BIOS
|
||||||
|
|
||||||
|
This [method](https://gist.github.com/ArthurHeymans/c5ef494ada01af372735f237f6c6adbe) describes a way to install coreboot with vendor firmware still
|
||||||
|
installed on the Lenovo Thinkpad X60. It is reported to also work in Thinkpad
|
||||||
|
R60, with the only difference being the board target you build coreboot for.
|
||||||
|
|
||||||
|
### Flashing on coreboot
|
||||||
|
|
||||||
|
Default configuration of coreboot doesn't feature any flash restrictions
|
||||||
|
like the vendor firmware, therefore flashrom is able to flash any rom without problems.
|
||||||
|
|
||||||
|
## Things tested and working in Linux 5.3:
|
||||||
|
|
||||||
|
- Intel WiFi card
|
||||||
|
- Suspend and resume
|
||||||
|
- Native graphics initialization. Both legacy VGA and linear framebuffer work
|
||||||
|
- GRUB2 2.04 and SeaBIOS 1.12.1 payloads
|
||||||
|
- Reflashing with flashrom (use flashrom-git as of 17.09.2019)
|
||||||
|
- 2G+1G memory configuration working
|
||||||
|
- 2504 dock USB ports if not hotplugged
|
||||||
|
|
||||||
|
## Things tested and not working:
|
||||||
|
|
||||||
|
- 2504 dock hotplugging
|
||||||
|
- Black bar at the left side of the screen. Doesn't appear in Linux. See picture at top
|
||||||
|
- Sometimes it takes several second to run coreboot. Just wait for it
|
BIN
Documentation/mainboard/lenovo/r60_chip.jpg
Normal file
BIN
Documentation/mainboard/lenovo/r60_chip.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
44
Documentation/mainboard/lenovo/t410.md
Normal file
44
Documentation/mainboard/lenovo/t410.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Lenovo T410
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
* Dock has wrong ACPI ID (causes "AC adapter state cannot be read" in Linux)
|
||||||
|
* TPM not working with VBOOT and C_ENV bootblock (works without C_ENV BB)
|
||||||
|
|
||||||
|
## Flashing instructions
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+================================+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Size | 8 MiB |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| In circuit flashing | Only in S3/WoL |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Package | SOIC-8 |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Write protection | No |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Dual BIOS feature | No |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
| Internal flashing | Yes |
|
||||||
|
+---------------------+--------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash IC is located at the bottom center of the mainboard. Sadly,
|
||||||
|
access to the IC is blocked by the magnesum frame, so you need to disassemble
|
||||||
|
the entire laptop and remove the mainboard.
|
||||||
|
|
||||||
|
Below is a picture of IC on the mainboard, with the pinouts labeled.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The chip will either be a Macronix MX25L6405D or a Winbond W25Q64CVSIG.
|
||||||
|
Do not rely on dots painted in the corner of the chip (such as the blue dot
|
||||||
|
pictured) to orient the pins!
|
||||||
|
|
||||||
|
[Flashing tutorial](../../flash_tutorial/no_ext_power.md)
|
||||||
|
|
||||||
|
Steps to access the flash IC are described here [T4xx series].
|
||||||
|
|
||||||
|
[T4xx series]: t4xx_series.md
|
BIN
Documentation/mainboard/lenovo/t410_chip_location.jpg
Normal file
BIN
Documentation/mainboard/lenovo/t410_chip_location.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
66
Documentation/mainboard/lenovo/t440p.md
Normal file
66
Documentation/mainboard/lenovo/t440p.md
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Lenovo ThinkPad T440p
|
||||||
|
|
||||||
|
This page describes how to run coreboot on [Lenovo ThinkPad T440p].
|
||||||
|
|
||||||
|
## Required proprietary blobs
|
||||||
|
|
||||||
|
Please see [mrc.bin](../../northbridge/intel/haswell/mrc.bin).
|
||||||
|
|
||||||
|
## Flashing instructions
|
||||||
|
|
||||||
|
T440p has two flash chips, an 8MB W25Q64FV and a 4MB W25Q32FV. To flash
|
||||||
|
coreboot, you just need to remove the big door according to the T440
|
||||||
|
[Hardware Maintenance Manual] and flash the 4MB chip.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
To access the 8MB chip, you need to remove the base cover.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The flash layout of the OEM firmware is as follows:
|
||||||
|
|
||||||
|
00000000:00000fff fd
|
||||||
|
00001000:00002fff gbe
|
||||||
|
00003000:004fffff me
|
||||||
|
00500000:00bfffff bios
|
||||||
|
|
||||||
|
After flashing coreboot, you may need to re-plug the AC adapter to make
|
||||||
|
the laptop able to power on.
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
- No audio output when using a headphone
|
||||||
|
- The touchpad is misconfigured, the 3 keys on top are all identified
|
||||||
|
as left button
|
||||||
|
- Cannot get the mainboard serial number from the mainboard: the OEM
|
||||||
|
UEFI firmware gets the serial number from an "emulated EEPROM" via
|
||||||
|
I/O port 0x1630/0x1634, but it's still unknown how to make it work
|
||||||
|
|
||||||
|
## Untested
|
||||||
|
|
||||||
|
- the dGPU model
|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- boot Arch Linux with Linux 4.19.77 from SeaBIOS payload
|
||||||
|
- integrated graphics init with libgfxinit
|
||||||
|
- EHCI debug: the port is the non-charging USB2 port on the right
|
||||||
|
- video output: internal (eDP), miniDP, dock DP, dock HDMI
|
||||||
|
- ACPI support
|
||||||
|
- keyboard and trackpoint
|
||||||
|
- SATA
|
||||||
|
- M.2 SATA SSD
|
||||||
|
- USB
|
||||||
|
- Ethernet
|
||||||
|
- WLAN
|
||||||
|
- WWAN
|
||||||
|
- bluetooth
|
||||||
|
- virtualization: VT-x and VT-d
|
||||||
|
- dock
|
||||||
|
- CMOS options: wlan, trackpoint, fn_ctrl_swap
|
||||||
|
- internal flashing when IFD is unlocked
|
||||||
|
- using `me_cleaner`
|
||||||
|
|
||||||
|
[Lenovo ThinkPad T440p]: https://pcsupport.lenovo.com/us/zh/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t440p
|
||||||
|
[Hardware Maintenance Manual]: https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/t440p_hmm_en_sp40a25467_04.pdf
|
BIN
Documentation/mainboard/lenovo/t440p_all_flash_chips.jpg
Normal file
BIN
Documentation/mainboard/lenovo/t440p_all_flash_chips.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
BIN
Documentation/mainboard/lenovo/t440p_flash_chip.jpg
Normal file
BIN
Documentation/mainboard/lenovo/t440p_flash_chip.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
44
Documentation/mainboard/lenovo/x301.md
Normal file
44
Documentation/mainboard/lenovo/x301.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Lenovo X301
|
||||||
|
|
||||||
|
## Disassembly Instructions
|
||||||
|
|
||||||
|
You must remove the following parts to access the SPI flash:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Battery pack
|
||||||
|
* Keyboard
|
||||||
|
|
||||||
|
Its [Hardware Maintenance Manual](https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/43y9441.pdf) can be used as a guidance of disassembly.
|
||||||
|
|
||||||
|
The WSON-8 flash chip (surrounded with red circle in the photo above,
|
||||||
|
already replaced with a SOIC-8 one) sits under a piece of insulating
|
||||||
|
tape. If solders between the chip and soldering pads fortunately
|
||||||
|
overflows beside the chip as tiny tin balls attached to soldering pads,
|
||||||
|
it will be possible to use a pomona 5250 clip to hold the chip, with
|
||||||
|
its metal tips just attached to tin balls, thus connecting the chip to
|
||||||
|
the programmer. Otherwise, it may be recommended to replace it with a
|
||||||
|
SOIC-8 one (you might need to add the chip to the IFD VSCC list), as
|
||||||
|
what is done in the photo.
|
||||||
|
|
||||||
|
The vendor IFD VSCC list contains:
|
||||||
|
-MACRONIX_MX25L6405 (0xc2, 0x2017)
|
||||||
|
-WINBOND_NEX_W25X64 (0xef, 0x3017)
|
||||||
|
-ATMEL_AT25DF641 (0x1f, 0x4800)
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
:doc:`../../flash_tutorial/ext_power`
|
||||||
|
```
|
||||||
|
Tested:
|
||||||
|
- CPU Core 2 Duo U9400
|
||||||
|
- Slotted DIMM 4GiB*2 from samsung
|
||||||
|
- Camera
|
||||||
|
- pci-e slots
|
||||||
|
- sata and usb2
|
||||||
|
- libgfxinit-based graphic init
|
||||||
|
- NVRAM options for North and South bridges
|
||||||
|
- Sound
|
||||||
|
- Thinkpad EC
|
||||||
|
- S3
|
||||||
|
- Linux 4.19.67-2 within Debian GNU/Linux stable, loaded from
|
||||||
|
Linux payload (Heads) and Seabios.
|
BIN
Documentation/mainboard/lenovo/x301_kb_removed.jpg
Normal file
BIN
Documentation/mainboard/lenovo/x301_kb_removed.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 313 KiB |
@ -4,9 +4,10 @@ This page describes how to run coreboot on the [Portwell PQ7-M107].
|
|||||||
|
|
||||||
PQ7-M107 are assembled with different onboard memory modules:
|
PQ7-M107 are assembled with different onboard memory modules:
|
||||||
Rev 1.0 Onboard Samsung K4B8G1646D-MYKO memory
|
Rev 1.0 Onboard Samsung K4B8G1646D-MYKO memory
|
||||||
Rev 1.1 and 1.2 Onboard Micron MT41K512M16HA-125A memory
|
Rev 1.1 and 1.2 Onboard Micron MT41K512M16HA-125A memory
|
||||||
|
Rev 1.3 Onboard Kingston B5116ECMDXGGB memory
|
||||||
|
|
||||||
Use 'make menuconfig' to configure `onboard memory manufacture` in Mainboard
|
Use 'make menuconfig' to configure `onboard memory manufacturer` in Mainboard
|
||||||
menu.
|
menu.
|
||||||
|
|
||||||
## Required blobs
|
## Required blobs
|
||||||
@ -53,7 +54,7 @@ serial/video/pcie ports might be available.
|
|||||||
- eMMC
|
- eMMC
|
||||||
- SATA
|
- SATA
|
||||||
- serial port
|
- serial port
|
||||||
- SMbus
|
- SMBus
|
||||||
- HDA (codec on carrier)
|
- HDA (codec on carrier)
|
||||||
- initialization with FSP MR2
|
- initialization with FSP MR2
|
||||||
- SeaBIOS payload (version rel-1.11.0-44-g7961917)
|
- SeaBIOS payload (version rel-1.11.0-44-g7961917)
|
||||||
|
@ -168,7 +168,7 @@ Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
|
|||||||
- VGA graphics
|
- VGA graphics
|
||||||
- disabling VGA graphics using the jumper
|
- disabling VGA graphics using the jumper
|
||||||
- hiding the AST2400 using the CMOS setting
|
- hiding the AST2400 using the CMOS setting
|
||||||
- super I/O hardware monitor (see [Known issues](#known-issues))
|
- Super I/O hardware monitor (see [Known issues](#known-issues))
|
||||||
- initialisation with Haswell MRC version 1.6.1 build 2
|
- initialisation with Haswell MRC version 1.6.1 build 2
|
||||||
- flashrom under coreboot
|
- flashrom under coreboot
|
||||||
- Wake-on-LAN
|
- Wake-on-LAN
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
# X11 LGA1151 series
|
|
||||||
|
|
||||||
The supermicros X11 series with socket LGA1151 are mostly the same boards with some minor
|
|
||||||
differences in internal and external interfaces like available PCIe slots, 1 GbE, 10 GbE,
|
|
||||||
IPMI etc. This is why those boards are grouped as "X11 LGA1151 series".
|
|
||||||
|
|
||||||
- [X11SSH-TF](x11ssh-tf/x11ssh-tf.md)
|
|
@ -0,0 +1,62 @@
|
|||||||
|
# X11 LGA1151 series
|
||||||
|
|
||||||
|
The [Supermicro X11 LGA1151 series] are mostly the same boards with some minor differences in
|
||||||
|
internal and external interfaces like available PCIe slots, NICs (1 GbE, 10 GbE), IPMI, RAID
|
||||||
|
Controller etc.
|
||||||
|
|
||||||
|
## Supported boards
|
||||||
|
|
||||||
|
- [X11SSH-TF](x11ssh-tf/x11ssh-tf.md)
|
||||||
|
- [X11SSM-F](x11ssm-f/x11ssm-f.md)
|
||||||
|
|
||||||
|
## Required proprietary blobs
|
||||||
|
|
||||||
|
- [Intel FSP2.0]
|
||||||
|
- Intel ME
|
||||||
|
|
||||||
|
## De-blobbing
|
||||||
|
|
||||||
|
- [Intel FSP2.0] can not be removed as long as there is no free replacement
|
||||||
|
- Intel ME can be cleaned using me_cleaner (~4.5 MB more free space)
|
||||||
|
- Intel Ethernet Controller Firmware can be removed when it's extended functionality is not
|
||||||
|
needed. For more details refer to the respective datasheet (e.g 333016-008 for I210).
|
||||||
|
- Boards with [AST2400] BMC/IPMI: Firmware can be replaced by [OpenBMC]
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
Look at the [flashing tutorial] and the board-specific section.
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
These issues apply to all boards. Have a look at the board-specific issues, too.
|
||||||
|
|
||||||
|
- TianoCore doesn't work with Aspeed NGI, as it's text mode only (Fix is WIP CB:35726)
|
||||||
|
- MRC caching does not work with cold boot
|
||||||
|
|
||||||
|
## ToDo
|
||||||
|
|
||||||
|
- Fix issues above
|
||||||
|
- Fix issues in board specific sections
|
||||||
|
- Fix TODOs mentioned in code
|
||||||
|
- Add more boards! :-)
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Kaby Lake |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel C232/C236 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel SPS (server version of the ME) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extra links
|
||||||
|
|
||||||
|
[Supermicro X11 LGA1151 series]: https://www.supermicro.com/products/motherboard/Xeon3000/#1151
|
||||||
|
[OpenBMC]: https://www.openbmc.org/
|
||||||
|
[flashrom]: https://flashrom.org/Flashrom
|
||||||
|
[flashing tutorial]: ../../../../flash_tutorial/ext_power.md
|
||||||
|
[Intel FSP2.0]: ../../../../soc/intel/fsp/index.md
|
||||||
|
[AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376
|
@ -2,46 +2,40 @@
|
|||||||
|
|
||||||
This section details how to run coreboot on the [Supermicro X11SSH-TF].
|
This section details how to run coreboot on the [Supermicro X11SSH-TF].
|
||||||
|
|
||||||
## Required proprietary blobs
|
|
||||||
|
|
||||||
* [Intel FSP2.0]
|
|
||||||
* Intel ME
|
|
||||||
|
|
||||||
## Flashing coreboot
|
## Flashing coreboot
|
||||||
|
|
||||||
The board can be flashed externally using *some* programmers.
|
The board can be flashed externally using *some* programmers. The CH341 was found working, while
|
||||||
The CH341 was found working, while Dediprog won't detect the chip.
|
Dediprog didn't detect the chip.
|
||||||
|
|
||||||
For more details have a look at the [flashing tutorial].
|
|
||||||
|
|
||||||
The flash IC can be found between the two PCIe slots near the southbridge:
|
The flash IC can be found between the two PCIe slots near the southbridge:
|
||||||

|

|
||||||
|
|
||||||
## BMC (IPMI)
|
## BMC (IPMI)
|
||||||
|
|
||||||
This board has an ASPEED [AST2400], which has BMC functionality. The
|
This board has an ASPEED [AST2400], which has BMC/[IPMI] functionality. The BMC firmware resides
|
||||||
BMC firmware resides in a 32 MiB SOIC-16 chip in the corner of the
|
in a 32 MiB SOIC-16 chip in the corner of the mainboard near the [AST2400]. This chip is an
|
||||||
mainboard near the [AST2400]. This chip is an [MX25L25635F].
|
[MX25L25635F].
|
||||||
|
|
||||||
## Known issues
|
|
||||||
|
|
||||||
- Intel SGX causes secondary APs to crash (disabled for now).
|
|
||||||
- Tianocore doesn't work with Aspeed NGI, as it's text mode only.
|
|
||||||
- SMBus / I2C does not work (interrupt timeout)
|
|
||||||
|
|
||||||
## Tested and working
|
## Tested and working
|
||||||
|
|
||||||
- USB ports
|
- USB ports
|
||||||
- M.2 2280 NVMe slot
|
- Ethernet
|
||||||
- 2x 10GB Ethernet
|
- SATA ports
|
||||||
- SATA
|
- RS232 external
|
||||||
- RS232
|
|
||||||
- VGA on Aspeed
|
|
||||||
- Super I/O initialisation
|
|
||||||
- ECC DRAM detection
|
- ECC DRAM detection
|
||||||
- PCIe slots
|
- PCIe slots
|
||||||
- TPM on TPM expansion header
|
- M.2 2280 NVMe slot
|
||||||
- BMC (IPMI)
|
- BMC (IPMI)
|
||||||
|
- VGA on Aspeed
|
||||||
|
- TPM on TPM expansion header
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
See general issue section.
|
||||||
|
|
||||||
|
## ToDo
|
||||||
|
|
||||||
|
- Fix TODOs mentioned in code
|
||||||
|
|
||||||
## Technology
|
## Technology
|
||||||
|
|
||||||
@ -51,23 +45,46 @@ mainboard near the [AST2400]. This chip is an [MX25L25635F].
|
|||||||
+------------------+--------------------------------------------------+
|
+------------------+--------------------------------------------------+
|
||||||
| PCH | Intel C236 |
|
| PCH | Intel C236 |
|
||||||
+------------------+--------------------------------------------------+
|
+------------------+--------------------------------------------------+
|
||||||
| Super I/O | ASPEED AST2400 |
|
|
||||||
+------------------+--------------------------------------------------+
|
|
||||||
| Coprocessor | Intel SPS (server version of the ME) |
|
| Coprocessor | Intel SPS (server version of the ME) |
|
||||||
+------------------+--------------------------------------------------+
|
+------------------+--------------------------------------------------+
|
||||||
| Coprocessor | ASPEED AST2400 |
|
| Super I/O | ASPEED AST2400 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Ethernet | 2x Intel® X550 10GBase-T Ethernet |
|
||||||
|
| | 1x dedicated BMC |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCIe slots | 1x 3.0 x8 |
|
||||||
|
| | 1x 3.0 x2 (in x4) |
|
||||||
|
| | 1x 3.0 M.2 2260 x4 (Key M, with S-ATA) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| USB slots | 2x USB 2.0 (ext) |
|
||||||
|
| | 2x USB 3.0 (ext) |
|
||||||
|
| | 1x USB 3.0 (int) |
|
||||||
|
| | 1x dual USB 3.0 header |
|
||||||
|
| | 2x dual USB 2.0 header |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| SATA slots | 8x SATA III |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Other slots | 1x RS232 (ext) |
|
||||||
|
| | 1x RS232 header |
|
||||||
|
| | 1x TPM header |
|
||||||
|
| | 1x Power SMB header |
|
||||||
|
| | 6x PWM Fan connector |
|
||||||
|
| | 2x I-SGPIO |
|
||||||
|
| | 2x S-ATA DOM Power connector |
|
||||||
|
| | 1x XDP Port |
|
||||||
|
| | 1x External BMC I2C Header (for IPMI card) |
|
||||||
|
| | 1x Chassis Intrusion Header |
|
||||||
+------------------+--------------------------------------------------+
|
+------------------+--------------------------------------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
## Extra links
|
## Extra links
|
||||||
|
|
||||||
|
- [Supermicro X11SSH-TF]
|
||||||
- [Board manual]
|
- [Board manual]
|
||||||
|
|
||||||
[AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376
|
[Supermicro X11SSH-TF]: https://www.supermicro.com/en/products/motherboard/X11SSH-TF
|
||||||
[Board manual]: https://www.supermicro.com/manuals/motherboard/C236/MNL-1783.pdf
|
[Board manual]: https://www.supermicro.com/manuals/motherboard/C236/MNL-1783.pdf
|
||||||
[flashrom]: https://flashrom.org/Flashrom
|
[AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376
|
||||||
|
[IPMI]: ../../../../drivers/ipmi_kcs.md
|
||||||
[MX25L25635F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L25635F.pdf
|
[MX25L25635F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L25635F.pdf
|
||||||
[N25Q128A]: https://www.micron.com/~/media/Documents/Products/Data%20Sheet/NOR%20Flash/Serial%20NOR/N25Q/n25q_128mb_3v_65nm.pdf
|
[N25Q128A]: https://www.micron.com/~/media/Documents/Products/Data%20Sheet/NOR%20Flash/Serial%20NOR/N25Q/n25q_128mb_3v_65nm.pdf
|
||||||
[flashing tutorial]: ../../../../flash_tutorial/ext_power.md
|
|
||||||
[Intel FSP2.0]: ../../../../soc/intel/fsp/index.md
|
|
||||||
[Supermicro X11SSH-TF]: https://www.supermicro.com/en/products/motherboard/X11SSH-TF
|
|
||||||
|
@ -0,0 +1,93 @@
|
|||||||
|
# Supermicro X11SSM-F
|
||||||
|
|
||||||
|
This section details how to run coreboot on the [Supermicro X11SSM-F].
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
The board can be flashed externally. FTDI FT2232H and FT232H based programmers worked.
|
||||||
|
|
||||||
|
The flash IC [MX25L12873F] can be found near PCH PCIe Slot 4. It is socketed on retail boards.
|
||||||
|
|
||||||
|
For doing ISP (In-System-Programming) one needs to add a diode between VCC and the flash chip.
|
||||||
|
|
||||||
|
## BMC (IPMI)
|
||||||
|
|
||||||
|
This board has an ASPEED [AST2400], which has BMC/[IPMI] functionality. The BMC firmware resides in a
|
||||||
|
32 MiB SOIC-16 chip in the corner of the mainboard near the PCH PCIe Slot 4. This chip is a
|
||||||
|
[MX25L25635F].
|
||||||
|
|
||||||
|
## Tested and working
|
||||||
|
|
||||||
|
- GRUB2 payload with Debian testing and kernel 5.2
|
||||||
|
- ECC ram (Linux' ie31200 driver works)
|
||||||
|
- USB ports
|
||||||
|
- Ethernet
|
||||||
|
- SATA ports
|
||||||
|
- RS232 external
|
||||||
|
- PCIe slots
|
||||||
|
- BMC (IPMI)
|
||||||
|
- VGA on Aspeed
|
||||||
|
- TPM on TPM expansion header
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
- See general issue section
|
||||||
|
- "only partially covers this bridge" info from Linux kernel (what does that mean?)
|
||||||
|
- LNXTHERM missing
|
||||||
|
- S3 resume not working
|
||||||
|
|
||||||
|
## ToDo
|
||||||
|
|
||||||
|
- Fix TODOs mentioned in code
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Kaby Lake |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel C236 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel SPS (server version of the ME) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O | ASPEED AST2400 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Ethernet | 2x Intel I210-AT 1 GbE |
|
||||||
|
| | 1x dedicated BMC |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCIe slots | 1x 3.0 x8 |
|
||||||
|
| | 1x 3.0 x8 (in x16) |
|
||||||
|
| | 2x 3.0 x4 (in x8) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| USB slots | 2x USB 2.0 (ext) |
|
||||||
|
| | 2x USB 3.0 (ext) |
|
||||||
|
| | 1x USB 3.0 (int) |
|
||||||
|
| | 1x dual USB 3.0 header |
|
||||||
|
| | 2x dual USB 2.0 header |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| SATA slots | 8x S-ATA III |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Other slots | 1x RS232 (ext) |
|
||||||
|
| | 1x RS232 header |
|
||||||
|
| | 1x TPM header |
|
||||||
|
| | 1x Power SMB header |
|
||||||
|
| | 5x PWM Fan connector |
|
||||||
|
| | 2x I-SGPIO |
|
||||||
|
| | 2x S-ATA DOM Power connector |
|
||||||
|
| | 1x XDP Port |
|
||||||
|
| | 1x External BMC I2C Header (for IPMI card) |
|
||||||
|
| | 1x Chassis Intrusion Header |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extra links
|
||||||
|
|
||||||
|
- [Supermicro X11SSM-F]
|
||||||
|
- [Board manual]
|
||||||
|
|
||||||
|
[Supermicro X11SSM-F]: https://www.supermicro.com/en/products/motherboard/X11SSM-F
|
||||||
|
[Board manual]: https://www.supermicro.com/manuals/motherboard/C236/MNL-1785.pdf
|
||||||
|
[AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376
|
||||||
|
[IPMI]: ../../../../drivers/ipmi_kcs.md
|
||||||
|
[MX25L25635F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L25635F.pdf
|
||||||
|
[MX25L12873F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L12873F.pdf
|
@ -11,7 +11,32 @@ notes.
|
|||||||
* The chip and board additions and removals will be updated right
|
* The chip and board additions and removals will be updated right
|
||||||
before the release, so those do not need to be added.
|
before the release, so those do not need to be added.
|
||||||
|
|
||||||
|
Clean Up
|
||||||
|
--------
|
||||||
|
Because there was only a single developer board (AMD Torpedo)
|
||||||
|
using AGESA family 12h, and because there were multiple,
|
||||||
|
unique Coverity issues with it, the associated vendorcode will
|
||||||
|
be removed shortly after this release.
|
||||||
|
|
||||||
Significant changes
|
Significant changes
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
### Add significant changes here
|
### Add significant changes here
|
||||||
|
|
||||||
|
### `__PRE_RAM__` is deprecated
|
||||||
|
|
||||||
|
Preprocessor use of `defined(__PRE_RAM_)` have been mostly replaced with
|
||||||
|
`if (ENV_ROMSTAGE_OR_BEFORE)` or the inverse `if (ENV_RAMSTAGE)`.
|
||||||
|
|
||||||
|
The remaining cases and `-D__PRE_RAM__` are to be removed soon after release.
|
||||||
|
|
||||||
|
### `CAR_GLOBAL` is removed where possible
|
||||||
|
|
||||||
|
For all platform code with `NO_CAR_GLOBAL_MIGRATION=y`, any `CAR_GLOBAL`
|
||||||
|
attributes have been removed. Remaining cases from common code are to be
|
||||||
|
removed soon after release.
|
||||||
|
|
||||||
|
### `TSEG` and `cbmem_top()` mapping
|
||||||
|
|
||||||
|
Significant refactoring has bee done to achieve some consistency across platforms
|
||||||
|
and to reduce code duplication.
|
||||||
|
@ -10,6 +10,7 @@ Release notes for previous releases
|
|||||||
* [4.7 - January 2018](coreboot-4.7-relnotes.md)
|
* [4.7 - January 2018](coreboot-4.7-relnotes.md)
|
||||||
* [4.8 - May 2018](coreboot-4.8.1-relnotes.md)
|
* [4.8 - May 2018](coreboot-4.8.1-relnotes.md)
|
||||||
* [4.9 - December 2018](coreboot-4.9-relnotes.md)
|
* [4.9 - December 2018](coreboot-4.9-relnotes.md)
|
||||||
|
* [4.10 - July 2019](coreboot-4.10-relnotes.md)
|
||||||
|
|
||||||
The checklist contains instructions to ensure that a release covers all
|
The checklist contains instructions to ensure that a release covers all
|
||||||
important things and provides a reliable format for tarballs, branch
|
important things and provides a reliable format for tarballs, branch
|
||||||
@ -21,4 +22,4 @@ Upcoming release
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
Please add to the release notes as changes are added:
|
Please add to the release notes as changes are added:
|
||||||
* [4.10 - April 2019](coreboot-4.10-relnotes.md)
|
* [4.11 - October 2019](coreboot-4.11-relnotes.md)
|
||||||
|
68
Documentation/soc/amd/amdblobs_license.md
Executable file
68
Documentation/soc/amd/amdblobs_license.md
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
# License Agreement for amd_blobs Repository
|
||||||
|
|
||||||
|
## Abstract
|
||||||
|
|
||||||
|
AMD has generated a simpler and more flexible license agreement for using
|
||||||
|
proprietary precompiled binary images. The new agreement is intended to cover
|
||||||
|
all blobs in the directory structure below where the license resides and
|
||||||
|
eliminates any unique agreements previously provided for individual products.
|
||||||
|
|
||||||
|
A [3rdparty/amd_blobs](https://review.coreboot.org/admin/repos/amd_blobs) repo
|
||||||
|
now exists for distributing new blobs to coreboot developers and consumers.
|
||||||
|
Images for older products will be moved to amd_blobs as time permits.
|
||||||
|
|
||||||
|
By cloning the amd_blobs repo, you will be agreeing to the license agreement
|
||||||
|
contained there.
|
||||||
|
|
||||||
|
## Text of License Agreement
|
||||||
|
|
||||||
|
The language of the agreement is duplicated below for your reference. The
|
||||||
|
official license agreement may be found inside the Git repository.
|
||||||
|
|
||||||
|
> Copyright (c) 2019 ADVANCED MICRO DEVICES, INC.
|
||||||
|
>
|
||||||
|
> READ CAREFULLY: DO NOT DOWNLOAD, COPY OR USE THE ASSOCIATED AMD SOFTWARE
|
||||||
|
> ("LICENSED SOFTWARE") UNTIL YOU HAVE CAREFULLY READ THE FOLLOWING. BY USING
|
||||||
|
> THE LICENSED SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE FOLLOWING TERMS:
|
||||||
|
>
|
||||||
|
> Redistribution and use in binary form, without modification, is permitted
|
||||||
|
> subject to the following conditions:
|
||||||
|
>
|
||||||
|
> a. Reverse engineering, disassembly, or de-compilation of the Licensed
|
||||||
|
> Software is not permitted;
|
||||||
|
>
|
||||||
|
> b. All the content of this document, including the above copyright notice and
|
||||||
|
> below disclaimer, must be included in the documentation or other materials
|
||||||
|
> provided with any distribution, and you may not alter or remove any copyright,
|
||||||
|
> trademark or patent notice(s) in the Licensed Software; and,
|
||||||
|
>
|
||||||
|
> c. The name “AMD” or “Advanced Micro Devices” may not be used to promote
|
||||||
|
> products derived from the Licensed Software.
|
||||||
|
>
|
||||||
|
> Except for the limited license expressly granted above, you have no other
|
||||||
|
> rights in the Licensed Software, whether express, implied, arising by estoppel
|
||||||
|
> or otherwise. The Licensed Software including all Intellectual Property Rights
|
||||||
|
> therein is and remains the sole and exclusive property of AMD or its
|
||||||
|
> licensors, and You shall have no right, title or interest therein except as
|
||||||
|
> expressly set forth above.
|
||||||
|
>
|
||||||
|
> Disclaimer of Warranty. THE LICENSED SOFTWARE IS PROVIDED "AS IS" WITHOUT
|
||||||
|
> WARRANTY OF ANY KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR
|
||||||
|
> STATUTORY, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
|
||||||
|
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-
|
||||||
|
> INFRINGEMENT, THAT THE LICENSED SOFTWARE WILL RUN UNINTERRUPTED OR ERROR-FREE
|
||||||
|
> OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR COURSE OF USAGE. THE ENTIRE RISK
|
||||||
|
> ASSOCIATED WITH THE USE OF THE LICENSED SOFTWARE IS ASSUMED BY YOU INCLUDING,
|
||||||
|
> WITHOUT LIMITATION, PERFORMANCE AND INTEROPERABILITY ISSUES THAT MAY ADVERSELY
|
||||||
|
> AFFECT YOUR EXPERIENCE AND THE STABILITY OF YOUR COMPUTING SYSTEM; AND
|
||||||
|
> (C) OTHER EXPERIENCES RESULTING IN ADVERSE EFFECTS, INCLUDING, BUT NOT
|
||||||
|
> LIMITED, TO DATA CORRUPTION OR LOSS. AMD WILL NOT, UNDER ANY CIRCUMSTANCES BE
|
||||||
|
> LIABLE TO YOU FOR ANY PUNITIVE, DIRECT, INCIDENTAL, INDIRECT, SPECIAL OR
|
||||||
|
> CONSEQUENTIAL DAMAGES INCLUDING LOSS OF USE, PROFITS, OR DATA ARISING FROM USE
|
||||||
|
> OF THE LICENSED SOFTWARE EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF
|
||||||
|
> THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
>
|
||||||
|
> The Licensed Software including all Intellectual Property Rights therein is
|
||||||
|
> and remains the sole and exclusive property of AMD or its licensors, and You
|
||||||
|
> shall have no right, title or interest therein except as expressly set forth
|
||||||
|
> above or as required by law.
|
@ -7,3 +7,6 @@ This section contains documentation about coreboot on specific AMD SOCs.
|
|||||||
- [Family 15h](family15h.md)
|
- [Family 15h](family15h.md)
|
||||||
- [Family 17h](family17h.md)
|
- [Family 17h](family17h.md)
|
||||||
|
|
||||||
|
## amd_blobs Repository License
|
||||||
|
|
||||||
|
- [amd_blobs](amdblobs_license.md)
|
||||||
|
@ -7,3 +7,4 @@ This section contains documentation about coreboot on specific SOCs.
|
|||||||
- [AMD](amd/index.md)
|
- [AMD](amd/index.md)
|
||||||
- [Cavium](cavium/index.md)
|
- [Cavium](cavium/index.md)
|
||||||
- [Intel](intel/index.md)
|
- [Intel](intel/index.md)
|
||||||
|
- [Qualcomm](qualcomm/index.md)
|
||||||
|
@ -21,6 +21,12 @@ those are fixed. If possible a workaround is described here as well.
|
|||||||
* Workaround: Don't disable this PCI device
|
* Workaround: Don't disable this PCI device
|
||||||
* Issue on public tracker: [Issue 13]
|
* Issue on public tracker: [Issue 13]
|
||||||
|
|
||||||
|
* FSP Notify(EnumInitPhaseAfterPciEnumeration) hangs if 00:02.03/00:02.03 are hidden
|
||||||
|
* Release MR2
|
||||||
|
* Seems to get stuck on some SKUs only if hidden after MemoryInit
|
||||||
|
* Workaround: Hide before MemoryInit
|
||||||
|
* Issue on public tracker: [Issue 35]
|
||||||
|
|
||||||
### KabylakeFsp
|
### KabylakeFsp
|
||||||
* MfgId and ModulePartNum in the DIMM_INFO struct are empty
|
* MfgId and ModulePartNum in the DIMM_INFO struct are empty
|
||||||
* Release 3.7.1
|
* Release 3.7.1
|
||||||
@ -59,4 +65,5 @@ those are fixed. If possible a workaround is described here as well.
|
|||||||
[Issue 13]: https://github.com/IntelFsp/FSP/issues/13
|
[Issue 13]: https://github.com/IntelFsp/FSP/issues/13
|
||||||
[Issue 15]: https://github.com/IntelFsp/FSP/issues/15
|
[Issue 15]: https://github.com/IntelFsp/FSP/issues/15
|
||||||
[Issue 22]: https://github.com/IntelFsp/FSP/issues/22
|
[Issue 22]: https://github.com/IntelFsp/FSP/issues/22
|
||||||
|
[Issue 35]: https://github.com/IntelFsp/FSP/issues/35
|
||||||
|
|
||||||
|
7
Documentation/soc/qualcomm/index.md
Normal file
7
Documentation/soc/qualcomm/index.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Qualcomm SOC-specific documentation
|
||||||
|
|
||||||
|
This section contains documentation about coreboot on specific Qualcomm SOCs.
|
||||||
|
|
||||||
|
## Platforms
|
||||||
|
|
||||||
|
- [SC7180 series](sc7180/index.md)
|
19
Documentation/soc/qualcomm/sc7180/index.md
Normal file
19
Documentation/soc/qualcomm/sc7180/index.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Qualcomm SC7180 documentation
|
||||||
|
|
||||||
|
## SOC code
|
||||||
|
|
||||||
|
The SOC folder contains functions for:
|
||||||
|
* MMU
|
||||||
|
* CLOCK
|
||||||
|
* GPIO
|
||||||
|
* QUPv3 FW (provides a bridge to serial interfaces)
|
||||||
|
* UART
|
||||||
|
* SPI-NOR
|
||||||
|
* AOP FW
|
||||||
|
* USB
|
||||||
|
|
||||||
|
## Notes about the hardware
|
||||||
|
|
||||||
|
The timer is used from the ARMv8 architecture specific code.
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ I/O range and ISA IRQ number.
|
|||||||
|
|
||||||
This example is based on AST2400.
|
This example is based on AST2400.
|
||||||
|
|
||||||
```code
|
```
|
||||||
# Add a "container" for proper ACPI code generation
|
# Add a "container" for proper ACPI code generation
|
||||||
chip superio/common
|
chip superio/common
|
||||||
device pnp 2e.0 on # just for the base device, not for the LDNs
|
device pnp 2e.0 on # just for the base device, not for the LDNs
|
||||||
|
@ -0,0 +1,268 @@
|
|||||||
|
Rebuilding coreboot image generation
|
||||||
|
====================================
|
||||||
|
|
||||||
|
Current situation
|
||||||
|
-----------------
|
||||||
|
Chrome OS (CrOS) probably has the most complex image bundling process in the
|
||||||
|
coreboot ecosystem. To make CrOS features more accessible to the wider
|
||||||
|
coreboot community, we want to move these capabilities into upstream
|
||||||
|
coreboot’s build system.
|
||||||
|
|
||||||
|
Right now, the CrOS build system creates coreboot images, and various
|
||||||
|
instances of the payload (with different configuration options), plus some
|
||||||
|
more files (eg. EC firmware), then passes them to a CrOS-specific utility
|
||||||
|
(`bundle_firmware.py`) to build the final image from that.
|
||||||
|
|
||||||
|
`bundle_firmware` adds a flashmap (fmap) to the final image and creates
|
||||||
|
additional CBFS filesystems in fmap regions. It then extracts some files from
|
||||||
|
the original CBFS region (that was put in place carefully to later match to
|
||||||
|
the default fmap region) and copies some of them into the others, as well as
|
||||||
|
putting more data (eg. the bitmap data, keys) as raw data into other fmap
|
||||||
|
regions.
|
||||||
|
|
||||||
|
With the recent addition of more files to CBFS, both on the coreboot side
|
||||||
|
(dsdt, FSP, and so on) and with Chrome OS specifics (eg. more files describing
|
||||||
|
boot screens) we either need to expand the scope of bundle\_firmware or move
|
||||||
|
the capability to build complex images to upstream coreboot’s build system.
|
||||||
|
This document proposes to do the latter and outlines how this could be
|
||||||
|
achieved.
|
||||||
|
|
||||||
|
Problems with the current build system parts
|
||||||
|
--------------------------------------------
|
||||||
|
One common sentiment is that it should be possible to reuse some of the
|
||||||
|
existing mechanisms that are supposed to be supplanted by this.
|
||||||
|
The main concern during this design that precluded their use was that none of
|
||||||
|
them provides a comprehensive solution to building complex coreboot based
|
||||||
|
images:
|
||||||
|
* fmap.dts and fmd provide a flash layout, but no assignment of files of regions
|
||||||
|
* cbfs-files-y ends up as an internal make variable using
|
||||||
|
`weird|formatting|to|deal|with|make’s|limitations`
|
||||||
|
* make isn’t powerful enough to deal with ordering these entries in said
|
||||||
|
variable to guarantee success if there’s enough room for the files. While that
|
||||||
|
could be added, that becomes more make macro work indistinguishable from magic
|
||||||
|
that people fail to understand, break and with good reason complain about
|
||||||
|
to work around such issues, Chrome OS firmware uses a custom tool with even
|
||||||
|
more special cases to finally build the image it needs. If coreboot upstream
|
||||||
|
is to support vboot, it should also be powerful enough not to need magic tools
|
||||||
|
that only live within downstream projects.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
A complete Chrome OS coreboot image consists of (depending on the device)
|
||||||
|
* platform specific data in raw fmap regions (eg IFD, ME firmware),
|
||||||
|
* the bootblock (coming from the bootblock),
|
||||||
|
* three copies of coreboot, consisting of the stages (verstage, romstage,
|
||||||
|
ramstage) plus data,
|
||||||
|
* depthcharge plus data (with each of the coreboot copies),
|
||||||
|
* EC firmware files (with each of the coreboot copies),
|
||||||
|
* signatures over several parts of the image and
|
||||||
|
* some final checksumming over parts of the image to satisfy boot ROM
|
||||||
|
tests on ARM
|
||||||
|
|
||||||
|
A complete upstream coreboot image (with fallback/normal switch configuration,
|
||||||
|
using a yet to be implemented switching scheme based on fmaps) consists of
|
||||||
|
* platform specific data in raw fmap regions (eg IFD, ME firmware),
|
||||||
|
* two copies of coreboot, consisting of
|
||||||
|
* the bootblock and
|
||||||
|
* the stages (romstage, ramstage) plus data,
|
||||||
|
* payload plus data (with each of the coreboot copies),
|
||||||
|
|
||||||
|
Since a single platform is potentially built with different payload
|
||||||
|
configurations (eg. modding a Chromebook to not use the verified Chrome OS
|
||||||
|
boot scheme), some concerns need to be kept separate:
|
||||||
|
* Platform requirements that have nothing to do with the payload or boot schemes
|
||||||
|
* IFD, ME, … need to copied to the right place
|
||||||
|
* boot ROM requirements such as checksums must be honored
|
||||||
|
* Payload/boot scheme requirements
|
||||||
|
* Having one to three regions with certain files copied into them
|
||||||
|
|
||||||
|
Proposal
|
||||||
|
--------
|
||||||
|
The proposal is based on manifest files that describe certain aspects of the
|
||||||
|
final image.
|
||||||
|
The number of manifest files may change over time, but this seems to be a
|
||||||
|
reasonable approach for now. As long as coreboot uses fmap and cbfs, there
|
||||||
|
should be few need to change the language, since composition is done through
|
||||||
|
files.
|
||||||
|
|
||||||
|
The final image is generated by a utility that is handed a number of manifests
|
||||||
|
and the size of the flash (derived from `CONFIG_ROM_SIZE`). These manifest files
|
||||||
|
deal with different concerns, with the following an example that should match
|
||||||
|
current use cases:
|
||||||
|
|
||||||
|
Chipset manifest
|
||||||
|
----------------
|
||||||
|
The chipset details if there are any non-coreboot regions, and assigns them
|
||||||
|
names, locations, sizes and file contents and prepares a region for what is
|
||||||
|
“platform visible” (eg. IFD’s BIOS region) that may be of flexible size
|
||||||
|
(depending on the flash chip’s size). For the purpose of this document, that
|
||||||
|
region is called “BIOS”.
|
||||||
|
It can also specify if there’s a post processing requirement on the final
|
||||||
|
image.
|
||||||
|
|
||||||
|
coreboot manifest
|
||||||
|
-----------------
|
||||||
|
coreboot provides lists of the files it generates for each category it’s
|
||||||
|
building (eg. bootblock, verstage, romstage, ramstage). They not only contain
|
||||||
|
the stages themselves, but also additional files (eg. dsdt belongs to ramstage
|
||||||
|
since that’s where it is used)
|
||||||
|
|
||||||
|
Boot method manifest
|
||||||
|
--------------------
|
||||||
|
The boot method manifest can subdivide the BIOS region, eg. using it directly
|
||||||
|
(for coreboot’s “simple” bootblock), splitting it in two (for coreboot’s
|
||||||
|
fallback/normal) or in many parts (for Chrome OS, which requires two CBFS
|
||||||
|
regions, one for GBB, several for VPD, …).
|
||||||
|
It also specifies which of the file lists specified earlier belong in which
|
||||||
|
region (eg. with verstage verifying romstage, verstage needs to be only in
|
||||||
|
Chrome OS’ RO region, while romstage belongs in RO and both RW regions).
|
||||||
|
It can also specify a post processing step that is executed before the
|
||||||
|
chipset’s.
|
||||||
|
|
||||||
|
Payload and additional manifests
|
||||||
|
--------------------------------
|
||||||
|
External components should also provide manifests to add files to categories.
|
||||||
|
This way the payload and other components (eg. EC firmware) can be developed
|
||||||
|
without needing to touch the central boot method manifest (that likely resides
|
||||||
|
in the coreboot tree, given that coreboot needs to deal with choosing fmap
|
||||||
|
regions already).
|
||||||
|
|
||||||
|
coreboot build system
|
||||||
|
---------------------
|
||||||
|
The coreboot build system will be split more distinctly in two phases: The
|
||||||
|
first is about building the files (with results like romstage.elf), while the
|
||||||
|
second phase covers the assembly of the final image.
|
||||||
|
|
||||||
|
By having a global picture of the final image’s requirements, we can also
|
||||||
|
avoid issues where files added earlier may prevent later additions that have
|
||||||
|
stricter constraints - without resorting to hacks like
|
||||||
|
https://chromium-review.googlesource.com/289491 that reorder the file addition
|
||||||
|
manually.
|
||||||
|
|
||||||
|
Example
|
||||||
|
-------
|
||||||
|
As an example, we’ll define an Intel-based board with a postprocessing tool
|
||||||
|
(something that doesn’t exist, but isn’t hard to imagine):
|
||||||
|
|
||||||
|
It specifies an IFD region, an ME, and the BIOS region. After the image is
|
||||||
|
built, the entire image needs to be processed (although the tool likely works
|
||||||
|
only on a small part of it)
|
||||||
|
|
||||||
|
It’s built in a Chrome OS-like configuration (simplified at places to avoid
|
||||||
|
distracting from the important parts), so it has three CBFS regions, and
|
||||||
|
several data regions for its own purpose (similar to GBB, FWID, VPD, …). After
|
||||||
|
the regions are filled, one data region must be post-processed to contain
|
||||||
|
signatures to enable verifying other regions.
|
||||||
|
|
||||||
|
```
|
||||||
|
Chipset manifest
|
||||||
|
================
|
||||||
|
# A region called IFD, starting at 0, ending at 4K
|
||||||
|
region IFD: 0 4K
|
||||||
|
# Add the specified file “raw” into the region.
|
||||||
|
# If the file is smaller than the region, put it at the bottom and fill up
|
||||||
|
# with 0xff
|
||||||
|
raw IFD: build/ifd.bin align=bottom empty=0xff
|
||||||
|
# Call the postprocessor on the data that ends up in IFD (in this example it
|
||||||
|
# might lock the IFD)
|
||||||
|
postprocess IFD: util/ifdprocess -l
|
||||||
|
|
||||||
|
# a region called ME, starting at 4K, ending at 2M
|
||||||
|
region ME: 4K 2M
|
||||||
|
raw ME: 3rdparty/blobs/soc/intel/xanadu/me.bin align=bottom empty=0x00
|
||||||
|
|
||||||
|
# a region called BIOS, starting at 2M, filling up the free space
|
||||||
|
# filling up fails (build error) if two regions are requested to fill up
|
||||||
|
# against each other
|
||||||
|
region BIOS: 2M *
|
||||||
|
|
||||||
|
# This would define a region that covers the last 4K of flash.
|
||||||
|
# The BIOS region specified above will end right before it instead of
|
||||||
|
# expanding to end of flash
|
||||||
|
# region AUX: -4K -0
|
||||||
|
|
||||||
|
# specify the tool that post-processes the entire image.
|
||||||
|
postprocess image: util/intelchksum/intelchksum.sh
|
||||||
|
|
||||||
|
coreboot manifest
|
||||||
|
=================
|
||||||
|
# declare that build/verstage.elf belongs into the group ‘verstage’
|
||||||
|
# these groups are later referred to by the “cbfs” command.
|
||||||
|
group verstage: build/verstage.elf stage xip name=fallback/verstage
|
||||||
|
group romstage: build/romstage.elf stage xip name=fallback/romstage
|
||||||
|
group ramstage: build/ramstage.elf stage name=fallback/ramstage
|
||||||
|
compression=lzma
|
||||||
|
group ramstage: build/dsdt.aml compression=lzma
|
||||||
|
|
||||||
|
boot method manifest
|
||||||
|
====================
|
||||||
|
# Define RO as region inside BIOS, covering the upper half of the image.
|
||||||
|
# It’s a build error if the result crosses outside BIOS.
|
||||||
|
# math expressions are wrapped with ( ),
|
||||||
|
# and mentions of regions therein always refer to their size
|
||||||
|
subregion BIOS RO: ( image / 2 ) -0
|
||||||
|
|
||||||
|
# Define RW to cover the rest of BIOS.
|
||||||
|
# The order of RW and RO doesn’t matter except to keep comments clearer.
|
||||||
|
# Dynamic items like RW (“*”) will be sized to fill unused space after
|
||||||
|
# everything else is placed.
|
||||||
|
subregion BIOS RW: 0 *
|
||||||
|
|
||||||
|
# It may be necessary to separate the RO/RW definition into another manifest
|
||||||
|
# file
|
||||||
|
# that defines the RO configuration of the flash
|
||||||
|
|
||||||
|
# Some more subregions, with dynamically calculated sizes
|
||||||
|
subregion RW RW_A: 0 ( RW / 2 )
|
||||||
|
subregion RW RW_B: * -0
|
||||||
|
subregion RW_A FW_MAIN_A: RW_A * -0
|
||||||
|
subregion RW_A VBLOCK_A: 0 64K
|
||||||
|
# foo +bar specifies start + size, not (start, end)
|
||||||
|
# also, start is given as “the end of VBLOCK_A”
|
||||||
|
# (while using a region in the “end” field means “start of region”)
|
||||||
|
subregion RW_A FWID_A: VBLOCK_A +64
|
||||||
|
|
||||||
|
# To make the example not too verbose, RO only has the CBFS region
|
||||||
|
subregion RO BOOTSTUB: 0 *
|
||||||
|
|
||||||
|
# Postprocess the data that ends up in VBLOCK_A,
|
||||||
|
# passing the listed regions as additional arguments.
|
||||||
|
# Circular dependencies are build errors.
|
||||||
|
postprocess VBLOCK_A(FW_MAIN_A): signtool
|
||||||
|
|
||||||
|
# binding files to regions indirectly through groups
|
||||||
|
cbfs BOOTSTUB: verstage, romstage, ramstage, payload
|
||||||
|
cbfs FW_MAIN_A: romstage, ramstage, payload
|
||||||
|
|
||||||
|
# defining defaults: unless overridden, in all regions that use CBFS (“*”),
|
||||||
|
# we want all files to come with SHA256 hashes.
|
||||||
|
# Wildcard defaults have lower priority than specific defaults.
|
||||||
|
# Other conflicts lead to a build error.
|
||||||
|
cbfsdefaults *: hash=sha3
|
||||||
|
|
||||||
|
payload manifest
|
||||||
|
================
|
||||||
|
group payload: payload.elf payload
|
||||||
|
group payload: bootscreen.jpg name=splashscreen.jpg type=splashscreen
|
||||||
|
|
||||||
|
EC firmware manifest
|
||||||
|
====================
|
||||||
|
# overrides the cbfsdefault above
|
||||||
|
group payload: ecrw.bin name=ecrw hash=sha256
|
||||||
|
group payload: pdrw.bin name=pdrw hash=sha256
|
||||||
|
```
|
||||||
|
|
||||||
|
manifest parsing
|
||||||
|
----------------
|
||||||
|
The exact BNF is work in progress.
|
||||||
|
|
||||||
|
Some parser rules are
|
||||||
|
* one line per statement
|
||||||
|
* '#' introduces a command until the end of line
|
||||||
|
|
||||||
|
Some processing rules
|
||||||
|
* When there’s a conflict (eg. two statements on what to do to a region,
|
||||||
|
overlap, anything that can’t be determined), that is a build error.
|
||||||
|
* the order of statements doesn’t matter, enabling simple addition of more
|
||||||
|
manifests where the need arises.
|
||||||
|
|
4
Documentation/technotes/index.md
Normal file
4
Documentation/technotes/index.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Technotes
|
||||||
|
|
||||||
|
* [Dealing with Untrusted Input in SMM](2017-02-dealing-with-untrusted-input-in-smm.md)
|
||||||
|
* [Rebuilding coreboot image generation](2015-11-rebuilding-coreboot-image-generation.md)
|
@ -1,4 +1,7 @@
|
|||||||
# Utilities
|
# Utilities
|
||||||
|
|
||||||
|
## List of utils
|
||||||
|
|
||||||
_Scripts and programs found in the `./util` directory_
|
_Scripts and programs found in the `./util` directory_
|
||||||
* __abuild__ - coreboot autobuild script builds coreboot images for all
|
* __abuild__ - coreboot autobuild script builds coreboot images for all
|
||||||
available targets. `bash`
|
available targets. `bash`
|
||||||
@ -131,3 +134,8 @@ CPUs. `C`
|
|||||||
* __x86__ - Generates 32-bit PAE page tables based on a CSV input file.
|
* __x86__ - Generates 32-bit PAE page tables based on a CSV input file.
|
||||||
`Go`
|
`Go`
|
||||||
* __xcompile__ - Cross compile setup `Bash`
|
* __xcompile__ - Cross compile setup `Bash`
|
||||||
|
|
||||||
|
|
||||||
|
## In depth documentation
|
||||||
|
|
||||||
|
* [ifdtool](ifdtool/index.md)
|
||||||
|
208
LICENSES/Apache-2.0.txt
Normal file
208
LICENSES/Apache-2.0.txt
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
Apache License
|
||||||
|
|
||||||
|
Version 2.0, January 2004
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION,
|
||||||
|
AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction, and distribution
|
||||||
|
as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
||||||
|
owner that is granting the License.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all other entities
|
||||||
|
that control, are controlled by, or are under common control with that entity.
|
||||||
|
For the purposes of this definition, "control" means (i) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity, whether
|
||||||
|
by contract or otherwise, or (ii) ownership of fifty percent (50%) or more
|
||||||
|
of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions
|
||||||
|
granted by this License.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications, including
|
||||||
|
but not limited to software source code, documentation source, and configuration
|
||||||
|
files.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical transformation
|
||||||
|
or translation of a Source form, including but not limited to compiled object
|
||||||
|
code, generated documentation, and conversions to other media types.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or Object form,
|
||||||
|
made available under the License, as indicated by a copyright notice that
|
||||||
|
is included in or attached to the work (an example is provided in the Appendix
|
||||||
|
below).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object form,
|
||||||
|
that is based on (or derived from) the Work and for which the editorial revisions,
|
||||||
|
annotations, elaborations, or other modifications represent, as a whole, an
|
||||||
|
original work of authorship. For the purposes of this License, Derivative
|
||||||
|
Works shall not include works that remain separable from, or merely link (or
|
||||||
|
bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including the original version
|
||||||
|
of the Work and any modifications or additions to that Work or Derivative
|
||||||
|
Works thereof, that is intentionally submitted to Licensor for inclusion in
|
||||||
|
the Work by the copyright owner or by an individual or Legal Entity authorized
|
||||||
|
to submit on behalf of the copyright owner. For the purposes of this definition,
|
||||||
|
"submitted" means any form of electronic, verbal, or written communication
|
||||||
|
sent to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems, and
|
||||||
|
issue tracking systems that are managed by, or on behalf of, the Licensor
|
||||||
|
for the purpose of discussing and improving the Work, but excluding communication
|
||||||
|
that is conspicuously marked or otherwise designated in writing by the copyright
|
||||||
|
owner as "Not a Contribution."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
|
||||||
|
of whom a Contribution has been received by Licensor and subsequently incorporated
|
||||||
|
within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of this
|
||||||
|
License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
|
||||||
|
no-charge, royalty-free, irrevocable copyright license to reproduce, prepare
|
||||||
|
Derivative Works of, publicly display, publicly perform, sublicense, and distribute
|
||||||
|
the Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of this License,
|
||||||
|
each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
|
||||||
|
no-charge, royalty-free, irrevocable (except as stated in this section) patent
|
||||||
|
license to make, have made, use, offer to sell, sell, import, and otherwise
|
||||||
|
transfer the Work, where such license applies only to those patent claims
|
||||||
|
licensable by such Contributor that are necessarily infringed by their Contribution(s)
|
||||||
|
alone or by combination of their Contribution(s) with the Work to which such
|
||||||
|
Contribution(s) was submitted. If You institute patent litigation against
|
||||||
|
any entity (including a cross-claim or counterclaim in a lawsuit) alleging
|
||||||
|
that the Work or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses granted to You
|
||||||
|
under this License for that Work shall terminate as of the date such litigation
|
||||||
|
is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the Work or
|
||||||
|
Derivative Works thereof in any medium, with or without modifications, and
|
||||||
|
in Source or Object form, provided that You meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or Derivative Works a copy
|
||||||
|
of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices stating that
|
||||||
|
You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works that You distribute,
|
||||||
|
all copyright, patent, trademark, and attribution notices from the Source
|
||||||
|
form of the Work, excluding those notices that do not pertain to any part
|
||||||
|
of the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its distribution,
|
||||||
|
then any Derivative Works that You distribute must include a readable copy
|
||||||
|
of the attribution notices contained within such NOTICE file, excluding those
|
||||||
|
notices that do not pertain to any part of the Derivative Works, in at least
|
||||||
|
one of the following places: within a NOTICE text file distributed as part
|
||||||
|
of the Derivative Works; within the Source form or documentation, if provided
|
||||||
|
along with the Derivative Works; or, within a display generated by the Derivative
|
||||||
|
Works, if and wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and do not modify the
|
||||||
|
License. You may add Your own attribution notices within Derivative Works
|
||||||
|
that You distribute, alongside or as an addendum to the NOTICE text from the
|
||||||
|
Work, provided that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and may provide
|
||||||
|
additional or different license terms and conditions for use, reproduction,
|
||||||
|
or distribution of Your modifications, or for any such Derivative Works as
|
||||||
|
a whole, provided Your use, reproduction, and distribution of the Work otherwise
|
||||||
|
complies with the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise, any
|
||||||
|
Contribution intentionally submitted for inclusion in the Work by You to the
|
||||||
|
Licensor shall be under the terms and conditions of this License, without
|
||||||
|
any additional terms or conditions. Notwithstanding the above, nothing herein
|
||||||
|
shall supersede or modify the terms of any separate license agreement you
|
||||||
|
may have executed with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade names,
|
||||||
|
trademarks, service marks, or product names of the Licensor, except as required
|
||||||
|
for reasonable and customary use in describing the origin of the Work and
|
||||||
|
reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or agreed to
|
||||||
|
in writing, Licensor provides the Work (and each Contributor provides its
|
||||||
|
Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied, including, without limitation, any warranties
|
||||||
|
or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness
|
||||||
|
of using or redistributing the Work and assume any risks associated with Your
|
||||||
|
exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory, whether
|
||||||
|
in tort (including negligence), contract, or otherwise, unless required by
|
||||||
|
applicable law (such as deliberate and grossly negligent acts) or agreed to
|
||||||
|
in writing, shall any Contributor be liable to You for damages, including
|
||||||
|
any direct, indirect, special, incidental, or consequential damages of any
|
||||||
|
character arising as a result of this License or out of the use or inability
|
||||||
|
to use the Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all other commercial
|
||||||
|
damages or losses), even if such Contributor has been advised of the possibility
|
||||||
|
of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing the Work
|
||||||
|
or Derivative Works thereof, You may choose to offer, and charge a fee for,
|
||||||
|
acceptance of support, warranty, indemnity, or other liability obligations
|
||||||
|
and/or rights consistent with this License. However, in accepting such obligations,
|
||||||
|
You may act only on Your own behalf and on Your sole responsibility, not on
|
||||||
|
behalf of any other Contributor, and only if You agree to indemnify, defend,
|
||||||
|
and hold each Contributor harmless for any liability incurred by, or claims
|
||||||
|
asserted against, such Contributor by reason of your accepting any such warranty
|
||||||
|
or additional liability. END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following boilerplate
|
||||||
|
notice, with the fields enclosed by brackets "[]" replaced with your own identifying
|
||||||
|
information. (Don't include the brackets!) The text should be enclosed in
|
||||||
|
the appropriate comment syntax for the file format. We also recommend that
|
||||||
|
a file or class name and description of purpose be included on the same "printed
|
||||||
|
page" as the copyright notice for easier identification within third-party
|
||||||
|
archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
|
||||||
|
limitations under the License.
|
26
LICENSES/BSD-3-Clause.txt
Normal file
26
LICENSES/BSD-3-Clause.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Copyright (c) <year> <owner>. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
3. Neither the name of the copyright holder nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||||
|
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
324
LICENSES/CC-BY-4.0.txt
Normal file
324
LICENSES/CC-BY-4.0.txt
Normal file
@ -0,0 +1,324 @@
|
|||||||
|
Creative Commons Attribution 4.0 International Creative Commons Corporation
|
||||||
|
("Creative Commons") is not a law firm and does not provide legal services
|
||||||
|
or legal advice. Distribution of Creative Commons public licenses does not
|
||||||
|
create a lawyer-client or other relationship. Creative Commons makes its licenses
|
||||||
|
and related information available on an "as-is" basis. Creative Commons gives
|
||||||
|
no warranties regarding its licenses, any material licensed under their terms
|
||||||
|
and conditions, or any related information. Creative Commons disclaims all
|
||||||
|
liability for damages resulting from their use to the fullest extent possible.
|
||||||
|
|
||||||
|
Using Creative Commons Public Licenses
|
||||||
|
|
||||||
|
Creative Commons public licenses provide a standard set of terms and conditions
|
||||||
|
that creators and other rights holders may use to share original works of
|
||||||
|
authorship and other material subject to copyright and certain other rights
|
||||||
|
specified in the public license below. The following considerations are for
|
||||||
|
informational purposes only, are not exhaustive, and do not form part of our
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
Considerations for licensors: Our public licenses are intended for use by
|
||||||
|
those authorized to give the public permission to use material in ways otherwise
|
||||||
|
restricted by copyright and certain other rights. Our licenses are irrevocable.
|
||||||
|
Licensors should read and understand the terms and conditions of the license
|
||||||
|
they choose before applying it. Licensors should also secure all rights necessary
|
||||||
|
before applying our licenses so that the public can reuse the material as
|
||||||
|
expected. Licensors should clearly mark any material not subject to the license.
|
||||||
|
This includes other CC-licensed material, or material used under an exception
|
||||||
|
or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors
|
||||||
|
|
||||||
|
Considerations for the public: By using one of our public licenses, a licensor
|
||||||
|
grants the public permission to use the licensed material under specified
|
||||||
|
terms and conditions. If the licensor's permission is not necessary for any
|
||||||
|
reason–for example, because of any applicable exception or limitation to copyright–then
|
||||||
|
that use is not regulated by the license. Our licenses grant only permissions
|
||||||
|
under copyright and certain other rights that a licensor has authority to
|
||||||
|
grant. Use of the licensed material may still be restricted for other reasons,
|
||||||
|
including because others have copyright or other rights in the material. A
|
||||||
|
licensor may make special requests, such as asking that all changes be marked
|
||||||
|
or described. Although not required by our licenses, you are encouraged to
|
||||||
|
respect those requests where reasonable. More considerations for the public
|
||||||
|
: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution
|
||||||
|
4.0 International Public License
|
||||||
|
|
||||||
|
By exercising the Licensed Rights (defined below), You accept and agree to
|
||||||
|
be bound by the terms and conditions of this Creative Commons Attribution
|
||||||
|
4.0 International Public License ("Public License"). To the extent this Public
|
||||||
|
License may be interpreted as a contract, You are granted the Licensed Rights
|
||||||
|
in consideration of Your acceptance of these terms and conditions, and the
|
||||||
|
Licensor grants You such rights in consideration of benefits the Licensor
|
||||||
|
receives from making the Licensed Material available under these terms and
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
Section 1 – Definitions.
|
||||||
|
|
||||||
|
a. Adapted Material means material subject to Copyright and Similar Rights
|
||||||
|
that is derived from or based upon the Licensed Material and in which the
|
||||||
|
Licensed Material is translated, altered, arranged, transformed, or otherwise
|
||||||
|
modified in a manner requiring permission under the Copyright and Similar
|
||||||
|
Rights held by the Licensor. For purposes of this Public License, where the
|
||||||
|
Licensed Material is a musical work, performance, or sound recording, Adapted
|
||||||
|
Material is always produced where the Licensed Material is synched in timed
|
||||||
|
relation with a moving image.
|
||||||
|
|
||||||
|
b. Adapter's License means the license You apply to Your Copyright and Similar
|
||||||
|
Rights in Your contributions to Adapted Material in accordance with the terms
|
||||||
|
and conditions of this Public License.
|
||||||
|
|
||||||
|
c. Copyright and Similar Rights means copyright and/or similar rights closely
|
||||||
|
related to copyright including, without limitation, performance, broadcast,
|
||||||
|
sound recording, and Sui Generis Database Rights, without regard to how the
|
||||||
|
rights are labeled or categorized. For purposes of this Public License, the
|
||||||
|
rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||||
|
|
||||||
|
d. Effective Technological Measures means those measures that, in the absence
|
||||||
|
of proper authority, may not be circumvented under laws fulfilling obligations
|
||||||
|
under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,
|
||||||
|
and/or similar international agreements.
|
||||||
|
|
||||||
|
e. Exceptions and Limitations means fair use, fair dealing, and/or any other
|
||||||
|
exception or limitation to Copyright and Similar Rights that applies to Your
|
||||||
|
use of the Licensed Material.
|
||||||
|
|
||||||
|
f. Licensed Material means the artistic or literary work, database, or other
|
||||||
|
material to which the Licensor applied this Public License.
|
||||||
|
|
||||||
|
g. Licensed Rights means the rights granted to You subject to the terms and
|
||||||
|
conditions of this Public License, which are limited to all Copyright and
|
||||||
|
Similar Rights that apply to Your use of the Licensed Material and that the
|
||||||
|
Licensor has authority to license.
|
||||||
|
|
||||||
|
h. Licensor means the individual(s) or entity(ies) granting rights under this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
i. Share means to provide material to the public by any means or process that
|
||||||
|
requires permission under the Licensed Rights, such as reproduction, public
|
||||||
|
display, public performance, distribution, dissemination, communication, or
|
||||||
|
importation, and to make material available to the public including in ways
|
||||||
|
that members of the public may access the material from a place and at a time
|
||||||
|
individually chosen by them.
|
||||||
|
|
||||||
|
j. Sui Generis Database Rights means rights other than copyright resulting
|
||||||
|
from Directive 96/9/EC of the European Parliament and of the Council of 11
|
||||||
|
March 1996 on the legal protection of databases, as amended and/or succeeded,
|
||||||
|
as well as other essentially equivalent rights anywhere in the world.
|
||||||
|
|
||||||
|
k. You means the individual or entity exercising the Licensed Rights under
|
||||||
|
this Public License. Your has a corresponding meaning.
|
||||||
|
|
||||||
|
Section 2 – Scope.
|
||||||
|
|
||||||
|
a. License grant.
|
||||||
|
|
||||||
|
1. Subject to the terms and conditions of this Public License, the Licensor
|
||||||
|
hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
|
||||||
|
irrevocable license to exercise the Licensed Rights in the Licensed Material
|
||||||
|
to:
|
||||||
|
|
||||||
|
A. reproduce and Share the Licensed Material, in whole or in part; and
|
||||||
|
|
||||||
|
B. produce, reproduce, and Share Adapted Material.
|
||||||
|
|
||||||
|
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions
|
||||||
|
and Limitations apply to Your use, this Public License does not apply, and
|
||||||
|
You do not need to comply with its terms and conditions.
|
||||||
|
|
||||||
|
3. Term. The term of this Public License is specified in Section 6(a).
|
||||||
|
|
||||||
|
4. Media and formats; technical modifications allowed. The Licensor authorizes
|
||||||
|
You to exercise the Licensed Rights in all media and formats whether now known
|
||||||
|
or hereafter created, and to make technical modifications necessary to do
|
||||||
|
so. The Licensor waives and/or agrees not to assert any right or authority
|
||||||
|
to forbid You from making technical modifications necessary to exercise the
|
||||||
|
Licensed Rights, including technical modifications necessary to circumvent
|
||||||
|
Effective Technological Measures. For purposes of this Public License, simply
|
||||||
|
making modifications authorized by this Section 2(a)(4) never produces Adapted
|
||||||
|
Material.
|
||||||
|
|
||||||
|
5. Downstream recipients.
|
||||||
|
|
||||||
|
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
|
||||||
|
Material automatically receives an offer from the Licensor to exercise the
|
||||||
|
Licensed Rights under the terms and conditions of this Public License.
|
||||||
|
|
||||||
|
B. No downstream restrictions. You may not offer or impose any additional
|
||||||
|
or different terms or conditions on, or apply any Effective Technological
|
||||||
|
Measures to, the Licensed Material if doing so restricts exercise of the Licensed
|
||||||
|
Rights by any recipient of the Licensed Material.
|
||||||
|
|
||||||
|
6. No endorsement. Nothing in this Public License constitutes or may be construed
|
||||||
|
as permission to assert or imply that You are, or that Your use of the Licensed
|
||||||
|
Material is, connected with, or sponsored, endorsed, or granted official status
|
||||||
|
by, the Licensor or others designated to receive attribution as provided in
|
||||||
|
Section 3(a)(1)(A)(i).
|
||||||
|
|
||||||
|
b. Other rights.
|
||||||
|
|
||||||
|
1. Moral rights, such as the right of integrity, are not licensed under this
|
||||||
|
Public License, nor are publicity, privacy, and/or other similar personality
|
||||||
|
rights; however, to the extent possible, the Licensor waives and/or agrees
|
||||||
|
not to assert any such rights held by the Licensor to the limited extent necessary
|
||||||
|
to allow You to exercise the Licensed Rights, but not otherwise.
|
||||||
|
|
||||||
|
2. Patent and trademark rights are not licensed under this Public License.
|
||||||
|
|
||||||
|
3. To the extent possible, the Licensor waives any right to collect royalties
|
||||||
|
from You for the exercise of the Licensed Rights, whether directly or through
|
||||||
|
a collecting society under any voluntary or waivable statutory or compulsory
|
||||||
|
licensing scheme. In all other cases the Licensor expressly reserves any right
|
||||||
|
to collect such royalties.
|
||||||
|
|
||||||
|
Section 3 – License Conditions.
|
||||||
|
|
||||||
|
Your exercise of the Licensed Rights is expressly made subject to the following
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
a. Attribution.
|
||||||
|
|
||||||
|
1. If You Share the Licensed Material (including in modified form), You must:
|
||||||
|
|
||||||
|
A. retain the following if it is supplied by the Licensor with the Licensed
|
||||||
|
Material:
|
||||||
|
|
||||||
|
i. identification of the creator(s) of the Licensed Material and any others
|
||||||
|
designated to receive attribution, in any reasonable manner requested by the
|
||||||
|
Licensor (including by pseudonym if designated);
|
||||||
|
|
||||||
|
ii. a copyright notice;
|
||||||
|
|
||||||
|
iii. a notice that refers to this Public License;
|
||||||
|
|
||||||
|
iv. a notice that refers to the disclaimer of warranties;
|
||||||
|
|
||||||
|
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||||
|
|
||||||
|
B. indicate if You modified the Licensed Material and retain an indication
|
||||||
|
of any previous modifications; and
|
||||||
|
|
||||||
|
C. indicate the Licensed Material is licensed under this Public License, and
|
||||||
|
include the text of, or the URI or hyperlink to, this Public License.
|
||||||
|
|
||||||
|
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
|
||||||
|
based on the medium, means, and context in which You Share the Licensed Material.
|
||||||
|
For example, it may be reasonable to satisfy the conditions by providing a
|
||||||
|
URI or hyperlink to a resource that includes the required information.
|
||||||
|
|
||||||
|
3. If requested by the Licensor, You must remove any of the information required
|
||||||
|
by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||||
|
|
||||||
|
4. If You Share Adapted Material You produce, the Adapter's License You apply
|
||||||
|
must not prevent recipients of the Adapted Material from complying with this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
Section 4 – Sui Generis Database Rights.
|
||||||
|
|
||||||
|
Where the Licensed Rights include Sui Generis Database Rights that apply to
|
||||||
|
Your use of the Licensed Material:
|
||||||
|
|
||||||
|
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
|
||||||
|
reuse, reproduce, and Share all or a substantial portion of the contents of
|
||||||
|
the database;
|
||||||
|
|
||||||
|
b. if You include all or a substantial portion of the database contents in
|
||||||
|
a database in which You have Sui Generis Database Rights, then the database
|
||||||
|
in which You have Sui Generis Database Rights (but not its individual contents)
|
||||||
|
is Adapted Material; and
|
||||||
|
|
||||||
|
c. You must comply with the conditions in Section 3(a) if You Share all or
|
||||||
|
a substantial portion of the contents of the database.
|
||||||
|
|
||||||
|
For the avoidance of doubt, this Section 4 supplements and does not replace
|
||||||
|
Your obligations under this Public License where the Licensed Rights include
|
||||||
|
other Copyright and Similar Rights.
|
||||||
|
|
||||||
|
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||||
|
|
||||||
|
a. Unless otherwise separately undertaken by the Licensor, to the extent possible,
|
||||||
|
the Licensor offers the Licensed Material as-is and as-available, and makes
|
||||||
|
no representations or warranties of any kind concerning the Licensed Material,
|
||||||
|
whether express, implied, statutory, or other. This includes, without limitation,
|
||||||
|
warranties of title, merchantability, fitness for a particular purpose, non-infringement,
|
||||||
|
absence of latent or other defects, accuracy, or the presence or absence of
|
||||||
|
errors, whether or not known or discoverable. Where disclaimers of warranties
|
||||||
|
are not allowed in full or in part, this disclaimer may not apply to You.
|
||||||
|
|
||||||
|
b. To the extent possible, in no event will the Licensor be liable to You
|
||||||
|
on any legal theory (including, without limitation, negligence) or otherwise
|
||||||
|
for any direct, special, indirect, incidental, consequential, punitive, exemplary,
|
||||||
|
or other losses, costs, expenses, or damages arising out of this Public License
|
||||||
|
or use of the Licensed Material, even if the Licensor has been advised of
|
||||||
|
the possibility of such losses, costs, expenses, or damages. Where a limitation
|
||||||
|
of liability is not allowed in full or in part, this limitation may not apply
|
||||||
|
to You.
|
||||||
|
|
||||||
|
c. The disclaimer of warranties and limitation of liability provided above
|
||||||
|
shall be interpreted in a manner that, to the extent possible, most closely
|
||||||
|
approximates an absolute disclaimer and waiver of all liability.
|
||||||
|
|
||||||
|
Section 6 – Term and Termination.
|
||||||
|
|
||||||
|
a. This Public License applies for the term of the Copyright and Similar Rights
|
||||||
|
licensed here. However, if You fail to comply with this Public License, then
|
||||||
|
Your rights under this Public License terminate automatically.
|
||||||
|
|
||||||
|
b. Where Your right to use the Licensed Material has terminated under Section
|
||||||
|
6(a), it reinstates:
|
||||||
|
|
||||||
|
1. automatically as of the date the violation is cured, provided it is cured
|
||||||
|
within 30 days of Your discovery of the violation; or
|
||||||
|
|
||||||
|
2. upon express reinstatement by the Licensor.
|
||||||
|
|
||||||
|
c. For the avoidance of doubt, this Section 6(b) does not affect any right
|
||||||
|
the Licensor may have to seek remedies for Your violations of this Public
|
||||||
|
License.
|
||||||
|
|
||||||
|
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material
|
||||||
|
under separate terms or conditions or stop distributing the Licensed Material
|
||||||
|
at any time; however, doing so will not terminate this Public License.
|
||||||
|
|
||||||
|
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||||
|
|
||||||
|
Section 7 – Other Terms and Conditions.
|
||||||
|
|
||||||
|
a. The Licensor shall not be bound by any additional or different terms or
|
||||||
|
conditions communicated by You unless expressly agreed.
|
||||||
|
|
||||||
|
b. Any arrangements, understandings, or agreements regarding the Licensed
|
||||||
|
Material not stated herein are separate from and independent of the terms
|
||||||
|
and conditions of this Public License.
|
||||||
|
|
||||||
|
Section 8 – Interpretation.
|
||||||
|
|
||||||
|
a. For the avoidance of doubt, this Public License does not, and shall not
|
||||||
|
be interpreted to, reduce, limit, restrict, or impose conditions on any use
|
||||||
|
of the Licensed Material that could lawfully be made without permission under
|
||||||
|
this Public License.
|
||||||
|
|
||||||
|
b. To the extent possible, if any provision of this Public License is deemed
|
||||||
|
unenforceable, it shall be automatically reformed to the minimum extent necessary
|
||||||
|
to make it enforceable. If the provision cannot be reformed, it shall be severed
|
||||||
|
from this Public License without affecting the enforceability of the remaining
|
||||||
|
terms and conditions.
|
||||||
|
|
||||||
|
c. No term or condition of this Public License will be waived and no failure
|
||||||
|
to comply consented to unless expressly agreed to by the Licensor.
|
||||||
|
|
||||||
|
d. Nothing in this Public License constitutes or may be interpreted as a limitation
|
||||||
|
upon, or waiver of, any privileges and immunities that apply to the Licensor
|
||||||
|
or You, including from the legal processes of any jurisdiction or authority.
|
||||||
|
|
||||||
|
Creative Commons is not a party to its public licenses. Notwithstanding, Creative
|
||||||
|
Commons may elect to apply one of its public licenses to material it publishes
|
||||||
|
and in those instances will be considered the "Licensor." The text of the
|
||||||
|
Creative Commons public licenses is dedicated to the public domain under the
|
||||||
|
CC0 Public Domain Dedication. Except for the limited purpose of indicating
|
||||||
|
that material is shared under a Creative Commons public license or as otherwise
|
||||||
|
permitted by the Creative Commons policies published at creativecommons.org/policies,
|
||||||
|
Creative Commons does not authorize the use of the trademark "Creative Commons"
|
||||||
|
or any other trademark or logo of Creative Commons without its prior written
|
||||||
|
consent including, without limitation, in connection with any unauthorized
|
||||||
|
modifications to any of its public licenses or any other arrangements, understandings,
|
||||||
|
or agreements concerning use of licensed material. For the avoidance of doubt,
|
||||||
|
this paragraph does not form part of the public licenses.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at creativecommons.org.
|
343
LICENSES/CC-BY-SA-3.0.txt
Normal file
343
LICENSES/CC-BY-SA-3.0.txt
Normal file
@ -0,0 +1,343 @@
|
|||||||
|
Creative Commons Attribution-ShareAlike 3.0 Unported CREATIVE COMMONS CORPORATION
|
||||||
|
IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS
|
||||||
|
LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS
|
||||||
|
PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING
|
||||||
|
FROM ITS USE.
|
||||||
|
|
||||||
|
License
|
||||||
|
|
||||||
|
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS
|
||||||
|
PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR
|
||||||
|
OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS
|
||||||
|
LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||||
|
|
||||||
|
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO
|
||||||
|
BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED
|
||||||
|
TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION
|
||||||
|
OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
|
||||||
|
a. "Adaptation" means a work based upon the Work, or upon the Work and other
|
||||||
|
pre-existing works, such as a translation, adaptation, derivative work, arrangement
|
||||||
|
of music or other alterations of a literary or artistic work, or phonogram
|
||||||
|
or performance and includes cinematographic adaptations or any other form
|
||||||
|
in which the Work may be recast, transformed, or adapted including in any
|
||||||
|
form recognizably derived from the original, except that a work that constitutes
|
||||||
|
a Collection will not be considered an Adaptation for the purpose of this
|
||||||
|
License. For the avoidance of doubt, where the Work is a musical work, performance
|
||||||
|
or phonogram, the synchronization of the Work in timed-relation with a moving
|
||||||
|
image ("synching") will be considered an Adaptation for the purpose of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
b. "Collection" means a collection of literary or artistic works, such as
|
||||||
|
encyclopedias and anthologies, or performances, phonograms or broadcasts,
|
||||||
|
or other works or subject matter other than works listed in Section 1(f) below,
|
||||||
|
which, by reason of the selection and arrangement of their contents, constitute
|
||||||
|
intellectual creations, in which the Work is included in its entirety in unmodified
|
||||||
|
form along with one or more other contributions, each constituting separate
|
||||||
|
and independent works in themselves, which together are assembled into a collective
|
||||||
|
whole. A work that constitutes a Collection will not be considered an Adaptation
|
||||||
|
(as defined below) for the purposes of this License.
|
||||||
|
|
||||||
|
c. "Creative Commons Compatible License" means a license that is listed at
|
||||||
|
http://creativecommons.org/compatiblelicenses that has been approved by Creative
|
||||||
|
Commons as being essentially equivalent to this License, including, at a minimum,
|
||||||
|
because that license: (i) contains terms that have the same purpose, meaning
|
||||||
|
and effect as the License Elements of this License; and, (ii) explicitly permits
|
||||||
|
the relicensing of adaptations of works made available under that license
|
||||||
|
under this License or a Creative Commons jurisdiction license with the same
|
||||||
|
License Elements as this License.
|
||||||
|
|
||||||
|
d. "Distribute" means to make available to the public the original and copies
|
||||||
|
of the Work or Adaptation, as appropriate, through sale or other transfer
|
||||||
|
of ownership.
|
||||||
|
|
||||||
|
e. "License Elements" means the following high-level license attributes as
|
||||||
|
selected by Licensor and indicated in the title of this License: Attribution,
|
||||||
|
ShareAlike.
|
||||||
|
|
||||||
|
f. "Licensor" means the individual, individuals, entity or entities that offer(s)
|
||||||
|
the Work under the terms of this License.
|
||||||
|
|
||||||
|
g. "Original Author" means, in the case of a literary or artistic work, the
|
||||||
|
individual, individuals, entity or entities who created the Work or if no
|
||||||
|
individual or entity can be identified, the publisher; and in addition (i)
|
||||||
|
in the case of a performance the actors, singers, musicians, dancers, and
|
||||||
|
other persons who act, sing, deliver, declaim, play in, interpret or otherwise
|
||||||
|
perform literary or artistic works or expressions of folklore; (ii) in the
|
||||||
|
case of a phonogram the producer being the person or legal entity who first
|
||||||
|
fixes the sounds of a performance or other sounds; and, (iii) in the case
|
||||||
|
of broadcasts, the organization that transmits the broadcast.
|
||||||
|
|
||||||
|
h. "Work" means the literary and/or artistic work offered under the terms
|
||||||
|
of this License including without limitation any production in the literary,
|
||||||
|
scientific and artistic domain, whatever may be the mode or form of its expression
|
||||||
|
including digital form, such as a book, pamphlet and other writing; a lecture,
|
||||||
|
address, sermon or other work of the same nature; a dramatic or dramatico-musical
|
||||||
|
work; a choreographic work or entertainment in dumb show; a musical composition
|
||||||
|
with or without words; a cinematographic work to which are assimilated works
|
||||||
|
expressed by a process analogous to cinematography; a work of drawing, painting,
|
||||||
|
architecture, sculpture, engraving or lithography; a photographic work to
|
||||||
|
which are assimilated works expressed by a process analogous to photography;
|
||||||
|
a work of applied art; an illustration, map, plan, sketch or three-dimensional
|
||||||
|
work relative to geography, topography, architecture or science; a performance;
|
||||||
|
a broadcast; a phonogram; a compilation of data to the extent it is protected
|
||||||
|
as a copyrightable work; or a work performed by a variety or circus performer
|
||||||
|
to the extent it is not otherwise considered a literary or artistic work.
|
||||||
|
|
||||||
|
i. "You" means an individual or entity exercising rights under this License
|
||||||
|
who has not previously violated the terms of this License with respect to
|
||||||
|
the Work, or who has received express permission from the Licensor to exercise
|
||||||
|
rights under this License despite a previous violation.
|
||||||
|
|
||||||
|
j. "Publicly Perform" means to perform public recitations of the Work and
|
||||||
|
to communicate to the public those public recitations, by any means or process,
|
||||||
|
including by wire or wireless means or public digital performances; to make
|
||||||
|
available to the public Works in such a way that members of the public may
|
||||||
|
access these Works from a place and at a place individually chosen by them;
|
||||||
|
to perform the Work to the public by any means or process and the communication
|
||||||
|
to the public of the performances of the Work, including by public digital
|
||||||
|
performance; to broadcast and rebroadcast the Work by any means including
|
||||||
|
signs, sounds or images.
|
||||||
|
|
||||||
|
k. "Reproduce" means to make copies of the Work by any means including without
|
||||||
|
limitation by sound or visual recordings and the right of fixation and reproducing
|
||||||
|
fixations of the Work, including storage of a protected performance or phonogram
|
||||||
|
in digital form or other electronic medium.
|
||||||
|
|
||||||
|
2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit,
|
||||||
|
or restrict any uses free from copyright or rights arising from limitations
|
||||||
|
or exceptions that are provided for in connection with the copyright protection
|
||||||
|
under copyright law or other applicable laws.
|
||||||
|
|
||||||
|
3. License Grant. Subject to the terms and conditions of this License, Licensor
|
||||||
|
hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for
|
||||||
|
the duration of the applicable copyright) license to exercise the rights in
|
||||||
|
the Work as stated below:
|
||||||
|
|
||||||
|
a. to Reproduce the Work, to incorporate the Work into one or more Collections,
|
||||||
|
and to Reproduce the Work as incorporated in the Collections;
|
||||||
|
|
||||||
|
b. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||||
|
including any translation in any medium, takes reasonable steps to clearly
|
||||||
|
label, demarcate or otherwise identify that changes were made to the original
|
||||||
|
Work. For example, a translation could be marked "The original work was translated
|
||||||
|
from English to Spanish," or a modification could indicate "The original work
|
||||||
|
has been modified.";
|
||||||
|
|
||||||
|
c. to Distribute and Publicly Perform the Work including as incorporated in
|
||||||
|
Collections; and,
|
||||||
|
|
||||||
|
d. to Distribute and Publicly Perform Adaptations.
|
||||||
|
|
||||||
|
e. For the avoidance of doubt:
|
||||||
|
|
||||||
|
i. Non-waivable Compulsory License Schemes. In those jurisdictions in which
|
||||||
|
the right to collect royalties through any statutory or compulsory licensing
|
||||||
|
scheme cannot be waived, the Licensor reserves the exclusive right to collect
|
||||||
|
such royalties for any exercise by You of the rights granted under this License;
|
||||||
|
|
||||||
|
ii. Waivable Compulsory License Schemes. In those jurisdictions in which the
|
||||||
|
right to collect royalties through any statutory or compulsory licensing scheme
|
||||||
|
can be waived, the Licensor waives the exclusive right to collect such royalties
|
||||||
|
for any exercise by You of the rights granted under this License; and,
|
||||||
|
|
||||||
|
iii. Voluntary License Schemes. The Licensor waives the right to collect royalties,
|
||||||
|
whether individually or, in the event that the Licensor is a member of a collecting
|
||||||
|
society that administers voluntary licensing schemes, via that society, from
|
||||||
|
any exercise by You of the rights granted under this License.
|
||||||
|
|
||||||
|
The above rights may be exercised in all media and formats whether now known
|
||||||
|
or hereafter devised. The above rights include the right to make such modifications
|
||||||
|
as are technically necessary to exercise the rights in other media and formats.
|
||||||
|
Subject to Section 8(f), all rights not expressly granted by Licensor are
|
||||||
|
hereby reserved.
|
||||||
|
|
||||||
|
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||||
|
subject to and limited by the following restrictions:
|
||||||
|
|
||||||
|
a. You may Distribute or Publicly Perform the Work only under the terms of
|
||||||
|
this License. You must include a copy of, or the Uniform Resource Identifier
|
||||||
|
(URI) for, this License with every copy of the Work You Distribute or Publicly
|
||||||
|
Perform. You may not offer or impose any terms on the Work that restrict the
|
||||||
|
terms of this License or the ability of the recipient of the Work to exercise
|
||||||
|
the rights granted to that recipient under the terms of the License. You may
|
||||||
|
not sublicense the Work. You must keep intact all notices that refer to this
|
||||||
|
License and to the disclaimer of warranties with every copy of the Work You
|
||||||
|
Distribute or Publicly Perform. When You Distribute or Publicly Perform the
|
||||||
|
Work, You may not impose any effective technological measures on the Work
|
||||||
|
that restrict the ability of a recipient of the Work from You to exercise
|
||||||
|
the rights granted to that recipient under the terms of the License. This
|
||||||
|
Section 4(a) applies to the Work as incorporated in a Collection, but this
|
||||||
|
does not require the Collection apart from the Work itself to be made subject
|
||||||
|
to the terms of this License. If You create a Collection, upon notice from
|
||||||
|
any Licensor You must, to the extent practicable, remove from the Collection
|
||||||
|
any credit as required by Section 4(c), as requested. If You create an Adaptation,
|
||||||
|
upon notice from any Licensor You must, to the extent practicable, remove
|
||||||
|
from the Adaptation any credit as required by Section 4(c), as requested.
|
||||||
|
|
||||||
|
b. You may Distribute or Publicly Perform an Adaptation only under the terms
|
||||||
|
of: (i) this License; (ii) a later version of this License with the same License
|
||||||
|
Elements as this License; (iii) a Creative Commons jurisdiction license (either
|
||||||
|
this or a later license version) that contains the same License Elements as
|
||||||
|
this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons
|
||||||
|
Compatible License. If you license the Adaptation under one of the licenses
|
||||||
|
mentioned in (iv), you must comply with the terms of that license. If you
|
||||||
|
license the Adaptation under the terms of any of the licenses mentioned in
|
||||||
|
(i), (ii) or (iii) (the "Applicable License"), you must comply with the terms
|
||||||
|
of the Applicable License generally and the following provisions: (I) You
|
||||||
|
must include a copy of, or the URI for, the Applicable License with every
|
||||||
|
copy of each Adaptation You Distribute or Publicly Perform; (II) You may not
|
||||||
|
offer or impose any terms on the Adaptation that restrict the terms of the
|
||||||
|
Applicable License or the ability of the recipient of the Adaptation to exercise
|
||||||
|
the rights granted to that recipient under the terms of the Applicable License;
|
||||||
|
(III) You must keep intact all notices that refer to the Applicable License
|
||||||
|
and to the disclaimer of warranties with every copy of the Work as included
|
||||||
|
in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute
|
||||||
|
or Publicly Perform the Adaptation, You may not impose any effective technological
|
||||||
|
measures on the Adaptation that restrict the ability of a recipient of the
|
||||||
|
Adaptation from You to exercise the rights granted to that recipient under
|
||||||
|
the terms of the Applicable License. This Section 4(b) applies to the Adaptation
|
||||||
|
as incorporated in a Collection, but this does not require the Collection
|
||||||
|
apart from the Adaptation itself to be made subject to the terms of the Applicable
|
||||||
|
License.
|
||||||
|
|
||||||
|
c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections,
|
||||||
|
You must, unless a request has been made pursuant to Section 4(a), keep intact
|
||||||
|
all copyright notices for the Work and provide, reasonable to the medium or
|
||||||
|
means You are utilizing: (i) the name of the Original Author (or pseudonym,
|
||||||
|
if applicable) if supplied, and/or if the Original Author and/or Licensor
|
||||||
|
designate another party or parties (e.g., a sponsor institute, publishing
|
||||||
|
entity, journal) for attribution ("Attribution Parties") in Licensor's copyright
|
||||||
|
notice, terms of service or by other reasonable means, the name of such party
|
||||||
|
or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably
|
||||||
|
practicable, the URI, if any, that Licensor specifies to be associated with
|
||||||
|
the Work, unless such URI does not refer to the copyright notice or licensing
|
||||||
|
information for the Work; and (iv), consistent with Section 3(b), in the case
|
||||||
|
of an Adaptation, a credit identifying the use of the Work in the Adaptation
|
||||||
|
(e.g., "French translation of the Work by Original Author," or "Screenplay
|
||||||
|
based on original Work by Original Author"). The credit required by this Section
|
||||||
|
4(c) may be implemented in any reasonable manner; provided, however, that
|
||||||
|
in the case of a Adaptation or Collection, at a minimum such credit will appear,
|
||||||
|
if a credit for all contributing authors of the Adaptation or Collection appears,
|
||||||
|
then as part of these credits and in a manner at least as prominent as the
|
||||||
|
credits for the other contributing authors. For the avoidance of doubt, You
|
||||||
|
may only use the credit required by this Section for the purpose of attribution
|
||||||
|
in the manner set out above and, by exercising Your rights under this License,
|
||||||
|
You may not implicitly or explicitly assert or imply any connection with,
|
||||||
|
sponsorship or endorsement by the Original Author, Licensor and/or Attribution
|
||||||
|
Parties, as appropriate, of You or Your use of the Work, without the separate,
|
||||||
|
express prior written permission of the Original Author, Licensor and/or Attribution
|
||||||
|
Parties.
|
||||||
|
|
||||||
|
d. Except as otherwise agreed in writing by the Licensor or as may be otherwise
|
||||||
|
permitted by applicable law, if You Reproduce, Distribute or Publicly Perform
|
||||||
|
the Work either by itself or as part of any Adaptations or Collections, You
|
||||||
|
must not distort, mutilate, modify or take other derogatory action in relation
|
||||||
|
to the Work which would be prejudicial to the Original Author's honor or reputation.
|
||||||
|
Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise
|
||||||
|
of the right granted in Section 3(b) of this License (the right to make Adaptations)
|
||||||
|
would be deemed to be a distortion, mutilation, modification or other derogatory
|
||||||
|
action prejudicial to the Original Author's honor and reputation, the Licensor
|
||||||
|
will waive or not assert, as appropriate, this Section, to the fullest extent
|
||||||
|
permitted by the applicable national law, to enable You to reasonably exercise
|
||||||
|
Your right under Section 3(b) of this License (right to make Adaptations)
|
||||||
|
but not otherwise.
|
||||||
|
|
||||||
|
5. Representations, Warranties and Disclaimer
|
||||||
|
|
||||||
|
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
|
||||||
|
THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING
|
||||||
|
THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION,
|
||||||
|
WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT,
|
||||||
|
OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE
|
||||||
|
OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||||
|
EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW,
|
||||||
|
IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
|
||||||
|
INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
|
||||||
|
LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY
|
||||||
|
OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
7. Termination
|
||||||
|
|
||||||
|
a. This License and the rights granted hereunder will terminate automatically
|
||||||
|
upon any breach by You of the terms of this License. Individuals or entities
|
||||||
|
who have received Adaptations or Collections from You under this License,
|
||||||
|
however, will not have their licenses terminated provided such individuals
|
||||||
|
or entities remain in full compliance with those licenses. Sections 1, 2,
|
||||||
|
5, 6, 7, and 8 will survive any termination of this License.
|
||||||
|
|
||||||
|
b. Subject to the above terms and conditions, the license granted here is
|
||||||
|
perpetual (for the duration of the applicable copyright in the Work). Notwithstanding
|
||||||
|
the above, Licensor reserves the right to release the Work under different
|
||||||
|
license terms or to stop distributing the Work at any time; provided, however
|
||||||
|
that any such election will not serve to withdraw this License (or any other
|
||||||
|
license that has been, or is required to be, granted under the terms of this
|
||||||
|
License), and this License will continue in full force and effect unless terminated
|
||||||
|
as stated above.
|
||||||
|
|
||||||
|
8. Miscellaneous
|
||||||
|
|
||||||
|
a. Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||||
|
the Licensor offers to the recipient a license to the Work on the same terms
|
||||||
|
and conditions as the license granted to You under this License.
|
||||||
|
|
||||||
|
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers
|
||||||
|
to the recipient a license to the original Work on the same terms and conditions
|
||||||
|
as the license granted to You under this License.
|
||||||
|
|
||||||
|
c. If any provision of this License is invalid or unenforceable under applicable
|
||||||
|
law, it shall not affect the validity or enforceability of the remainder of
|
||||||
|
the terms of this License, and without further action by the parties to this
|
||||||
|
agreement, such provision shall be reformed to the minimum extent necessary
|
||||||
|
to make such provision valid and enforceable.
|
||||||
|
|
||||||
|
d. No term or provision of this License shall be deemed waived and no breach
|
||||||
|
consented to unless such waiver or consent shall be in writing and signed
|
||||||
|
by the party to be charged with such waiver or consent.
|
||||||
|
|
||||||
|
e. This License constitutes the entire agreement between the parties with
|
||||||
|
respect to the Work licensed here. There are no understandings, agreements
|
||||||
|
or representations with respect to the Work not specified here. Licensor shall
|
||||||
|
not be bound by any additional provisions that may appear in any communication
|
||||||
|
from You. This License may not be modified without the mutual written agreement
|
||||||
|
of the Licensor and You.
|
||||||
|
|
||||||
|
f. The rights granted under, and the subject matter referenced, in this License
|
||||||
|
were drafted utilizing the terminology of the Berne Convention for the Protection
|
||||||
|
of Literary and Artistic Works (as amended on September 28, 1979), the Rome
|
||||||
|
Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances
|
||||||
|
and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised
|
||||||
|
on July 24, 1971). These rights and subject matter take effect in the relevant
|
||||||
|
jurisdiction in which the License terms are sought to be enforced according
|
||||||
|
to the corresponding provisions of the implementation of those treaty provisions
|
||||||
|
in the applicable national law. If the standard suite of rights granted under
|
||||||
|
applicable copyright law includes additional rights not granted under this
|
||||||
|
License, such additional rights are deemed to be included in the License;
|
||||||
|
this License is not intended to restrict the license of any rights under applicable
|
||||||
|
law.
|
||||||
|
|
||||||
|
Creative Commons Notice
|
||||||
|
|
||||||
|
Creative Commons is not a party to this License, and makes no warranty whatsoever
|
||||||
|
in connection with the Work. Creative Commons will not be liable to You or
|
||||||
|
any party on any legal theory for any damages whatsoever, including without
|
||||||
|
limitation any general, special, incidental or consequential damages arising
|
||||||
|
in connection to this license. Notwithstanding the foregoing two (2) sentences,
|
||||||
|
if Creative Commons has expressly identified itself as the Licensor hereunder,
|
||||||
|
it shall have all rights and obligations of Licensor.
|
||||||
|
|
||||||
|
Except for the limited purpose of indicating to the public that the Work is
|
||||||
|
licensed under the CCPL, Creative Commons does not authorize the use by either
|
||||||
|
party of the trademark "Creative Commons" or any related trademark or logo
|
||||||
|
of Creative Commons without the prior written consent of Creative Commons.
|
||||||
|
Any permitted use will be in compliance with Creative Commons' then-current
|
||||||
|
trademark usage guidelines, as may be published on its website or otherwise
|
||||||
|
made available upon request from time to time. For the avoidance of doubt,
|
||||||
|
this trademark restriction does not form part of the License.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at http://creativecommons.org/.
|
319
LICENSES/GPL-2.0-only.txt
Normal file
319
LICENSES/GPL-2.0-only.txt
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your freedom to share
|
||||||
|
and change it. By contrast, the GNU General Public License is intended to
|
||||||
|
guarantee your freedom to share and change free software--to make sure the
|
||||||
|
software is free for all its users. This General Public License applies to
|
||||||
|
most of the Free Software Foundation's software and to any other program whose
|
||||||
|
authors commit to using it. (Some other Free Software Foundation software
|
||||||
|
is covered by the GNU Lesser General Public License instead.) You can apply
|
||||||
|
it to your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not price. Our
|
||||||
|
General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for this service if you
|
||||||
|
wish), that you receive source code or can get it if you want it, that you
|
||||||
|
can change the software or use pieces of it in new free programs; and that
|
||||||
|
you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid anyone to
|
||||||
|
deny you these rights or to ask you to surrender the rights. These restrictions
|
||||||
|
translate to certain responsibilities for you if you distribute copies of
|
||||||
|
the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether gratis or
|
||||||
|
for a fee, you must give the recipients all the rights that you have. You
|
||||||
|
must make sure that they, too, receive or can get the source code. And you
|
||||||
|
must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and (2)
|
||||||
|
offer you this license which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain that
|
||||||
|
everyone understands that there is no warranty for this free software. If
|
||||||
|
the software is modified by someone else and passed on, we want its recipients
|
||||||
|
to know that what they have is not the original, so that any problems introduced
|
||||||
|
by others will not reflect on the original authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software patents. We
|
||||||
|
wish to avoid the danger that redistributors of a free program will individually
|
||||||
|
obtain patent licenses, in effect making the program proprietary. To prevent
|
||||||
|
this, we have made it clear that any patent must be licensed for everyone's
|
||||||
|
free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains a notice
|
||||||
|
placed by the copyright holder saying it may be distributed under the terms
|
||||||
|
of this General Public License. The "Program", below, refers to any such program
|
||||||
|
or work, and a "work based on the Program" means either the Program or any
|
||||||
|
derivative work under copyright law: that is to say, a work containing the
|
||||||
|
Program or a portion of it, either verbatim or with modifications and/or translated
|
||||||
|
into another language. (Hereinafter, translation is included without limitation
|
||||||
|
in the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not covered
|
||||||
|
by this License; they are outside its scope. The act of running the Program
|
||||||
|
is not restricted, and the output from the Program is covered only if its
|
||||||
|
contents constitute a work based on the Program (independent of having been
|
||||||
|
made by running the Program). Whether that is true depends on what the Program
|
||||||
|
does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's source code
|
||||||
|
as you receive it, in any medium, provided that you conspicuously and appropriately
|
||||||
|
publish on each copy an appropriate copyright notice and disclaimer of warranty;
|
||||||
|
keep intact all the notices that refer to this License and to the absence
|
||||||
|
of any warranty; and give any other recipients of the Program a copy of this
|
||||||
|
License along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and you
|
||||||
|
may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion of it,
|
||||||
|
thus forming a work based on the Program, and copy and distribute such modifications
|
||||||
|
or work under the terms of Section 1 above, provided that you also meet all
|
||||||
|
of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices stating that
|
||||||
|
you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in whole or
|
||||||
|
in part contains or is derived from the Program or any part thereof, to be
|
||||||
|
licensed as a whole at no charge to all third parties under the terms of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively when run,
|
||||||
|
you must cause it, when started running for such interactive use in the most
|
||||||
|
ordinary way, to print or display an announcement including an appropriate
|
||||||
|
copyright notice and a notice that there is no warranty (or else, saying that
|
||||||
|
you provide a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this License.
|
||||||
|
(Exception: if the Program itself is interactive but does not normally print
|
||||||
|
such an announcement, your work based on the Program is not required to print
|
||||||
|
an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If identifiable
|
||||||
|
sections of that work are not derived from the Program, and can be reasonably
|
||||||
|
considered independent and separate works in themselves, then this License,
|
||||||
|
and its terms, do not apply to those sections when you distribute them as
|
||||||
|
separate works. But when you distribute the same sections as part of a whole
|
||||||
|
which is a work based on the Program, the distribution of the whole must be
|
||||||
|
on the terms of this License, whose permissions for other licensees extend
|
||||||
|
to the entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest your
|
||||||
|
rights to work written entirely by you; rather, the intent is to exercise
|
||||||
|
the right to control the distribution of derivative or collective works based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program with
|
||||||
|
the Program (or with a work based on the Program) on a volume of a storage
|
||||||
|
or distribution medium does not bring the other work under the scope of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it, under Section
|
||||||
|
2) in object code or executable form under the terms of Sections 1 and 2 above
|
||||||
|
provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable source code,
|
||||||
|
which must be distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three years, to give
|
||||||
|
any third party, for a charge no more than your cost of physically performing
|
||||||
|
source distribution, a complete machine-readable copy of the corresponding
|
||||||
|
source code, to be distributed under the terms of Sections 1 and 2 above on
|
||||||
|
a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer to distribute
|
||||||
|
corresponding source code. (This alternative is allowed only for noncommercial
|
||||||
|
distribution and only if you received the program in object code or executable
|
||||||
|
form with such an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for making
|
||||||
|
modifications to it. For an executable work, complete source code means all
|
||||||
|
the source code for all modules it contains, plus any associated interface
|
||||||
|
definition files, plus the scripts used to control compilation and installation
|
||||||
|
of the executable. However, as a special exception, the source code distributed
|
||||||
|
need not include anything that is normally distributed (in either source or
|
||||||
|
binary form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component itself
|
||||||
|
accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering access to
|
||||||
|
copy from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place counts as distribution of the source code,
|
||||||
|
even though third parties are not compelled to copy the source along with
|
||||||
|
the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program except
|
||||||
|
as expressly provided under this License. Any attempt otherwise to copy, modify,
|
||||||
|
sublicense or distribute the Program is void, and will automatically terminate
|
||||||
|
your rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses terminated
|
||||||
|
so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not signed
|
||||||
|
it. However, nothing else grants you permission to modify or distribute the
|
||||||
|
Program or its derivative works. These actions are prohibited by law if you
|
||||||
|
do not accept this License. Therefore, by modifying or distributing the Program
|
||||||
|
(or any work based on the Program), you indicate your acceptance of this License
|
||||||
|
to do so, and all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the Program),
|
||||||
|
the recipient automatically receives a license from the original licensor
|
||||||
|
to copy, distribute or modify the Program subject to these terms and conditions.
|
||||||
|
You may not impose any further restrictions on the recipients' exercise of
|
||||||
|
the rights granted herein. You are not responsible for enforcing compliance
|
||||||
|
by third parties to this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent infringement
|
||||||
|
or for any other reason (not limited to patent issues), conditions are imposed
|
||||||
|
on you (whether by court order, agreement or otherwise) that contradict the
|
||||||
|
conditions of this License, they do not excuse you from the conditions of
|
||||||
|
this License. If you cannot distribute so as to satisfy simultaneously your
|
||||||
|
obligations under this License and any other pertinent obligations, then as
|
||||||
|
a consequence you may not distribute the Program at all. For example, if a
|
||||||
|
patent license would not permit royalty-free redistribution of the Program
|
||||||
|
by all those who receive copies directly or indirectly through you, then the
|
||||||
|
only way you could satisfy both it and this License would be to refrain entirely
|
||||||
|
from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply and
|
||||||
|
the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any patents
|
||||||
|
or other property right claims or to contest validity of any such claims;
|
||||||
|
this section has the sole purpose of protecting the integrity of the free
|
||||||
|
software distribution system, which is implemented by public license practices.
|
||||||
|
Many people have made generous contributions to the wide range of software
|
||||||
|
distributed through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing to
|
||||||
|
distribute software through any other system and a licensee cannot impose
|
||||||
|
that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to be a
|
||||||
|
consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in certain
|
||||||
|
countries either by patents or by copyrighted interfaces, the original copyright
|
||||||
|
holder who places the Program under this License may add an explicit geographical
|
||||||
|
distribution limitation excluding those countries, so that distribution is
|
||||||
|
permitted only in or among countries not thus excluded. In such case, this
|
||||||
|
License incorporates the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the General Public License from time to time. Such new versions will be similar
|
||||||
|
in spirit to the present version, but may differ in detail to address new
|
||||||
|
problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program specifies
|
||||||
|
a version number of this License which applies to it and "any later version",
|
||||||
|
you have the option of following the terms and conditions either of that version
|
||||||
|
or of any later version published by the Free Software Foundation. If the
|
||||||
|
Program does not specify a version number of this License, you may choose
|
||||||
|
any version ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free programs
|
||||||
|
whose distribution conditions are different, write to the author to ask for
|
||||||
|
permission. For software which is copyrighted by the Free Software Foundation,
|
||||||
|
write to the Free Software Foundation; we sometimes make exceptions for this.
|
||||||
|
Our decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing and reuse
|
||||||
|
of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||||
|
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||||
|
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
|
||||||
|
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
||||||
|
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||||
|
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||||
|
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||||
|
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
|
||||||
|
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest possible
|
||||||
|
use to the public, the best way to achieve this is to make it free software
|
||||||
|
which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest to attach
|
||||||
|
them to the start of each source file to most effectively convey the exclusion
|
||||||
|
of warranty; and each file should have at least the "copyright" line and a
|
||||||
|
pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and an idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C)< yyyy> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
|
||||||
|
Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this when
|
||||||
|
it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
|
||||||
|
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
|
||||||
|
and you are welcome to redistribute it under certain conditions; type `show
|
||||||
|
c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may be
|
||||||
|
called something other than `show w' and `show c'; they could even be mouse-clicks
|
||||||
|
or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
|
||||||
|
is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision'
|
||||||
|
(which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon >, 1 April 1989 Ty Coon, President of Vice This General
|
||||||
|
Public License does not permit incorporating your program into proprietary
|
||||||
|
programs. If your program is a subroutine library, you may consider it more
|
||||||
|
useful to permit linking proprietary applications with the library. If this
|
||||||
|
is what you want to do, use the GNU Lesser General Public License instead
|
||||||
|
of this License.
|
319
LICENSES/GPL-2.0-or-later.txt
Normal file
319
LICENSES/GPL-2.0-or-later.txt
Normal file
@ -0,0 +1,319 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your freedom to share
|
||||||
|
and change it. By contrast, the GNU General Public License is intended to
|
||||||
|
guarantee your freedom to share and change free software--to make sure the
|
||||||
|
software is free for all its users. This General Public License applies to
|
||||||
|
most of the Free Software Foundation's software and to any other program whose
|
||||||
|
authors commit to using it. (Some other Free Software Foundation software
|
||||||
|
is covered by the GNU Lesser General Public License instead.) You can apply
|
||||||
|
it to your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not price. Our
|
||||||
|
General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for this service if you
|
||||||
|
wish), that you receive source code or can get it if you want it, that you
|
||||||
|
can change the software or use pieces of it in new free programs; and that
|
||||||
|
you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid anyone to
|
||||||
|
deny you these rights or to ask you to surrender the rights. These restrictions
|
||||||
|
translate to certain responsibilities for you if you distribute copies of
|
||||||
|
the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether gratis or
|
||||||
|
for a fee, you must give the recipients all the rights that you have. You
|
||||||
|
must make sure that they, too, receive or can get the source code. And you
|
||||||
|
must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and (2)
|
||||||
|
offer you this license which gives you legal permission to copy, distribute
|
||||||
|
and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain that
|
||||||
|
everyone understands that there is no warranty for this free software. If
|
||||||
|
the software is modified by someone else and passed on, we want its recipients
|
||||||
|
to know that what they have is not the original, so that any problems introduced
|
||||||
|
by others will not reflect on the original authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software patents. We
|
||||||
|
wish to avoid the danger that redistributors of a free program will individually
|
||||||
|
obtain patent licenses, in effect making the program proprietary. To prevent
|
||||||
|
this, we have made it clear that any patent must be licensed for everyone's
|
||||||
|
free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains a notice
|
||||||
|
placed by the copyright holder saying it may be distributed under the terms
|
||||||
|
of this General Public License. The "Program", below, refers to any such program
|
||||||
|
or work, and a "work based on the Program" means either the Program or any
|
||||||
|
derivative work under copyright law: that is to say, a work containing the
|
||||||
|
Program or a portion of it, either verbatim or with modifications and/or translated
|
||||||
|
into another language. (Hereinafter, translation is included without limitation
|
||||||
|
in the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not covered
|
||||||
|
by this License; they are outside its scope. The act of running the Program
|
||||||
|
is not restricted, and the output from the Program is covered only if its
|
||||||
|
contents constitute a work based on the Program (independent of having been
|
||||||
|
made by running the Program). Whether that is true depends on what the Program
|
||||||
|
does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's source code
|
||||||
|
as you receive it, in any medium, provided that you conspicuously and appropriately
|
||||||
|
publish on each copy an appropriate copyright notice and disclaimer of warranty;
|
||||||
|
keep intact all the notices that refer to this License and to the absence
|
||||||
|
of any warranty; and give any other recipients of the Program a copy of this
|
||||||
|
License along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and you
|
||||||
|
may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion of it,
|
||||||
|
thus forming a work based on the Program, and copy and distribute such modifications
|
||||||
|
or work under the terms of Section 1 above, provided that you also meet all
|
||||||
|
of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices stating that
|
||||||
|
you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in whole or
|
||||||
|
in part contains or is derived from the Program or any part thereof, to be
|
||||||
|
licensed as a whole at no charge to all third parties under the terms of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively when run,
|
||||||
|
you must cause it, when started running for such interactive use in the most
|
||||||
|
ordinary way, to print or display an announcement including an appropriate
|
||||||
|
copyright notice and a notice that there is no warranty (or else, saying that
|
||||||
|
you provide a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this License.
|
||||||
|
(Exception: if the Program itself is interactive but does not normally print
|
||||||
|
such an announcement, your work based on the Program is not required to print
|
||||||
|
an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If identifiable
|
||||||
|
sections of that work are not derived from the Program, and can be reasonably
|
||||||
|
considered independent and separate works in themselves, then this License,
|
||||||
|
and its terms, do not apply to those sections when you distribute them as
|
||||||
|
separate works. But when you distribute the same sections as part of a whole
|
||||||
|
which is a work based on the Program, the distribution of the whole must be
|
||||||
|
on the terms of this License, whose permissions for other licensees extend
|
||||||
|
to the entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest your
|
||||||
|
rights to work written entirely by you; rather, the intent is to exercise
|
||||||
|
the right to control the distribution of derivative or collective works based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program with
|
||||||
|
the Program (or with a work based on the Program) on a volume of a storage
|
||||||
|
or distribution medium does not bring the other work under the scope of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it, under Section
|
||||||
|
2) in object code or executable form under the terms of Sections 1 and 2 above
|
||||||
|
provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable source code,
|
||||||
|
which must be distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three years, to give
|
||||||
|
any third party, for a charge no more than your cost of physically performing
|
||||||
|
source distribution, a complete machine-readable copy of the corresponding
|
||||||
|
source code, to be distributed under the terms of Sections 1 and 2 above on
|
||||||
|
a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer to distribute
|
||||||
|
corresponding source code. (This alternative is allowed only for noncommercial
|
||||||
|
distribution and only if you received the program in object code or executable
|
||||||
|
form with such an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for making
|
||||||
|
modifications to it. For an executable work, complete source code means all
|
||||||
|
the source code for all modules it contains, plus any associated interface
|
||||||
|
definition files, plus the scripts used to control compilation and installation
|
||||||
|
of the executable. However, as a special exception, the source code distributed
|
||||||
|
need not include anything that is normally distributed (in either source or
|
||||||
|
binary form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component itself
|
||||||
|
accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering access to
|
||||||
|
copy from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place counts as distribution of the source code,
|
||||||
|
even though third parties are not compelled to copy the source along with
|
||||||
|
the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program except
|
||||||
|
as expressly provided under this License. Any attempt otherwise to copy, modify,
|
||||||
|
sublicense or distribute the Program is void, and will automatically terminate
|
||||||
|
your rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses terminated
|
||||||
|
so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not signed
|
||||||
|
it. However, nothing else grants you permission to modify or distribute the
|
||||||
|
Program or its derivative works. These actions are prohibited by law if you
|
||||||
|
do not accept this License. Therefore, by modifying or distributing the Program
|
||||||
|
(or any work based on the Program), you indicate your acceptance of this License
|
||||||
|
to do so, and all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the Program),
|
||||||
|
the recipient automatically receives a license from the original licensor
|
||||||
|
to copy, distribute or modify the Program subject to these terms and conditions.
|
||||||
|
You may not impose any further restrictions on the recipients' exercise of
|
||||||
|
the rights granted herein. You are not responsible for enforcing compliance
|
||||||
|
by third parties to this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent infringement
|
||||||
|
or for any other reason (not limited to patent issues), conditions are imposed
|
||||||
|
on you (whether by court order, agreement or otherwise) that contradict the
|
||||||
|
conditions of this License, they do not excuse you from the conditions of
|
||||||
|
this License. If you cannot distribute so as to satisfy simultaneously your
|
||||||
|
obligations under this License and any other pertinent obligations, then as
|
||||||
|
a consequence you may not distribute the Program at all. For example, if a
|
||||||
|
patent license would not permit royalty-free redistribution of the Program
|
||||||
|
by all those who receive copies directly or indirectly through you, then the
|
||||||
|
only way you could satisfy both it and this License would be to refrain entirely
|
||||||
|
from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply and
|
||||||
|
the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any patents
|
||||||
|
or other property right claims or to contest validity of any such claims;
|
||||||
|
this section has the sole purpose of protecting the integrity of the free
|
||||||
|
software distribution system, which is implemented by public license practices.
|
||||||
|
Many people have made generous contributions to the wide range of software
|
||||||
|
distributed through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing to
|
||||||
|
distribute software through any other system and a licensee cannot impose
|
||||||
|
that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to be a
|
||||||
|
consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in certain
|
||||||
|
countries either by patents or by copyrighted interfaces, the original copyright
|
||||||
|
holder who places the Program under this License may add an explicit geographical
|
||||||
|
distribution limitation excluding those countries, so that distribution is
|
||||||
|
permitted only in or among countries not thus excluded. In such case, this
|
||||||
|
License incorporates the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the General Public License from time to time. Such new versions will be similar
|
||||||
|
in spirit to the present version, but may differ in detail to address new
|
||||||
|
problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program specifies
|
||||||
|
a version number of this License which applies to it and "any later version",
|
||||||
|
you have the option of following the terms and conditions either of that version
|
||||||
|
or of any later version published by the Free Software Foundation. If the
|
||||||
|
Program does not specify a version number of this License, you may choose
|
||||||
|
any version ever published by the Free Software Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free programs
|
||||||
|
whose distribution conditions are different, write to the author to ask for
|
||||||
|
permission. For software which is copyrighted by the Free Software Foundation,
|
||||||
|
write to the Free Software Foundation; we sometimes make exceptions for this.
|
||||||
|
Our decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing and reuse
|
||||||
|
of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
|
||||||
|
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
|
||||||
|
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
|
||||||
|
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||||
|
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
||||||
|
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
|
||||||
|
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
|
||||||
|
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
|
||||||
|
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
|
||||||
|
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest possible
|
||||||
|
use to the public, the best way to achieve this is to make it free software
|
||||||
|
which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest to attach
|
||||||
|
them to the start of each source file to most effectively convey the exclusion
|
||||||
|
of warranty; and each file should have at least the "copyright" line and a
|
||||||
|
pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and an idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C) <yyyy> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
|
||||||
|
Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this when
|
||||||
|
it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
|
||||||
|
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
|
||||||
|
and you are welcome to redistribute it under certain conditions; type `show
|
||||||
|
c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may be
|
||||||
|
called something other than `show w' and `show c'; they could even be mouse-clicks
|
||||||
|
or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
|
||||||
|
is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision'
|
||||||
|
(which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General
|
||||||
|
Public License does not permit incorporating your program into proprietary
|
||||||
|
programs. If your program is a subroutine library, you may consider it more
|
||||||
|
useful to permit linking proprietary applications with the library. If this
|
||||||
|
is what you want to do, use the GNU Lesser General Public License instead
|
||||||
|
of this License.
|
625
LICENSES/GPL-3.0-only.txt
Normal file
625
LICENSES/GPL-3.0-only.txt
Normal file
@ -0,0 +1,625 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for software and
|
||||||
|
other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed to take
|
||||||
|
away your freedom to share and change the works. By contrast, the GNU General
|
||||||
|
Public License is intended to guarantee your freedom to share and change all
|
||||||
|
versions of a program--to make sure it remains free software for all its users.
|
||||||
|
We, the Free Software Foundation, use the GNU General Public License for most
|
||||||
|
of our software; it applies also to any other work released this way by its
|
||||||
|
authors. You can apply it to your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not price. Our
|
||||||
|
General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for them if you wish), that
|
||||||
|
you receive source code or can get it if you want it, that you can change
|
||||||
|
the software or use pieces of it in new free programs, and that you know you
|
||||||
|
can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you these rights
|
||||||
|
or asking you to surrender the rights. Therefore, you have certain responsibilities
|
||||||
|
if you distribute copies of the software, or if you modify it: responsibilities
|
||||||
|
to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether gratis or
|
||||||
|
for a fee, you must pass on to the recipients the same freedoms that you received.
|
||||||
|
You must make sure that they, too, receive or can get the source code. And
|
||||||
|
you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps: (1) assert
|
||||||
|
copyright on the software, and (2) offer you this License giving you legal
|
||||||
|
permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains that
|
||||||
|
there is no warranty for this free software. For both users' and authors'
|
||||||
|
sake, the GPL requires that modified versions be marked as changed, so that
|
||||||
|
their problems will not be attributed erroneously to authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run modified
|
||||||
|
versions of the software inside them, although the manufacturer can do so.
|
||||||
|
This is fundamentally incompatible with the aim of protecting users' freedom
|
||||||
|
to change the software. The systematic pattern of such abuse occurs in the
|
||||||
|
area of products for individuals to use, which is precisely where it is most
|
||||||
|
unacceptable. Therefore, we have designed this version of the GPL to prohibit
|
||||||
|
the practice for those products. If such problems arise substantially in other
|
||||||
|
domains, we stand ready to extend this provision to those domains in future
|
||||||
|
versions of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents. States
|
||||||
|
should not allow patents to restrict development and use of software on general-purpose
|
||||||
|
computers, but in those that do, we wish to avoid the special danger that
|
||||||
|
patents applied to a free program could make it effectively proprietary. To
|
||||||
|
prevent this, the GPL assures that patents cannot be used to render the program
|
||||||
|
non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of works,
|
||||||
|
such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this License.
|
||||||
|
Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals
|
||||||
|
or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work in
|
||||||
|
a fashion requiring copyright permission, other than the making of an exact
|
||||||
|
copy. The resulting work is called a "modified version" of the earlier work
|
||||||
|
or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based on the
|
||||||
|
Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without permission,
|
||||||
|
would make you directly or secondarily liable for infringement under applicable
|
||||||
|
copyright law, except executing it on a computer or modifying a private copy.
|
||||||
|
Propagation includes copying, distribution (with or without modification),
|
||||||
|
making available to the public, and in some countries other activities as
|
||||||
|
well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other parties
|
||||||
|
to make or receive copies. Mere interaction with a user through a computer
|
||||||
|
network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices" to the
|
||||||
|
extent that it includes a convenient and prominently visible feature that
|
||||||
|
(1) displays an appropriate copyright notice, and (2) tells the user that
|
||||||
|
there is no warranty for the work (except to the extent that warranties are
|
||||||
|
provided), that licensees may convey the work under this License, and how
|
||||||
|
to view a copy of this License. If the interface presents a list of user commands
|
||||||
|
or options, such as a menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work for making
|
||||||
|
modifications to it. "Object code" means any non-source form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official standard
|
||||||
|
defined by a recognized standards body, or, in the case of interfaces specified
|
||||||
|
for a particular programming language, one that is widely used among developers
|
||||||
|
working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other than
|
||||||
|
the work as a whole, that (a) is included in the normal form of packaging
|
||||||
|
a Major Component, but which is not part of that Major Component, and (b)
|
||||||
|
serves only to enable use of the work with that Major Component, or to implement
|
||||||
|
a Standard Interface for which an implementation is available to the public
|
||||||
|
in source code form. A "Major Component", in this context, means a major essential
|
||||||
|
component (kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to produce
|
||||||
|
the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all the source
|
||||||
|
code needed to generate, install, and (for an executable work) run the object
|
||||||
|
code and to modify the work, including scripts to control those activities.
|
||||||
|
However, it does not include the work's System Libraries, or general-purpose
|
||||||
|
tools or generally available free programs which are used unmodified in performing
|
||||||
|
those activities but which are not part of the work. For example, Corresponding
|
||||||
|
Source includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically linked
|
||||||
|
subprograms that the work is specifically designed to require, such as by
|
||||||
|
intimate data communication or control flow between those subprograms and
|
||||||
|
other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users can regenerate
|
||||||
|
automatically from other parts of the Corresponding Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of copyright
|
||||||
|
on the Program, and are irrevocable provided the stated conditions are met.
|
||||||
|
This License explicitly affirms your unlimited permission to run the unmodified
|
||||||
|
Program. The output from running a covered work is covered by this License
|
||||||
|
only if the output, given its content, constitutes a covered work. This License
|
||||||
|
acknowledges your rights of fair use or other equivalent, as provided by copyright
|
||||||
|
law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not convey, without
|
||||||
|
conditions so long as your license otherwise remains in force. You may convey
|
||||||
|
covered works to others for the sole purpose of having them make modifications
|
||||||
|
exclusively for you, or provide you with facilities for running those works,
|
||||||
|
provided that you comply with the terms of this License in conveying all material
|
||||||
|
for which you do not control copyright. Those thus making or running the covered
|
||||||
|
works for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of your copyrighted
|
||||||
|
material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under the conditions
|
||||||
|
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological measure
|
||||||
|
under any applicable law fulfilling obligations under article 11 of the WIPO
|
||||||
|
copyright treaty adopted on 20 December 1996, or similar laws prohibiting
|
||||||
|
or restricting circumvention of such measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid circumvention
|
||||||
|
of technological measures to the extent such circumvention is effected by
|
||||||
|
exercising rights under this License with respect to the covered work, and
|
||||||
|
you disclaim any intention to limit operation or modification of the work
|
||||||
|
as a means of enforcing, against the work's users, your or third parties'
|
||||||
|
legal rights to forbid circumvention of technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you receive
|
||||||
|
it, in any medium, provided that you conspicuously and appropriately publish
|
||||||
|
on each copy an appropriate copyright notice; keep intact all notices stating
|
||||||
|
that this License and any non-permissive terms added in accord with section
|
||||||
|
7 apply to the code; keep intact all notices of the absence of any warranty;
|
||||||
|
and give all recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey, and you
|
||||||
|
may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to produce
|
||||||
|
it from the Program, in the form of source code under the terms of section
|
||||||
|
4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified it, and
|
||||||
|
giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is released under
|
||||||
|
this License and any conditions added under section 7. This requirement modifies
|
||||||
|
the requirement in section 4 to "keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this License to anyone
|
||||||
|
who comes into possession of a copy. This License will therefore apply, along
|
||||||
|
with any applicable section 7 additional terms, to the whole of the work,
|
||||||
|
and all its parts, regardless of how they are packaged. This License gives
|
||||||
|
no permission to license the work in any other way, but it does not invalidate
|
||||||
|
such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display Appropriate
|
||||||
|
Legal Notices; however, if the Program has interactive interfaces that do
|
||||||
|
not display Appropriate Legal Notices, your work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent works,
|
||||||
|
which are not by their nature extensions of the covered work, and which are
|
||||||
|
not combined with it such as to form a larger program, in or on a volume of
|
||||||
|
a storage or distribution medium, is called an "aggregate" if the compilation
|
||||||
|
and its resulting copyright are not used to limit the access or legal rights
|
||||||
|
of the compilation's users beyond what the individual works permit. Inclusion
|
||||||
|
of a covered work in an aggregate does not cause this License to apply to
|
||||||
|
the other parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms of sections
|
||||||
|
4 and 5, provided that you also convey the machine-readable Corresponding
|
||||||
|
Source under the terms of this License, in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product (including
|
||||||
|
a physical distribution medium), accompanied by the Corresponding Source fixed
|
||||||
|
on a durable physical medium customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product (including
|
||||||
|
a physical distribution medium), accompanied by a written offer, valid for
|
||||||
|
at least three years and valid for as long as you offer spare parts or customer
|
||||||
|
support for that product model, to give anyone who possesses the object code
|
||||||
|
either (1) a copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical medium customarily
|
||||||
|
used for software interchange, for a price no more than your reasonable cost
|
||||||
|
of physically performing this conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the written
|
||||||
|
offer to provide the Corresponding Source. This alternative is allowed only
|
||||||
|
occasionally and noncommercially, and only if you received the object code
|
||||||
|
with such an offer, in accord with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated place (gratis
|
||||||
|
or for a charge), and offer equivalent access to the Corresponding Source
|
||||||
|
in the same way through the same place at no further charge. You need not
|
||||||
|
require recipients to copy the Corresponding Source along with the object
|
||||||
|
code. If the place to copy the object code is a network server, the Corresponding
|
||||||
|
Source may be on a different server (operated by you or a third party) that
|
||||||
|
supports equivalent copying facilities, provided you maintain clear directions
|
||||||
|
next to the object code saying where to find the Corresponding Source. Regardless
|
||||||
|
of what server hosts the Corresponding Source, you remain obligated to ensure
|
||||||
|
that it is available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided you inform
|
||||||
|
other peers where the object code and Corresponding Source of the work are
|
||||||
|
being offered to the general public at no charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded from
|
||||||
|
the Corresponding Source as a System Library, need not be included in conveying
|
||||||
|
the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any tangible
|
||||||
|
personal property which is normally used for personal, family, or household
|
||||||
|
purposes, or (2) anything designed or sold for incorporation into a dwelling.
|
||||||
|
In determining whether a product is a consumer product, doubtful cases shall
|
||||||
|
be resolved in favor of coverage. For a particular product received by a particular
|
||||||
|
user, "normally used" refers to a typical or common use of that class of product,
|
||||||
|
regardless of the status of the particular user or of the way in which the
|
||||||
|
particular user actually uses, or expects or is expected to use, the product.
|
||||||
|
A product is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent the
|
||||||
|
only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods, procedures,
|
||||||
|
authorization keys, or other information required to install and execute modified
|
||||||
|
versions of a covered work in that User Product from a modified version of
|
||||||
|
its Corresponding Source. The information must suffice to ensure that the
|
||||||
|
continued functioning of the modified object code is in no case prevented
|
||||||
|
or interfered with solely because modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or specifically
|
||||||
|
for use in, a User Product, and the conveying occurs as part of a transaction
|
||||||
|
in which the right of possession and use of the User Product is transferred
|
||||||
|
to the recipient in perpetuity or for a fixed term (regardless of how the
|
||||||
|
transaction is characterized), the Corresponding Source conveyed under this
|
||||||
|
section must be accompanied by the Installation Information. But this requirement
|
||||||
|
does not apply if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has been installed
|
||||||
|
in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a requirement
|
||||||
|
to continue to provide support service, warranty, or updates for a work that
|
||||||
|
has been modified or installed by the recipient, or for the User Product in
|
||||||
|
which it has been modified or installed. Access to a network may be denied
|
||||||
|
when the modification itself materially and adversely affects the operation
|
||||||
|
of the network or violates the rules and protocols for communication across
|
||||||
|
the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided, in accord
|
||||||
|
with this section must be in a format that is publicly documented (and with
|
||||||
|
an implementation available to the public in source code form), and must require
|
||||||
|
no special password or key for unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this License
|
||||||
|
by making exceptions from one or more of its conditions. Additional permissions
|
||||||
|
that are applicable to the entire Program shall be treated as though they
|
||||||
|
were included in this License, to the extent that they are valid under applicable
|
||||||
|
law. If additional permissions apply only to part of the Program, that part
|
||||||
|
may be used separately under those permissions, but the entire Program remains
|
||||||
|
governed by this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option remove any
|
||||||
|
additional permissions from that copy, or from any part of it. (Additional
|
||||||
|
permissions may be written to require their own removal in certain cases when
|
||||||
|
you modify the work.) You may place additional permissions on material, added
|
||||||
|
by you to a covered work, for which you have or can give appropriate copyright
|
||||||
|
permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you add
|
||||||
|
to a covered work, you may (if authorized by the copyright holders of that
|
||||||
|
material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the terms of
|
||||||
|
sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or author
|
||||||
|
attributions in that material or in the Appropriate Legal Notices displayed
|
||||||
|
by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or requiring
|
||||||
|
that modified versions of such material be marked in reasonable ways as different
|
||||||
|
from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or authors
|
||||||
|
of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some trade names,
|
||||||
|
trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that material by
|
||||||
|
anyone who conveys the material (or modified versions of it) with contractual
|
||||||
|
assumptions of liability to the recipient, for any liability that these contractual
|
||||||
|
assumptions directly impose on those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further restrictions"
|
||||||
|
within the meaning of section 10. If the Program as you received it, or any
|
||||||
|
part of it, contains a notice stating that it is governed by this License
|
||||||
|
along with a term that is a further restriction, you may remove that term.
|
||||||
|
If a license document contains a further restriction but permits relicensing
|
||||||
|
or conveying under this License, you may add to a covered work material governed
|
||||||
|
by the terms of that license document, provided that the further restriction
|
||||||
|
does not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you must place,
|
||||||
|
in the relevant source files, a statement of the additional terms that apply
|
||||||
|
to those files, or a notice indicating where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the form
|
||||||
|
of a separately written license, or stated as exceptions; the above requirements
|
||||||
|
apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly provided
|
||||||
|
under this License. Any attempt otherwise to propagate or modify it is void,
|
||||||
|
and will automatically terminate your rights under this License (including
|
||||||
|
any patent licenses granted under the third paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your license from
|
||||||
|
a particular copyright holder is reinstated (a) provisionally, unless and
|
||||||
|
until the copyright holder explicitly and finally terminates your license,
|
||||||
|
and (b) permanently, if the copyright holder fails to notify you of the violation
|
||||||
|
by some reasonable means prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is reinstated permanently
|
||||||
|
if the copyright holder notifies you of the violation by some reasonable means,
|
||||||
|
this is the first time you have received notice of violation of this License
|
||||||
|
(for any work) from that copyright holder, and you cure the violation prior
|
||||||
|
to 30 days after your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the licenses
|
||||||
|
of parties who have received copies or rights from you under this License.
|
||||||
|
If your rights have been terminated and not permanently reinstated, you do
|
||||||
|
not qualify to receive new licenses for the same material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or run a copy
|
||||||
|
of the Program. Ancillary propagation of a covered work occurring solely as
|
||||||
|
a consequence of using peer-to-peer transmission to receive a copy likewise
|
||||||
|
does not require acceptance. However, nothing other than this License grants
|
||||||
|
you permission to propagate or modify any covered work. These actions infringe
|
||||||
|
copyright if you do not accept this License. Therefore, by modifying or propagating
|
||||||
|
a covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically receives
|
||||||
|
a license from the original licensors, to run, modify and propagate that work,
|
||||||
|
subject to this License. You are not responsible for enforcing compliance
|
||||||
|
by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an organization,
|
||||||
|
or substantially all assets of one, or subdividing an organization, or merging
|
||||||
|
organizations. If propagation of a covered work results from an entity transaction,
|
||||||
|
each party to that transaction who receives a copy of the work also receives
|
||||||
|
whatever licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the Corresponding
|
||||||
|
Source of the work from the predecessor in interest, if the predecessor has
|
||||||
|
it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the rights
|
||||||
|
granted or affirmed under this License. For example, you may not impose a
|
||||||
|
license fee, royalty, or other charge for exercise of rights granted under
|
||||||
|
this License, and you may not initiate litigation (including a cross-claim
|
||||||
|
or counterclaim in a lawsuit) alleging that any patent claim is infringed
|
||||||
|
by making, using, selling, offering for sale, or importing the Program or
|
||||||
|
any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this License
|
||||||
|
of the Program or a work on which the Program is based. The work thus licensed
|
||||||
|
is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims owned or controlled
|
||||||
|
by the contributor, whether already acquired or hereafter acquired, that would
|
||||||
|
be infringed by some manner, permitted by this License, of making, using,
|
||||||
|
or selling its contributor version, but do not include claims that would be
|
||||||
|
infringed only as a consequence of further modification of the contributor
|
||||||
|
version. For purposes of this definition, "control" includes the right to
|
||||||
|
grant patent sublicenses in a manner consistent with the requirements of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free patent
|
||||||
|
license under the contributor's essential patent claims, to make, use, sell,
|
||||||
|
offer for sale, import and otherwise run, modify and propagate the contents
|
||||||
|
of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express agreement
|
||||||
|
or commitment, however denominated, not to enforce a patent (such as an express
|
||||||
|
permission to practice a patent or covenant not to sue for patent infringement).
|
||||||
|
To "grant" such a patent license to a party means to make such an agreement
|
||||||
|
or commitment not to enforce a patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license, and the
|
||||||
|
Corresponding Source of the work is not available for anyone to copy, free
|
||||||
|
of charge and under the terms of this License, through a publicly available
|
||||||
|
network server or other readily accessible means, then you must either (1)
|
||||||
|
cause the Corresponding Source to be so available, or (2) arrange to deprive
|
||||||
|
yourself of the benefit of the patent license for this particular work, or
|
||||||
|
(3) arrange, in a manner consistent with the requirements of this License,
|
||||||
|
to extend the patent license to downstream recipients. "Knowingly relying"
|
||||||
|
means you have actual knowledge that, but for the patent license, your conveying
|
||||||
|
the covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that country
|
||||||
|
that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or arrangement,
|
||||||
|
you convey, or propagate by procuring conveyance of, a covered work, and grant
|
||||||
|
a patent license to some of the parties receiving the covered work authorizing
|
||||||
|
them to use, propagate, modify or convey a specific copy of the covered work,
|
||||||
|
then the patent license you grant is automatically extended to all recipients
|
||||||
|
of the covered work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within the scope
|
||||||
|
of its coverage, prohibits the exercise of, or is conditioned on the non-exercise
|
||||||
|
of one or more of the rights that are specifically granted under this License.
|
||||||
|
You may not convey a covered work if you are a party to an arrangement with
|
||||||
|
a third party that is in the business of distributing software, under which
|
||||||
|
you make payment to the third party based on the extent of your activity of
|
||||||
|
conveying the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory patent
|
||||||
|
license (a) in connection with copies of the covered work conveyed by you
|
||||||
|
(or copies made from those copies), or (b) primarily for and in connection
|
||||||
|
with specific products or compilations that contain the covered work, unless
|
||||||
|
you entered into that arrangement, or that patent license was granted, prior
|
||||||
|
to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting any implied
|
||||||
|
license or other defenses to infringement that may otherwise be available
|
||||||
|
to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or otherwise)
|
||||||
|
that contradict the conditions of this License, they do not excuse you from
|
||||||
|
the conditions of this License. If you cannot convey a covered work so as
|
||||||
|
to satisfy simultaneously your obligations under this License and any other
|
||||||
|
pertinent obligations, then as a consequence you may not convey it at all.
|
||||||
|
For example, if you agree to terms that obligate you to collect a royalty
|
||||||
|
for further conveying from those to whom you convey the Program, the only
|
||||||
|
way you could satisfy both those terms and this License would be to refrain
|
||||||
|
entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have permission to
|
||||||
|
link or combine any covered work with a work licensed under version 3 of the
|
||||||
|
GNU Affero General Public License into a single combined work, and to convey
|
||||||
|
the resulting work. The terms of this License will continue to apply to the
|
||||||
|
part which is the covered work, but the special requirements of the GNU Affero
|
||||||
|
General Public License, section 13, concerning interaction through a network
|
||||||
|
will apply to the combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of the
|
||||||
|
GNU General Public License from time to time. Such new versions will be similar
|
||||||
|
in spirit to the present version, but may differ in detail to address new
|
||||||
|
problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program specifies
|
||||||
|
that a certain numbered version of the GNU General Public License "or any
|
||||||
|
later version" applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that numbered version or of any later version published
|
||||||
|
by the Free Software Foundation. If the Program does not specify a version
|
||||||
|
number of the GNU General Public License, you may choose any version ever
|
||||||
|
published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future versions of
|
||||||
|
the GNU General Public License can be used, that proxy's public statement
|
||||||
|
of acceptance of a version permanently authorizes you to choose that version
|
||||||
|
for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different permissions. However,
|
||||||
|
no additional obligations are imposed on any author or copyright holder as
|
||||||
|
a result of your choosing to follow a later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||||||
|
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
|
||||||
|
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
|
||||||
|
CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||||
|
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM
|
||||||
|
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
|
||||||
|
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
|
||||||
|
USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
|
||||||
|
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
||||||
|
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
|
||||||
|
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided above cannot
|
||||||
|
be given local legal effect according to their terms, reviewing courts shall
|
||||||
|
apply local law that most closely approximates an absolute waiver of all civil
|
||||||
|
liability in connection with the Program, unless a warranty or assumption
|
||||||
|
of liability accompanies a copy of the Program in return for a fee. END OF
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest possible
|
||||||
|
use to the public, the best way to achieve this is to make it free software
|
||||||
|
which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest to attach
|
||||||
|
them to the start of each source file to most effectively state the exclusion
|
||||||
|
of warranty; and each file should have at least the "copyright" line and a
|
||||||
|
pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short notice like
|
||||||
|
this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
|
||||||
|
This is free software, and you are welcome to redistribute it under certain
|
||||||
|
conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands might
|
||||||
|
be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary. For
|
||||||
|
more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General Public
|
||||||
|
License instead of this License. But first, please read <https://www.gnu.org/
|
||||||
|
licenses /why-not-lgpl.html>.
|
625
LICENSES/GPL-3.0-or-later.txt
Normal file
625
LICENSES/GPL-3.0-or-later.txt
Normal file
@ -0,0 +1,625 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this license
|
||||||
|
document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for software and
|
||||||
|
other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed to take
|
||||||
|
away your freedom to share and change the works. By contrast, the GNU General
|
||||||
|
Public License is intended to guarantee your freedom to share and change all
|
||||||
|
versions of a program--to make sure it remains free software for all its users.
|
||||||
|
We, the Free Software Foundation, use the GNU General Public License for most
|
||||||
|
of our software; it applies also to any other work released this way by its
|
||||||
|
authors. You can apply it to your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not price. Our
|
||||||
|
General Public Licenses are designed to make sure that you have the freedom
|
||||||
|
to distribute copies of free software (and charge for them if you wish), that
|
||||||
|
you receive source code or can get it if you want it, that you can change
|
||||||
|
the software or use pieces of it in new free programs, and that you know you
|
||||||
|
can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you these rights
|
||||||
|
or asking you to surrender the rights. Therefore, you have certain responsibilities
|
||||||
|
if you distribute copies of the software, or if you modify it: responsibilities
|
||||||
|
to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether gratis or
|
||||||
|
for a fee, you must pass on to the recipients the same freedoms that you received.
|
||||||
|
You must make sure that they, too, receive or can get the source code. And
|
||||||
|
you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps: (1) assert
|
||||||
|
copyright on the software, and (2) offer you this License giving you legal
|
||||||
|
permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains that
|
||||||
|
there is no warranty for this free software. For both users' and authors'
|
||||||
|
sake, the GPL requires that modified versions be marked as changed, so that
|
||||||
|
their problems will not be attributed erroneously to authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run modified
|
||||||
|
versions of the software inside them, although the manufacturer can do so.
|
||||||
|
This is fundamentally incompatible with the aim of protecting users' freedom
|
||||||
|
to change the software. The systematic pattern of such abuse occurs in the
|
||||||
|
area of products for individuals to use, which is precisely where it is most
|
||||||
|
unacceptable. Therefore, we have designed this version of the GPL to prohibit
|
||||||
|
the practice for those products. If such problems arise substantially in other
|
||||||
|
domains, we stand ready to extend this provision to those domains in future
|
||||||
|
versions of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents. States
|
||||||
|
should not allow patents to restrict development and use of software on general-purpose
|
||||||
|
computers, but in those that do, we wish to avoid the special danger that
|
||||||
|
patents applied to a free program could make it effectively proprietary. To
|
||||||
|
prevent this, the GPL assures that patents cannot be used to render the program
|
||||||
|
non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and modification
|
||||||
|
follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of works,
|
||||||
|
such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this License.
|
||||||
|
Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals
|
||||||
|
or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work in
|
||||||
|
a fashion requiring copyright permission, other than the making of an exact
|
||||||
|
copy. The resulting work is called a "modified version" of the earlier work
|
||||||
|
or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based on the
|
||||||
|
Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without permission,
|
||||||
|
would make you directly or secondarily liable for infringement under applicable
|
||||||
|
copyright law, except executing it on a computer or modifying a private copy.
|
||||||
|
Propagation includes copying, distribution (with or without modification),
|
||||||
|
making available to the public, and in some countries other activities as
|
||||||
|
well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other parties
|
||||||
|
to make or receive copies. Mere interaction with a user through a computer
|
||||||
|
network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices" to the
|
||||||
|
extent that it includes a convenient and prominently visible feature that
|
||||||
|
(1) displays an appropriate copyright notice, and (2) tells the user that
|
||||||
|
there is no warranty for the work (except to the extent that warranties are
|
||||||
|
provided), that licensees may convey the work under this License, and how
|
||||||
|
to view a copy of this License. If the interface presents a list of user commands
|
||||||
|
or options, such as a menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work for making
|
||||||
|
modifications to it. "Object code" means any non-source form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official standard
|
||||||
|
defined by a recognized standards body, or, in the case of interfaces specified
|
||||||
|
for a particular programming language, one that is widely used among developers
|
||||||
|
working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other than
|
||||||
|
the work as a whole, that (a) is included in the normal form of packaging
|
||||||
|
a Major Component, but which is not part of that Major Component, and (b)
|
||||||
|
serves only to enable use of the work with that Major Component, or to implement
|
||||||
|
a Standard Interface for which an implementation is available to the public
|
||||||
|
in source code form. A "Major Component", in this context, means a major essential
|
||||||
|
component (kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to produce
|
||||||
|
the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all the source
|
||||||
|
code needed to generate, install, and (for an executable work) run the object
|
||||||
|
code and to modify the work, including scripts to control those activities.
|
||||||
|
However, it does not include the work's System Libraries, or general-purpose
|
||||||
|
tools or generally available free programs which are used unmodified in performing
|
||||||
|
those activities but which are not part of the work. For example, Corresponding
|
||||||
|
Source includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically linked
|
||||||
|
subprograms that the work is specifically designed to require, such as by
|
||||||
|
intimate data communication or control flow between those subprograms and
|
||||||
|
other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users can regenerate
|
||||||
|
automatically from other parts of the Corresponding Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of copyright
|
||||||
|
on the Program, and are irrevocable provided the stated conditions are met.
|
||||||
|
This License explicitly affirms your unlimited permission to run the unmodified
|
||||||
|
Program. The output from running a covered work is covered by this License
|
||||||
|
only if the output, given its content, constitutes a covered work. This License
|
||||||
|
acknowledges your rights of fair use or other equivalent, as provided by copyright
|
||||||
|
law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not convey, without
|
||||||
|
conditions so long as your license otherwise remains in force. You may convey
|
||||||
|
covered works to others for the sole purpose of having them make modifications
|
||||||
|
exclusively for you, or provide you with facilities for running those works,
|
||||||
|
provided that you comply with the terms of this License in conveying all material
|
||||||
|
for which you do not control copyright. Those thus making or running the covered
|
||||||
|
works for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of your copyrighted
|
||||||
|
material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under the conditions
|
||||||
|
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological measure
|
||||||
|
under any applicable law fulfilling obligations under article 11 of the WIPO
|
||||||
|
copyright treaty adopted on 20 December 1996, or similar laws prohibiting
|
||||||
|
or restricting circumvention of such measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid circumvention
|
||||||
|
of technological measures to the extent such circumvention is effected by
|
||||||
|
exercising rights under this License with respect to the covered work, and
|
||||||
|
you disclaim any intention to limit operation or modification of the work
|
||||||
|
as a means of enforcing, against the work's users, your or third parties'
|
||||||
|
legal rights to forbid circumvention of technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you receive
|
||||||
|
it, in any medium, provided that you conspicuously and appropriately publish
|
||||||
|
on each copy an appropriate copyright notice; keep intact all notices stating
|
||||||
|
that this License and any non-permissive terms added in accord with section
|
||||||
|
7 apply to the code; keep intact all notices of the absence of any warranty;
|
||||||
|
and give all recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey, and you
|
||||||
|
may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to produce
|
||||||
|
it from the Program, in the form of source code under the terms of section
|
||||||
|
4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified it, and
|
||||||
|
giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is released under
|
||||||
|
this License and any conditions added under section 7. This requirement modifies
|
||||||
|
the requirement in section 4 to "keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this License to anyone
|
||||||
|
who comes into possession of a copy. This License will therefore apply, along
|
||||||
|
with any applicable section 7 additional terms, to the whole of the work,
|
||||||
|
and all its parts, regardless of how they are packaged. This License gives
|
||||||
|
no permission to license the work in any other way, but it does not invalidate
|
||||||
|
such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display Appropriate
|
||||||
|
Legal Notices; however, if the Program has interactive interfaces that do
|
||||||
|
not display Appropriate Legal Notices, your work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent works,
|
||||||
|
which are not by their nature extensions of the covered work, and which are
|
||||||
|
not combined with it such as to form a larger program, in or on a volume of
|
||||||
|
a storage or distribution medium, is called an "aggregate" if the compilation
|
||||||
|
and its resulting copyright are not used to limit the access or legal rights
|
||||||
|
of the compilation's users beyond what the individual works permit. Inclusion
|
||||||
|
of a covered work in an aggregate does not cause this License to apply to
|
||||||
|
the other parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms of sections
|
||||||
|
4 and 5, provided that you also convey the machine-readable Corresponding
|
||||||
|
Source under the terms of this License, in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product (including
|
||||||
|
a physical distribution medium), accompanied by the Corresponding Source fixed
|
||||||
|
on a durable physical medium customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product (including
|
||||||
|
a physical distribution medium), accompanied by a written offer, valid for
|
||||||
|
at least three years and valid for as long as you offer spare parts or customer
|
||||||
|
support for that product model, to give anyone who possesses the object code
|
||||||
|
either (1) a copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical medium customarily
|
||||||
|
used for software interchange, for a price no more than your reasonable cost
|
||||||
|
of physically performing this conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the written
|
||||||
|
offer to provide the Corresponding Source. This alternative is allowed only
|
||||||
|
occasionally and noncommercially, and only if you received the object code
|
||||||
|
with such an offer, in accord with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated place (gratis
|
||||||
|
or for a charge), and offer equivalent access to the Corresponding Source
|
||||||
|
in the same way through the same place at no further charge. You need not
|
||||||
|
require recipients to copy the Corresponding Source along with the object
|
||||||
|
code. If the place to copy the object code is a network server, the Corresponding
|
||||||
|
Source may be on a different server (operated by you or a third party) that
|
||||||
|
supports equivalent copying facilities, provided you maintain clear directions
|
||||||
|
next to the object code saying where to find the Corresponding Source. Regardless
|
||||||
|
of what server hosts the Corresponding Source, you remain obligated to ensure
|
||||||
|
that it is available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided you inform
|
||||||
|
other peers where the object code and Corresponding Source of the work are
|
||||||
|
being offered to the general public at no charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded from
|
||||||
|
the Corresponding Source as a System Library, need not be included in conveying
|
||||||
|
the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any tangible
|
||||||
|
personal property which is normally used for personal, family, or household
|
||||||
|
purposes, or (2) anything designed or sold for incorporation into a dwelling.
|
||||||
|
In determining whether a product is a consumer product, doubtful cases shall
|
||||||
|
be resolved in favor of coverage. For a particular product received by a particular
|
||||||
|
user, "normally used" refers to a typical or common use of that class of product,
|
||||||
|
regardless of the status of the particular user or of the way in which the
|
||||||
|
particular user actually uses, or expects or is expected to use, the product.
|
||||||
|
A product is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent the
|
||||||
|
only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods, procedures,
|
||||||
|
authorization keys, or other information required to install and execute modified
|
||||||
|
versions of a covered work in that User Product from a modified version of
|
||||||
|
its Corresponding Source. The information must suffice to ensure that the
|
||||||
|
continued functioning of the modified object code is in no case prevented
|
||||||
|
or interfered with solely because modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or specifically
|
||||||
|
for use in, a User Product, and the conveying occurs as part of a transaction
|
||||||
|
in which the right of possession and use of the User Product is transferred
|
||||||
|
to the recipient in perpetuity or for a fixed term (regardless of how the
|
||||||
|
transaction is characterized), the Corresponding Source conveyed under this
|
||||||
|
section must be accompanied by the Installation Information. But this requirement
|
||||||
|
does not apply if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has been installed
|
||||||
|
in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a requirement
|
||||||
|
to continue to provide support service, warranty, or updates for a work that
|
||||||
|
has been modified or installed by the recipient, or for the User Product in
|
||||||
|
which it has been modified or installed. Access to a network may be denied
|
||||||
|
when the modification itself materially and adversely affects the operation
|
||||||
|
of the network or violates the rules and protocols for communication across
|
||||||
|
the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided, in accord
|
||||||
|
with this section must be in a format that is publicly documented (and with
|
||||||
|
an implementation available to the public in source code form), and must require
|
||||||
|
no special password or key for unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this License
|
||||||
|
by making exceptions from one or more of its conditions. Additional permissions
|
||||||
|
that are applicable to the entire Program shall be treated as though they
|
||||||
|
were included in this License, to the extent that they are valid under applicable
|
||||||
|
law. If additional permissions apply only to part of the Program, that part
|
||||||
|
may be used separately under those permissions, but the entire Program remains
|
||||||
|
governed by this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option remove any
|
||||||
|
additional permissions from that copy, or from any part of it. (Additional
|
||||||
|
permissions may be written to require their own removal in certain cases when
|
||||||
|
you modify the work.) You may place additional permissions on material, added
|
||||||
|
by you to a covered work, for which you have or can give appropriate copyright
|
||||||
|
permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you add
|
||||||
|
to a covered work, you may (if authorized by the copyright holders of that
|
||||||
|
material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the terms of
|
||||||
|
sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or author
|
||||||
|
attributions in that material or in the Appropriate Legal Notices displayed
|
||||||
|
by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or requiring
|
||||||
|
that modified versions of such material be marked in reasonable ways as different
|
||||||
|
from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or authors
|
||||||
|
of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some trade names,
|
||||||
|
trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that material by
|
||||||
|
anyone who conveys the material (or modified versions of it) with contractual
|
||||||
|
assumptions of liability to the recipient, for any liability that these contractual
|
||||||
|
assumptions directly impose on those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further restrictions"
|
||||||
|
within the meaning of section 10. If the Program as you received it, or any
|
||||||
|
part of it, contains a notice stating that it is governed by this License
|
||||||
|
along with a term that is a further restriction, you may remove that term.
|
||||||
|
If a license document contains a further restriction but permits relicensing
|
||||||
|
or conveying under this License, you may add to a covered work material governed
|
||||||
|
by the terms of that license document, provided that the further restriction
|
||||||
|
does not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you must place,
|
||||||
|
in the relevant source files, a statement of the additional terms that apply
|
||||||
|
to those files, or a notice indicating where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the form
|
||||||
|
of a separately written license, or stated as exceptions; the above requirements
|
||||||
|
apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly provided
|
||||||
|
under this License. Any attempt otherwise to propagate or modify it is void,
|
||||||
|
and will automatically terminate your rights under this License (including
|
||||||
|
any patent licenses granted under the third paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your license from
|
||||||
|
a particular copyright holder is reinstated (a) provisionally, unless and
|
||||||
|
until the copyright holder explicitly and finally terminates your license,
|
||||||
|
and (b) permanently, if the copyright holder fails to notify you of the violation
|
||||||
|
by some reasonable means prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is reinstated permanently
|
||||||
|
if the copyright holder notifies you of the violation by some reasonable means,
|
||||||
|
this is the first time you have received notice of violation of this License
|
||||||
|
(for any work) from that copyright holder, and you cure the violation prior
|
||||||
|
to 30 days after your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the licenses
|
||||||
|
of parties who have received copies or rights from you under this License.
|
||||||
|
If your rights have been terminated and not permanently reinstated, you do
|
||||||
|
not qualify to receive new licenses for the same material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or run a copy
|
||||||
|
of the Program. Ancillary propagation of a covered work occurring solely as
|
||||||
|
a consequence of using peer-to-peer transmission to receive a copy likewise
|
||||||
|
does not require acceptance. However, nothing other than this License grants
|
||||||
|
you permission to propagate or modify any covered work. These actions infringe
|
||||||
|
copyright if you do not accept this License. Therefore, by modifying or propagating
|
||||||
|
a covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically receives
|
||||||
|
a license from the original licensors, to run, modify and propagate that work,
|
||||||
|
subject to this License. You are not responsible for enforcing compliance
|
||||||
|
by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an organization,
|
||||||
|
or substantially all assets of one, or subdividing an organization, or merging
|
||||||
|
organizations. If propagation of a covered work results from an entity transaction,
|
||||||
|
each party to that transaction who receives a copy of the work also receives
|
||||||
|
whatever licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the Corresponding
|
||||||
|
Source of the work from the predecessor in interest, if the predecessor has
|
||||||
|
it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the rights
|
||||||
|
granted or affirmed under this License. For example, you may not impose a
|
||||||
|
license fee, royalty, or other charge for exercise of rights granted under
|
||||||
|
this License, and you may not initiate litigation (including a cross-claim
|
||||||
|
or counterclaim in a lawsuit) alleging that any patent claim is infringed
|
||||||
|
by making, using, selling, offering for sale, or importing the Program or
|
||||||
|
any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this License
|
||||||
|
of the Program or a work on which the Program is based. The work thus licensed
|
||||||
|
is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims owned or controlled
|
||||||
|
by the contributor, whether already acquired or hereafter acquired, that would
|
||||||
|
be infringed by some manner, permitted by this License, of making, using,
|
||||||
|
or selling its contributor version, but do not include claims that would be
|
||||||
|
infringed only as a consequence of further modification of the contributor
|
||||||
|
version. For purposes of this definition, "control" includes the right to
|
||||||
|
grant patent sublicenses in a manner consistent with the requirements of this
|
||||||
|
License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free patent
|
||||||
|
license under the contributor's essential patent claims, to make, use, sell,
|
||||||
|
offer for sale, import and otherwise run, modify and propagate the contents
|
||||||
|
of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express agreement
|
||||||
|
or commitment, however denominated, not to enforce a patent (such as an express
|
||||||
|
permission to practice a patent or covenant not to sue for patent infringement).
|
||||||
|
To "grant" such a patent license to a party means to make such an agreement
|
||||||
|
or commitment not to enforce a patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license, and the
|
||||||
|
Corresponding Source of the work is not available for anyone to copy, free
|
||||||
|
of charge and under the terms of this License, through a publicly available
|
||||||
|
network server or other readily accessible means, then you must either (1)
|
||||||
|
cause the Corresponding Source to be so available, or (2) arrange to deprive
|
||||||
|
yourself of the benefit of the patent license for this particular work, or
|
||||||
|
(3) arrange, in a manner consistent with the requirements of this License,
|
||||||
|
to extend the patent license to downstream recipients. "Knowingly relying"
|
||||||
|
means you have actual knowledge that, but for the patent license, your conveying
|
||||||
|
the covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that country
|
||||||
|
that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or arrangement,
|
||||||
|
you convey, or propagate by procuring conveyance of, a covered work, and grant
|
||||||
|
a patent license to some of the parties receiving the covered work authorizing
|
||||||
|
them to use, propagate, modify or convey a specific copy of the covered work,
|
||||||
|
then the patent license you grant is automatically extended to all recipients
|
||||||
|
of the covered work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within the scope
|
||||||
|
of its coverage, prohibits the exercise of, or is conditioned on the non-exercise
|
||||||
|
of one or more of the rights that are specifically granted under this License.
|
||||||
|
You may not convey a covered work if you are a party to an arrangement with
|
||||||
|
a third party that is in the business of distributing software, under which
|
||||||
|
you make payment to the third party based on the extent of your activity of
|
||||||
|
conveying the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory patent
|
||||||
|
license (a) in connection with copies of the covered work conveyed by you
|
||||||
|
(or copies made from those copies), or (b) primarily for and in connection
|
||||||
|
with specific products or compilations that contain the covered work, unless
|
||||||
|
you entered into that arrangement, or that patent license was granted, prior
|
||||||
|
to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting any implied
|
||||||
|
license or other defenses to infringement that may otherwise be available
|
||||||
|
to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or otherwise)
|
||||||
|
that contradict the conditions of this License, they do not excuse you from
|
||||||
|
the conditions of this License. If you cannot convey a covered work so as
|
||||||
|
to satisfy simultaneously your obligations under this License and any other
|
||||||
|
pertinent obligations, then as a consequence you may not convey it at all.
|
||||||
|
For example, if you agree to terms that obligate you to collect a royalty
|
||||||
|
for further conveying from those to whom you convey the Program, the only
|
||||||
|
way you could satisfy both those terms and this License would be to refrain
|
||||||
|
entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have permission to
|
||||||
|
link or combine any covered work with a work licensed under version 3 of the
|
||||||
|
GNU Affero General Public License into a single combined work, and to convey
|
||||||
|
the resulting work. The terms of this License will continue to apply to the
|
||||||
|
part which is the covered work, but the special requirements of the GNU Affero
|
||||||
|
General Public License, section 13, concerning interaction through a network
|
||||||
|
will apply to the combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of the
|
||||||
|
GNU General Public License from time to time. Such new versions will be similar
|
||||||
|
in spirit to the present version, but may differ in detail to address new
|
||||||
|
problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program specifies
|
||||||
|
that a certain numbered version of the GNU General Public License "or any
|
||||||
|
later version" applies to it, you have the option of following the terms and
|
||||||
|
conditions either of that numbered version or of any later version published
|
||||||
|
by the Free Software Foundation. If the Program does not specify a version
|
||||||
|
number of the GNU General Public License, you may choose any version ever
|
||||||
|
published by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future versions of
|
||||||
|
the GNU General Public License can be used, that proxy's public statement
|
||||||
|
of acceptance of a version permanently authorizes you to choose that version
|
||||||
|
for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different permissions. However,
|
||||||
|
no additional obligations are imposed on any author or copyright holder as
|
||||||
|
a result of your choosing to follow a later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
|
||||||
|
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
|
||||||
|
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
|
||||||
|
CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||||
|
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM
|
||||||
|
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
|
||||||
|
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
|
||||||
|
USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
|
||||||
|
INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
|
||||||
|
PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
|
||||||
|
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided above cannot
|
||||||
|
be given local legal effect according to their terms, reviewing courts shall
|
||||||
|
apply local law that most closely approximates an absolute waiver of all civil
|
||||||
|
liability in connection with the Program, unless a warranty or assumption
|
||||||
|
of liability accompanies a copy of the Program in return for a fee. END OF
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest possible
|
||||||
|
use to the public, the best way to achieve this is to make it free software
|
||||||
|
which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest to attach
|
||||||
|
them to the start of each source file to most effectively state the exclusion
|
||||||
|
of warranty; and each file should have at least the "copyright" line and a
|
||||||
|
pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation, either version 3 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short notice like
|
||||||
|
this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
|
||||||
|
This is free software, and you are welcome to redistribute it under certain
|
||||||
|
conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands might
|
||||||
|
be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary. For
|
||||||
|
more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General Public
|
||||||
|
License instead of this License. But first, please read <https://www.gnu.org/
|
||||||
|
licenses /why-not-lgpl.html>.
|
14
LICENSES/ISC.txt
Normal file
14
LICENSES/ISC.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
ISC License Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
|
||||||
|
Copyright (c) 1995-2003 by Internet Software Consortium
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and /or distribute this software for any
|
||||||
|
purpose with or without fee is hereby granted, provided that the above copyright
|
||||||
|
notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
|
||||||
|
TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
|
||||||
|
IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||||
|
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
19
LICENSES/MIT.txt
Normal file
19
LICENSES/MIT.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
MIT License Copyright (c) <year> <copyright holders>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice (including the next
|
||||||
|
paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
|
||||||
|
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||||
|
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24
LICENSES/X11.txt
Normal file
24
LICENSES/X11.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
X11 License Copyright (C) 1996 X Consortium
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is furnished
|
||||||
|
to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM
|
||||||
|
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||||
|
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
be used in advertising or otherwise to promote the sale, use or other dealings
|
||||||
|
in this Software without prior written authorization from the X Consortium.
|
||||||
|
|
||||||
|
X Window System is a trademark of X Consortium, Inc.
|
@ -391,6 +391,11 @@ M: Tristan Corrick <tristan@corrick.kiwi>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: src/mainboard/supermicro/x10slm-f/
|
F: src/mainboard/supermicro/x10slm-f/
|
||||||
|
|
||||||
|
SUPERMICRO X11-LGA1151-SERIES
|
||||||
|
M: Michael Niewöhner <foss@mniewoehner.de>
|
||||||
|
S: Maintained
|
||||||
|
F: src/mainboard/supermicro/x11-lga1151-series
|
||||||
|
|
||||||
FACEBOOK FBG1701 MAINBOARD
|
FACEBOOK FBG1701 MAINBOARD
|
||||||
M: Frans Hendriks <fhendriks@eltan.com>
|
M: Frans Hendriks <fhendriks@eltan.com>
|
||||||
M: Wim Vervoorn <wvervoorn@eltan.com>
|
M: Wim Vervoorn <wvervoorn@eltan.com>
|
||||||
|
9
Makefile
9
Makefile
@ -144,12 +144,11 @@ endif
|
|||||||
\mv -f $@.tmp $@ 2> /dev/null
|
\mv -f $@.tmp $@ 2> /dev/null
|
||||||
rm -f $@.tmp
|
rm -f $@.tmp
|
||||||
|
|
||||||
-include $(TOPLEVEL)/site-local/Makefile.inc
|
|
||||||
|
|
||||||
ifeq ($(NOCOMPILE),1)
|
ifeq ($(NOCOMPILE),1)
|
||||||
include $(TOPLEVEL)/Makefile.inc
|
include $(TOPLEVEL)/Makefile.inc
|
||||||
include $(TOPLEVEL)/payloads/Makefile.inc
|
include $(TOPLEVEL)/payloads/Makefile.inc
|
||||||
include $(TOPLEVEL)/util/testing/Makefile.inc
|
include $(TOPLEVEL)/util/testing/Makefile.inc
|
||||||
|
-include $(TOPLEVEL)/site-local/Makefile.inc
|
||||||
real-all:
|
real-all:
|
||||||
@echo "Error: Expected config file ($(DOTCONFIG)) not present." >&2
|
@echo "Error: Expected config file ($(DOTCONFIG)) not present." >&2
|
||||||
@echo "Please specify a config file or run 'make menuconfig' to" >&2
|
@echo "Please specify a config file or run 'make menuconfig' to" >&2
|
||||||
@ -195,7 +194,7 @@ $(KCONFIG_AUTOHEADER): $(KCONFIG_CONFIG) $(objutil)/kconfig/conf
|
|||||||
$(KCONFIG_AUTOCONFIG): $(KCONFIG_AUTOHEADER)
|
$(KCONFIG_AUTOCONFIG): $(KCONFIG_AUTOHEADER)
|
||||||
true
|
true
|
||||||
|
|
||||||
$(KCONFIG_AUTOADS): $(KCONFIG_AUTOCONFIG) $(objutil)/kconfig/toada
|
$(KCONFIG_AUTOADS): $(KCONFIG_CONFIG) $(KCONFIG_AUTOHEADER) $(objutil)/kconfig/toada
|
||||||
$(objutil)/kconfig/toada CB.Config <$< >$@
|
$(objutil)/kconfig/toada CB.Config <$< >$@
|
||||||
|
|
||||||
$(obj)/%/$(notdir $(KCONFIG_AUTOADS)): $(KCONFIG_AUTOADS)
|
$(obj)/%/$(notdir $(KCONFIG_AUTOADS)): $(KCONFIG_AUTOADS)
|
||||||
@ -253,13 +252,13 @@ includemakefiles= \
|
|||||||
$(foreach class,classes subdirs $(classes) $(special-classes), $(eval $(class)-y:=)) \
|
$(foreach class,classes subdirs $(classes) $(special-classes), $(eval $(class)-y:=)) \
|
||||||
$(eval -include $(1)) \
|
$(eval -include $(1)) \
|
||||||
$(foreach class,$(classes-y), $(call add-class,$(class))) \
|
$(foreach class,$(classes-y), $(call add-class,$(class))) \
|
||||||
|
$(foreach special,$(special-classes), \
|
||||||
|
$(foreach item,$($(special)-y), $(call $(special)-handler,$(dir $(1)),$(item)))) \
|
||||||
$(foreach class,$(classes), \
|
$(foreach class,$(classes), \
|
||||||
$(eval $(class)-srcs+= \
|
$(eval $(class)-srcs+= \
|
||||||
$$(subst $(absobj)/,$(obj)/, \
|
$$(subst $(absobj)/,$(obj)/, \
|
||||||
$$(subst $(top)/,, \
|
$$(subst $(top)/,, \
|
||||||
$$(abspath $$(subst $(dir $(1))/,/,$$(addprefix $(dir $(1)),$$($(class)-y)))))))) \
|
$$(abspath $$(subst $(dir $(1))/,/,$$(addprefix $(dir $(1)),$$($(class)-y)))))))) \
|
||||||
$(foreach special,$(special-classes), \
|
|
||||||
$(foreach item,$($(special)-y), $(call $(special)-handler,$(dir $(1)),$(item)))) \
|
|
||||||
$(eval subdirs+=$$(subst $(CURDIR)/,,$$(wildcard $$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y))))))
|
$(eval subdirs+=$$(subst $(CURDIR)/,,$$(wildcard $$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y))))))
|
||||||
|
|
||||||
# For each path in $(subdirs) call includemakefiles
|
# For each path in $(subdirs) call includemakefiles
|
||||||
|
34
Makefile.inc
34
Makefile.inc
@ -93,7 +93,7 @@ subdirs-y += $(wildcard src/soc/*/*) $(wildcard src/northbridge/*/*)
|
|||||||
subdirs-y += src/superio
|
subdirs-y += src/superio
|
||||||
subdirs-y += $(wildcard src/drivers/*) $(wildcard src/drivers/*/*)
|
subdirs-y += $(wildcard src/drivers/*) $(wildcard src/drivers/*/*)
|
||||||
subdirs-y += src/cpu src/vendorcode
|
subdirs-y += src/cpu src/vendorcode
|
||||||
subdirs-y += util/cbfstool util/sconfig util/nvramtool
|
subdirs-y += util/cbfstool util/sconfig util/nvramtool util/pgtblgen
|
||||||
subdirs-y += util/futility util/marvell util/bincfg
|
subdirs-y += util/futility util/marvell util/bincfg
|
||||||
subdirs-y += $(wildcard src/arch/*)
|
subdirs-y += $(wildcard src/arch/*)
|
||||||
subdirs-y += src/mainboard/$(MAINBOARDDIR)
|
subdirs-y += src/mainboard/$(MAINBOARDDIR)
|
||||||
@ -107,6 +107,10 @@ subdirs-y += util/checklist util/testing
|
|||||||
# Add source classes and their build options
|
# Add source classes and their build options
|
||||||
classes-y := ramstage romstage bootblock decompressor postcar smm smmstub cpu_microcode verstage
|
classes-y := ramstage romstage bootblock decompressor postcar smm smmstub cpu_microcode verstage
|
||||||
|
|
||||||
|
# Add a special 'all' class to add sources to all stages
|
||||||
|
$(call add-special-class,all)
|
||||||
|
all-handler = $(foreach class,bootblock verstage romstage postcar ramstage,$(eval $(class)-y += $(2)))
|
||||||
|
|
||||||
# Add dynamic classes for rmodules
|
# Add dynamic classes for rmodules
|
||||||
$(foreach supported_arch,$(ARCH_SUPPORTED), \
|
$(foreach supported_arch,$(ARCH_SUPPORTED), \
|
||||||
$(eval $(call define_class,rmodules_$(supported_arch),$(supported_arch))))
|
$(eval $(call define_class,rmodules_$(supported_arch),$(supported_arch))))
|
||||||
@ -193,15 +197,16 @@ ifneq ($(UPDATED_SUBMODULES),1)
|
|||||||
# try to fetch non-optional submodules if the source is under git
|
# try to fetch non-optional submodules if the source is under git
|
||||||
forgetthis:=$(if $(GIT),$(shell git submodule update --init))
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init))
|
||||||
ifeq ($(CONFIG_USE_BLOBS),y)
|
ifeq ($(CONFIG_USE_BLOBS),y)
|
||||||
# this is necessary because 3rdparty/{blobs,intel-microcode} is update=none, and so is ignored
|
# These items are necessary because each has update=none in .gitmodules. They are ignored
|
||||||
# unless explicitly requested and enabled through --checkout
|
# until expressly requested and enabled with --checkout
|
||||||
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/blobs))
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/blobs))
|
||||||
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/intel-microcode))
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/intel-microcode))
|
||||||
ifeq ($(CONFIG_PLATFORM_USES_FSP1_0)$(CONFIG_PLATFORM_USES_FSP1_1)$(CONFIG_PLATFORM_USES_FSP2_0),y)
|
ifeq ($(CONFIG_PLATFORM_USES_FSP1_0)$(CONFIG_PLATFORM_USES_FSP1_1)$(CONFIG_PLATFORM_USES_FSP2_0),y)
|
||||||
# this is necessary because 3rdparty/fsp is update=none, and so is ignored
|
|
||||||
# unless explicitly requested and enabled through --checkout
|
|
||||||
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/fsp))
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/fsp))
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(CONFIG_USE_AMD_BLOBS),y)
|
||||||
|
forgetthis:=$(if $(GIT),$(shell git submodule update --init --checkout 3rdparty/amd_blobs))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
UPDATED_SUBMODULES:=1
|
UPDATED_SUBMODULES:=1
|
||||||
COREBOOT_EXPORTS += UPDATED_SUBMODULES
|
COREBOOT_EXPORTS += UPDATED_SUBMODULES
|
||||||
@ -591,11 +596,12 @@ OVERRIDE_DEVICETREE_FILE := $(src)/mainboard/$(MAINBOARDDIR)/$(CONFIG_OVERRIDE_D
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
DEVICETREE_STATIC_C := $(obj)/mainboard/$(MAINBOARDDIR)/static.c
|
DEVICETREE_STATIC_C := $(obj)/mainboard/$(MAINBOARDDIR)/static.c
|
||||||
|
DEVICETREE_STATIC_H := $(obj)/static.h
|
||||||
|
|
||||||
$(DEVICETREE_STATIC_C): $(DEVICETREE_FILE) $(OVERRIDE_DEVICETREE_FILE) $(objutil)/sconfig/sconfig
|
$(DEVICETREE_STATIC_C): $(DEVICETREE_FILE) $(OVERRIDE_DEVICETREE_FILE) $(objutil)/sconfig/sconfig
|
||||||
@printf " SCONFIG $(subst $(src)/,,$(<))\n"
|
@printf " SCONFIG $(subst $(src)/,,$(<))\n"
|
||||||
mkdir -p $(dir $(DEVICETREE_STATIC_C))
|
mkdir -p $(dir $(DEVICETREE_STATIC_C))
|
||||||
$(objutil)/sconfig/sconfig $(DEVICETREE_FILE) $(DEVICETREE_STATIC_C) $(OVERRIDE_DEVICETREE_FILE)
|
$(objutil)/sconfig/sconfig $(DEVICETREE_FILE) $(DEVICETREE_STATIC_C) $(DEVICETREE_STATIC_H) $(OVERRIDE_DEVICETREE_FILE)
|
||||||
|
|
||||||
ramstage-y+=$(DEVICETREE_STATIC_C)
|
ramstage-y+=$(DEVICETREE_STATIC_C)
|
||||||
romstage-y+=$(DEVICETREE_STATIC_C)
|
romstage-y+=$(DEVICETREE_STATIC_C)
|
||||||
@ -677,6 +683,18 @@ find-class = $(if $(filter $(1),$(basename $(1))),$(if $(CC_$(1)), $(1), $(call
|
|||||||
# the linker marked it NOBITS automatically because there are only zeroes in it.
|
# the linker marked it NOBITS automatically because there are only zeroes in it.
|
||||||
preserve-bss-flags := --set-section-flags .bss=load,alloc,data --set-section-flags .data=load,alloc,data
|
preserve-bss-flags := --set-section-flags .bss=load,alloc,data --set-section-flags .data=load,alloc,data
|
||||||
|
|
||||||
|
# For Intel TXT files in the CBFS needs to be marked as 'Initial Boot Block'.
|
||||||
|
# As CBFS attributes aren't cheap, only mark them if TXT is enabled.
|
||||||
|
ifeq ($(CONFIG_INTEL_TXT),y)
|
||||||
|
|
||||||
|
TXTIBB := --ibb
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
TXTIBB :=
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_COMPRESS_BOOTBLOCK),y)
|
ifeq ($(CONFIG_COMPRESS_BOOTBLOCK),y)
|
||||||
|
|
||||||
$(objcbfs)/bootblock.lz4: $(objcbfs)/bootblock.elf $(objutil)/cbfstool/cbfs-compression-tool
|
$(objcbfs)/bootblock.lz4: $(objcbfs)/bootblock.elf $(objutil)/cbfstool/cbfs-compression-tool
|
||||||
@ -1030,6 +1048,7 @@ ifeq ($(CONFIG_ARCH_X86),y)
|
|||||||
-f $(objcbfs)/bootblock.bin \
|
-f $(objcbfs)/bootblock.bin \
|
||||||
-n bootblock \
|
-n bootblock \
|
||||||
-t bootblock \
|
-t bootblock \
|
||||||
|
$(TXTIBB) \
|
||||||
-b -$(call file-size,$(objcbfs)/bootblock.bin) $(cbfs-autogen-attributes) \
|
-b -$(call file-size,$(objcbfs)/bootblock.bin) $(cbfs-autogen-attributes) \
|
||||||
$(TS_OPTIONS)
|
$(TS_OPTIONS)
|
||||||
else # ifeq ($(CONFIG_ARCH_X86),y)
|
else # ifeq ($(CONFIG_ARCH_X86),y)
|
||||||
@ -1167,6 +1186,9 @@ endif # CONFIG_NO_FIXED_XIP_ROM_SIZE
|
|||||||
|
|
||||||
endif # CONFIG_NO_XIP_EARLY_STAGES
|
endif # CONFIG_NO_XIP_EARLY_STAGES
|
||||||
endif # CONFIG_ARCH_ROMSTAGE_X86_32 / CONFIG_ARCH_ROMSTAGE_X86_64
|
endif # CONFIG_ARCH_ROMSTAGE_X86_32 / CONFIG_ARCH_ROMSTAGE_X86_64
|
||||||
|
ifeq ($(CONFIG_VBOOT_STARTS_IN_ROMSTAGE),y)
|
||||||
|
$(CONFIG_CBFS_PREFIX)/romstage-options += $(TXTIBB)
|
||||||
|
endif
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_HAVE_RAMSTAGE) += $(CONFIG_CBFS_PREFIX)/ramstage
|
cbfs-files-$(CONFIG_HAVE_RAMSTAGE) += $(CONFIG_CBFS_PREFIX)/ramstage
|
||||||
$(CONFIG_CBFS_PREFIX)/ramstage-file := $(RAMSTAGE)
|
$(CONFIG_CBFS_PREFIX)/ramstage-file := $(RAMSTAGE)
|
||||||
|
@ -11,3 +11,5 @@ CONFIG_DEBUG_MALLOC=y
|
|||||||
CONFIG_DEBUG_ACPI=y
|
CONFIG_DEBUG_ACPI=y
|
||||||
CONFIG_DEBUG_BOOT_STATE=y
|
CONFIG_DEBUG_BOOT_STATE=y
|
||||||
CONFIG_DEBUG_ADA_CODE=y
|
CONFIG_DEBUG_ADA_CODE=y
|
||||||
|
CONFIG_H8_FN_KEY_AS_VBOOT_RECOVERY_SW=y
|
||||||
|
CONFIG_VBOOT=y
|
18
payloads/external/GRUB2/Makefile
vendored
18
payloads/external/GRUB2/Makefile
vendored
@ -1,4 +1,4 @@
|
|||||||
TAG-$(CONFIG_GRUB2_MASTER)=
|
TAG-$(CONFIG_GRUB2_MASTER)=origin/HEAD
|
||||||
TAG-$(CONFIG_GRUB2_REVISION)=$(CONFIG_GRUB2_REVISION_ID)
|
TAG-$(CONFIG_GRUB2_REVISION)=$(CONFIG_GRUB2_REVISION_ID)
|
||||||
TAG-$(CONFIG_GRUB2_STABLE)=grub-2.04
|
TAG-$(CONFIG_GRUB2_STABLE)=grub-2.04
|
||||||
NAME-$(CONFIG_GRUB2_MASTER)=HEAD
|
NAME-$(CONFIG_GRUB2_MASTER)=HEAD
|
||||||
@ -15,14 +15,14 @@ all: grub2
|
|||||||
|
|
||||||
checkout:
|
checkout:
|
||||||
echo " GIT GRUB2 $(NAME-y)"
|
echo " GIT GRUB2 $(NAME-y)"
|
||||||
test -d grub2 || \
|
test -d $(project_dir) || git clone $(project_git_repo) $(project_dir)
|
||||||
git clone $(project_git_repo) $(project_dir)
|
git -C $(project_dir) fetch
|
||||||
cd grub2 && \
|
ifeq ("$(shell git -C $(project_dir) status --ignored=no --untracked-files=no --porcelain)",)
|
||||||
git checkout master && \
|
git -C $(project_dir) checkout -f $(TAG-y)
|
||||||
git pull; \
|
else
|
||||||
test -n "$(TAG-y)" && \
|
echo "WARNING: index/tree not clean, skipping update / force checkout."
|
||||||
git branch -f $(NAME-y) $(TAG-y) && \
|
echo " Checkout manually with `git -C $(project_dir) checkout -f`."
|
||||||
git checkout $(NAME-y) || true
|
endif
|
||||||
|
|
||||||
grub2/build/config.h: $(CONFIG_DEP) | checkout
|
grub2/build/config.h: $(CONFIG_DEP) | checkout
|
||||||
echo " CONFIG GRUB2 $(NAME-y)"
|
echo " CONFIG GRUB2 $(NAME-y)"
|
||||||
|
@ -221,12 +221,12 @@ includemakefiles= \
|
|||||||
$(foreach class,classes subdirs $(classes) $(special-classes), $(eval $(class)-y:=)) \
|
$(foreach class,classes subdirs $(classes) $(special-classes), $(eval $(class)-y:=)) \
|
||||||
$(eval -include $(1)) \
|
$(eval -include $(1)) \
|
||||||
$(foreach class,$(classes-y), $(call add-class,$(class))) \
|
$(foreach class,$(classes-y), $(call add-class,$(class))) \
|
||||||
|
$(foreach special,$(special-classes), \
|
||||||
|
$(foreach item,$($(special)-y), $(call $(special)-handler,$(dir $(1)),$(item)))) \
|
||||||
$(foreach class,$(classes), \
|
$(foreach class,$(classes), \
|
||||||
$(eval $(class)-srcs+= \
|
$(eval $(class)-srcs+= \
|
||||||
$$(subst $(top)/,, \
|
$$(subst $(top)/,, \
|
||||||
$$(abspath $$(addprefix $(dir $(1)),$$($(class)-y)))))) \
|
$$(abspath $$(addprefix $(dir $(1)),$$($(class)-y)))))) \
|
||||||
$(foreach special,$(special-classes), \
|
|
||||||
$(foreach item,$($(special)-y), $(call $(special)-handler,$(dir $(1)),$(item)))) \
|
|
||||||
$(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
|
$(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
|
||||||
|
|
||||||
# For each path in $(subdirs) call includemakefiles
|
# For each path in $(subdirs) call includemakefiles
|
||||||
|
@ -144,6 +144,7 @@ struct cbfs_file {
|
|||||||
#define CBFS_FILE_ATTR_TAG_UNUSED2 0xffffffff
|
#define CBFS_FILE_ATTR_TAG_UNUSED2 0xffffffff
|
||||||
#define CBFS_FILE_ATTR_TAG_COMPRESSION 0x42435a4c
|
#define CBFS_FILE_ATTR_TAG_COMPRESSION 0x42435a4c
|
||||||
#define CBFS_FILE_ATTR_TAG_HASH 0x68736148
|
#define CBFS_FILE_ATTR_TAG_HASH 0x68736148
|
||||||
|
#define CBFS_FILE_ATTR_TAG_IBB 0x32494242 /* Initial BootBlock */
|
||||||
|
|
||||||
/* The common fields of extended cbfs file attributes.
|
/* The common fields of extended cbfs file attributes.
|
||||||
Attributes are expected to start with tag/len, then append their
|
Attributes are expected to start with tag/len, then append their
|
||||||
|
40
src/Kconfig
40
src/Kconfig
@ -37,9 +37,26 @@ config CONFIGURABLE_CBFS_PREFIX
|
|||||||
help
|
help
|
||||||
Select this to prompt to use to configure the prefix for cbfs files.
|
Select this to prompt to use to configure the prefix for cbfs files.
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "CBFS prefix to use"
|
||||||
|
depends on CONFIGURABLE_CBFS_PREFIX
|
||||||
|
default CBFS_PREFIX_FALLBACK
|
||||||
|
|
||||||
|
config CBFS_PREFIX_FALLBACK
|
||||||
|
bool "fallback"
|
||||||
|
|
||||||
|
config CBFS_PREFIX_NORMAL
|
||||||
|
bool "normal"
|
||||||
|
|
||||||
|
config CBFS_PREFIX_DIY
|
||||||
|
bool "Define your own cbfs prefix"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
config CBFS_PREFIX
|
config CBFS_PREFIX
|
||||||
string "CBFS prefix to use" if CONFIGURABLE_CBFS_PREFIX
|
string "CBFS prefix to use" if CBFS_PREFIX_DIY
|
||||||
default "fallback"
|
default "fallback" if !CONFIGURABLE_CBFS_PREFIX || CBFS_PREFIX_FALLBACK
|
||||||
|
default "normal" if CBFS_PREFIX_NORMAL
|
||||||
help
|
help
|
||||||
Select the prefix to all files put into the image. It's "fallback"
|
Select the prefix to all files put into the image. It's "fallback"
|
||||||
by default, "normal" is a common alternative.
|
by default, "normal" is a common alternative.
|
||||||
@ -218,6 +235,20 @@ config USE_BLOBS
|
|||||||
might be required for some chipsets or boards.
|
might be required for some chipsets or boards.
|
||||||
This flag ensures that a "Free" option remains available for users.
|
This flag ensures that a "Free" option remains available for users.
|
||||||
|
|
||||||
|
config USE_AMD_BLOBS
|
||||||
|
bool "Allow AMD blobs repository (with license agreement)"
|
||||||
|
depends on USE_BLOBS
|
||||||
|
help
|
||||||
|
This draws in the amd_blobs repository, which contains binary files
|
||||||
|
distributed by AMD, including VBIOS, PSP bootloaders, SMU firmwares,
|
||||||
|
etc. Selecting this item to download or clone the repo implies your
|
||||||
|
agreement to the AMD license agreement. A copy of the license text
|
||||||
|
may be reviewed by reading Documentation/soc/amd/amdblobs_license.md,
|
||||||
|
and your copy of the license is present in the repo once downloaded.
|
||||||
|
|
||||||
|
Note that for some products, omitting PSP, SMU images, or other items
|
||||||
|
may result in a nonbooting coreboot.rom.
|
||||||
|
|
||||||
config COVERAGE
|
config COVERAGE
|
||||||
bool "Code coverage support"
|
bool "Code coverage support"
|
||||||
depends on COMPILER_GCC
|
depends on COMPILER_GCC
|
||||||
@ -1212,11 +1243,6 @@ config HAVE_ROMSTAGE
|
|||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config HAVE_POSTCAR
|
|
||||||
bool
|
|
||||||
depends on POSTCAR_STAGE
|
|
||||||
default y
|
|
||||||
|
|
||||||
config HAVE_RAMSTAGE
|
config HAVE_RAMSTAGE
|
||||||
bool
|
bool
|
||||||
default n if RAMPAYLOAD
|
default n if RAMPAYLOAD
|
||||||
|
@ -17,6 +17,7 @@ config ARCH_ROMSTAGE_ARM
|
|||||||
config ARCH_RAMSTAGE_ARM
|
config ARCH_RAMSTAGE_ARM
|
||||||
bool
|
bool
|
||||||
select ARCH_ARM
|
select ARCH_ARM
|
||||||
|
select RAMSTAGE_CBMEM_TOP_ARG
|
||||||
|
|
||||||
source src/arch/arm/armv4/Kconfig
|
source src/arch/arm/armv4/Kconfig
|
||||||
source src/arch/arm/armv7/Kconfig
|
source src/arch/arm/armv7/Kconfig
|
||||||
|
@ -14,8 +14,9 @@
|
|||||||
#ifndef __ARCH_STAGES_H
|
#ifndef __ARCH_STAGES_H
|
||||||
#define __ARCH_STAGES_H
|
#define __ARCH_STAGES_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <main_decl.h>
|
#include <main_decl.h>
|
||||||
|
|
||||||
void stage_entry(void);
|
void stage_entry(uintptr_t stage_arg);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -17,7 +17,7 @@ uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p)
|
|||||||
{
|
{
|
||||||
uint64_t quot = 0, qbit = 1;
|
uint64_t quot = 0, qbit = 1;
|
||||||
if (den == 0) {
|
if (den == 0) {
|
||||||
return 1 / ((unsigned)den); /* Intentional divide by zero, without
|
return 1 / ((unsigned int)den); /* Intentional divide by zero, without
|
||||||
triggering a compiler warning which
|
triggering a compiler warning which
|
||||||
would abort the build */
|
would abort the build */
|
||||||
}
|
}
|
||||||
|
@ -22,13 +22,16 @@
|
|||||||
* .text.stage_entry section created by -ffunction-sections).
|
* .text.stage_entry section created by -ffunction-sections).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbmem.h>
|
||||||
#include <arch/stages.h>
|
#include <arch/stages.h>
|
||||||
#include <arch/cache.h>
|
#include <arch/cache.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generic stage entry point. override this if board specific code is needed.
|
* generic stage entry point. override this if board specific code is needed.
|
||||||
*/
|
*/
|
||||||
__weak void stage_entry(void)
|
__weak void stage_entry(uintptr_t stage_arg)
|
||||||
{
|
{
|
||||||
|
if (!ENV_ROMSTAGE_OR_BEFORE)
|
||||||
|
_cbmem_top_ptr = stage_arg;
|
||||||
main();
|
main();
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ config ARCH_ROMSTAGE_ARM64
|
|||||||
config ARCH_RAMSTAGE_ARM64
|
config ARCH_RAMSTAGE_ARM64
|
||||||
bool
|
bool
|
||||||
select ARCH_ARM64
|
select ARCH_ARM64
|
||||||
|
select RAMSTAGE_CBMEM_TOP_ARG
|
||||||
|
|
||||||
source src/arch/arm64/armv8/Kconfig
|
source src/arch/arm64/armv8/Kconfig
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbmem.h>
|
||||||
#include <arch/cache.h>
|
#include <arch/cache.h>
|
||||||
#include <arch/lib_helpers.h>
|
#include <arch/lib_helpers.h>
|
||||||
#include <arch/stages.h>
|
#include <arch/stages.h>
|
||||||
@ -48,7 +49,10 @@ void arch_prog_run(struct prog *prog)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generic stage entry point. Can be overridden by board/SoC if needed. */
|
/* Generic stage entry point. Can be overridden by board/SoC if needed. */
|
||||||
__weak void stage_entry(void)
|
__weak void stage_entry(uintptr_t stage_arg)
|
||||||
{
|
{
|
||||||
|
if (!ENV_ROMSTAGE_OR_BEFORE)
|
||||||
|
_cbmem_top_ptr = stage_arg;
|
||||||
|
|
||||||
main();
|
main();
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <main_decl.h>
|
#include <main_decl.h>
|
||||||
|
|
||||||
void stage_entry(void);
|
void stage_entry(uintptr_t stage_arg);
|
||||||
|
|
||||||
/* This function is the romstage platform entry point, and should contain all
|
/* This function is the romstage platform entry point, and should contain all
|
||||||
chipset and mainboard setup until DRAM is initialized and accessible. */
|
chipset and mainboard setup until DRAM is initialized and accessible. */
|
||||||
|
@ -22,6 +22,7 @@ config ARCH_BOOTBLOCK_MIPS
|
|||||||
default n
|
default n
|
||||||
select BOOTBLOCK_CUSTOM
|
select BOOTBLOCK_CUSTOM
|
||||||
select C_ENVIRONMENT_BOOTBLOCK
|
select C_ENVIRONMENT_BOOTBLOCK
|
||||||
|
select RAMSTAGE_CBMEM_TOP_ARG
|
||||||
|
|
||||||
config ARCH_VERSTAGE_MIPS
|
config ARCH_VERSTAGE_MIPS
|
||||||
bool
|
bool
|
||||||
|
@ -14,8 +14,9 @@
|
|||||||
#ifndef __MIPS_ARCH_STAGES_H
|
#ifndef __MIPS_ARCH_STAGES_H
|
||||||
#define __MIPS_ARCH_STAGES_H
|
#define __MIPS_ARCH_STAGES_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <main_decl.h>
|
#include <main_decl.h>
|
||||||
|
|
||||||
void stage_entry(void);
|
void stage_entry(uintptr_t stage_arg);
|
||||||
|
|
||||||
#endif /* __MIPS_ARCH_STAGES_H */
|
#endif /* __MIPS_ARCH_STAGES_H */
|
||||||
|
@ -11,10 +11,13 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbmem.h>
|
||||||
#include <arch/stages.h>
|
#include <arch/stages.h>
|
||||||
#include <arch/cache.h>
|
#include <arch/cache.h>
|
||||||
|
|
||||||
void stage_entry(void)
|
void stage_entry(uintptr_t stage_arg)
|
||||||
{
|
{
|
||||||
|
if (!ENV_ROMSTAGE_OR_BEFORE)
|
||||||
|
_cbmem_top_ptr = stage_arg;
|
||||||
main();
|
main();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
config ARCH_PPC64
|
config ARCH_PPC64
|
||||||
bool
|
bool
|
||||||
|
select RAMSTAGE_CBMEM_TOP_ARG
|
||||||
|
|
||||||
config ARCH_BOOTBLOCK_PPC64
|
config ARCH_BOOTBLOCK_PPC64
|
||||||
bool
|
bool
|
||||||
|
@ -16,6 +16,6 @@
|
|||||||
|
|
||||||
#include <main_decl.h>
|
#include <main_decl.h>
|
||||||
|
|
||||||
void stage_entry(void) __attribute__((section(".text.stage_entry")));
|
void stage_entry(uintptr_t stage_arg) __attribute__((section(".text.stage_entry")));
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,9 +22,12 @@
|
|||||||
* linker script.
|
* linker script.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <cbmem.h>
|
||||||
#include <arch/stages.h>
|
#include <arch/stages.h>
|
||||||
|
|
||||||
void stage_entry(void)
|
void stage_entry(uintptr_t stage_arg)
|
||||||
{
|
{
|
||||||
|
if (!ENV_ROMSTAGE_OR_BEFORE)
|
||||||
|
_cbmem_top_ptr = stage_arg;
|
||||||
main();
|
main();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
#include <bootmem.h>
|
#include <bootmem.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
#include <string.h>
|
|
||||||
#include <commonlib/compression.h>
|
#include <commonlib/compression.h>
|
||||||
#include <commonlib/cbfs_serialized.h>
|
#include <commonlib/cbfs_serialized.h>
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
|
@ -16,6 +16,7 @@ config ARCH_X86
|
|||||||
default n
|
default n
|
||||||
select PCI
|
select PCI
|
||||||
select RELOCATABLE_MODULES
|
select RELOCATABLE_MODULES
|
||||||
|
select RAMSTAGE_CBMEM_TOP_ARG
|
||||||
|
|
||||||
# stage selectors for x86
|
# stage selectors for x86
|
||||||
|
|
||||||
@ -65,6 +66,14 @@ config ARCH_RAMSTAGE_X86_64
|
|||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
config ARCH_X86_64_PGTBL_LOC
|
||||||
|
hex "x86_64 page table location in CBFS"
|
||||||
|
depends on ARCH_BOOTBLOCK_X86_64
|
||||||
|
default 0xfffea000
|
||||||
|
help
|
||||||
|
The position where to place pagetables. Needs to be known at
|
||||||
|
compile time. Must not overlap other files in CBFS.
|
||||||
|
|
||||||
config USE_MARCH_586
|
config USE_MARCH_586
|
||||||
def_bool n
|
def_bool n
|
||||||
help
|
help
|
||||||
@ -169,15 +178,6 @@ config BOOTBLOCK_NORTHBRIDGE_INIT
|
|||||||
config BOOTBLOCK_RESETS
|
config BOOTBLOCK_RESETS
|
||||||
string
|
string
|
||||||
|
|
||||||
config BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP
|
|
||||||
bool
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Select this value to provide a routine to save the BIST and timestamp
|
|
||||||
values. The default code places the BIST value in MM0 and the
|
|
||||||
timestamp value in MM2:MM1. Another file is necessary when the CPU
|
|
||||||
does not support the MMx register set.
|
|
||||||
|
|
||||||
config HAVE_CMOS_DEFAULT
|
config HAVE_CMOS_DEFAULT
|
||||||
def_bool n
|
def_bool n
|
||||||
depends on HAVE_OPTION_TABLE
|
depends on HAVE_OPTION_TABLE
|
||||||
|
@ -47,12 +47,6 @@ cbfs-files-$(CONFIG_VGA_BIOS_DGPU) += pci$(stripped_vgabios_dgpu_id).rom
|
|||||||
pci$(stripped_vgabios_dgpu_id).rom-file := $(call strip_quotes,$(CONFIG_VGA_BIOS_DGPU_FILE))
|
pci$(stripped_vgabios_dgpu_id).rom-file := $(call strip_quotes,$(CONFIG_VGA_BIOS_DGPU_FILE))
|
||||||
pci$(stripped_vgabios_dgpu_id).rom-type := optionrom
|
pci$(stripped_vgabios_dgpu_id).rom-type := optionrom
|
||||||
|
|
||||||
verstage-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
|
||||||
bootblock-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
|
||||||
romstage-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
|
||||||
ramstage-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
|
||||||
postcar-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# common support for early assembly includes
|
# common support for early assembly includes
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -94,18 +88,28 @@ $$(objcbfs)/$(1).debug: $$$$($(1)-libs) $$$$($(1)-objs)
|
|||||||
fi
|
fi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# all (bootblock,verstage,romstage,postcar,ramstage)
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_X86),y)
|
||||||
|
|
||||||
|
all-$(CONFIG_HAVE_CF9_RESET) += cf9_reset.c
|
||||||
|
all-y += boot.c
|
||||||
|
all-y += memcpy.c
|
||||||
|
all-y += memset.c
|
||||||
|
all-y += cpu_common.c
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# bootblock
|
# bootblock
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_BOOTBLOCK_X86_32)$(CONFIG_ARCH_BOOTBLOCK_X86_64),y)
|
ifeq ($(CONFIG_ARCH_BOOTBLOCK_X86_32)$(CONFIG_ARCH_BOOTBLOCK_X86_64),y)
|
||||||
|
|
||||||
bootblock-y += boot.c
|
|
||||||
bootblock-y += cpu_common.c
|
|
||||||
bootblock-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
bootblock-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
bootblock-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
bootblock-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
bootblock-y += memcpy.c
|
|
||||||
bootblock-y += memset.c
|
|
||||||
bootblock-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c
|
bootblock-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c
|
||||||
bootblock-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
bootblock-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
||||||
|
|
||||||
@ -183,14 +187,10 @@ endif # CONFIG_ARCH_BOOTBLOCK_X86_32 / CONFIG_ARCH_BOOTBLOCK_X86_64
|
|||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_VERSTAGE_X86_32)$(CONFIG_ARCH_VERSTAGE_X86_64),y)
|
ifeq ($(CONFIG_ARCH_VERSTAGE_X86_32)$(CONFIG_ARCH_VERSTAGE_X86_64),y)
|
||||||
|
|
||||||
verstage-y += boot.c
|
|
||||||
verstage-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += gdt_init.S
|
verstage-$(CONFIG_VBOOT_SEPARATE_VERSTAGE) += gdt_init.S
|
||||||
verstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
verstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
verstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
verstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
|
|
||||||
verstage-y += cpu_common.c
|
|
||||||
verstage-y += memset.c
|
|
||||||
verstage-y += memcpy.c
|
|
||||||
verstage-y += memmove.c
|
verstage-y += memmove.c
|
||||||
verstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
verstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
||||||
# If verstage is a separate stage it means there's no need
|
# If verstage is a separate stage it means there's no need
|
||||||
@ -219,19 +219,15 @@ endif # CONFIG_ARCH_VERSTAGE_X86_32 / CONFIG_ARCH_VERSTAGE_X86_64
|
|||||||
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y)
|
ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y)
|
||||||
|
|
||||||
romstage-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
romstage-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||||
romstage-y += boot.c
|
|
||||||
# gdt_init.S is included by entry32.inc when romstage is the first C
|
# gdt_init.S is included by entry32.inc when romstage is the first C
|
||||||
# environment.
|
# environment.
|
||||||
romstage-$(CONFIG_C_ENVIRONMENT_BOOTBLOCK) += gdt_init.S
|
romstage-$(CONFIG_C_ENVIRONMENT_BOOTBLOCK) += gdt_init.S
|
||||||
romstage-y += cbmem.c
|
romstage-y += cbmem.c
|
||||||
romstage-y += cbfs_and_run.c
|
romstage-y += cbfs_and_run.c
|
||||||
romstage-y += cpu_common.c
|
|
||||||
romstage-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
romstage-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
||||||
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
romstage-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
romstage-y += memcpy.c
|
|
||||||
romstage-y += memmove.c
|
romstage-y += memmove.c
|
||||||
romstage-y += memset.c
|
|
||||||
romstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
romstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
||||||
romstage-y += postcar_loader.c
|
romstage-y += postcar_loader.c
|
||||||
romstage-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c
|
romstage-$(CONFIG_COLLECT_TIMESTAMPS_TSC) += timestamp.c
|
||||||
@ -261,18 +257,13 @@ $(eval $(call create_class_compiler,postcar,x86_32))
|
|||||||
postcar-generic-ccopts += -D__POSTCAR__
|
postcar-generic-ccopts += -D__POSTCAR__
|
||||||
|
|
||||||
postcar-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
postcar-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||||
postcar-y += boot.c
|
|
||||||
postcar-y += gdt_init.S
|
postcar-y += gdt_init.S
|
||||||
postcar-y += cbfs_and_run.c
|
postcar-y += cbfs_and_run.c
|
||||||
postcar-y += cbmem.c
|
|
||||||
postcar-y += cpu_common.c
|
|
||||||
postcar-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
postcar-$(CONFIG_EARLY_EBDA_INIT) += ebda.c
|
||||||
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += exception.c
|
||||||
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
postcar-$(CONFIG_IDT_IN_EVERY_STAGE) += idt.S
|
||||||
postcar-y += exit_car.S
|
postcar-y += exit_car.S
|
||||||
postcar-y += memcpy.c
|
|
||||||
postcar-y += memmove.c
|
postcar-y += memmove.c
|
||||||
postcar-y += memset.c
|
|
||||||
postcar-y += memlayout.ld
|
postcar-y += memlayout.ld
|
||||||
postcar-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
postcar-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
||||||
postcar-y += postcar.c
|
postcar-y += postcar.c
|
||||||
@ -306,20 +297,15 @@ ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_device.c
|
|||||||
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_pld.c
|
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_pld.c
|
||||||
ramstage-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
ramstage-$(CONFIG_HAVE_ACPI_RESUME) += acpi_s3.c
|
||||||
ramstage-$(CONFIG_ACPI_BERT) += acpi_bert_storage.c
|
ramstage-$(CONFIG_ACPI_BERT) += acpi_bert_storage.c
|
||||||
ramstage-y += boot.c
|
|
||||||
ramstage-y += c_start.S
|
ramstage-y += c_start.S
|
||||||
ramstage-y += cbmem.c
|
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += cpu_common.c
|
|
||||||
ramstage-y += ebda.c
|
ramstage-y += ebda.c
|
||||||
ramstage-y += exception.c
|
ramstage-y += exception.c
|
||||||
ramstage-y += idt.S
|
ramstage-y += idt.S
|
||||||
ramstage-y += gdt.c
|
ramstage-y += gdt.c
|
||||||
ramstage-$(CONFIG_IOAPIC) += ioapic.c
|
ramstage-$(CONFIG_IOAPIC) += ioapic.c
|
||||||
ramstage-y += memcpy.c
|
|
||||||
ramstage-y += memlayout.ld
|
ramstage-y += memlayout.ld
|
||||||
ramstage-y += memmove.c
|
ramstage-y += memmove.c
|
||||||
ramstage-y += memset.c
|
|
||||||
ramstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
ramstage-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c
|
||||||
ramstage-$(CONFIG_GENERATE_MP_TABLE) += mpspec.c
|
ramstage-$(CONFIG_GENERATE_MP_TABLE) += mpspec.c
|
||||||
ramstage-$(CONFIG_GENERATE_PIRQ_TABLE) += pirq_routing.c
|
ramstage-$(CONFIG_GENERATE_PIRQ_TABLE) += pirq_routing.c
|
||||||
|
@ -37,6 +37,8 @@
|
|||||||
#include <version.h>
|
#include <version.h>
|
||||||
#include <commonlib/sort.h>
|
#include <commonlib/sort.h>
|
||||||
|
|
||||||
|
static acpi_rsdp_t *valid_rsdp(acpi_rsdp_t *rsdp);
|
||||||
|
|
||||||
u8 acpi_checksum(u8 *table, u32 length)
|
u8 acpi_checksum(u8 *table, u32 length)
|
||||||
{
|
{
|
||||||
u8 ret = 0;
|
u8 ret = 0;
|
||||||
@ -125,7 +127,7 @@ int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base,
|
|||||||
|
|
||||||
int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
|
int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
|
||||||
{
|
{
|
||||||
lapic->type = 0; /* Local APIC structure */
|
lapic->type = LOCAL_APIC; /* Local APIC structure */
|
||||||
lapic->length = sizeof(acpi_madt_lapic_t);
|
lapic->length = sizeof(acpi_madt_lapic_t);
|
||||||
lapic->flags = (1 << 0); /* Processor/LAPIC enabled */
|
lapic->flags = (1 << 0); /* Processor/LAPIC enabled */
|
||||||
lapic->processor_id = cpu;
|
lapic->processor_id = cpu;
|
||||||
@ -163,7 +165,7 @@ unsigned long acpi_create_madt_lapics(unsigned long current)
|
|||||||
int acpi_create_madt_ioapic(acpi_madt_ioapic_t *ioapic, u8 id, u32 addr,
|
int acpi_create_madt_ioapic(acpi_madt_ioapic_t *ioapic, u8 id, u32 addr,
|
||||||
u32 gsi_base)
|
u32 gsi_base)
|
||||||
{
|
{
|
||||||
ioapic->type = 1; /* I/O APIC structure */
|
ioapic->type = IO_APIC; /* I/O APIC structure */
|
||||||
ioapic->length = sizeof(acpi_madt_ioapic_t);
|
ioapic->length = sizeof(acpi_madt_ioapic_t);
|
||||||
ioapic->reserved = 0x00;
|
ioapic->reserved = 0x00;
|
||||||
ioapic->gsi_base = gsi_base;
|
ioapic->gsi_base = gsi_base;
|
||||||
@ -176,7 +178,7 @@ int acpi_create_madt_ioapic(acpi_madt_ioapic_t *ioapic, u8 id, u32 addr,
|
|||||||
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
||||||
u8 bus, u8 source, u32 gsirq, u16 flags)
|
u8 bus, u8 source, u32 gsirq, u16 flags)
|
||||||
{
|
{
|
||||||
irqoverride->type = 2; /* Interrupt source override */
|
irqoverride->type = IRQ_SOURCE_OVERRIDE; /* Interrupt source override */
|
||||||
irqoverride->length = sizeof(acpi_madt_irqoverride_t);
|
irqoverride->length = sizeof(acpi_madt_irqoverride_t);
|
||||||
irqoverride->bus = bus;
|
irqoverride->bus = bus;
|
||||||
irqoverride->source = source;
|
irqoverride->source = source;
|
||||||
@ -189,7 +191,7 @@ int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
|||||||
int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
|
int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
|
||||||
u16 flags, u8 lint)
|
u16 flags, u8 lint)
|
||||||
{
|
{
|
||||||
lapic_nmi->type = 4; /* Local APIC NMI structure */
|
lapic_nmi->type = LOCAL_APIC_NMI; /* Local APIC NMI structure */
|
||||||
lapic_nmi->length = sizeof(acpi_madt_lapic_nmi_t);
|
lapic_nmi->length = sizeof(acpi_madt_lapic_nmi_t);
|
||||||
lapic_nmi->flags = flags;
|
lapic_nmi->flags = flags;
|
||||||
lapic_nmi->processor_id = cpu;
|
lapic_nmi->processor_id = cpu;
|
||||||
@ -735,14 +737,14 @@ void acpi_create_hpet(acpi_hpet_t *hpet)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_vfct(struct device *device,
|
void acpi_create_vfct(struct device *device,
|
||||||
struct acpi_vfct *vfct,
|
acpi_vfct_t *vfct,
|
||||||
unsigned long (*acpi_fill_vfct)(struct device *device,
|
unsigned long (*acpi_fill_vfct)(struct device *device,
|
||||||
struct acpi_vfct *vfct_struct, unsigned long current))
|
acpi_vfct_t *vfct_struct, unsigned long current))
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(vfct->header);
|
acpi_header_t *header = &(vfct->header);
|
||||||
unsigned long current = (unsigned long)vfct + sizeof(struct acpi_vfct);
|
unsigned long current = (unsigned long)vfct + sizeof(acpi_vfct_t);
|
||||||
|
|
||||||
memset((void *)vfct, 0, sizeof(struct acpi_vfct));
|
memset((void *)vfct, 0, sizeof(acpi_vfct_t));
|
||||||
|
|
||||||
if (!header)
|
if (!header)
|
||||||
return;
|
return;
|
||||||
@ -1260,9 +1262,51 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||||||
/* Align ACPI tables to 16byte */
|
/* Align ACPI tables to 16byte */
|
||||||
current = acpi_align_current(current);
|
current = acpi_align_current(current);
|
||||||
|
|
||||||
|
/* Special case for qemu */
|
||||||
fw = fw_cfg_acpi_tables(current);
|
fw = fw_cfg_acpi_tables(current);
|
||||||
if (fw)
|
if (fw) {
|
||||||
|
rsdp = NULL;
|
||||||
|
/* Find RSDP. */
|
||||||
|
for (void *p = (void *)current; p < (void *)fw; p += 16) {
|
||||||
|
if (valid_rsdp((acpi_rsdp_t *)p)) {
|
||||||
|
rsdp = p;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!rsdp)
|
||||||
|
return fw;
|
||||||
|
|
||||||
|
/* Add BOOT0000 for Linux google firmware driver */
|
||||||
|
printk(BIOS_DEBUG, "ACPI: * SSDT\n");
|
||||||
|
ssdt = (acpi_header_t *)fw;
|
||||||
|
current = (unsigned long)ssdt + sizeof(acpi_header_t);
|
||||||
|
|
||||||
|
memset((void *)ssdt, 0, sizeof(acpi_header_t));
|
||||||
|
|
||||||
|
memcpy(&ssdt->signature, "SSDT", 4);
|
||||||
|
ssdt->revision = get_acpi_table_revision(SSDT);
|
||||||
|
memcpy(&ssdt->oem_id, OEM_ID, 6);
|
||||||
|
memcpy(&ssdt->oem_table_id, oem_table_id, 8);
|
||||||
|
ssdt->oem_revision = 42;
|
||||||
|
memcpy(&ssdt->asl_compiler_id, ASLC, 4);
|
||||||
|
ssdt->asl_compiler_revision = asl_revision;
|
||||||
|
ssdt->length = sizeof(acpi_header_t);
|
||||||
|
|
||||||
|
acpigen_set_current((char *) current);
|
||||||
|
|
||||||
|
/* Write object to declare coreboot tables */
|
||||||
|
acpi_ssdt_write_cbtable();
|
||||||
|
|
||||||
|
/* (Re)calculate length and checksum. */
|
||||||
|
ssdt->length = current - (unsigned long)ssdt;
|
||||||
|
ssdt->checksum = acpi_checksum((void *)ssdt, ssdt->length);
|
||||||
|
|
||||||
|
acpi_create_ssdt_generator(ssdt, ACPI_TABLE_CREATOR);
|
||||||
|
|
||||||
|
acpi_add_table(rsdp, ssdt);
|
||||||
|
|
||||||
return fw;
|
return fw;
|
||||||
|
}
|
||||||
|
|
||||||
dsdt_file = cbfs_boot_map_with_leak(
|
dsdt_file = cbfs_boot_map_with_leak(
|
||||||
CONFIG_CBFS_PREFIX "/dsdt.aml",
|
CONFIG_CBFS_PREFIX "/dsdt.aml",
|
||||||
|
@ -30,13 +30,12 @@ int payload_arch_usable_ram_quirk(uint64_t start, uint64_t size)
|
|||||||
|
|
||||||
void arch_prog_run(struct prog *prog)
|
void arch_prog_run(struct prog *prog)
|
||||||
{
|
{
|
||||||
__asm__ volatile (
|
|
||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
"jmp *%%rdi\n"
|
void (*doit)(void *arg);
|
||||||
#else
|
#else
|
||||||
"jmp *%%edi\n"
|
/* Ensure the argument is pushed on the stack. */
|
||||||
|
asmlinkage void (*doit)(void *arg);
|
||||||
#endif
|
#endif
|
||||||
|
doit = prog_entry(prog);
|
||||||
:: "D"(prog_entry(prog))
|
doit(prog_entry_arg(prog));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,12 @@
|
|||||||
#include <cpu/x86/16bit/reset16.inc>
|
#include <cpu/x86/16bit/reset16.inc>
|
||||||
#include <cpu/x86/32bit/entry32.inc>
|
#include <cpu/x86/32bit/entry32.inc>
|
||||||
|
|
||||||
|
/* BIST result in eax */
|
||||||
|
mov %eax, %ebx
|
||||||
|
/* entry64.inc preserves ebx. */
|
||||||
|
#include <cpu/x86/64bit/entry64.inc>
|
||||||
|
mov %ebx, %eax
|
||||||
|
|
||||||
#if CONFIG(BOOTBLOCK_DEBUG_SPINLOOP)
|
#if CONFIG(BOOTBLOCK_DEBUG_SPINLOOP)
|
||||||
|
|
||||||
/* Wait for a JTAG debugger to break in and set EBX non-zero */
|
/* Wait for a JTAG debugger to break in and set EBX non-zero */
|
||||||
|
@ -27,12 +27,7 @@ static void main(unsigned long bist)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(VBOOT_SEPARATE_VERSTAGE)
|
|
||||||
const char *target1 = "fallback/verstage";
|
|
||||||
#else
|
|
||||||
const char *target1 = "fallback/romstage";
|
const char *target1 = "fallback/romstage";
|
||||||
#endif
|
|
||||||
|
|
||||||
unsigned long entry;
|
unsigned long entry;
|
||||||
entry = findstage(target1);
|
entry = findstage(target1);
|
||||||
if (entry)
|
if (entry)
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <cpu/x86/post_code.h>
|
#include <cpu/x86/post_code.h>
|
||||||
|
#include <arch/ram_segs.h>
|
||||||
|
|
||||||
/* Place the stack in the bss section. It's not necessary to define it in the
|
/* Place the stack in the bss section. It's not necessary to define it in the
|
||||||
* the linker script. */
|
* the linker script. */
|
||||||
@ -42,16 +43,16 @@ _start:
|
|||||||
cli
|
cli
|
||||||
lgdt %cs:gdtaddr
|
lgdt %cs:gdtaddr
|
||||||
#ifndef __x86_64__
|
#ifndef __x86_64__
|
||||||
ljmp $0x10, $1f
|
ljmp $RAM_CODE_SEG, $1f
|
||||||
#endif
|
#endif
|
||||||
1: movl $0x18, %eax
|
1: movl $RAM_DATA_SEG, %eax
|
||||||
movl %eax, %ds
|
movl %eax, %ds
|
||||||
movl %eax, %es
|
movl %eax, %es
|
||||||
movl %eax, %ss
|
movl %eax, %ss
|
||||||
movl %eax, %fs
|
movl %eax, %fs
|
||||||
movl %eax, %gs
|
movl %eax, %gs
|
||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
mov $0x48, %ecx
|
mov $RAM_CODE_SEG64, %ecx
|
||||||
call SetCodeSelector
|
call SetCodeSelector
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -59,6 +60,14 @@ _start:
|
|||||||
|
|
||||||
cld
|
cld
|
||||||
|
|
||||||
|
#ifdef __x86_64__
|
||||||
|
mov %rdi, _cbmem_top_ptr
|
||||||
|
#else
|
||||||
|
/* The return argument is at 0(%esp), the calling argument at 4(%esp) */
|
||||||
|
movl 4(%esp), %eax
|
||||||
|
movl %eax, _cbmem_top_ptr
|
||||||
|
#endif
|
||||||
|
|
||||||
/** poison the stack. Code should not count on the
|
/** poison the stack. Code should not count on the
|
||||||
* stack being full of zeros. This stack poisoning
|
* stack being full of zeros. This stack poisoning
|
||||||
* recently uncovered a bug in the broadcast SIPI
|
* recently uncovered a bug in the broadcast SIPI
|
||||||
|
@ -16,21 +16,10 @@
|
|||||||
|
|
||||||
#if CONFIG(CBMEM_TOP_BACKUP)
|
#if CONFIG(CBMEM_TOP_BACKUP)
|
||||||
|
|
||||||
void *cbmem_top(void)
|
void *cbmem_top_chipset(void)
|
||||||
{
|
{
|
||||||
static void *cbmem_top_backup;
|
|
||||||
void *top_backup;
|
|
||||||
|
|
||||||
if (ENV_RAMSTAGE && cbmem_top_backup != NULL)
|
|
||||||
return cbmem_top_backup;
|
|
||||||
|
|
||||||
/* Top of CBMEM is at highest usable DRAM address below 4GiB. */
|
/* Top of CBMEM is at highest usable DRAM address below 4GiB. */
|
||||||
top_backup = (void *)restore_top_of_low_cacheable();
|
return (void *)restore_top_of_low_cacheable();
|
||||||
|
|
||||||
if (ENV_RAMSTAGE)
|
|
||||||
cbmem_top_backup = top_backup;
|
|
||||||
|
|
||||||
return top_backup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CBMEM_TOP_BACKUP */
|
#endif /* CBMEM_TOP_BACKUP */
|
||||||
|
@ -315,7 +315,7 @@ void lb_arch_add_records(struct lb_header *header)
|
|||||||
struct lb_tsc_info *tsc_info;
|
struct lb_tsc_info *tsc_info;
|
||||||
|
|
||||||
/* Don't advertise a TSC rate unless it's constant. */
|
/* Don't advertise a TSC rate unless it's constant. */
|
||||||
if (!CONFIG(TSC_CONSTANT_RATE))
|
if (!tsc_constant_rate())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
freq_khz = tsc_freq_mhz() * 1000;
|
freq_khz = tsc_freq_mhz() * 1000;
|
||||||
|
@ -31,6 +31,14 @@ _start:
|
|||||||
/* Migrate GDT to this text segment */
|
/* Migrate GDT to this text segment */
|
||||||
call gdt_init
|
call gdt_init
|
||||||
|
|
||||||
|
#ifdef __x86_64__
|
||||||
|
mov %rdi, _cbmem_top_ptr
|
||||||
|
#else
|
||||||
|
/* The return argument is at 0(%esp), the calling argument at 4(%esp) */
|
||||||
|
movl 4(%esp), %eax
|
||||||
|
movl %eax, _cbmem_top_ptr
|
||||||
|
#endif
|
||||||
|
|
||||||
/* chipset_teardown_car() is expected to disable cache-as-ram. */
|
/* chipset_teardown_car() is expected to disable cache-as-ram. */
|
||||||
call chipset_teardown_car
|
call chipset_teardown_car
|
||||||
|
|
||||||
|
@ -147,21 +147,21 @@ typedef struct acpi_table_header {
|
|||||||
|
|
||||||
/* RSDT (Root System Description Table) */
|
/* RSDT (Root System Description Table) */
|
||||||
typedef struct acpi_rsdt {
|
typedef struct acpi_rsdt {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 entry[MAX_ACPI_TABLES];
|
u32 entry[MAX_ACPI_TABLES];
|
||||||
} __packed acpi_rsdt_t;
|
} __packed acpi_rsdt_t;
|
||||||
|
|
||||||
/* XSDT (Extended System Description Table) */
|
/* XSDT (Extended System Description Table) */
|
||||||
typedef struct acpi_xsdt {
|
typedef struct acpi_xsdt {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u64 entry[MAX_ACPI_TABLES];
|
u64 entry[MAX_ACPI_TABLES];
|
||||||
} __packed acpi_xsdt_t;
|
} __packed acpi_xsdt_t;
|
||||||
|
|
||||||
/* HPET timers */
|
/* HPET timers */
|
||||||
typedef struct acpi_hpet {
|
typedef struct acpi_hpet {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 id;
|
u32 id;
|
||||||
struct acpi_gen_regaddr addr;
|
acpi_addr_t addr;
|
||||||
u8 number;
|
u8 number;
|
||||||
u16 min_tick;
|
u16 min_tick;
|
||||||
u8 attributes;
|
u8 attributes;
|
||||||
@ -169,19 +169,19 @@ typedef struct acpi_hpet {
|
|||||||
|
|
||||||
/* MCFG (PCI Express MMIO config space BAR description table) */
|
/* MCFG (PCI Express MMIO config space BAR description table) */
|
||||||
typedef struct acpi_mcfg {
|
typedef struct acpi_mcfg {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u8 reserved[8];
|
u8 reserved[8];
|
||||||
} __packed acpi_mcfg_t;
|
} __packed acpi_mcfg_t;
|
||||||
|
|
||||||
typedef struct acpi_tcpa {
|
typedef struct acpi_tcpa {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u16 platform_class;
|
u16 platform_class;
|
||||||
u32 laml;
|
u32 laml;
|
||||||
u64 lasa;
|
u64 lasa;
|
||||||
} __packed acpi_tcpa_t;
|
} __packed acpi_tcpa_t;
|
||||||
|
|
||||||
typedef struct acpi_tpm2 {
|
typedef struct acpi_tpm2 {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u16 platform_class;
|
u16 platform_class;
|
||||||
u8 reserved[2];
|
u8 reserved[2];
|
||||||
u64 control_area;
|
u64 control_area;
|
||||||
@ -202,7 +202,7 @@ typedef struct acpi_mcfg_mmconfig {
|
|||||||
|
|
||||||
/* SRAT (System Resource Affinity Table) */
|
/* SRAT (System Resource Affinity Table) */
|
||||||
typedef struct acpi_srat {
|
typedef struct acpi_srat {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 resv;
|
u32 resv;
|
||||||
u64 resv1;
|
u64 resv1;
|
||||||
/* Followed by static resource allocation structure[n] */
|
/* Followed by static resource allocation structure[n] */
|
||||||
@ -239,19 +239,19 @@ typedef struct acpi_srat_mem {
|
|||||||
|
|
||||||
/* SLIT (System Locality Distance Information Table) */
|
/* SLIT (System Locality Distance Information Table) */
|
||||||
typedef struct acpi_slit {
|
typedef struct acpi_slit {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
/* Followed by static resource allocation 8+byte[num*num] */
|
/* Followed by static resource allocation 8+byte[num*num] */
|
||||||
} __packed acpi_slit_t;
|
} __packed acpi_slit_t;
|
||||||
|
|
||||||
/* MADT (Multiple APIC Description Table) */
|
/* MADT (Multiple APIC Description Table) */
|
||||||
typedef struct acpi_madt {
|
typedef struct acpi_madt {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 lapic_addr; /* Local APIC address */
|
u32 lapic_addr; /* Local APIC address */
|
||||||
u32 flags; /* Multiple APIC flags */
|
u32 flags; /* Multiple APIC flags */
|
||||||
} __packed acpi_madt_t;
|
} __packed acpi_madt_t;
|
||||||
|
|
||||||
/* VFCT image header */
|
/* VFCT image header */
|
||||||
struct acpi_vfct_image_hdr {
|
typedef struct acpi_vfct_image_hdr {
|
||||||
u32 PCIBus;
|
u32 PCIBus;
|
||||||
u32 PCIDevice;
|
u32 PCIDevice;
|
||||||
u32 PCIFunction;
|
u32 PCIFunction;
|
||||||
@ -262,17 +262,17 @@ struct acpi_vfct_image_hdr {
|
|||||||
u32 Revision;
|
u32 Revision;
|
||||||
u32 ImageLength;
|
u32 ImageLength;
|
||||||
u8 VbiosContent; // dummy - copy VBIOS here
|
u8 VbiosContent; // dummy - copy VBIOS here
|
||||||
} __packed;
|
} __packed acpi_vfct_image_hdr_t;
|
||||||
|
|
||||||
/* VFCT (VBIOS Fetch Table) */
|
/* VFCT (VBIOS Fetch Table) */
|
||||||
struct acpi_vfct {
|
typedef struct acpi_vfct {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u8 TableUUID[16];
|
u8 TableUUID[16];
|
||||||
u32 VBIOSImageOffset;
|
u32 VBIOSImageOffset;
|
||||||
u32 Lib1ImageOffset;
|
u32 Lib1ImageOffset;
|
||||||
u32 Reserved[4];
|
u32 Reserved[4];
|
||||||
struct acpi_vfct_image_hdr image_hdr;
|
acpi_vfct_image_hdr_t image_hdr;
|
||||||
} __packed;
|
} __packed acpi_vfct_t;
|
||||||
|
|
||||||
typedef struct acpi_ivrs_info {
|
typedef struct acpi_ivrs_info {
|
||||||
} __packed acpi_ivrs_info_t;
|
} __packed acpi_ivrs_info_t;
|
||||||
@ -294,7 +294,7 @@ typedef struct acpi_ivrs_ivhd {
|
|||||||
|
|
||||||
/* IVRS (I/O Virtualization Reporting Structure) Type 10h */
|
/* IVRS (I/O Virtualization Reporting Structure) Type 10h */
|
||||||
typedef struct acpi_ivrs {
|
typedef struct acpi_ivrs {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
uint32_t iv_info;
|
uint32_t iv_info;
|
||||||
uint32_t reserved[2];
|
uint32_t reserved[2];
|
||||||
struct acpi_ivrs_ivhd ivhd;
|
struct acpi_ivrs_ivhd ivhd;
|
||||||
@ -382,7 +382,7 @@ typedef struct dmar_andd_entry {
|
|||||||
|
|
||||||
/* DMAR (DMA Remapping Reporting Structure) */
|
/* DMAR (DMA Remapping Reporting Structure) */
|
||||||
typedef struct acpi_dmar {
|
typedef struct acpi_dmar {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u8 host_address_width;
|
u8 host_address_width;
|
||||||
u8 flags;
|
u8 flags;
|
||||||
u8 reserved[10];
|
u8 reserved[10];
|
||||||
@ -390,24 +390,23 @@ typedef struct acpi_dmar {
|
|||||||
} __packed acpi_dmar_t;
|
} __packed acpi_dmar_t;
|
||||||
|
|
||||||
/* MADT: APIC Structure Types */
|
/* MADT: APIC Structure Types */
|
||||||
/* TODO: Convert to ALLCAPS. */
|
|
||||||
enum acpi_apic_types {
|
enum acpi_apic_types {
|
||||||
LocalApic = 0, /* Processor local APIC */
|
LOCAL_APIC, /* Processor local APIC */
|
||||||
IOApic = 1, /* I/O APIC */
|
IO_APIC, /* I/O APIC */
|
||||||
IRQSourceOverride = 2, /* Interrupt source override */
|
IRQ_SOURCE_OVERRIDE, /* Interrupt source override */
|
||||||
NMIType = 3, /* NMI source */
|
NMI_TYPE, /* NMI source */
|
||||||
LocalApicNMI = 4, /* Local APIC NMI */
|
LOCAL_APIC_NMI, /* Local APIC NMI */
|
||||||
LApicAddressOverride = 5, /* Local APIC address override */
|
LAPIC_ADDRESS_OVERRIDE, /* Local APIC address override */
|
||||||
IOSApic = 6, /* I/O SAPIC */
|
IO_SAPIC, /* I/O SAPIC */
|
||||||
LocalSApic = 7, /* Local SAPIC */
|
LOCAL_SAPIC, /* Local SAPIC */
|
||||||
PlatformIRQSources = 8, /* Platform interrupt sources */
|
PLATFORM_IRQ_SOURCES, /* Platform interrupt sources */
|
||||||
Localx2Apic = 9, /* Processor local x2APIC */
|
LOCAL_X2APIC, /* Processor local x2APIC */
|
||||||
Localx2ApicNMI = 10, /* Local x2APIC NMI */
|
LOCAL_X2APIC_NMI, /* Local x2APIC NMI */
|
||||||
GICC = 11, /* GIC CPU Interface */
|
GICC, /* GIC CPU Interface */
|
||||||
GICD = 12, /* GIC Distributor */
|
GICD, /* GIC Distributor */
|
||||||
GIC_MSI_FRAME = 13, /* GIC MSI Frame */
|
GIC_MSI_FRAME, /* GIC MSI Frame */
|
||||||
GICR = 14, /* GIC Redistributor */
|
GICR, /* GIC Redistributor */
|
||||||
GIC_ITS = 15, /* Interrupt Translation Service */
|
GIC_ITS, /* Interrupt Translation Service */
|
||||||
/* 0x10-0x7f: Reserved */
|
/* 0x10-0x7f: Reserved */
|
||||||
/* 0x80-0xff: Reserved for OEM use */
|
/* 0x80-0xff: Reserved for OEM use */
|
||||||
};
|
};
|
||||||
@ -466,7 +465,7 @@ typedef struct acpi_madt_irqoverride {
|
|||||||
|
|
||||||
/* DBG2: Microsoft Debug Port Table 2 header */
|
/* DBG2: Microsoft Debug Port Table 2 header */
|
||||||
typedef struct acpi_dbg2_header {
|
typedef struct acpi_dbg2_header {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
uint32_t devices_offset;
|
uint32_t devices_offset;
|
||||||
uint32_t devices_count;
|
uint32_t devices_count;
|
||||||
} __attribute__((packed)) acpi_dbg2_header_t;
|
} __attribute__((packed)) acpi_dbg2_header_t;
|
||||||
@ -489,7 +488,7 @@ typedef struct acpi_dbg2_device {
|
|||||||
|
|
||||||
/* FADT (Fixed ACPI Description Table) */
|
/* FADT (Fixed ACPI Description Table) */
|
||||||
typedef struct acpi_fadt {
|
typedef struct acpi_fadt {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 firmware_ctrl;
|
u32 firmware_ctrl;
|
||||||
u32 dsdt;
|
u32 dsdt;
|
||||||
u8 reserved; /* Should be 0 */
|
u8 reserved; /* Should be 0 */
|
||||||
@ -528,7 +527,7 @@ typedef struct acpi_fadt {
|
|||||||
u16 iapc_boot_arch;
|
u16 iapc_boot_arch;
|
||||||
u8 res2;
|
u8 res2;
|
||||||
u32 flags;
|
u32 flags;
|
||||||
struct acpi_gen_regaddr reset_reg;
|
acpi_addr_t reset_reg;
|
||||||
u8 reset_value;
|
u8 reset_value;
|
||||||
u16 ARM_boot_arch;
|
u16 ARM_boot_arch;
|
||||||
u8 FADT_MinorVersion;
|
u8 FADT_MinorVersion;
|
||||||
@ -536,14 +535,14 @@ typedef struct acpi_fadt {
|
|||||||
u32 x_firmware_ctl_h;
|
u32 x_firmware_ctl_h;
|
||||||
u32 x_dsdt_l;
|
u32 x_dsdt_l;
|
||||||
u32 x_dsdt_h;
|
u32 x_dsdt_h;
|
||||||
struct acpi_gen_regaddr x_pm1a_evt_blk;
|
acpi_addr_t x_pm1a_evt_blk;
|
||||||
struct acpi_gen_regaddr x_pm1b_evt_blk;
|
acpi_addr_t x_pm1b_evt_blk;
|
||||||
struct acpi_gen_regaddr x_pm1a_cnt_blk;
|
acpi_addr_t x_pm1a_cnt_blk;
|
||||||
struct acpi_gen_regaddr x_pm1b_cnt_blk;
|
acpi_addr_t x_pm1b_cnt_blk;
|
||||||
struct acpi_gen_regaddr x_pm2_cnt_blk;
|
acpi_addr_t x_pm2_cnt_blk;
|
||||||
struct acpi_gen_regaddr x_pm_tmr_blk;
|
acpi_addr_t x_pm_tmr_blk;
|
||||||
struct acpi_gen_regaddr x_gpe0_blk;
|
acpi_addr_t x_gpe0_blk;
|
||||||
struct acpi_gen_regaddr x_gpe1_blk;
|
acpi_addr_t x_gpe1_blk;
|
||||||
} __packed acpi_fadt_t;
|
} __packed acpi_fadt_t;
|
||||||
|
|
||||||
/* FADT TABLE Revision values */
|
/* FADT TABLE Revision values */
|
||||||
@ -634,9 +633,9 @@ typedef struct acpi_facs {
|
|||||||
|
|
||||||
/* ECDT (Embedded Controller Boot Resources Table) */
|
/* ECDT (Embedded Controller Boot Resources Table) */
|
||||||
typedef struct acpi_ecdt {
|
typedef struct acpi_ecdt {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
struct acpi_gen_regaddr ec_control; /* EC control register */
|
acpi_addr_t ec_control; /* EC control register */
|
||||||
struct acpi_gen_regaddr ec_data; /* EC data register */
|
acpi_addr_t ec_data; /* EC data register */
|
||||||
u32 uid; /* UID */
|
u32 uid; /* UID */
|
||||||
u8 gpe_bit; /* GPE bit */
|
u8 gpe_bit; /* GPE bit */
|
||||||
u8 ec_id[]; /* EC ID */
|
u8 ec_id[]; /* EC ID */
|
||||||
@ -644,7 +643,7 @@ typedef struct acpi_ecdt {
|
|||||||
|
|
||||||
/* HEST (Hardware Error Source Table) */
|
/* HEST (Hardware Error Source Table) */
|
||||||
typedef struct acpi_hest {
|
typedef struct acpi_hest {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 error_source_count;
|
u32 error_source_count;
|
||||||
/* error_source_struct(s) */
|
/* error_source_struct(s) */
|
||||||
} __packed acpi_hest_t;
|
} __packed acpi_hest_t;
|
||||||
@ -677,7 +676,7 @@ typedef struct acpi_hest_hen {
|
|||||||
|
|
||||||
/* BERT (Boot Error Record Table) */
|
/* BERT (Boot Error Record Table) */
|
||||||
typedef struct acpi_bert {
|
typedef struct acpi_bert {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u32 region_length;
|
u32 region_length;
|
||||||
u64 error_region;
|
u64 error_region;
|
||||||
} __packed acpi_bert_t;
|
} __packed acpi_bert_t;
|
||||||
@ -794,7 +793,7 @@ enum acpi_ipmi_interface_type {
|
|||||||
|
|
||||||
/* ACPI IPMI 2.0 */
|
/* ACPI IPMI 2.0 */
|
||||||
struct acpi_spmi {
|
struct acpi_spmi {
|
||||||
struct acpi_table_header header;
|
acpi_header_t header;
|
||||||
u8 interface_type;
|
u8 interface_type;
|
||||||
u8 reserved;
|
u8 reserved;
|
||||||
u16 specification_revision;
|
u16 specification_revision;
|
||||||
@ -864,9 +863,9 @@ void acpi_create_slit(acpi_slit_t *slit,
|
|||||||
unsigned long (*acpi_fill_slit)(unsigned long current));
|
unsigned long (*acpi_fill_slit)(unsigned long current));
|
||||||
|
|
||||||
void acpi_create_vfct(struct device *device,
|
void acpi_create_vfct(struct device *device,
|
||||||
struct acpi_vfct *vfct,
|
acpi_vfct_t *vfct,
|
||||||
unsigned long (*acpi_fill_vfct)(struct device *device,
|
unsigned long (*acpi_fill_vfct)(struct device *device,
|
||||||
struct acpi_vfct *vfct_struct,
|
acpi_vfct_t *vfct_struct,
|
||||||
unsigned long current));
|
unsigned long current));
|
||||||
|
|
||||||
void acpi_create_ipmi(struct device *device,
|
void acpi_create_ipmi(struct device *device,
|
||||||
|
@ -141,6 +141,11 @@ static inline unsigned int cpuid_edx(unsigned int op)
|
|||||||
return edx;
|
return edx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline unsigned int cpuid_get_max_func(void)
|
||||||
|
{
|
||||||
|
return cpuid_eax(0);
|
||||||
|
}
|
||||||
|
|
||||||
#define X86_VENDOR_INVALID 0
|
#define X86_VENDOR_INVALID 0
|
||||||
#define X86_VENDOR_INTEL 1
|
#define X86_VENDOR_INTEL 1
|
||||||
#define X86_VENDOR_CYRIX 2
|
#define X86_VENDOR_CYRIX 2
|
||||||
|
25
src/arch/x86/include/arch/ram_segs.h
Normal file
25
src/arch/x86/include/arch/ram_segs.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the coreboot project.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; version 2 of the License.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RAM_SEGS_H
|
||||||
|
#define RAM_SEGS_H
|
||||||
|
|
||||||
|
#define RAM_CODE_SEG 0x10
|
||||||
|
#define RAM_DATA_SEG 0x18
|
||||||
|
#define RAM_CODE16_SEG 0x28
|
||||||
|
#define RAM_DATA16_SEG 0x30
|
||||||
|
#define RAM_CODE_ACPI_SEG 0x38
|
||||||
|
#define RAM_DATA_ACPI_SEG 0x40
|
||||||
|
#define RAM_CODE_SEG64 0x48
|
||||||
|
|
||||||
|
#endif /* RAM_SEGS_H */
|
@ -225,5 +225,7 @@ void run_postcar_phase(struct postcar_frame *pcf)
|
|||||||
/* As postcar exist, it's end of romstage here */
|
/* As postcar exist, it's end of romstage here */
|
||||||
timestamp_add_now(TS_END_ROMSTAGE);
|
timestamp_add_now(TS_END_ROMSTAGE);
|
||||||
|
|
||||||
|
prog_set_arg(&prog, cbmem_top());
|
||||||
|
|
||||||
prog_run(&prog);
|
prog_run(&prog);
|
||||||
}
|
}
|
||||||
|
@ -492,7 +492,7 @@ smbios_board_type __weak smbios_mainboard_board_type(void)
|
|||||||
return SMBIOS_BOARD_TYPE_UNKNOWN;
|
return SMBIOS_BOARD_TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 __weak smbios_mainboard_enclosure_type(void)
|
smbios_enclosure_type __weak smbios_mainboard_enclosure_type(void)
|
||||||
{
|
{
|
||||||
return CONFIG_SMBIOS_ENCLOSURE_TYPE;
|
return CONFIG_SMBIOS_ENCLOSURE_TYPE;
|
||||||
}
|
}
|
||||||
@ -522,6 +522,16 @@ void __weak smbios_system_set_uuid(u8 *uuid)
|
|||||||
/* leave all zero */
|
/* leave all zero */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned int __weak smbios_cpu_get_max_speed_mhz(void)
|
||||||
|
{
|
||||||
|
return 0; /* Unknown */
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int __weak smbios_cpu_get_current_speed_mhz(void)
|
||||||
|
{
|
||||||
|
return 0; /* Unknown */
|
||||||
|
}
|
||||||
|
|
||||||
const char *__weak smbios_system_sku(void)
|
const char *__weak smbios_system_sku(void)
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
@ -648,11 +658,20 @@ static int smbios_write_type4(unsigned long *current, int handle)
|
|||||||
t->processor_family = (res.eax > 0) ? 0x0c : 0x6;
|
t->processor_family = (res.eax > 0) ? 0x0c : 0x6;
|
||||||
t->processor_type = 3; /* System Processor */
|
t->processor_type = 3; /* System Processor */
|
||||||
t->core_count = (res.ebx >> 16) & 0xff;
|
t->core_count = (res.ebx >> 16) & 0xff;
|
||||||
|
/* Assume we enable all the cores always, capped only by MAX_CPUS */
|
||||||
|
t->core_enabled = MAX(t->core_count, CONFIG_MAX_CPUS);
|
||||||
t->l1_cache_handle = 0xffff;
|
t->l1_cache_handle = 0xffff;
|
||||||
t->l2_cache_handle = 0xffff;
|
t->l2_cache_handle = 0xffff;
|
||||||
t->l3_cache_handle = 0xffff;
|
t->l3_cache_handle = 0xffff;
|
||||||
t->processor_upgrade = get_socket_type();
|
t->processor_upgrade = get_socket_type();
|
||||||
len = t->length + smbios_string_table_len(t->eos);
|
len = t->length + smbios_string_table_len(t->eos);
|
||||||
|
if (cpu_have_cpuid() && cpuid_get_max_func() >= 0x16) {
|
||||||
|
t->max_speed = cpuid_ebx(0x16);
|
||||||
|
t->current_speed = cpuid_eax(0x16); /* base frequency */
|
||||||
|
} else {
|
||||||
|
t->max_speed = smbios_cpu_get_max_speed_mhz();
|
||||||
|
t->current_speed = smbios_cpu_get_current_speed_mhz();
|
||||||
|
}
|
||||||
*current += len;
|
*current += len;
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ uint64_t timestamp_get(void)
|
|||||||
int timestamp_tick_freq_mhz(void)
|
int timestamp_tick_freq_mhz(void)
|
||||||
{
|
{
|
||||||
/* Chipsets that have a constant TSC provide this value correctly. */
|
/* Chipsets that have a constant TSC provide this value correctly. */
|
||||||
if (CONFIG(TSC_CONSTANT_RATE))
|
if (tsc_constant_rate())
|
||||||
return tsc_freq_mhz();
|
return tsc_freq_mhz();
|
||||||
|
|
||||||
/* Filling tick_freq_mhz = 0 in timestamps-table will trigger
|
/* Filling tick_freq_mhz = 0 in timestamps-table will trigger
|
||||||
|
@ -157,6 +157,7 @@ struct cbfs_file_attribute {
|
|||||||
#define CBFS_FILE_ATTR_TAG_HASH 0x68736148
|
#define CBFS_FILE_ATTR_TAG_HASH 0x68736148
|
||||||
#define CBFS_FILE_ATTR_TAG_POSITION 0x42435350 /* PSCB */
|
#define CBFS_FILE_ATTR_TAG_POSITION 0x42435350 /* PSCB */
|
||||||
#define CBFS_FILE_ATTR_TAG_ALIGNMENT 0x42434c41 /* ALCB */
|
#define CBFS_FILE_ATTR_TAG_ALIGNMENT 0x42434c41 /* ALCB */
|
||||||
|
#define CBFS_FILE_ATTR_TAG_IBB 0x32494242 /* Initial BootBlock */
|
||||||
|
|
||||||
struct cbfs_file_attr_compression {
|
struct cbfs_file_attr_compression {
|
||||||
uint32_t tag;
|
uint32_t tag;
|
||||||
|
@ -56,6 +56,8 @@
|
|||||||
#define CBMEM_ID_ROMSTAGE_RAM_STACK 0x90357ac4
|
#define CBMEM_ID_ROMSTAGE_RAM_STACK 0x90357ac4
|
||||||
#define CBMEM_ID_ROOT 0xff4007ff
|
#define CBMEM_ID_ROOT 0xff4007ff
|
||||||
#define CBMEM_ID_SMBIOS 0x534d4254
|
#define CBMEM_ID_SMBIOS 0x534d4254
|
||||||
|
#define CBMEM_ID_BERT_RAW_DATA 0x42455254
|
||||||
|
#define CBMEM_ID_SMM_TSEG_SPACE 0x54534547
|
||||||
#define CBMEM_ID_SMM_SAVE_SPACE 0x07e9acee
|
#define CBMEM_ID_SMM_SAVE_SPACE 0x07e9acee
|
||||||
#define CBMEM_ID_STAGEx_META 0x57a9e000
|
#define CBMEM_ID_STAGEx_META 0x57a9e000
|
||||||
#define CBMEM_ID_STAGEx_CACHE 0x57a9e100
|
#define CBMEM_ID_STAGEx_CACHE 0x57a9e100
|
||||||
@ -119,6 +121,8 @@
|
|||||||
{ CBMEM_ID_ROMSTAGE_RAM_STACK, "ROMSTG STCK" }, \
|
{ CBMEM_ID_ROMSTAGE_RAM_STACK, "ROMSTG STCK" }, \
|
||||||
{ CBMEM_ID_ROOT, "CBMEM ROOT " }, \
|
{ CBMEM_ID_ROOT, "CBMEM ROOT " }, \
|
||||||
{ CBMEM_ID_SMBIOS, "SMBIOS " }, \
|
{ CBMEM_ID_SMBIOS, "SMBIOS " }, \
|
||||||
|
{ CBMEM_ID_BERT_RAW_DATA, "BERT DATA " }, \
|
||||||
|
{ CBMEM_ID_SMM_TSEG_SPACE, "TSEG " }, \
|
||||||
{ CBMEM_ID_SMM_SAVE_SPACE, "SMM BACKUP " }, \
|
{ CBMEM_ID_SMM_SAVE_SPACE, "SMM BACKUP " }, \
|
||||||
{ CBMEM_ID_STORAGE_DATA, "SD/MMC/eMMC" }, \
|
{ CBMEM_ID_STORAGE_DATA, "SD/MMC/eMMC" }, \
|
||||||
{ CBMEM_ID_TCPA_LOG, "TCPA LOG " }, \
|
{ CBMEM_ID_TCPA_LOG, "TCPA LOG " }, \
|
||||||
|
@ -137,4 +137,8 @@
|
|||||||
#define __unused __attribute__((unused))
|
#define __unused __attribute__((unused))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef alloca
|
||||||
|
#define alloca(x) __builtin_alloca(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* COMMONLIB_HELPERS_H */
|
#endif /* COMMONLIB_HELPERS_H */
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user