aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README51
1 files changed, 51 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..ba997b1
--- /dev/null
+++ b/README
@@ -0,0 +1,51 @@
+
+The bootloader environment consists of a set of libraries that provide
+various features and a couple small driver programs that build against
+these libraries. The libraries used come from three categories --
+generic (containing code useful to any bootloader), architecture
+(containing code useful to a specific cpu, system-on-chip, etc), and
+board (containing code useful to a single specific device)
+
+For the purpose of this discussion, we will involve the fictional
+companies Outstanding Electronics Manufacturing (OEM) and Silicon
+Engineering Management, Inc (SEMI). OEM produces the quality Brick
+mobile device using SEMI's 65002 ARM-based system-on-chip.
+
+Common bootloader libraries and base architectures:
+
+boot/include/boot headers
+boot/libboot libboot.a
+boot/libc libboot_c.a
+boot/arch_armv6 libboot_arch_armv6.a
+
+Architecture-specific libraries for SEMI 65002 SOC:
+
+partner/semi/boot/include/65002 headers
+partner/semi/boot/arch_65002 liboot_arch_65002.a
+
+Device-specific library for OEM Brick phone:
+
+partner/oem/brick/product_config.mk configuration
+partner/oem/brick/boot libboot_board_brick.a
+
+The actual bootloader:
+
+boot/bootloader bootloader
+
+
+The product_config.mk defines three important build variables:
+
+DEVICE_BOOTLOADER_LIBS := \
+ libboot_board_brick.a \
+ libboot_arch_65002.a \
+ libboot_arch_armv6.a
+
+DEVICE_BOOTLOADER_LINK_SCRIPT := \
+ partner/semi/boot/boot.ld
+
+DEVICE_BOOTLOADER_INIT := \
+ partner/semi/boot/init.S
+
+Which are used by the bootloader to specify which board and
+architecture specific libraries to link against as well as what link
+script and init.S to use