Académique Documents
Professionnel Documents
Culture Documents
Philippe Robin
June 2004
Outline
Open source model Architecture and platforms support Linux 2.4 kernel Linux 2.6 kernel GNU GCC tool chain Debugging Cooperation Linux resources
Linux 2.4 kernel Linux Kernel Linux 2.6 kernel Linux 2.7 kernel
Preemtion, 0(1) scheduler, New Posix Thread Library (NPTL), Power Management etc
Gatekeepers
Open Source Repository www.kernel.org Other Contributors: -Platforms (Zaurus, iPaq) -Debian -Etc
ARM Source Tree Architecture & Platform Support ARM Linux Open Source Tree http://www.arm.linux.org.uk
Architectural Support
ARM uses Linux kernel internally to validate new ARM cores and technology
Used with simulation models, FPGA and Cores
Versatile Family
Versatile Platform Baseboard
Logic Tile
Analyzer Tile
BSP availability
ARM (early access) Open source (www.kernel.org)
availability usually coincide with hardware availability
10
11
Availability
2004Q2
12
13
Programmer statically assigns tasks to CPU Isolate tasks from each other SoC system compatibility
AMBA AXI bus inter-connect RealView development tools PrimeCell L220 L2 cache controller
OS dynamically shares task across multiple CPU Coherent and consistent view of memory
14
15
Availability
Mid-2004
IEM documentation
http://www.arm.com/products/CPUs/cpu-arch-IEM.html
THE ARCHITECTURE FOR THE DIGITAL WORLD Copyright ARM Ltd
16
Thumb2 support planned for 05Q4 ARMv7 (Tiger) scheduled for 2006
17
18
Publicly available
Bi-annual source and binary releases
Snapshots and binary packages Open source mailing lists
19
20
2005 Q4
Thumb2 support CPU support for ARM1156T2(F)-S
2006 Q2
Tiger CPU support
21
22
GCC roadmap
2.5.70 SMP (CP/CM916) 2.6 kernel (ARMv6, Integrator CP, AP) ARM1136 SMP
Thumb2
ARMv7
23
Linux - Debugging
Architectural support added for new cores
Currently ARMv6 support
24
Cooperation
Commercial Linux distributions
Montavista Metrowerks LynuxWorks Lineo
(http://www.mvista.com/) (http://www.metrowerks.com) (http://www.lynuxworks.com/) (http://www.lineo.co.jp)
25
26
Choice of C library
Glibc standard GNU C library uCLibc
http://www.uclibc.org
Decide on which library to use when building the cross compilation tool chain
27
28
29
Use Debugger
Load image as raw binary (i.e. @0x8000 for uncompressed Image) Set platform ID in r1 and initialise r0, r2 Disable semihosting and vector catch Set pc=0x8000 and run the kernel
THE ARCHITECTURE FOR THE DIGITAL WORLD Copyright ARM Ltd
30
Linux Filesystem
Contains system utilities and applications
Busybox for base utilities (http://www.busybox.net/) Need C library either Glibc or Newlib Additional utilities such as:
Sysvinit, shells, ftpd, telnet
31
Linux Debugging
Kernel debug
With JTAG connection use commercial debugger for early kernel bring up Use Kgdb to debug kernel Commercial debuggers offer additional features to debug and profile the Linux kernel:
Choice of halted/running system debug Profiling
Application debug
Use GDB over serial or networking link
Either natively or in cross-debug environment Choice over graphical front-end used
32
33