1 / 45

Some Experience A bout μ kernel and Device Driver

Some Experience A bout μ kernel and Device Driver. 970529 Sean Lin. Outline. Introduction of μ kernel Introduction of L4 μ kernel Family Something Interesting in L4 μ kernel Introduction of T he Platform The Bug of USB Host Device Driver Other Experiences of Driver Debugging.

lotta
Download Presentation

Some Experience A bout μ kernel and Device Driver

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Some Experience About μkernel and Device Driver 970529 Sean Lin

  2. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  3. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  4. Monolithic Kernel • Kernel has access to all things • All optimizations possible • All techniques/mechanisms implementable • Kernel can be extended • To add more code to the kernel

  5. Why Microkernel(μkernel) • Cost of monolithic kernel • Complexity • Growing size • Limited maintainability

  6. The Idea of Microkernel • Provide core functionality • Applications communicate via message-passing IPC

  7. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  8. History of Microkernel • 1st generation μkernel • Mach • Chorus • Amoeba • L3

  9. History of Microkernel (cont.) • 2nd generation μkernel • Spin (University of Washington) • Exo-kernel (MIT) • L4

  10. Comparison • 1st generation μkernel were slow • Complex API • Poor design and implementation • Too many features • Slow and inflexible IPC

  11. L4 Microkernel Family • A family of second-generation microkernel • There have been various re-implementations of the original L4 kernel interface(ABI) • Original version by JochenLiedtke

  12. Introduction of L4 Microkernel • The L4 kernel API has evolved in numerous ways • Version 2 • Version X.0 • Version X.2 • NICTA N

  13. Design Issue of L4 • Abstractions • Address spaces • Threads • Mechanisms • Inter-process communication (IPC) • Mapping

  14. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  15. Famous L4 μkernel • Fiasco • Design by TU Dresden • Preemptible real-time kernel • Used for DROPS project • GPL License Last release: March 2007, Fiasco 1.2 http://os.inf.tu-dresden.de/drops/

  16. DROPS • Dresden Real-Time Operating Systems Project • Find design techniques for the construction of distributed real time operating systems • Every component guarantees a certain level of service to applications.

  17. DROPS (cont.) • Multiple instances of Linux running on one machine

  18. Famous L4 μkernel (cont.) • L4Ka::Pistachio • Design by L4Ka team and NICTA EROPS Group • L4 API V X.2 Last release: June 2004, Pistachio 0.4 http://l4ka.org/projects/pistachio/

  19. Famous L4 μkernel (cont.) • NICTA::Pistachio-embedded • Design by UNSW and NICTA EROPS Group • based on L4Ka::Pistachio, designed for embedded systems • keep almost all system calls short Last release: Feb 2007, pistachio 1.1 (discontinued) http://ertos.nicta.com.au/software/kenge/pistachio/latest/

  20. Famous L4 μkernel (cont.) • OKL4 • Design by OKLab (Open Kernel Labs) • OKLab spun out from NICTA • Based on NICTA::Pistachio-embedded • Commercial deployment Last release: Apr 2008, OKL4 2.1 http://wiki.ok-labs.com/

  21. OKL4 • Adopted by Qualcomm for CDMA chipsets • OKL4-based Toshiba phone http://www.fluffyspider.com/demos/live_videos/flv/fancypants-openmoko-neo1973-video-browser-phone-dialer.html

  22. Trusted Computing Base in μkernel traditional embedded Linux/ Windows Microkernel based System TCB all code 100,000’s loc 10,000’s loc Diagram from Kashin Lin (NEWS Lab)

  23. Related Research - SIGMA A Study on Asymmetric Operating Systems on Symmetric Multiprocessors, Yu Murata, Wataru Kanda, Kensuke Hanaoka, and Tatsuo Nakajima, EUC07 • Achieve asymmetric multiple operating system environments for symmetric multiprocessors • No virtualization • Direct control

  24. SIGMA (cont.) • A multiple OS environment • Host OS: L4 micro kernel (NICTA::L4-embedded) • Guest OS: SIGMA Linux • The OS manager • The bootloader of CPU1

  25. SIGMA (cont.)

  26. SIGMA (cont.) • Estimated use cases

  27. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  28. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  29. Outline • Introduction of μkernel • Introduction of L4 μkernel Family • Something Interesting in L4 μkernel • Introduction of The Platform • The Bug of USB Host Device Driver • Other Experiences of Driver Debugging

  30. GPIO

  31. GPIO support in DM6446 • 71 GPIO signals. • GPIO[53:0] are 1.8V I/O signals. • GPIOV33_[16:0] are 3.3V I/O signals. • 16 registers one bank • Total 5 banks

  32. Configure GPIO Registers

  33. Remarks in GPIO • Others important setting depend on the platform • Power • Pinmux

  34. Power Setting • In the DM644x system, the Power & Sleep Controller (PSC) is responsible for managing transitions of system power on/off, clock on/off, and reset

  35. Power Setting (cont.)

  36. Pinmux Setting • DM644x allows multiplexing of shared device pins between peripherals. • Check the GPIO pins you used whether shares to other device?

  37. Pinmux Setting (cont.)

  38. Pinmux Setting (cont.)

  39. Debug Experience

  40. SPI – DAC 88347 • Need a power meter • Send different value • Measure the voltage on output pin

  41. SPI – Input/Ouput Connection • DM6446 is master • Peripheral is slave • The SPI output pin of master device needs to be connected to the input pin of slave device.

  42. USB – Mode Setting • USB controller in DM6446 • Support USB 2.0 peripheral at High Speed (480 Mbps) and Full Speed (12 Mbps). • Support USB 2.0 host at High Speed (480 Mbps), Full Speed (12 Mbps), and Low Speed (1.5 Mbps).

  43. USB – Mode Setting (cont.) • USB_ID pin

  44. Thanks

  45. Q & A

More Related