Way to GNU/Linux on ARM Xingda Zheng.

Slides:



Advertisements
Similar presentations
allow v. wrong adj. What’s wrong? midnight n. look through guess v. deal n. big deal work out 允许;准许 有毛病;错误的 哪儿不舒服? 午夜;子夜 快速查看;浏览 猜测;估计 协议;交易 重要的事.
Advertisements

1 CONFIDENTIAL | © 2011 Insyde Software 法人說明會簡報資料 Jeremy Wang, Chairman & CEO.
一.嵌入式系統與科技公司的成長 歷程 主講人:新華電腦股份有限公司 總經理:陳明福先生 台北公司:台北市 111 承德路 4 段 222 號 4F TEL : FAX : 高雄公司:高雄市 807 前鎮區中山二路 91 號 9F 之 6 T EL : FAX.
嵌入式系統 資工系 魏 凱 城. 什麼是嵌入系統 提到 CPU 我們很直覺的會聯想到 PC ,但事實上 CPU 的應用領域、範圍及採用的數量都遠遠超過 PC 的範疇。 提到 CPU 我們很直覺的會聯想到 PC ,但事實上 CPU 的應用領域、範圍及採用的數量都遠遠超過 PC 的範疇。 以數量來看 x86.
CH02 電腦軟體 介紹電腦軟體之概念 認識系統軟體、程式語言與軟體開發 認識作業系統的主要功能 認識作業系統的演進歷史 認識常用之應用軟體
提高阶段: ——ARM部分 电气工程系 赵志衡.
嵌入式系统简介 Introduction to Embedded System
Linux 安裝入門與基本管理 課程目標: 學習Linux平台下的安裝設定 與 建置一個基本的Linux伺服器
第 2 章 中央處理單元.
第二部分 嵌入式硬件系统 第2章 嵌入式处理器 第3章 ARM内核与ARM处理器 第4章 嵌入式系统的外围设备.
大连理工大学软件学院 嵌入式系统工程系 赖晓晨
第一章 嵌入式系统概况 大连理工大学 马洪连.
趣味小故事:马和驴子 在唐太宗贞观年间,有一匹马和一头驴子,它们 是好朋友。贞观3年,这匹马被玄奘大师选中,出 发前往印度取经。17年后,这匹马驮着经书回到长 安,重到磨坊会见驴子朋友。老马谈起这次旅途的 经历,浩瀚无边的沙漠,高耸云霄的山岭,凌云的 冰雪,壮阔的波澜……神话般的一切,让驴子听了 大为惊异、好生羡慕!驴子惊叹到:“你有多么丰.
操作系统结构.
第4章 VHDL设计初步.
Linux 入門課程(介紹篇) 講者: Pank
UClinux在3000平台上的移植.
Subversion (SVN) Presented by 李明璋 R /2/21
主讲人:鞠 雷 山东大学 计算机科学与技术学院
Newland PT-30 Handheld Computer
第 2 章 中央處理單元.
「MD3056電視棒」使用教學.
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
Excellence in Manufacturing 卓 越 制 造
内核移植实例.
AM5728简介 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
CPU資料處理 醫務管理暨醫療資訊學系 陳以德 副教授: 濟世CS 轉
OpenFoundry.org 版本控制系統服務 使用教學
主講:王穎聰 電腦與通訊工程學系講師 銘傳大學資訊網路處
APPLE, iPhone 智慧型手機- 指導老師:葛維鈞老師 (企3B) 組長:童楹鈞
最新 Windows Server 徽标 要求和计划
不断变迁的闪存行业形势 Memory has changed, especially serial - from a low cost, low pin count, slow memory to an advanced, high performance memory solution to save.
Bootloader技术分析.
2015年智慧型手機十強陸將佔6席 三星與蘋果出貨差距持續縮小
第 17 章 數位革命與 全球電子市場 © 2005 Prentice Hall.
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
欢乐玩转GIT 讲师:FREE QQ:
Android 课程讲义 智能手机开发
创建型设计模式.
教育部資通訊軟體創新人才推升推廣計畫 「智慧終端與人機互動創作專題競賽」報告 救救菜英文
第1章 嵌入式系统概述 嵌入式系统的发展、定义、特点、组成、分类 嵌入式系统硬件核心、软件核心 嵌入式实时操作系统
New Statistical Tools for Android Device
嵌入式系統概論-以S3C2440核心為架構 第1章 嵌入式系統概念.
預官考試輔導 計算機概論提要 91年12月4日.
微软新一代云计算 面向企业的 Office 365 客户培训大纲
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
中華科技大學企業管理系 題目:雙北地區智慧型手機品牌市佔率之研究
嵌入式系統 資工系 魏 凱 城.
中国农村沼气政策与发展战略 李景明 中国北京 农业部科技发展中心能源生态处处长 中国沼气学会秘书长.
2010電資院 「頂尖企業暑期實習」 經驗分享心得報告
(第2版).
Try to write He Mengling Daqu Middle School.
A SMALL TRUTH TO MAKE LIFE 100%
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
資料庫 靜宜大學資管系 楊子青.
(第2版).
Unit 8 Our Clothes Topic1 What a nice coat! Section D 赤峰市翁牛特旗梧桐花中学 赵亚平.
Real-Time System Software Group Lab 408 Wireless Networking and Embedded Systems Laboratory Virtualization, Parallelization, Service 實驗室主要是以系統軟體設計為主,
RequireJS.
第2章ARM/THUMB微处理器结构及指令系统
虚 拟 仪 器 virtual instrument
中央社新聞— <LTTC:台灣學生英語聽說提升 讀寫相對下降>
ARM Developer Suite 介 绍.
嵌入式系統 資工系 魏 凱 城.
ARM處理器.
Power Point Add up anything your like Like some books or some place.
ADX series Configuration
健康按摩法 請開音樂.
Climbing a Rock Wall 攀岩 选自《多维阅读第10级》.
Presentation transcript:

Way to GNU/Linux on ARM Xingda Zheng

Contents Brief history about ARM Mess in Linux on ARM Solutions to the mess Future development

What’s ARM ARM can be ARM Holdings ARM can also be ARM Architecture ARM = “Advanced RISC Machine” ARM 是一家公司,全称 “ARM Holdings”,总部位于英国剑桥,以出售 IP 核(知识产权核心)为商业模式,现今旗下有 Cortex 系列应用处理器核心, Mali 系列图形处理核心,PrimeCell 系列周边元件等多条 IP 核产品线。 ARM 也指一种处理器体系架构,全称“Advanced RISC Machine“,专利所有者为 ARM Holdings 公司。 运行 GNU/Linux 的 ARM,当然指ARM 这一处理器体系架构。

Brief History of ARM ARMv1 ARM1 ARMv2 ARM2 – Cloned by OpenCores now, called Amber ARM3 ARMv3 ARM6 (ARM610 used by Apple Newton) ARMv4T – T means Thumb ARM7TDMI – traditional SoC core, even used by GBA ARM 体系架构,首先是由 Acron 电脑公司设计的。 Acron 设计出的第一款 ARM 处理器为 ARM1(仅为样品),设计极为精简,但是在主流性能市场上未能给 Intel 带来任何冲击。 第一款流片生产的 ARM 处理器为 ARM2,目标为节电、精简(这也成为了后来 ARM 系列的主流)。(此时的指令集版本是 ARMv2) ARM2 被用于 BBC Micro 系列微型电脑。(从此之后,与 BBC 有关的多个项目使用了 ARM 架构的处理器) ARM 的下一个重要足迹是与 Apple 合作,开发下一代的轻量级微处理器——ARM6 系列。(指令集为 ARMv3) 著名的超前设备——Apple Newton PDA 便使用了ARM610处理器。 这次合作催生了独立的 Advanced RISC Machine 公司。

Brief History of ARM ARMv5TE – MMU introduced ARM9 – Traditional “Embedded Linux” Core ARMv6 – initial SIMD support ARM11 – Start of Thumb2 and Multiprocessor ARM 的下一个重要足迹是与 Apple 合作,开发下一代的轻量级微处理器——ARM6 系列。(指令集为 ARMv3) 著名的超前设备——Apple Newton PDA 便使用了ARM610处理器。 这次合作催生了独立的 Advanced RISC Machine 公司。

Brief History of ARM ARMv7A – “Cortex”ize Introduce VFPv3, NEON Cortex-A8 Cortex-A9 MPCore Cortex-A5 low-end solution Cortex-A7/15 – big.LITTLE, Virtualization

Brief History of ARM ARMv8A – 64-bit NEON now fully IEEE-754 complicant “big” core started to evolve fastly Cortex-A57, A72, A73...

Brief History of ARM Linux 1.0.x – Early trial by Acron on Acron A5000. Built on RISC OS with its compiler. Kernel tree largely modified to suite RISC OS. Impossible to merge back. 1.1.59 – Elegant ARM support in Linux kernel because the support of ARM in GCC/Binutils. Acron 公司曾经尝试移植一个 1.0.x 的内核到 Acron A5000 机器。虽然他们成功了,但是他们的结果一坨糟,根本没有可能 Merge 回 Linux 主线。(因为那时 GCC/Binutils/Linux 都还没有考虑 non-x86 架构) 之后 1.1.59 的时候,Linux 内核终于有了干净的 ARM 支持(因为那时 GCC 和 Binutils 引入了 ARM 支持)。

Brief History of ARM Linux ARMv4T can run uClinux ARMv5TE is suitable for running full Linux Currently the most old cores supported by Debian. “Embedded Linux” on ARMv5TE Birth of Android 之后,Linux 并没有在 ARM 处理器上掀起太大波浪。用户还是更多选择 RISC OS。 直到 ARMv5 时代。ARMv5 的效能已经足以运行起 Linux 内核和简单的 Linux 用户环境。 Linux 内核,作为一个可以裁剪的跨架构操作系统内核,成为了很多 ARMv5 嵌入式厂商的选择。

Brief History of ARM Linux ARMv6 OMAP2 (with ARM11) is chosen by Nokia for Maemo ARMv7A A High-optimized instruction set. “armhf” in Debian. ARMv8A 64-bit. “arch/arm64/” instead of “arch/arm/” in kernel ABI revolution. Considered as a new architecture. ARMv6 的时代,Linux 继续被用在部分设备上。值得一提的是基于 ARM11 的 Raspberry Pi。(这是 BBC 与 ARM 的又一次碰撞) ARMv7 的时代,由于 Android 的彻底流行,使得 Linux 成为了 ARMv7 芯片厂商(Apple 除外)的标配操作系统内核。

Mess: What’s a SoC SoC – System on Chip. IP core model. Cortex series is just IP core. So do Mali series and PrimeCell series.

Mess: Boot On IBM/PC: Power Up → BIOS/UEFI → GRUB → Linux kernel Standard interface On ARM: No such standard interface widely accepted now

Mess: Boot Allwinner A33 SoC: Power Up → Internal BROM (mask ROM) → Boot0 → U-Boot → Linux kernel Qualcomm APQ8016 SoC: Power Up → PBL (on DSP) → SBL → LK → Linux kernel Broadcom BCM2836 SoC: Power Up → Proprietary Bootloader (on GPU!) → Unknown loader (on ARM core) → Linux kernel

Mess: Boot Problems: No generic Bootloader. No generic kernel storage standard.

Mess: SoC and board Multiple boards per SoC Early kernel uses a .c file per board A zImage/uImage per board – Disaster to distributions A machine ID per board – complex Source modify and kernel recompilation when board changed

Mess: SoC and board Why? Innumerable Buses AMBA inside SoC I2C, SPI outside SoC Lack of standard On x86, DSDT table in ACPI solved the difference

Mess: Out-of-mainline source Low quality of BSPs Lots of BSPs are for Android Dirty and unmainlineable code Lower quality of Vendor sources For example, Huawei Android problem Some Android drivers keep to be unmainlined Android does not require higher kernel version (3.4 for Marshmallow is also allowed)

Mess: Lines out-of-mainline table Phone Manufacturer SoC Vendor Lines out-of-mainline G3 LG Qualcomm 2.616M Galaxy 4 Samsung 1.795M Galaxy S5 Samsung Exynos 1.100M Xperia Z3 Sony 1.794M Xperia C MediaTek 1.935M E2 Acer 1.411M Zenfone 6 Asus Intel Atom 2.163M P6 Huawei HiSilicon 2.659M 表格来源:http://elinux.org/CE_Workgroup_Device_Mainlining_Project

Mess: LINUS IS ANGRY https://lkml.org/lkml/2011/3/17/492 “Gaah. Guys, this whole ARM thing is a f*cking pain in the ass.”

Solution: Device Tree Originated from Sun Open Firmware, then abstracted by Linux. Used by Embedded PowerPC with OF. Chosen to be used on ARM.

Solution: Device Tree What’s Device Tree Device description Like a tree Structured Can be “flatten” to storage

Solution: Device Tree Example of the opportunity of DT: AOSC OS armel sunxi boot Provided 2 kernels for more than 6 SoCs, 20 boards. Raspberry Pi DT Overlay Easy to adapt add-ons

Solution: Device Tree DT structure: Really like a tree Everything starts at a “/” Device nodes can be embedded to bus nodes, when the device is connected to the bus.

Solution by another kernel Windows NT on ARM Force UEFI and ACPI Use DSDT for device structure Use HAL Extension for special devices

Future ARM officially choose UEFI Server standard is introduced Standard interface for communication between ARM kernel and firmware, for power, regulators, etc

Now you can point out problems and wait for further improvement by us! Thanks! Now you can point out problems and wait for further improvement by us!