Joe Chen Sr. Manager, Insyde Software

Slides:



Advertisements
Similar presentations
UBIQUITY V3 An extensible platform for creating dynamic, customized, and geocentric native mobile applications.
Advertisements

Debugging Windows ® CE Applications And Systems David Streams Lead Program Manager Windows CE Tools Microsoft Corporation
ASU Real-Time Operating System. Supervised by: Dr. Mohammed Sobh.
Presenter : Chien-Hung Chen Tsung-Cheng Lin Kuan-Fu Kuo EICE team Open On-Chip Debugger Ch6. Design and Architecture.
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008.
29 April 2005 Part B Final Presentation Peripheral Devices For ML310 Board Project name : Spring Semester 2005 Final Presentation Presenting : Erez Cohen.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
A New Soar Debugger in Java Douglas Pearson ThreePenny Software
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
1 DOS with Windows 3.1 and 3.11 Operating Environments n Designed to allow applications to have a graphical interface DOS runs in the background as the.
CCNA 2 v3.1 Module 2.
1 THE ARCHITECTURE FOR THE DIGITAL WORLD TM THE ARCHITECTURE FOR THE DIGITAL WORLD Embedded Linux for ARM Architecture.
Introduction Purpose Objectives Content Learning Time
1 Semester 2 Module 2 Introduction to Routers Yuda college of business James Chen
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
MDK-ARM Microcontroller Development Kit MDK: Microcontroller Development Kit.
Troubleshooting Hardware Issues Lesson 5. Objectives 2.
Embedded Systems Principle of Debugger. Reference Materials kl.de/avr_projects/arm_projects/#winarmhttp://
Spring 2014 SILICON VALLEY UNIVERSITY CONFIDENTIAL 1 Introduction to Embedded Systems Dr. Jerry Shiao, Silicon Valley University.
Lesson 4 Computer Software
Tony Mangefeste Senior Program Manager SYS-005T Why UEFI? UX value prop from Day one: Fast Boot, OEM Certification, smooth transitions, etc. Secure Boot.
Host and Application Security Lesson 4: The Win32 Boot Process.
Hands-On Microsoft Windows Server 2008
Lesson 6 Operating Systems and Software
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
Session Agenda Designed to address BIOS Limitations Needed for the larger server platforms (Intel-HP Itanium) First called Intel Boot Initiative.
Translate the following message:
BIOS. Accessing System BIOS You can use the System Setup utility to change variable BIOS information, such as the type of hard drive you have installed.
From UEFI Shell to Linux - UEFI Linux BootLoader Zhang Rui Software Engineer Sep 28 th 2011.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
Computers Are Your Future Eleventh Edition Chapter 2: Inside the System Unit Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
Cisco Router Hardware Software overview. In this lecture we will investigate an overview of Cisco router hardware and software. We will first turn our.
Hardware Boot Sequence. Vocabulary BIOS = Basic Input Output System UEFI = Unified Extensible Firmware Interface POST= Power On Self Test BR = Boot Record.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
The Guts. CPU CPU Socket The CPU is generally a 2 inch ceramic square with a silicon chip located inside. The chip usually about the size of a thumbnail.
NIOS II Ethernet Communication Final Presentation
Tel : 同济大学软件学院 UEFI 与固件程序设计.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 2 Module 2 Introduction to Routers.
Module 6: Debugging a Windows CE Image.  Overview Debug Zones IDE Debug Setup IDE Debug Commands Platform Builder Integrated Kernel Debugger Other Debugging.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Click once to reveal the definition. Think of the answer. Then click to see if you were correct. HARDWARE Physical parts of the computer.
Windows ® 2000 Debugging André Vachon Development Lead Windows Debuggers Microsoft Corporation.
Unit - V. Debugging GNU Debugger helps you in getting information about the following: 1.If a core dump happened, then what statement or expression did.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 Router Initialization steps.
Week1: Introduction to Computer Networks. Copyright © 2012 Cengage Learning. All rights reserved.2 Objectives 2 Describe basic computer components and.
Sem 2v2 Chapter 5 Router Startup and Setup. A router initializes by loading the bootstrap, the operating system, and a configuration file. If the router.
® UEFI Framework Training 2008 Copyright © 2008 Intel Corporation Other trademarks and brands are the property of their respective owners Slide 1 Back.
Commands 3/1/ Boot PROM Fundamentals All Sun systems have resident boot PROM firmware Provides basic hardware testing and initialization prior.
HCS12 Technical Training Module 15 – Break Module Slide 1 MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other.
Embedded Real-Time Systems Introduction to embedded software development Lecturer Department University.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
SA developed mini-PCIe IO card By Peet Smit. RS282 x8 USB x4 WLAN Video Capture LVDS Display SATA x4 mSATA-half LAN x2 3G & SIMM Digital IO.
Programming and Debugging with the Dragon and JTAG Many thanks to Dr. James Hawthorne for evaluating the Dragon system and providing the core content for.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 2 v3.1 Module 2 Introduction to Routers.
INTRO. To I.T Razan N. AlShihabi
By Ganesan Alagu Ganesh Feb 26, 2008
CCNA 2 v3.1 Module 2 Introduction to Routers
Programming and Debugging with the Dragon and JTAG
Chapter 6: BIOS.
By Ganesan Alagu Ganesh Feb 21, 2008
Drill Translate the following message:
From Zero to UEFI Shell Jason Jin Technical Marketing Engineer/ECG
Booting Up 15-Nov-18 boot.ppt.
Compile, Build, and Debug
Today’s agenda Hardware architecture and runtime system
Module 6: Debugging a Windows CE Image
The bios.
Instructor Materials Chapter 5: Windows Installation
Presentation transcript:

Joe Chen Sr. Manager, Insyde Software Debugging under Unified Extensible Firmware Interface (UEFI): Addressing DXE Driver Challenges Joe Chen Sr. Manager, Insyde Software

Debugging Then… The first computer bug, a moth removed from the Mark II in 1947, is now at the Smithsonian museum Grace Hopper, whose many accomplishments included writing the first compiler, popularized the term “Computer Bug”

Agenda Benefits of the UEFI Architecture Tips for Project Planning …Debugging Now Benefits of the UEFI Architecture Tips for Project Planning Debugging Tools

UEFI is Architected for Modularity Benefits of the UEFI Architecture UEFI is Architected for Modularity UEFI- enabled OS Pre-boot Tools Option ROMs Today’s OS UEFI is an interface specification Allows Driver Encapsulation As supported devices migrate to new market segments, the driver can easily follow Same driver for Mobile For Desktop/Server For Embedded Too! UEFI Framework Drivers OEM /ODM Drivers Drivers IBV z Drivers IBV Compatibility Support Module A Compatibility Support Module MRC - CPU Architectural Protocols Foundations Hardware

UEFI Has a Defined Control Flow Benefits of the UEFI Architecture UEFI Has a Defined Control Flow UEFI/Framework boot process goes through defined stages with clear rules for each stage DXE Debug

UEFI is Architected for Debugging Benefits of the UEFI Architecture UEFI is Architected for Debugging Uses clear inter-module interfaces called protocols Drivers often both consume and produce protocols Driver writer should treat platform service protocols as a ‘black-box’ Calling Module References Protocol Agreed Protocol Definition Provider Module Publishes Protocol

Agenda Benefits of the UEFI Architecture Tips for Project Planning Debugging Tools

Plan Early for Debug When designing your board consider: Project Planning Tips Plan Early for Debug When designing your board consider: Firmware Storage, initial load Debugger tool Connections Serial Debug Output When starting driver or application project consider: Utilize UEFI Modular Architecture Possible to test in the Shell? CPU modes – IA32, x64, EBC

Agenda Benefits of the UEFI Architecture Tips for Project Planning Debugging Tools Hardware (Jtag) Debuggers Software Debugger Tools Macros from Tianocore.org

Debugging Then… Debugging Tools Released in 1979, the SDK-86 was Intel’s first Reference Board. It offered a full-featured debugger in ROM with keypad and serial interface. All of its debugger commands are still used in debuggers today.

Standard Today -Source-level Debugging Debugging Tools Standard Today -Source-level Debugging Source Level View of Target on developer desktop Set Breakpoints in target– Execution - software and hardware Hardware breakpoints for memory or I/O access Go/step control -> step into, step over, etc. Dump registers and memory, dump indexed registers, dump PCI registers, etc. Dump UEFI tables

American Arium JTAG Source-level Debugger ECM-XDP3 Debugging Tools Hardware Debugger American Arium JTAG Source-level Debugger ECM-XDP3

American Arium- ITP Jtag Connection

American Arium H/W Debugger Application Interface Debugging Tools American Arium H/W Debugger Application Interface

Hardware Debugger Useful in All Stages Debugging Tools Hardware Debugger Useful in All Stages

Platform Software Debugger Debugging Tools Platform Software Debugger H2ODDT™ from Insyde Software Hardware UEFI Firmware Operating System

H2ODDT from Insyde Software Debugging Tools H2ODDT from Insyde Software Connects to Target USB Port 0 USB0 Firmware w/ H2ODDT Included Developer System Target Board

H2ODDT Features and Requirements DDT drivers are built into the firmware image which is then flashed to the platform Versions for IA32 and x64 Must use target USB Port 0 (which has special debug mode) Debugging capability from PEI init through DXE into boot phase Includes debug of SMM drivers and legacy option ROMs

H2ODDT Gives Full Source View Debugging Tools H2ODDT Gives Full Source View

See Your Code In Action!

Complete Step Control Over Target Debugging Tools Complete Step Control Over Target

Local and Global Variables Debugging Tools More H2ODDT Features Memory dump viewer Register viewer Local and Global Variables

H2ODDT Platform Software Debugger Useful Throughout the Boot Debugging Tools

New From Insyde: Shell-level Debugger Debugging Tools New From Insyde: Shell-level Debugger “DDT-AD” = Debugger for Applications and Drivers Hardware UEFI Firmware Operating System UEFI Applications UEFI Driver +

“DDT-AD” Software Debugger for Shell-Level Debug Debugging Tools “DDT-AD” Software Debugger for Shell-Level Debug Board needing driver USB0 Thumb Drive w/ DDT-AD Driver Developer System Host Board

“DDT-AD” Features and Requirements Debugging Tools “DDT-AD” Features and Requirements Debug your drivers using any UEFI-compatible platform DDT-AD is loaded from UEFI Shell Prompt using Flash drive or other media Capability to debug anything that can be loaded from the Shell Same cable and source-level debug features as standard Insyde H2ODDT

DDT-AT Lets You See Inside Your Driver IHV APP TEST APP DDT-AD UEFI SHELL IHV DRIVER UEFI API INTERFACE UEFI-COMPATIBLE PLATFORM IHV HARDWARE

Strengths of “DDT-AD” Easy setup – no need to build debug firmware image Simple connection using USB cable Look inside the source of the driver or application under test Debug problems on any UEFI board Useful for many segments – OEM/ODM and IHV, driver and application

“DDT-AD” Status Insyde is beginning Beta-test Is this tool interesting to your company? Send email to debug@insydesw.com

DDT-AD Used in Shell Environment Debugging Tools DDT-AD Used in Shell Environment

DEMO: DDT-AD Debugger

Source Debuggers - Tips and Tricks Debugging Tools Source Debuggers - Tips and Tricks Compiler optimization can make source display hard to follow Local variables often held in registers, code order may be rearranged… Include this statement in your source to disable optimizer: #pragma optimize ( “” , off ) Include this statement in your source to hard-code a breakpoint at any point __debugbreak() compiler intrinsic

More Source Debugger Tips… Same source can be built for native CPU or EBC binary so usually recommended to debug drivers in native first and then retest in EBC before release Problems in EBC drivers can be checked with EBC Debugger http://www.uefi.org/events/EBC_debugger.zip

Debugging Tools Software Debug Macros From www.tianocore.org

EDK Debug Macros from tianocore.org Debugging Tools EDK Debug Macros from tianocore.org These Macros Output to serial port DEBUG (ErrorLevel, String, …) printf-like formatted print string if ErrorLevel is active ASSERT (Expression) If Expression is FALSE, then print file name and line number and halt. ASSERT_EFI_ERROR (Status) If Status is not EFI_SUCCESS, then print file name and line number and halt. CR (Record, Type, Field, Signature) ASSERT()s if Data Structure Signature does not match EFI_BREAKPOINT () Generate a CPU break point instruction

Review: Debugging Tools Board Connection Strengths Hardware Debugger ITP Jtag Full Source view, break if hung H2ODDT Platform Software Debugger USB Port 0 Full Source view and breakpoints with no special connector DDT-AD Shell-level Debugger Easy to use tool for UEFI driver and application development In-source Macros Serial Free but still useful in project

Summary UEFI architecture is modular and designed for debugging Conclusions Summary UEFI architecture is modular and designed for debugging Plan early so board design includes required debugger-support features Several debugger tools available: choose the best tool for your project

The industry is moving to UEFI and conversion has many benefits. Call To Action The industry is moving to UEFI and conversion has many benefits. Plan early to include debugging and make your UEFI project a success. Select one of these easy to use tools to increase productivity!

Resources Web based information: www.uefi.org www.tianocore.org www.intel.com/technology/efi/ www.arium.com www.insydesw.com

Questions?