diff --git a/README b/README index a5ffbb5ad1..d4afcfafea 100644 --- a/README +++ b/README @@ -3517,6 +3517,11 @@ For PowerPC, the following registers have specific use: average for all boards 752 bytes for the whole U-Boot image, 624 text + 127 data). +On Blackfin, the normal C ABI (except for P5) is followed as documented here: + http://docs.blackfin.uclinux.org/doku.php?id=application_binary_interface + + ==> U-Boot will use P5 to hold a pointer to the global data + On ARM, the following registers are used: R0: function argument word/integer result diff --git a/doc/README.blackfin b/doc/README.blackfin new file mode 100644 index 0000000000..a837d90f21 --- /dev/null +++ b/doc/README.blackfin @@ -0,0 +1,46 @@ +Notes for the Blackfin architecture port of Das U-Boot + + ========= + ! ABOUT ! + ========= + + +Blackfin Processors embody a new breed of 16/32-bit embedded processor, ideally +suited for products where a convergence of capabilities are necessary - +multi-format audio, video, voice and image processing; multi-mode baseband and +packet processing; control processing; and real-time security. The Blackfin's +unique combination of software flexibility and scalability has gained it +widespread adoption in convergent applications. + + +The Blackfin processor is wholly developed by Analog Devices Inc. + + =========== + ! SUPPORT ! + =========== + +All open source code for the Blackfin processors are being handled via our +collaborative website: +http://blackfin.uclinux.org/ + +In particular, bug reports, feature requests, help etc... for Das U-Boot are +handled in the Das U-Boot sub project: +http://blackfin.uclinux.org/gf/project/u-boot + +This website is backed both by an open source community as well as a dedicated +team from Analog Devices Inc. + + ============= + ! TOOLCHAIN ! + ============= + +To compile the Blackfin aspects, you'll need the GNU toolchain configured for +the Blackfin processor. You can obtain such a cross-compiler here: +http://blackfin.uclinux.org/gf/project/toolchain + + ================= + ! DOCUMENTATION ! + ================= + +For Blackfin specific documentation, you can visit our dedicated doc wiki: +http://docs.blackfin.uclinux.org/doku.php?id=bootloaders:u-boot diff --git a/doc/README.standalone b/doc/README.standalone index 39988317ee..3495f54f58 100644 --- a/doc/README.standalone +++ b/doc/README.standalone @@ -19,11 +19,11 @@ Design Notes on Exporting U-Boot Functions to Standalone Applications: thus the compiler cannot perform type checks on these assignments. 2. The pointer to the jump table is passed to the application in a - machine-dependent way. PowerPC, ARM and MIPS architectures use a - dedicated register to hold the pointer to the 'global_data' - structure: r29 on PowerPC, r8 on ARM and k0 on MIPS. The x86 - architecture does not use such a register; instead, the pointer to - the 'global_data' structure is passed as 'argv[-1]' pointer. + machine-dependent way. PowerPC, ARM, MIPS and Blackfin architectures + use a dedicated register to hold the pointer to the 'global_data' + structure: r29 on PowerPC, r8 on ARM, k0 on MIPS, and P5 on Blackfin. + The x86 architecture does not use such a register; instead, the pointer + to the 'global_data' structure is passed as 'argv[-1]' pointer. The application can access the 'global_data' structure in the same way as U-Boot does: @@ -49,11 +49,12 @@ Design Notes on Exporting U-Boot Functions to Standalone Applications: 4. The default load and start addresses of the applications are as follows: - Load address Start address - x86 0x00040000 0x00040000 - PowerPC 0x00040000 0x00040004 - ARM 0x0c100000 0x0c100000 - MIPS 0x80200000 0x80200000 + Load address Start address + x86 0x00040000 0x00040000 + PowerPC 0x00040000 0x00040004 + ARM 0x0c100000 0x0c100000 + MIPS 0x80200000 0x80200000 + Blackfin 0x00001000 0x00001000 For example, the "hello world" application may be loaded and executed on a PowerPC board with the following commands: