summaryrefslogtreecommitdiffstats
path: root/HACKING
blob: 6632aa41b7acc3e59cb77483469367d99e762214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
-------------------------------------------------------------------------------
HACKING
-------------------------------------------------------------------------------

Development Guidelines
----------------------

Please read http://www.coreboot.org/Development_Guidelines.


Doxygen-generated Code/API Documentation
----------------------------------------

The source code of coreboot is documented using Doxygen-style code comments.
The Doxygen tool can generate HTML API documentation out of these comments.

You can generate this documentation via:

  make doxy

The documentation will be stored in the doxygen/html directory.

The generation of the documentation takes ca. 1-2 minutes, and may require
more than 30 MB of space on the hard drive, depending on the options
selected in the Doxygen config file, util/doxygen/Doxyfile.coreboot.

Required software:

  * Doxygen (tested with Doxgen 1.5.1)
    http://www.doxygen.org/
  
  * dot (>= 1.8.10)
    http://www.graphviz.org/

Building on Mac OS X
-------------------

You have to install MacPorts (tried with 1.4).

Then you go

 $ sudo port install gettext
 $ sudo port install bison
 $ sudo port install i386-elf-binutils 
 $ sudo port install i386-elf-gcc
 $ rehash

Third-party Code and License Overview
-------------------------------------

* util/dtc/*: GPLv2 or later
  Source: git://www.jdl.com/software/dtc.git
  Current version we use: 332c53642557a018ca9c729a4cd284c6e34b7f72 (07/2006)

* util/kconfig/*: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Current version we use: 15508d22d00277a1f2a1022dce38f2772c810d32 (02/2006)

* util/lar/*: GPLv2
  Independant project, but written specifically for coreboot.

* util/lar/elf.h: LGPL-2.1 or later
  Source: glibc, http://ftp.gnu.org/gnu/glibc/
  Original files: elf/elf.h
  Current version we use: 2.7

* include/lar.h, util/lar/lar.h, util/lar/example.c:
  Dual-licensed (GPLv2 + revised BSD license)

* util/lzma/C/*: Dual-licensed, LGPL + Common Public License (CPL). There's
  a special exception, please see util/lzma/C/7zip/Decompress/LzmaDecode.c.
  Source: LZMA SDK, http://sourceforge.net/projects/sevenzip/
  Current version we use: LZMA SDK 4.42 (05/2006)

* util/lzma/minilzma.cc: ?
  Source: ?
  Current version we use: ?

* util/nrv2b/nrv2b.c: ?
  Source: ?
  Current version we use: ?

* include/elf.h: LGPLv2.1 or later
  Source: The GNU C Library, http://www.gnu.org/software/libc/
  You can get the latest version of the file via CVS:
  cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc co libc/elf/elf.h
  Current version we use: CVS rev. 1.156

* include/device/pci_ids.h: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Current version we use: e81e557a8f1e22fab1b1bdc649ac0d24017ddce2

* lib/lzmadecode.[ch]: Dual-licensed, LGPL + Common Public License (CPL).
  There's a special exception, please see lib/lzmadecode.[ch].
  Source: LZMA SDK, http://sourceforge.net/projects/sevenzip/
  Current version we use: LZMA SDK 4.40 (05/2006)

* lib/compute_ip_checksum.c, include/ip_checksum.h: GPLv2
  Source: kexec-tools, http://www.xmission.com/~ebiederm/files/kexec/
  Current version we use: kexec-tools 1.101

* lib/clog2.c: Triple-licensed, MPL 1.1/GPL 2.0/LGPL 2.1
  Source: http://lxr.mozilla.org/mozilla1.8.0/source/js/src/jscpucfg.c
  Current version we use: CVS rev. 3.25

* include/arch/x86/div64.h: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Current version we use: e2afe67453e5b1499459ee3596b1e7924a5208f5

* include/arch/x86/cpu.h: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Files: include/asm-i386/processor.h, arch/i386/kernel/cpu/mtrr/state.c
  Current version we use: 297d9c035edd04327fedc0d1da27c2b112b66fcc (06/2007)

* include/arch/x86/arch/spinlock.h: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Files: include/asm-i386/spinlock.h, include/asm-i386/spinlock_types.h
  Current version we use: 139ec7c416248b9ea227d21839235344edfee1e0 (12/2006)

* include/arch/x86/swab.h: GPLv2
  Source: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
  Current version we use: ?

* arch/x86/i8259.c: GPLv2
  Source: Linux kernel, arch/i386/boot/setup.S
  Current version we use: Linux 2.2.26

* console/vsprintf.c, console/vtxprintf.c: GPLv2
  Source: Linux kernel, lib/vsprintf.c
  Current version we use: ?