Embedding Linux On The Encore Simputer

1,763 views
1,677 views

Published on

Porting linux on Arm

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,763
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
76
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Embedding Linux On The Encore Simputer

  1. 1. Embedding Linux on the Encore Simputer Samyeer Metrani Encore Software Limited
  2. 2. Agenda <ul><li>The Encore Simputer </li></ul><ul><li>Building an ARM Linux Kernel </li></ul><ul><li>Porting to the Encore Simputer </li></ul><ul><li>Porting the 2.6-test9 kernel </li></ul>
  3. 3. The Encore-Simputer
  4. 4. The Encore Simputer <ul><li>206Mhz StrongARM Processor </li></ul><ul><li>32-64 MB DRAM – 16-32MB Flash </li></ul><ul><li>LCD Panel Color/Mono Display </li></ul><ul><li>TouchPanel Input </li></ul><ul><li>Internal Mic & Speaker </li></ul><ul><li>USB Slave and Serial Port PC Connectivity </li></ul><ul><li>Smartcard Interface </li></ul><ul><li>V.90 Internal Modem </li></ul><ul><li>USB Master </li></ul><ul><li>Compact Flash (CF II) </li></ul>
  5. 5. What is on the Simputer? <ul><li>Stock Linux ARM Kernel </li></ul><ul><li>glibc 2.2.4 </li></ul><ul><li>XWindows 4.2 and Related X Libraries </li></ul><ul><li>GTK 1.2 Libraries </li></ul><ul><li>Networking Tools </li></ul><ul><ul><li>PPP, ftp, telnet, … </li></ul></ul><ul><li>Utilities and Feature Demo’s </li></ul>
  6. 6. Tools Needed <ul><li>The ARM Toolchain </li></ul><ul><li>Using the skiff toolchain </li></ul><ul><li>Other pre-built toolchains </li></ul><ul><ul><li>ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/ </li></ul></ul><ul><li>Building a toolchain. </li></ul>
  7. 7. Building an ARM-Linux Kernel <ul><li>Selecting a Platform </li></ul><ul><ul><li>The Assabet Platform </li></ul></ul><ul><li>The Linux Kernel </li></ul><ul><ul><li>www.kernel.org </li></ul></ul><ul><li>Russel King’s Patches </li></ul><ul><ul><li>www.arm.linux.org.uk </li></ul></ul><ul><li>Building the first kernel </li></ul><ul><ul><li>Cross Compilation Support </li></ul></ul><ul><ul><li>Makefile Modifications. </li></ul></ul>
  8. 8. Running the Kernel <ul><li>The Bootloader </li></ul><ul><ul><li>BLOB – www.lart.tudelft.nl </li></ul></ul><ul><ul><li>bootldr - http://www.handhelds.org/projects/cvsproj.html?project= bootldr </li></ul></ul><ul><li>What does the bootloader do </li></ul><ul><ul><li>Processor and Memory initialisation </li></ul></ul><ul><ul><li>Setup a serial console </li></ul></ul><ul><ul><li>Load kernel (and ramdisk) </li></ul></ul><ul><li>Bootloader support for the kernel. </li></ul>
  9. 9. Adding a new architecture <ul><li>Registering a Machine Type </li></ul><ul><ul><li>www.arm.linux.org.uk/developer/machines/ </li></ul></ul><ul><ul><li>arch/arm/tools/mach-types </li></ul></ul><ul><li>Modifying the configuration menu </li></ul><ul><li>Creating a default configuration </li></ul><ul><li>Booting the First Kernel </li></ul><ul><li>Turning on Kernel Debug. </li></ul>
  10. 10. Getting the Kernel Booting <ul><li>Bootloader specific initialisation </li></ul><ul><li>Kernel Notes </li></ul><ul><ul><li>http://www.arm.linux.org.uk/developer/kernelnotes.shtml </li></ul></ul><ul><li>Modifying Configure.help </li></ul><ul><li>Building a kernel patch. </li></ul>
  11. 11. Machine Specific Initialisations <ul><li>Architecture specific initialisation </li></ul><ul><ul><li>esl_simputer.c, esl_simputer.h </li></ul></ul><ul><ul><li>Makefile Modifications </li></ul></ul><ul><li>Board specific Initialisations </li></ul><ul><ul><li>DRAM Support </li></ul></ul><ul><ul><li>Flash MAPS </li></ul></ul><ul><li>Bringing up the display </li></ul><ul><li>Building a new patch. </li></ul>
  12. 12. What next… <ul><li>Hardware Interfaces </li></ul><ul><li>Peripheral Support </li></ul><ul><ul><li>Touchpanel </li></ul></ul><ul><ul><li>Audio Support </li></ul></ul><ul><ul><li>Keypad Support </li></ul></ul><ul><ul><li>RTC Support </li></ul></ul><ul><ul><li>USB, Compact Flash </li></ul></ul><ul><li>Kernel 2.6… </li></ul>
  13. 13. Porting the 2.6-test9 kernel <ul><li>Why 2.6 kernel? </li></ul><ul><li>Toolchain Differences </li></ul><ul><ul><li>2.95.3, 3,3,1 … </li></ul></ul><ul><li>Bootloader Support </li></ul><ul><li>Configuration Files. </li></ul>
  14. 14. Thank You Samyeer Metrani

×