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