summaryrefslogtreecommitdiff
path: root/doc/develop
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2024-10-09 16:58:42 -0600
committerTom Rini <[email protected]>2024-10-09 22:04:56 -0600
commit1ff60b1f0a0973b5acda21232262f6745491e5af (patch)
tree84e785eb54ca23b131931569558e6ad7d42c5a20 /doc/develop
parent93b9cd792089e536f2bfa85d9903fd4798209f76 (diff)
parent5ba825194aa0e04fbd07da6f618c37d9934f4f2d (diff)
Merge tag 'efi-2025-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-01-rc1 Documentation: * Move the generic memory-documentation to doc/ * Fix typo boormethod UEFI: * Delete rng-seed if having EFI RNG protocol * Don't call restart_uboot in EFI watchdog test * Simplify building EFI binaries in Makefile * Show FirmwareVendor and FirmwareRevision in helloworld * Add debug output for efi bootmeth Other: * CONFIG_CMD_CLK should depend on CONFIG_CLK * simplify clk command * enable clk command on the sandbox
Diffstat (limited to 'doc/develop')
-rw-r--r--doc/develop/index.rst1
-rw-r--r--doc/develop/memory.rst49
-rw-r--r--doc/develop/uefi/uefi.rst2
3 files changed, 51 insertions, 1 deletions
diff --git a/doc/develop/index.rst b/doc/develop/index.rst
index 0d0e60ab56c..cbea38d4323 100644
--- a/doc/develop/index.rst
+++ b/doc/develop/index.rst
@@ -13,6 +13,7 @@ General
codingstyle
designprinciples
docstyle
+ memory
patman
process
release_cycle
diff --git a/doc/develop/memory.rst b/doc/develop/memory.rst
new file mode 100644
index 00000000000..e9e65ba4c6c
--- /dev/null
+++ b/doc/develop/memory.rst
@@ -0,0 +1,49 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Memory Management
+-----------------
+
+.. note::
+
+ This information is outdated and needs to be updated.
+
+U-Boot runs in system state and uses physical addresses, i.e. the
+MMU is not used either for address mapping nor for memory protection.
+
+The available memory is mapped to fixed addresses using the
+memory-controller. In this process, a contiguous block is formed for each
+memory type (Flash, SDRAM, SRAM), even when it consists of several
+physical-memory banks.
+
+U-Boot is installed in XIP flash memory, or may be loaded into a lower region of
+RAM by a secondary program loader (SPL). After
+booting and sizing and initialising DRAM, the code relocates itself
+to the upper end of DRAM. Immediately below the U-Boot code some
+memory is reserved for use by malloc() [see CONFIG_SYS_MALLOC_LEN
+configuration setting]. Below that, a structure with global Board-Info
+data is placed, followed by the stack (growing downward).
+
+Additionally, some exception handler code may be copied to the low 8 kB
+of DRAM (0x00000000 ... 0x00001fff).
+
+So a typical memory configuration with 16 MB of DRAM could look like
+this::
+
+ 0x0000 0000 Exception Vector code
+ :
+ 0x0000 1fff
+ 0x0000 2000 Free for Application Use
+ :
+ :
+
+ :
+ :
+ 0x00fb ff20 Monitor Stack (Growing downward)
+ 0x00fb ffac Board Info Data and permanent copy of global data
+ 0x00fc 0000 Malloc Arena
+ :
+ 0x00fd ffff
+ 0x00fe 0000 RAM Copy of Monitor Code
+ ... eventually: LCD or video framebuffer
+ ... eventually: pRAM (Protected RAM - unchanged by reset)
+ 0x00ff ffff [End of RAM]
diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
index 94482758573..0760ca91d4f 100644
--- a/doc/develop/uefi/uefi.rst
+++ b/doc/develop/uefi/uefi.rst
@@ -720,7 +720,7 @@ Executing the built in hello world application
A hello world UEFI application can be built with::
- CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+ CONFIG_BOOTEFI_HELLO_COMPILE=y
It can be embedded into the U-Boot binary with::