190 likes | 440 Views
Embedded Linux for ARM Architecture. Philippe.Robin@arm.com. THE ARCHITECTURE FOR THE DIGITAL WORLD. Summary. System overview Strategy Technical challenges GNU roadmap Board support Linux vendors Resources. Applications X11, Qt,Microwindows, Networking Utilities etc. Kernel. Milo.
E N D
Embedded Linux for ARM Architecture Philippe.Robin@arm.com THE ARCHITECTURE FOR THE DIGITAL WORLD
Summary • System overview • Strategy • Technical challenges • GNU roadmap • Board support • Linux vendors • Resources
Applications X11, Qt,Microwindows, Networking Utilities etc... Kernel Milo Hardware Network Main Components • Milo (BIOS equivalent) • Initialises the board • Start kernel execution • Based on AFS 1.4.x • Kernel • Configurable • includes drivers and modules • Applications • Filesystem image (cramfs…) • Reside in Flash or cross-mounted directory via NFS • Imported packages • Hardware • Integrator AP or CP • ARM Core + Logic modules
Linux Kernel • Support for ARM cores with MMU • ARM 720, 92x, 102x, 113x • Most options are configurable using graphical tool • Pre-defined configurations for selected boards • Two main versions: • 2.4.x (currently 2.4.19 rmk6) • 2.5.x leading to 2.6 kernel (planned end 2003) • Availability: • base kernel source (open source and DevZone) • ARM additional patches • rmki (open source: http://www.arm.uk.linux.org) • ARM specific patches (DevZone)
Applications • Filesystem containing system utilities and applications • Packages can be selected at build time using configuration tool • Import packages publicly available (i.e. Debian) • ARM DevZone contains: • Pre-built images • Tools and packages to build filesystem images
Development Environment • Based on Linux host platforms • Use GNU cross compiler (also available on ARM DevZone) • ARM Development tools can be used to: • Load Kernel images using ARM Debugger with ICE tools • Symbolic debug of kernel images or drivers (using breakpoints, trace etc.) • GDB used to debug applications
Linux Strategy • Based on open source and standards • Contribute new code back to open source http://www.arm.uk.linux.org • Provide support for ARM evaluation boards • Add support for new ARM cores (e.g. ARM10x, ARMv6) • Develop and validate new functionality (energy management, security…) • Used internally for system validation (cores and boards) • Partner support via ARM DevZone
Linux Strategy • Work with OEMs creating products using Linux • Work with Embedded Linux companies • Offer comprehensive support for kernels, applications and development environment • ARM DevZone used as focal point of contact • ARM connected community program
ARMv6 support • Full ARMv6 support with 2.6 kernel • Includes kernel optimisations to exploit ARMv6 architecture • 2.4 kernel patch to run legacy code • Early availability via patches on DevZone • Aligned with 2.6 kernel release and hardware availability • Used with GNU development toolchain supporting new v6 instructions (binutils initially)
Technical challenges (1) • Reduced memory footprint • Modular kernel • Library size • Multiple choices of libraries such as GNU C library. • Support for non-MMU cores • Linux only runs on cores with Memory Protection Unit • uCLinux • Adapted version of Linux to run on non-MMU cores • Uses different libraries
Technical challenges (2) • Thumb support • Reduced memory footprint • Security • Support for encryption • Use of specialised hardware features • Power management • Advanced Configuration and Power Interface (APCI) • Intelligent Energy management (IEM)(hardware and software support)
Technical challenges (3) • Symmetric Multi-Processor • Synchronization issues • Memory coherence • Toolchain support • Expose kernel resources to the debugger • Halted System Debug • Running System Debug • System profiling • Kernel profiling • Use Trace Macrocell capabilities
GCC 2.95.3 Stabilized version APCS PE Coff/ Elf Dwarf GCC 3.2.x ATPCS ARM Architecture 5T (VFP) Xscale Next release based GCC 3.x Support ARM Architecture 6 GNU Roadmap
Integrator/CM Core Modules CM7TDMI CM740T CM720T CM940T CM920T-ETM CM946E-S CM966E-S CM10200 CM926EJ-S Integrator/LM Logic Modules LM-XCV2000E LM-EP20K600E Integrator/PP Porting Platforms Integrator/LT Logic Tile LT-XC2V6000 IM-LT1 Integrator/CP Compact Platform Integrator/AP ASIC DevelopmentPlatform Integrator/IM Interface Modules Integrator/AM Analyzer Module Board support
Main Linux vendors • Montavista • http://www.mvista.com • Metrowerks • http://www.metrowerks.com • LynuxWorks • http://www.lynuxworks.com • Lineo • http://www.lineo.co.jp
Additional resources • http://www.kernel.org • http://www.armdevzone.com • http://www.arm.uk.linux.org • http://www.gnu.org • http://www.uclinux.org • http://www.mvista.com • http://www.metrowerks.com • http://www.lynuxworks.com • http://www.lineo.co.jp • http://www.openpda.com • http://www.trolltech.com