2003-11-22 16:15:47 +01:00
%
% This document is released under the GPL
2009-04-21 23:45:11 +02:00
% Initially written by Stefan Reinauer, <stepan@coresystems.de>
2010-04-27 08:56:47 +02:00
%
2003-11-22 16:15:47 +01:00
\documentclass [titlepage,12pt] { article}
\usepackage { a4}
\usepackage { graphicx}
2015-11-17 16:50:14 +01:00
\usepackage { epsfig}
\usepackage { epstopdf}
2003-11-22 16:15:47 +01:00
\usepackage { url}
2015-11-17 16:50:14 +01:00
\usepackage { color}
% \usepackage{geometry}
2003-11-22 16:15:47 +01:00
\usepackage [pdftex] { hyperref}
% \usepackage{makeidx}
% \makeindex
2015-11-17 16:50:14 +01:00
% \geometry{left=2cm,right=2cm,top=2cm,bottom=2cm}
2003-11-22 16:15:47 +01:00
\hypersetup {
2015-11-17 16:50:14 +01:00
urlbordercolor={ 1 1 1} ,
menubordercolor={ 1 1 1} ,
linkbordercolor={ 1 1 1} ,
colorlinks=false,
% pdfpagemode=None, % PDF-Viewer starts without TOC
% pdfstartview=FitH,
pdftitle={ Coreboot Porting Guide} ,
pdfauthor={ Zheng Bao} ,
pdfsubject={ coreboot configuration and build process} ,
pdfkeywords={ coreboot, AMD, configuration, Build}
2003-11-22 16:15:47 +01:00
}
\setlength { \parindent } { 0pt}
2015-11-17 16:50:14 +01:00
\setlength { \hoffset } { 0pt}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\title { Coreboot from Scratch}
\author { Stefan Reinauer $ < $ stepan@coresystems.de$ > $ \and Zheng Bao $ < $ zheng.bao@amd.com$ > $ }
\date { Dec 4th, 2013}
2003-11-22 16:15:47 +01:00
\begin { document}
\maketitle
2010-04-27 08:56:47 +02:00
\thispagestyle { empty}
2003-11-22 16:15:47 +01:00
\tableofcontents
\newpage
2015-11-17 16:50:14 +01:00
\section { What is Coreboot}
2010-04-27 08:56:47 +02:00
coreboot aims to replace the normal BIOS found on x86, AMD64, PPC,
2009-04-21 23:45:11 +02:00
Alpha, and other machines with a Linux kernel that can boot Linux from a cold
start. The startup code of an average coreboot port is about 500 lines of
assembly and 5000 lines of C. It executes 16 instructions to get into 32bit
protected mode and then performs DRAM and other hardware initializations
2003-11-22 16:15:47 +01:00
required before Linux can take over.
The projects primary motivation initially was maintenance of large
clusters. Not surprisingly interest and contributions have come from
people with varying backgrounds. Nowadays a large and growing number of
2009-04-21 23:45:11 +02:00
Systems can be booted with coreboot, including embedded systems,
2003-11-22 16:15:47 +01:00
Desktop PCs and Servers.
2015-11-17 16:50:14 +01:00
This document is used to build, modify, and port the CoreBoot code
base on the AMD platform.
\section { Changes}
\begin { itemize}
\item 2013/12/20 Add Git, Gerrit, toolchains building.
\item 2009/04/19 replace LinuxBIOS with coreboot
\item 2004/06/02 url and language fixes from Ken Fuchs $ < $ kfuchs@winternet.com$ > $
\item 2004/02/10 acpi and option rom updates
\item 2003/11/18 initial release
\end { itemize}
2003-11-22 16:15:47 +01:00
%
2015-11-17 16:50:14 +01:00
% Build Requirements
2003-11-22 16:15:47 +01:00
%
\section { Build Requirements}
2015-11-17 16:50:14 +01:00
To build coreboot for AMD64 from the sources you need a recent Linux.
SUSE Linux 11.2, CentOS release 6.3, Fedora Core 16, Cygwin, FreeBSD,
NetBSD are known to work fine.
To build the toolchain, you need following host compilers:
2003-11-22 16:15:47 +01:00
\begin { itemize}
2015-11-17 16:50:14 +01:00
\item GNUtar
\item GNUpatch
\item GNUmake
\item GCC
\item binutils
\item bison
\item flex
\item m4
\item wget
2003-11-22 16:15:47 +01:00
\end { itemize}
2015-11-17 16:50:14 +01:00
Besides the tools above, after the toolchains are built, you also need the following
tools to build the source.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\begin { itemize}
\item git: Get the source code from repository
\item libncurses-dev (or ncursesw, ncurses, curses, pdcursesw, pdcurses): for menuconfig
\item python: Optional for gdb.
\item perl: Optional for gdb.
\end { itemize}
2003-11-22 16:15:47 +01:00
%
2015-11-17 16:50:14 +01:00
% Getting Coreboot
2003-11-22 16:15:47 +01:00
%
2015-11-17 16:50:14 +01:00
\section { Getting Coreboot}
The latest coreboot sources are available via GIT.
For users who doesn't need to change and commit the code:
2004-06-02 13:25:31 +02:00
{ \small
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git clone http: / / review.coreboot.org / p / coreboot
2004-06-02 13:25:31 +02:00
\end { verbatim}
}
2015-11-17 16:50:14 +01:00
For developers, you need to get a gerrit account which you can register
at \url { http://review.coreboot.org} . Please refer section ~\ref { sec:gerrit}
2010-04-27 08:56:47 +02:00
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git clone ssh: / / <username>@review.coreboot.org: 29418 / coreboot
$ git clone http: / / [ <username>:<password>@ ] review.coreboot.org / coreboot.git
2003-11-22 16:15:47 +01:00
\end { verbatim}
}
2015-11-17 16:50:14 +01:00
Checks out a sub-repository in the 3rdparty directory.
2003-11-22 16:15:47 +01:00
{ \small
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git submodule update - - init - - checkout
2003-11-22 16:15:47 +01:00
\end { verbatim}
}
2004-02-10 18:30:04 +01:00
%
2015-11-17 16:50:14 +01:00
% Building the toolchain
2004-02-10 18:30:04 +01:00
%
2015-11-17 16:50:14 +01:00
\section { Building the toolchain}
Coreboot recommends and guarantees the toolchain integrated with Coreboot.
Linux distributions usually modify their compilers in ways incompatible with Coreboot.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ cd coreboot
$ make crossgcc
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
or
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ cd util / crossgcc
$ buildgcc
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
The buildgcc will try to get packages from website. You need to make sure you can
get access the internet. Or you can get the source.tar.gz and put it in util/crossgcc/tarballs.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
{ \small
\textcolor { blue} { Welcome to the} \textcolor { red} { coreboot} \textcolor { blue} { cross toolchain builder v1.23 (September 20th, 2013)}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Target arch is now i386-elf
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Will skip GDB ... ok
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Downloading tar balls ...
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* gmp-5.1.2.tar.bz2 (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* mpfr-3.1.2.tar.bz2 (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* mpc-1.0.1.tar.gz (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* libelf-0.8.13.tar.gz (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* gcc-4.7.3.tar.bz2 (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* binutils-2.23.2.tar.bz2 (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* acpica-unix-20130626.tar.gz (cached)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Downloaded tar balls ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Unpacking and patching ...
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* gmp-5.1.2.tar.bz2
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* mpfr-3.1.2.tar.bz2
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* mpc-1.0.1.tar.gz
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* libelf-0.8.13.tar.gz
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* gcc-4.7.3.tar.bz2
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* binutils-2.23.2.tar.bz2
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
o binutils-2.23.2\_ arv7a.patch
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
o binutils-2.23.2\_ no-bfd-doc.patch
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
* acpica-unix-20130626.tar.gz
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Unpacked and patched ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building GMP 5.1.2 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building MPFR 3.1.2 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building MPC 1.0.1 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building libelf 0.8.13 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building binutils 2.23.2 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building GCC 4.7.3 ... ok
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Skipping Expat (Python scripting not enabled)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Skipping Python (Python scripting not enabled)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Skipping GDB (GDB support not enabled)
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Building IASL 20130626 ... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Cleaning up... \textcolor { green} { ok}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\textcolor { green} { You can now run your i386-elf cross toolchain from /home/baozheng/x86/coreboot-gerrit/util/crossgcc/xgcc.}
}
If you are lucky, you can get toolchains located in util/crossgcc/xgcc.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
%
% Build Coreboot
%
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\ section{ Building Coreboot}
\subsection { Build main module of Coreboot}
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ cd coreboot
$ make menuconfig
.config - coreboot v4.0-4895-gc5025a4-dirty Configuration
+------------------------ coreboot Configuration -------------------------+
| Arrow keys navigate the menu. <Enter> selects submenus --->. |
| Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, |
| <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> |
| for Search. Legend: [*] built-in [ ] excluded <M> module < > |
| +---------------------------------------------------------------------+ |
| | General setup ---> | |
| | Mainboard ---> | |
| | Architecture (x86) ---> | |
| | Chipset ---> | |
| | Devices ---> | |
| | VGA BIOS ---> | |
| | Display ---> | |
| | PXE ROM ---> | |
| | Generic Drivers ---> | |
| | Console ---> | |
| | [ ] Relocatable Modules | |
| | System tables ---> | |
| | Payload ---> | |
| | Debugging ---> | |
| | --- | |
| +----v(+)-------------------------------------------------------------+ |
+-------------------------------------------------------------------------+
| <Select> < Exit > < Help > |
+-------------------------------------------------------------------------
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
Select Mainboard -$ > $ Mainboard Vendor -$ > $ AMD
-$ > $ Mainboard Model -$ > $ Olive Hill
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Then save, exit and run make.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ make
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
The built image, coreboot.rom, is located at folder build.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\section { Programming coreboot to flash memory}
The image resulting from a coreboot build can be directly programmed to
a flash device, either using an external flash programmers, e.g., Dediprog SF100, or by using the
Linux flash utility, flashrom.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\subsection { Add modules and payload}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\subsubsection { VGA BIOS}
There is a big Chance that you need to get a VGA BIOS.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
.config - coreboot v4.0 Configuration
------------------------------------------------------------------------------
+-------------------------------- VGA BIOS --------------------------------+
| Arrow keys navigate the menu. <Enter> selects submenus --->. |
| Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, |
| <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> |
| for Search. Legend: [*] built-in [ ] excluded <M> module < > module |
| +----------------------------------------------------------------------+ |
| | [*] Add a VGA BIOS image | |
| | (vgabios.bin) VGA BIOS path and filename | |
| | (1002,1306) VGA device PCI IDs | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| +----------------------------------------------------------------------+ |
+--------------------------------------------------------------------------+
| <Select> < Exit > < Help > |
+--------------------------------------------------------------------------+
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
Select VGA BIOS. ``The VGA device PCI IDs'' should be the same as your device. Get the
Option ROM from Vendor's website.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\subsubsection { Payload}
coreboot in itself is "only" minimal code for initializing a mainboard
with peripherals. After the initialization, it jumps to a payload.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Currently, SeaBIOS is the most widely used payload. The best way to integrate SeaBIOS
is setting it in menuconfig.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
+------------------------------- Payload ---------------------------------+
| Arrow keys navigate the menu. <Enter> selects submenus --->. |
| Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, |
| <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> |
| for Search. Legend: [*] built-in [ ] excluded <M> module < > module |
| +----------------------------------------------------------------------+ |
| | Add a payload (SeaBIOS) ---> | |
| | SeaBIOS version (1.7.2.1) ---> | |
| | [*] Use LZMA compression for payloads (NEW) | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| +----------------------------------------------------------------------+ |
+--------------------------------------------------------------------------+
| <Select> < Exit > < Help > |
+--------------------------------------------------------------------------+
\end { verbatim}
The script in Makefile will automatically checkout, config, build the SeaBIOS source,
and integrat the binary into the final image.
%
% Working with Git
%
\section { Working with Git}
\subsection { Configuration of Git}
Inside the checkout you should install a commit-msg hook that adds a
Change-Id into commit messages, which uniquely identifies the logical
change in Gerrit even across multiple iterations of the commit. The
hook only needs to be installed once per clone, and installation can
be done with:
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ cd coreboot
$ cp . / util / gitconfig / * .git / hooks
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
configure your name and email in git.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git config - - global user.name "Your Name Comes Here"
$ git config - - global user.email your.email@example.com'
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
The name~\ref { user name} and email~\ref { Contact Information} should be the same the settings in gerrit.
Otherwise you can not push you code to community.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Then run the following command once, to tell git that by default you
want to submit all commits in the currently checked-out branch for
review on gerrit:
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git config remote.origin.push HEAD:refs / for / master
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
The above configurations for git has been integrated into Makefile. You can run
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ make gitconfig
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\subsection { Work flow}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
It is recommended that you make a new branch when you start to work, not pushing changes to master.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git checkout master - b mybranch
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
After you have done your changes, run:
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git add file _ need _ to _ submit.c
$ git commit - m "my first change."
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
% Does anyone have a better word to describe the phylosophy of spliting changes to patches?
You need to realize that the changes you have made should be well devided into
several commits. Each of them has one and only one meaning. You could use git rebase -i to
split, squash, remove, rewrite you comment.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Here is an example of a well-formatted commit message:
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
examplecomponent: Refactor duplicated setup into a function
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Setting up the demo device correctly requires the exact same register
values to be written into each of the PCI device functions. Moving the
writes into a function allows also otherexamplecomponent to use them.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Signed-off-by: Joe Hacker <joe@hacker.email>
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Then you can push the code.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ git push
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
You can go to the ~\ref { sec:gerrit} gerrit to see if your changes is successfully pushed.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Often it might happen that the patch you sent for approval is not good
enough from the first attempt. Gerrit and git make it easy to track
patch evolution during the review process until patches meet our
quality standards and are ready for approval.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
You can easily modify a patch sent to gerrit by you or even by someone
else. Just apply it locally using one of the possible ways to do it,
make a new local commit that fixes the issues reported by the
reviewers, then rebase the change by preserving the same Change-ID. We
recommend you to use the git rebase command in interactive mode,
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Once your patch gets a +2 comment, your patch can be merged (cherry-pick, actually) to origin/master.
2004-02-10 18:30:04 +01:00
2003-11-22 16:15:47 +01:00
%
2015-11-17 16:50:14 +01:00
% Working with Gerrit
2010-04-27 08:56:47 +02:00
%
2004-02-10 18:30:04 +01:00
2015-11-17 16:50:14 +01:00
\section { Working with Gerrit}
\label { sec:gerrit}
If you are a coreboot user, not planning to contribute, you can skip this section.
\subsection { Get gerrit account}
You need to get an OpenID first. Currently Google account give you an OpenID. It means, if you have a gmail account, you have an OpenID. You can try to signed in.
click \url { http://review.coreboot.org}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
%\includegraphics[width=6.00in,height=1.00in]{gerrit_signin.png}
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
+-----------------------------------------------------------+
|All Projects Documentation Register Sign In |
|Open Merged Abandoned |
|Search for status:open |
+-----------------------------------------------------------+
|Subject Status Owner Project Branch Updated CR V |
|cpu: Rename.. Alexandru coreboot master 1:20 PM +1 |
|cpu: Only a.. Alexandru coreboot master 1:17 PM X |
|arch/x86: D.. Alexandru coreboot master 1:09 PM |
| |
| Next -> |
|Press '?' to view keyboard shortcuts | Powered by Gerrit |
+-----------------------------------------------------------+
2003-11-22 16:15:47 +01:00
\end { verbatim}
}
2015-11-17 16:50:14 +01:00
Click ``Sign In'', You will get
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
%\includegraphics[width=6.00in,height=4.00in]{openid.png}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
You will be redirected to Google to get logging in.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
% \includegraphics[width=6.00in,height=1.50in]{login.png}
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
Sign In to Gerrit Code Review at review.coreboot.org
+--------------------------------------------------+
+--------------------------------------------------+
[] Remember me
Sign In Cancel
Sign in with a Google Account
Sign in with a Yahoo! ID
What is OpenID?
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
OpenID provides secure single-sign-on, without revealing your passwords to this website.
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
There are many OpenID providers available. You may already be member of one!
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Get OpenID
2003-11-22 16:15:47 +01:00
\end { verbatim}
}
2015-11-17 16:50:14 +01:00
\subsection { Configure account}
Click the dropdown button near the user name and click ``Settings''
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
% \includegraphics[width=6.00in,height=4.00in]{settings}
% \epsfig{figure=keystroke_left}
% \epstopdf {file=settings.eps}
% \epsfig{file=settings.eps}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\label { user name} In ``profile'' section, type the user name for git. This probably can be changed only once.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
Profile Username zbao
Preferences Full Name Zheng Bao
Watched Projects Email Address zheng.bao@amd.com
Contact Information Registered Jun 28, 2011 4:33 PM
SSH Public Keys Account ID 1000034
HTTP Password
Identities
Groups
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
\label { Contact Information} In ``Contact Information'', enter you full name and your Email, which should be configured in your .gitconfig
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
Full Name _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Preferred Email _ _ _ _ _ _ _ _ _ _ _ _ _ _ Registered Email
2010-04-27 08:56:47 +02:00
2015-11-17 16:50:14 +01:00
Save Changes
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
In ``SSH Public Keys'' section, upload your public key.
{ \small
2003-11-22 16:15:47 +01:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
Status Algorithm Key Comment
Delete
Add SSH Public Key
> How to Generate an SSH Key
+--------------------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+--------------------------+
clear Add Close
2003-11-22 16:15:47 +01:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
2003-11-22 16:15:47 +01:00
2015-11-17 16:50:14 +01:00
Click ``Add Key ...''
Go back to you linux command line and type:
{ \small
2009-04-17 18:18:02 +02:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
$ ssh - keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhengbao/.ssh/id_ rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zhengbao/.ssh/id_ rsa.
Your public key has been saved in /home/zhengbao/.ssh/id_ rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx zhengb@host.domain
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| |
| |
| |
| |
| |
| |
+-----------------+
2009-04-17 18:18:02 +02:00
\end { verbatim}
2015-11-17 16:50:14 +01:00
}
The data in ~/.ssh/id\_ rsa.pub is your public key. Copy them to the box in the page of ``SSH Public Keys'' and click add.
2009-04-17 18:18:02 +02:00
2015-11-17 16:50:14 +01:00
In ``HTTP Password'' section, click button ``Generate Password''. You will get the password for http checkout.
{ \small
2009-04-23 05:59:33 +02:00
\begin { verbatim}
2015-11-17 16:50:14 +01:00
Username XXX
Password XXXXXXXXXXXX
2009-04-23 05:59:33 +02:00
2015-11-17 16:50:14 +01:00
Generate Password Clear Password
2009-04-23 05:59:33 +02:00
\end { verbatim}
}
2015-11-17 16:50:14 +01:00
\subsection { Reviewing Changes}
For each listed changes in Gerrit, you can review, comment, evaluate,
cherry-pick, and even re-submit them. For you own patches, only you can
abandon them. Click in the file and commit message, you can add in-line comment.
2009-04-23 05:59:33 +02:00
2004-02-10 18:30:04 +01:00
%
2009-04-17 18:18:02 +02:00
% 14 Glossary
2003-11-22 16:15:47 +01:00
%
\section { Glossary}
\begin { itemize}
\item payload
2009-04-21 23:45:11 +02:00
coreboot only cares about low level machine initialization, but also has
2003-11-22 16:15:47 +01:00
very simple mechanisms to boot a file either from FLASHROM or IDE. That
file, possibly a Linux Kernel, a boot loader or Etherboot, are called
payload, since it is the first software executed that does not cope with
pure initialization.
\item flash device
Flash devices are commonly used in all different computers since unlike
ROMs they can be electronically erased and reprogrammed.
2015-11-17 16:50:14 +01:00
\item Gerrit
Gerrit is a web based code review system, facilitating online code
reviews for projects using the Git version control system.
Gerrit makes reviews easier by showing changes in a side-by-side
display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any
authorized user to submit changes to the master Git repository, rather
than requiring all approved changes to be merged in by hand by the
project maintainer. This functionality enables a more centralized
usage of Git.
2003-11-22 16:15:47 +01:00
\end { itemize}
\newpage
%
2004-02-10 18:30:04 +01:00
% 14 Bibliography
2003-11-22 16:15:47 +01:00
%
\section { Bibliography}
2009-04-21 23:45:11 +02:00
\subsection { Additional Papers on coreboot}
2003-11-22 16:15:47 +01:00
\begin { itemize}
2010-04-27 08:56:47 +02:00
\item
2009-04-21 23:45:11 +02:00
\textit { \url { http://www.coreboot.org/Documentation} }
2003-11-22 16:15:47 +01:00
\end { itemize}
\subsection { Links}
\begin { itemize}
\item Etherboot: \textit { \url { http://www.etherboot.org/} }
\item OpenBIOS: \textit { \url { http://www.openbios.org/} }
2015-11-17 16:50:14 +01:00
\item Flashrom: \textit { \url { http://www.flashrom.org/} }
\item Seabios: \textit { \url { http://www.seabios.org/} }
2003-11-22 16:15:47 +01:00
\end { itemize}
2015-11-17 16:50:14 +01:00
2003-11-22 16:15:47 +01:00
\end { document}