User guide

13.3.1 Community development model
It should be stressed that the IP04 is a community effort, with many people contributing. In no
particular order: the Astfin
56
& BlackfinOne teams, uClinux
57
, Analog Devices Blackfin team, the
Asterisk community, and Atcom.
13.4 IP04 Design
This section provides technical details of how the IP04
hardware and software works.
When power is applied, the Blackfin boot ROM starts
reading from the 256k SPI flash chip. The program it
loads is called u-boot, a powerful boot loader that has
been ported to the Blackfin by the Analog Devices
Blackfin team. U-boot has a command line interface
that lets you load other programs from flash or via
Ethernet. In normal operation it automatically loads
and executes the uClinux kernel.
A 256M NAND flash chips is used as the main storage
for the IP04. NAND flash has the advantage of high
density and low cost. It's the same hardware that is
used in your MP3 player, so prices have plummeted
over recent years. However the Blackfin boot ROM
can't read the NAND flash directly, which is why we
need the SPI flash chip and u-boot to support the start
up process. Compared to many embedded Linux systems, the IP04 requires quite a lot of flash storage
(around 16M minimum) to store the Asterisk executable and audio prompts.
After booting the kernel runs out of SDRAM, and the NAND flash is mapped to the root filesystem. We
also use a portion of the SDRAM for temporary files, e.g. /tmp.
The IP04 runs Asterisk and the uClinux operating system. Asterisk was relatively easy to port to the
Blackfin, thanks to the similarities of uClinux to the Linux operating system, and the maturity of the
Blackfin gcc toolchain. The Astfin
58
build system is used - a system of nested Makefiles and patches
that simplifies the complex build process required for the IP04.
56. Astfin http://astfin.org
57. uClinux http://blackfin.uclinux.org
58. Astfin, http://astfin.org/
Page 54 TRICALCAR | www.wilac.net/tricalcar – Version: February 2008
Image 13: IP04 Hardware Architecture