limine: Document Requests Section
diff --git a/PROTOCOL.md b/PROTOCOL.md
index 8251a30c..2e5e2e02 100644
--- a/PROTOCOL.md
+++ b/PROTOCOL.md
@@ -43,7 +43,7 @@ struct limine_example_request {
bootloader will scan for inside the executable file to find requests. Requests
may be located anywhere inside the executable as long as they are 8-byte
aligned. There may only be 1 of the same request. The bootloader will refuse
-to boot an executable with multiple of the same request IDs.
+to boot an executable with multiple of the same request IDs. Alternatively, it is possible to provide a list of requests explicitly via an executable file section. See "Limine Requests Section".
* `revision` - The revision of the request that the kernel provides. This is
bumped whenever new members or functionality are added to the request structure.
Bootloaders process requests in a backwards compatible manner, *always*. This
@@ -73,6 +73,13 @@ revisions do.
This is all there is to features. For a list of official Limine features, read
the "Feature List" section below.
+## Limine Requests Section
+
+If the executable kernel file contains a `.limine_reqs` section, the bootloader
+will, instead of scanning the executable for requests, fetch the requests
+from a NULL-terminated array of pointers to the provided requests, contained
+inside said section.
+
## Entry memory layout
The protocol mandates kernels to load themselves at or above
