240 likes | 492 Views
19/3/2013. embedded Android system BASED ON ZC- 702 zynq BOARD MID pRESENTATION. Performed By: Itamar Niddam and Lior Motorin Instructor: Inna Rivkin Bi- Semesterial . Winter 2012/2013. Introduction. The problem.
E N D
19/3/2013 embedded Android system BASED ON ZC-702 zynq BOARD MID pRESENTATION Performed By: ItamarNiddam and LiorMotorin Instructor: Inna Rivkin Bi-Semesterial. Winter 2012/2013
Introduction The problem • Software provides extended flexibility while hardware gives better performance. • Many applications use software-based algorithms, which suffer from low Performance and cause bottle-necks. Therefore, the whole application performance is reduced. • Hardware-Accelerators are well known solutions , but they are specific for each • Problem and cannot be changed. Moreover, an application cannot supply its • own Hardware accelerator and must rely on existing accelerators.
Introduction The solution • A Hardware-accelerator for specific application will be provided • (AES encryption/decryption for example). • An android application which uses the custom Hardware.
Introduction The solution • The Xilinx ZC-702 Board for Zynq-7000 have the ability to run Android OS on it. • Dual ARM A9 – Cortex processors • DDR3 Memory (1 GB)
SYSTEM COMPONENTS Programmable Logic Processing System LogicBricks HDMI Controller Custom IP Core 0 : A9 ARM AXI4 Core 1 : A9 ARM UART HDMI FMC USB 0
Project goals • Understand the structure of the ZC-702 board. • Understand the structure of the Android OS. • Run Android OS on the board (without any modifications) • Implement a custom IP and integrate it on android OS using the ZC-702 board. • Analyze the performance improvement for Encryption hardware-accelerator. • Documentation and manuals
Xylon hardware Custom IP AXI4 interconnect Processing system The Hardware Design.
Software Blocks Android 2.3.2 OS Linux Kernel Custom IP Module Driver Xylon GPU Driver Xylon Hardware Custom IP ARM CPU0 ZC-702
Device Tree Source • Data structure for describing hardware details (Memory mapping , Interrupts , Registers …) to the OS. • Simple human readable text (Before “Compilation”)
Integrating Hardware-Software • Before kernel loading, copying the module driver from SD-Card to the system. • Do lsmod to .ko file while still having root privileges (after loading kernel and just before Android OS loads) • Driver is now registered as char device (/dev/custom-ip) and can be used from the OS
Problems… • Still have licensing problems (until April) • Android OS privileges – Cannot use custom IP driver from inside of Android OS applications due to privileges limitations. • Writing Drivers is hard ! (Missing knowledge to write some complicated drivers) • Need also software support (in emphasis of OS driver development)
Challenges ! • Solving android privileges limitations by writing a service which will be able to communicate with our char device. • Writing more complicated drivers to support AXI-4 Streaming for video processing • Writing efficient hardware with Vivado HLS and integrate it
So.. What have we done ? • Fully working Android Kernel which can access (Read / Write) a custom IP. • Setting up a development environment to modify and compile Android OS & Linux kernel. • Generating all necessary files to provide working system (BitStream, FSBL , U-Boot , BOOT.BIN , device tree , driver module) • Learning Linux Driver development • Testing Custom IP development & Hardware integration with Vivado HLS