Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Some Experience About μkernel and Device Driver 970529 Sean Lin."— 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  1 st generation μkernel  Mach  Chorus  Amoeba  L3

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

10 Comparison  1 st 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 Jochen Liedtke

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 all code100,000’s loc10,000’s loc System TCB 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  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

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


Download ppt "Some Experience About μkernel and Device Driver 970529 Sean Lin."

Similar presentations


Ads by Google