Single chip和multi chip對Linux研發的影響 - 答客問(转载)

原创 2011年01月18日 11:52:00

http://zylix666.blogspot.com/2009_07_01_archive.html

僅就自己淺薄的認識來回答,如有不正確之處,歡迎指正。

Q1: What relationship and principles amongst RIL, RPC, and SMD under android/linux?

當初Google釋出Android的源始碼時,在RIL的部分為了顧及Qualcomm以外的其他平台,只在RIL的部分實做出一個reference RIL,以做為採用Qualcomm以外的的參考實做。就採用Qualcomm solution的開發者來說,Qualcomm會提供一個名為qcril的實做,裡面則會完整地提供該有的telephony及data communication功能。
而Qualcomm為Android提供的7K系列均採取Single chip multi core的架構,以一顆ARM9的核心來處理所有Modem方面的功能,所執行的作業系統則是以L4 kernel為base發展出來的AMSS,另一顆ARM11核心則是用來執行Android的所有程式,而二者之間的溝通方式有二種,一為RPC,另一則為Share memory。前者有點類似即時對話式的溝通,而後者則比較像是郵件投遞式的溝通。
回到RIL,在RIL層裡會有許多的ARM9及ARM11之間的溝通動作,可以想像我們一般在下AT command時,行為就像是在和Modem做對話一樣,如ATD後,Modem會回OK一般。因此qcril裡大多是以RPC call來實做出類似AT command的行為。
而share memory的部分,則大多是由Modem將必要的資訊寫入share memory,再由ARM11端將之讀出,比如說,AMSS可以將自己的版號寫入share memory中,讓ARM11的bootloader或kernel driver讀取出來做識別等。AMSS定義許多share memory中的欄位,而ARM11則要能識別這些欄位,這樣在讀寫share memory時才不會出錯。可以參考kernel裡smd_private.c裡的enum。

Q2: What modules/components does AMSS consist of?

嗯,關於這個,由於AMSS為Qualcomm的proprietary OS,我只能說它基本上是建構在L4 kernel上。Qualcomm將ARM9這顆核心當做是整個系統的Master CPU,概略將我所知的分為以下幾點,
1. AMSS除了各種driver之外,當然還會有Modem在運行時該有的task或稱為service。
2. AMSS掌控著所有PIN腳的主控權,可以指定某根GPIO的控制權要不要交給ARM11等。
3. 由於肩負著所有通訊的重任,在BAND的切換以及RF的控制,以及各種protocol等,都是寫在AMSS中。因此在ARM11中執行的RIL就不大會處理到protocol的問題。
4. 關於PMU的控制,在AMSS中都是最直接去做控制。
5. 對於RPC的回應及做相對應的處理等。

Q3: What procedures of booting on android/linux enabled msm7k?

基本上,msm 7K的二顆CPU是各自獨立運行的。當系統上電後,CPU中巳經預燒好的一小段boot code會被執行,在做好CPU本身的初始化後,會將CPU的控制權交給下一階段的primary boot loader(簡稱pbl),pbl係屬於行為控制的bootloader,而對硬體直接的操做,如reset ARM11並將flash中的image載入到RAM裡等,都是交給oemsbl來做,當oemsbl將image載入到flash後,就會reset ARM11,此時ARM11才開始執行Android boot loader,同一個時間,ARM9會繼續向後執行AMSS的main code,而ARM11則並行地由Android boot loader將kernel 載入,之後就如同各有一個單一CPU一樣的執行AMSS以及Linux/Android了。

FLASH ERASE:CHIP、BLOCK、SECTOR

FLASH ERASE:CHIP、BLOCK、SECTOR             SPI FLASH 的ERASE、READ、WRITE,笔者都用ESL在博文中论述过。ERASE包括CHIP、BL...
  • supreme42
  • supreme42
  • 2012年01月14日 00:27
  • 4177

EMV 与 chip and pin

EMV在欧洲最早开始推行,当时在英国使用EMV卡支付时,基本都是要输入脱机pin的。也就是说当时脱机pin是作为首选的CVM。所以英国银行业就给这种基于EMV卡片的支付方式起了一个名字叫chip an...
  • pony_maggie
  • pony_maggie
  • 2015年02月07日 21:33
  • 2063

使用CooCox的CoIDE打开mbed项目失败:提示 The chip:STM32F103RB information of current project has sonething wrong

使用CooCox的CoIDE打开mbed项目失败:提示 The chip:STM32F103RB information of current project has sonething wrong ...
  • daxiebao
  • daxiebao
  • 2016年08月19日 16:42
  • 1398

第四章、TIny4412 U-BOOT移植四 配置时钟频率源码分析

上篇讲了配置时钟的原理,今天就结合源码具体分析一下。在U-Boot的源码中,系统时钟的初始化是放在板文件夹下的(board/Samsung/mytiny4412)的clock_init_zthtiny...
  • eshing
  • eshing
  • 2014年07月07日 23:05
  • 2368

ISSCC 2017论文导读 Session 14:A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight

A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Mem...
  • xbinworld
  • xbinworld
  • 2017年03月08日 23:03
  • 1295

Chip框架消息队列组件

简介 目标: 使用PHP和Redis提供使用简单而功能强大的消息队列系统. 安装 目前内嵌到Chip框架, 也可以独立使用, 经过简单的修改可与其他核心模块完全解耦. 概述 创建队列 自定义配置创...
  • black_OX
  • black_OX
  • 2016年01月19日 14:29
  • 636

防止手机的bin被回读后re-download到其他手机的功能

透过在ROM中加上和Chip的唯一标识进行关联的安全机制,实现bin和chip一对一绑定,即Bound-to-Chip,防止手机的bin被黑客回读后在再re-download到其他的手机中。实现方法:...
  • sergeycao
  • sergeycao
  • 2012年11月03日 09:47
  • 357

CCS编译错误与解决办法 :fatal error: #error NO CHIP DEFINED

 错误内型:"C:/CCStudio_v3.3/C5500/csl/include/csl_chiphal.h", line 201: fatal error: #error NO CHIP DEFI...
  • tiany524
  • tiany524
  • 2010年04月09日 23:47
  • 14150

Chip-seq流程报告

实验旨在了解Chip-seq的基本原理。通过模仿文献《Targeting super enhancer associated oncogenes in oesophageal squamous cel...
  • qq_29300341
  • qq_29300341
  • 2017年02月01日 21:17
  • 7292

基因芯片 (Gene Chip)

基因芯片(英文:Gene Chip)又称DNA阵列、DNA微阵列(DNA microarray),简单地说就是在一块指甲大小(1cm3)的有多聚赖氨酸包被的硅片上或其它固...
  • chl033
  • chl033
  • 2010年05月28日 22:09
  • 2094
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Single chip和multi chip對Linux研發的影響 - 答客問(转载)
举报原因:
原因补充:

(最多只允许输入30个字)