• Home
Name Date Size #Lines LOC

..--

arch_armv6/03-May-2024-17846

arch_msm7k/03-May-2024-2,5381,757

include/03-May-2024-2,3451,322

libboot/03-May-2024-565243

libc/03-May-2024-1,230557

nandwrite/03-May-2024-411260

usbloader/03-May-2024-960689

Android.mkD03-May-2024775 233

CleanSpec.mkD03-May-20242.2 KiB500

READMED03-May-20241.7 KiB5235

fastboot_protocol.txtD03-May-20245.8 KiB174111

README

1
2The bootloader environment consists of a set of libraries that provide
3various features and a couple small driver programs that build against
4these libraries.  The libraries used come from three categories --
5generic (containing code useful to any bootloader), architecture
6(containing code useful to a specific cpu, system-on-chip, etc), and
7board (containing code useful to a single specific device)
8
9For the purpose of this discussion, we will involve the fictional
10companies Outstanding Electronics Manufacturing (OEM) and Silicon
11Engineering Management, Inc (SEMI).  OEM produces the quality Brick
12mobile device using SEMI's 65002 ARM-based system-on-chip.
13
14Common bootloader libraries and base architectures:
15
16boot/include/boot                     headers
17boot/libboot                          libboot.a
18boot/libc                             libboot_c.a
19boot/arch_armv6                       libboot_arch_armv6.a
20
21Architecture-specific libraries for SEMI 65002 SOC:
22
23partner/semi/boot/include/65002       headers
24partner/semi/boot/arch_65002          liboot_arch_65002.a
25
26Device-specific library for OEM Brick phone:
27
28partner/oem/brick/product_config.mk   configuration
29partner/oem/brick/boot                libboot_board_brick.a
30
31The actual bootloader:
32
33boot/bootloader                       bootloader
34
35
36The product_config.mk defines three important build variables:
37
38DEVICE_BOOTLOADER_LIBS := \
39	libboot_board_brick.a \
40	libboot_arch_65002.a \
41	libboot_arch_armv6.a
42
43DEVICE_BOOTLOADER_LINK_SCRIPT := \
44	partner/semi/boot/boot.ld
45
46DEVICE_BOOTLOADER_INIT := \
47	partner/semi/boot/init.S
48
49Which are used by the bootloader to specify which board and
50architecture specific libraries to link against as well as what link
51script and init.S to use
52