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