Revise project license to be GNU GPL version 2 to allow incorporating Broadcom BCM432...
[bootloader-ap.git] / README
1 bootloader-ap (Boot Loader for Application Processors)
2
3 Developed by TJ <linux@tjworld.net>
4 Copyright (C) 2010-
5
6 Originally licensed under the GPLv3. Revised license to be GPL v2 November 3rd 2010 to allow inclusion
7 of the Broadcom BCM4329 driver from the HTC Vision Linux kernel.
8
9 A GPLv2 licensed (some individual files are BSD licensed) boot-loader for ARM-based communications 
10 devices based on modern System-on-Chip architectures such as the Qualcomm MSM7x30, which is the 
11 first target of this implementation.
12
13 The intention is to provide a completely Free and Open Source boot-loader that can be utilised by 
14 system manufacturers and user's who prefer to install a custom boot-loader.
15
16 Inspired by the HTC Vision device, known as the HTC Desire Z and T-Mobile G2. This device was locked 
17 by HTC to prevent easy customisation.
18
19 = External libraries =
20
21
22 == Zlib 1.2.3 ==
23
24 From http://downloads.sourceforge.net/project/libpng/zlib/1.2.3/zlib-1.2.3.tar.gz
25
26 Extract:
27
28  tar -xzf zlib-1.2.3.tar.gz
29
30 Correct directory name:
31
32  mv zlib-1.2.3 zlib
33
34 Remove unwanted additional directories:
35
36  rm -rf contrib amiga as400 examples msdos old projects qnx win32
37
38
39 = Developer Notes =
40
41 Gathering the chip-set specifications for some parts of this code can be challenging. Prudent use of
42 a search engine can uncover many fragments of open-source code patches to many Linux kernel projects
43 for embedded devices.
44
45 If other source-code is directly imported into this project ensure the license is compatible and note
46 all files that use a different license to the project's license in the COPYRIGHT file.
47
48 To guard against any possible challenge as to the source of specifications and settings that
49 aren't publicly released by chip-set or device manufacturers there is a comment template to prefix
50 to any code that describes or uses those specifications or settings. Here's an example:
51
52 /*
53   SOURCE: HTC Vision Linux kernel 2.6.32 source
54   SOURCE_FILE: arch/arm/mach-msm/arch-init-7x30.S
55   SOURCE_URL: http://dl3.htc.com/RomCode/Source_and_Binaries/vision-2.6.32-g814e0a1.tar.gz
56   SOURCE_FOR: MSM7x30 equates, status-codes, IOMEM addresses, CP15 functions
57 */
58
59 ... some code
60
61 /* SOURCE_END */
62
63 By using pseudo-defines (SOURCE, SOURCE_*, SOURCE_END) inside a C-style comment block (/* ... */) it
64 makes it possible to use an automated tool to gather and document all sources of specifications and 
65 settings.