soc/intel/ptl: Update ME specification version to 21
[coreboot.git] / Documentation / contributing / documentation_ideas.md
blob54b3efa5bc83e81020624f7b014fc62ad56f63c9
1 # Documentation Ideas
3 This section collects ideas to improve the coreboot documentation and
4 should serve as a pool of ideas for people who want to improve the current
5 documentation status of coreboot.
7 The main purpose of this document is to gather documentation ideas for technical
8 writers of the seasons of docs. Nevertheless anyone who wants to help improving
9 the current documentation situation can take one of the projects.
11 Each entry should outline what would be done, the benefit it brings
12 to the project, the pre-requisites, both in knowledge and parts. They
13 should also list people interested in supporting people who want to work
14 on them.
16 ## Restructure Existing Documentation
18 The goal is to improve the user experience and structure the documentation more
19 logically. The current situation makes it very hard for beginners, but also for
20 experienced developers to find anything in the coreboot documentation.
22 One possible approach to restructure the documentation is to split it up such
23 that we divide the group of users into:
25 * (End-)users
26 Most probably users which _just_ want to use coreboot as fast as possible. This
27 section should include guidelines on how to build coreboot, how to flash coreboot
28 and also which hardware is currently supported.
30 * Developers
31 This section should more focus on the developer side-of-view. This section would
32 include how to get started developing coreboot, explaining the basic concepts of
33 coreboot and also give guideance on how to proceed after the first steps.
35 * Knowledge area
36 This section is very tighlight coupled to the developer section and might be merged
37 into it. The _Knowledge area_ can give a technical deep dive on various drivers,
38 technologies, etc.
40 * Community area
41 This section gives some room for the community: Youtube channels, conferences,
42 meetups, forums, chat, etc.
44 A [first approach](https://review.coreboot.org/c/coreboot/+/40327) has already been made here and might be a basis for the work.
45 Most of the documentation is already there, but scattered around the documentation
46 folder.
48 ### Requirements
49 * Understanding on how a different groups of users might use the documentation area
50 * Basic understanding of how coreboot works (Can be worked out _on-the-fly_)
52 ### Mentors
53 * christian.walter@9elements.com
54 * TBD
56 ## Update Howto/Guides
58 An important part to involve new people in the project, either as developer or
59 as enduser, are guides and how-to's. There are already some guides which need
60 to be updated to work, and could also be extended to multiple platforms, like
61 Fedora or Arch-Linux. Also guidance for setting up coreboot with a Windows
62 environment would be helpful.
64 In addition, the vboot guidance needs an update/extensions, that the security
65 features within coreboot can be used by non-technical people.
67 For developers, how to debug coreboot and various debugging techniques need
68 documentation.
70 ### Requirements
71 * Knowledge of virtual machines, how to install different OSs and set up the
72   toolchain on different operating systems
73 * Knowledge of debugging tools like gdb
75 ### Mentors
76 * christian.walter@9elements.com
77 * TBD
79 ## How to Support a New Board
81 coreboot benefits from running on as many platforms as possible. Therefore we
82 want to encourage new developers on porting existing hardware to coreboot.
83 Guidance for those new developers need to be made such that they are able to
84 take the first steps supporting new mainboards, when the SoC support already
85 exists. There should be a 'how-to' guide for this. Also what are common problems
86 and how to solve those.
88 ### Requirements
89 * Knowledge of how to add support for a new mainboard in coreboot
91 ### Mentors
92 * christian.walter@9elements.com
93 * TBD
95 ## Payloads
97 The current documentation of the payloads is not very effective. There should be
98 more detailed documentation on the payloads that can be selected via the make
99 menuconfig within coreboot. Also the use-cases should be described in more
100 detail: When to use which payload? What are the benefits of using payload X over
101 Y in a specific use-case ?
103 In addition it should be made clear how additional functionality e.g. extend
104 LinuxBoot with more commands, can be achieved.
106 ### Requirements
107 * Basic knowledge of the supported payloads like SeaBIOS, TinanoCore, LinuxBoot,
108   GRUB, Linux, ...
111 ### Mentors
112 * christian.walter@9elements.com
113 * TBD
116 ## coreboot Util Documentation
118 coreboot inherits a variaty of utilities. The current documentation only
119 provides a "one-liner" as an explanation. The list of util should be updated
120 with a more detailed explanation where possible. Also more "in-depths"
121 explanations should be added with examples if possible.
123 ### Requirements
124 * coreboot utilities
126 ### Mentors
127 * christian.walter@9elements.com
128 * TBD
131 ## CBMEM Developer Guide
133 CBMEM is the API that provides memory buffers for the use at OS runtime. It's a
134 core component and thus should be documented. Dos, don'ts and pitfalls when
135 using CBMEM. This "in-depth" guide is clearly for developers.
137 ### Requirements
138 * Deep understanding of coreboot's internals
140 ### Mentors
141 * TBD
142 * TBD
145 ## CBFS Developer Guide
147 CBFS is the in-flash filesystem that is used by coreboot. It's a core component
148 and thus should be documented. Update the existing CBFS.txt that still shows
149 version 1 of the implementation. A [first approach](https://review.coreboot.org/c/coreboot/+/33663/2)
150 has been made here.
151 This "in-depth" guide is clearly for developers.
153 ### Requirements
154 * Deep understanding of coreboot's internals
156 ### Mentors
157 * TBD
158 * TBD
161 ## Region API Developer Guide
163 The region API is used by coreboot when dealing with memory mapped objects that
164 can be split into chunks. It's a core component and thus should be documented.
165 This "in-depth" guide is clearly for developers.
167 ### Requirements
168 * Deep understanding of coreboot's internals
170 ### Mentors
171 * TBD
172 * TBD