What is ION?

Embeded : 2015. 1. 8. 13:46
반응형

출처 : https://github.com/LegacyXperia/Wiki/wiki/What-is-ION%3F


What is Shared Memory?

Memory is usually private; an app takes a chunk and nothing else can access it.
Sometimes, it makes sense to share memory between processes; for example, an app writes to the screen buffer, while the gfx driver reads that same buffer to put it on the screen. You need a special memory system for that.

PMEM vs. ION

Back with Gingerbread, every ARM chip maker (Qualcomm, TI, nVidia, Samsung, more?) had their own way of doing shared memory. The Qualcomm way was a system calledPMEM.

Problem: when a vendor sells a chip to Sony and Samsung, he needs to write two drivers, one for each shared memory system.
To reduce maintenance efforts, Google introduced ION, a unified shared memory system, that all vendors use since ICS

Problem: from ICS forward, Qualcomm only provides graphics drivers for ION. PMEM is obsolete.
For a while, stuff still worked, but it is getting worse for us - see the Google Maps app for example.

Move to ION

An option is to rework the kernel, replace the PMEM system with ION, and replace the old PMEM drivers with newer ION drivers. A common problem on several old devices is, that the camera chip is non-standard, and Sony (Samsung, HTC) never wrote ION drivers for the old cameras. Moving to ION then means you lose the camera completely.

A new solution is to move the kernel to ION, but have a PMEM system on top of ION so that the old camera libs can connect to it. As far as I know, this was pioneered by the Dev_Connection team that maintains the Samsung S+ i9001 (great team, hats off to Christopher83 especially).

Another implementation of an ION/PMEM hybrid was made by galaxyfreak for the HTC Explorer (Pico).

The i9001 and the Pico have similar hardware to our 2011 Xperias (2011, MSM, 512MB RAM, similar specs).
Feedback for the ION builds is very positive. Performance is good and it solves some graphics problems like the Google Maps flickering, and it solves the slow browser.

ION on LegacyXperia

It would be the next big step after the 3.x kernel, but, it's a lot of work.
On the i9001, 8 devs work on 1 device, while on our side, 1 dev works on 8 devices.
The i9001 approach was to migrate 10.1 to ION, then 10.2, then 11; instead of directly doing 11-ION.

반응형

'Embeded' 카테고리의 다른 글

Tokyo Cabinet and Tokyo Tyrant  (0) 2015.04.04
USB vid/pid를 이용해서 장치 연결 상태 확인  (0) 2014.02.20
how to setup Odroid.  (0) 2014.02.08
Posted by Real_G