SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
John Stultz <john.stultz@linaro.org>
LMG Kernel Team
AOSP Devboard Update &
Recent/Future Pain Points
ENGINEERS AND DEVICES
WORKING TOGETHER
Now there are two: https://source.android.com/source/devices
HiKey HiKey960
ENGINEERS AND DEVICES
WORKING TOGETHER
Hardware overview
HiKey
● HiSilicon Kirin 620 SoC
● 64bit ARM A53
● 8 cores
● 1 or 2 GB RAM
● 4 or 8 GB eMMC
● Mali 450 (Utgard) Graphics
● USB2 Type A & USB-OTG
● $100-120
HiKey960
● HiSilicon Kirin 960 SoC
● 64bit ARM 4xA53 + 4xA73
● 8 core big.LITTLE design
● 3 GB RAM
● 32 GB UFS Storage
● Mali G71 (Bifrost) Graphics
● PCIe
● USB3 Type A & USB-C (USB2)
● 5GHz WiFi & BT 4.1
● $240
ENGINEERS AND DEVICES
WORKING TOGETHER
Remaining out-of-tree patches (4.14-rc)
HiKey
● Minor USB improvements
● ION ABI revert HACK
● Mali gpu
HiKey960
● regulators
● ufs
● mailbox
● cpufreq/thermal
● usb
● iommu
● drm driver
● dts
● Mali gpu
● ...
ENGINEERS AND DEVICES
WORKING TOGETHER
96Boards.org
Vendor neutral hardware standard for developer boards
Allows ecosystem of peripherals that can be shared
ENGINEERS AND DEVICES
WORKING TOGETHER
96Boards.org
Vendor neutral hardware standard for developer boards
Allows ecosystem of peripherals that can be shared
ENGINEERS AND DEVICES
WORKING TOGETHER
Neonkey
Neonkey is certified 96Boards mezzanine: https://source.android.com/source/devices#neonkey
● CPU: STM32F11CE
● NOR Flash: 512 KB
● SRAM: 128 KB
● Pressure sensor: BMP280
● ARM Hall sensor: MRMS501A
● Temp/Humidity sensor: SI7034-A10
● ALS/Proximity sensor: RPR-0521RS
● LED driver with 15LEDs: LP3943
● Accel/Gyro+Geomagnetic sensors:
○ BMI160+BMM150
● 4 GPIO-driver LEDs
● I2C expansion
● GPIO (2 lines) expansion
● JTAG connector
● 96Boards LS Expansion connector
Why this matters
ENGINEERS AND DEVICES
WORKING TOGETHER
v3.10 Released
June 2013
2015 Nexus devices
(Oct 2015)
v3.18 Released
Dec 2014
v4.4 Released
Jan 2016
New Phones, Old Kernels
2 years, 4 months
v4.9 Released
Dec 2016
ENGINEERS AND DEVICES
WORKING TOGETHER
v3.10 Released
June 2013
2015 Nexus devices
(Oct 2015)
v3.18 Released
Dec 2014
v4.4 Released
Jan 2016
New Phones, Old Kernels
2 years, 4 months
v4.9 Released
Dec 2016
2016 Pixel Phone
(Oct 2016)
1
year, 10
m
onths
ENGINEERS AND DEVICES
WORKING TOGETHER
v3.10 Released
June 2013
2015 Nexus devices
(Oct 2015)
v3.18 Released
Dec 2014
v4.4 Released
Jan 2016
New Phones, Old Kernels
2 years, 4 months
1 year, 3 months
v4.9 Released
Dec 2016
2016 Pixel Phone
(Oct 2016)
1
year, 10
m
onths
Early 2016 Flagship
(Mar 2016)
1 year, 4 months
Early 2017 Flagship
(April 2017)
ENGINEERS AND DEVICES
WORKING TOGETHER
v3.10 Released
June 2013
2015 Nexus devices
(Oct 2015)
v3.18 Released
Dec 2014
v4.4 Released
Jan 2016
A Year Ahead
2 years, 4 months
1 year, 3 months
v4.9 Released
Dec 2016
2016 Pixel Phone
(Oct 2016)
1
year, 10
m
onths
Early 2016 Flagship
(Mar 2016)
1 year, 4 months
Early 2017 Flagship
(April 2017)
HiKey on 4.4
(Apr 2016)
ENGINEERS AND DEVICES
WORKING TOGETHER
v3.10 Released
June 2013
2015 Nexus devices
(Oct 2015)
v3.18 Released
Dec 2014
v4.4 Released
Jan 2016
A Year Ahead
2 years, 4 months
1 year, 3 months
v4.9 Released
Dec 2016
2016 Pixel Phone
(Oct 2016)
1
year, 10
m
onths
Early 2016 Flagship
(Mar 2016)
1 year, 4 months
Early 2017 Flagship
(April 2017)
HiKey on 4.4
(Apr 2016)
HiKey on 4.9
(Feb 2017)
ENGINEERS AND DEVICES
WORKING TOGETHER
2015 Nexus devices
(Oct 2015)
Kernel/Device Release Latencies
2 years, 4 months
1 year, 10 months
2016 Pixel Phone
(Oct 2016)
Early 2016 Flagship
(Mar 2016)
1 year, 3 months
Early 2017 Flagship
(April 2017)
1 year, 4 months
2014 2015 2016 2017
HiKey on 4.4
(April 2016)
3m
2m
v3.10
(Jun 2013)
v3.18
(Dec 2014)
v4.4
(Jan 2016)
v4.9
(Dec 2016)
HiKey on 4.9
(Feb 2017)
ENGINEERS AND DEVICES
WORKING TOGETHER
SoC Android Trees (circa ~2015)
HiKey 4.9 Kernel Tree (~July)
HiKey 4.9 Kernel Tree (~July)
ENGINEERS AND DEVICES
WORKING TOGETHER
2015 Nexus devices
(Oct 2015)
Kernel/Device Release Latencies
2 years, 4 months
1 year, 10 months
2016 Pixel Phone
(Oct 2016)
Early 2016 Flagship
(Mar 2016)
1 year, 3 months
Early 2017 Flagship
(April 2017)
1 year, 4 months
2014 2015 2016 2017
HiKey on 4.4
(April 2016)
3m
2m
v3.10
(Jun 2013)
v3.18
(Dec 2014)
v4.4
(Jan 2016)
v4.9
(Dec 2016)
HiKey on 4.9
(Feb 2017)
ENGINEERS AND DEVICES
WORKING TOGETHER
2015 Nexus devices
(Oct 2015)
Kernel Release Latencies
2 years, 4 months
1 year, 10 months
2016 Pixel Phone
(Oct 2016)
Early 2016 Flagship
(Mar 2016)
1 year, 3 months
Early 2017 Flagship
(April 2017)
1 year, 4 months
2014 2015 2016 2017
HiKey on 4.4
(April 2016)
HiKey960 on 4.4
(April 2017)
3m
2m
v3.10
(Jun 2013)
v3.18
(Dec 2014)
v4.4
(Jan 2016)
v4.9
(Dec 2016)
HiKey on 4.9
(Feb 2017)
HiKey960 on 4.9
(Aug 2017)
1 year, 4 months
8 months
HiKey 4.9 Kernel Tree (after HiKey960)
Benefits
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Benefits to Android Devs
● Inexpensive Android development board
● Amount of board-specific patches is small
● Helps development of new Kernel features
○ Android Verity
○ Hibernation
○ Sdcardfs
○ SELinux
● Validation of Kernel patches / -stable updates
○ Wide range of supported kernels
○ Example: 3.18, (4.1), 4.4, 4.9
● Development of Android runtime libraries
○ Wide range of supported kernels
ENGINEERS
AND DEVICES
WORKING
TOGETHER
Benefits to Android Devs (cont)
● Development of new Bootloader features
○ UEFI bootloader is provided in source
○ Boot to RAM
● Development and Support of new Hardware modules
○ Display boards
○ Camera modules
○ Sensor modules ( ex: Neonkey sensorhub)
○ Connectivity modules
● Testing
○ Manual
○ Automation
ENGINEERS AND DEVICES
WORKING TOGETHER
Upstream Testing
Have a AOSP target that can run mainline kernels.
● LKFT efforts
● Weekly manual testing every mainline -rc release w/ HiKey
● Manually testing mainline ~daily during merge window
○ Small enough patchset that rebase-bisection isn’t bad
Found and reported numerous regressions against upstream
(SELinux, drm, binder, ipv6 networking, etc)
Also reported a number of issues that AOSP needs to address to work with
upstream kernels (New SELinux policies, dma_buf fences, ION destaging ABI
break)
Recent & Future Efforts
ENGINEERS AND DEVICES
WORKING TOGETHER
Recent efforts
Bring-up and validation of android-4.9 kernel tree
HiKey960 migration to v4.9
Migration to Android O
Transition to Generic Linux Bluetooth HAL (hikey & hikey960)
Parameterized EAS PowerHAL to make it shared/reusable
Gralloc binderization & migration to opensource gralloc on hikey960
Migration to new mali driver, which works w/ dma-buf fence SYNC_FILE interface
In Progress:
libION/Gralloc support for old and new (4.12+) ION ABIs
Hibernation proof-of-concept support on HiKey
Cadence HIFI3 DSP enablement
ENGINEERS AND DEVICES
WORKING TOGETHER
Cadence HiFi DSP SDK for Android
• A development and demonstration platform for Audio and Speech Applications
• Target Applications
– Audio and speech codecs
– Voice pre-processing such as acoustic echo cancellation, noise reduction
– Multi-microphone processing
– Audio post processing including object audio processing and rendering
– Immersive audio, 3D audio, AR/VR
– Speech recognition
– Neural network based processing
ENGINEERS AND DEVICES
WORKING TOGETHER
List of Demonstrations
• App processor to HiFi 3 DSP IPC (Inter processor communication)
• PCM Playback to USB Speaker via HiFi 3 DSP
• PCM Record from USB Microphone via HiFi 3 DSP
• PCM Playback to HDMI Speaker via HiFi 3 DSP
• MP3 Decoder on HiFI 3 DSP
09-29-2017
AOSP
App processor Code Release
AOSP
DSP Code Release
11-10-2017
Cadence
HiFi DSP SDK Launch
TBD
Multi-Microphone support
TBD
Linaro Connect Demo
10-13-2017
Roadmap
ENGINEERS AND DEVICES
WORKING TOGETHER
Direction forward
Utilize HiKey as arm64 target for lots of upstream and LTS testing
HiKey960 upstreaming
android-4.14 bringup and validation
UEFI transition(hikey960), updates & improvements (A/B, ?)
drm_hwcomposer
Proving ground for upstream EAS
Improved treble implementation
HiKey960 accelerated video encoding/decoding integration
Upstream DT fragments/overlay solution
ENGINEERS AND DEVICES
WORKING TOGETHER
Generic Build
● Kconfig based
● Supports multiple devices/architectures from single build
system
● db410c, db820c, nexus7, qemu-x86_64/aarch64, raspi3...
● Need more community involvement
Work on open-graphics stack
(mesa3d, gbm_gralloc, drm_hwcomposer, libdrm)
Other Work
Pain Points
ENGINEERS AND DEVICES
WORKING TOGETHER
AOSP pain points
Devboards aren’t really mobile devices (no panel, touch, baseband, etc)
Devboards aren’t “product” level targets internally, so AOSP changes break them
fairly often.
Support Effort/Load (bugs/feature requests):
● HiKey: ~240 over 2 years
● HiKey960: ~ 60 over 0.5 years
● ~1 issue every 3 days
Mali blobs make us dependent on ARM for continued support of hardware
No real space for developing shared/common HALs (cross-project dependencies
avoided)
Very difficult process to add/update project trees
ENGINEERS AND DEVICES
WORKING TOGETHER
Community pain points
Support multiple older kernels (v3.18, v4.4, v4.9, v4.14)
Difficult to develop clean solutions that cross all those points.
Example: drm_hwcomposer HWC2 implementation needs changes in v4.10+
Still need something for v3.18, v4.4 kernels
Android Sync/dma-buf fence transition, ION ABI changes, etc have been difficult
Would be nice if upstream efforts provided better migration paths
ENGINEERS AND DEVICES
WORKING TOGETHER
Vendor pain points
Treble trouble
● Wifi / Bluetooth / gralloc all needed work
● Bluetooth was broken for 3 weeks during the transition
○ In part motivated the generic linux bluetooth HAL work
● Gralloc changes required changes into libGLES_mali.so
○ Required ARM to respin
We want to provide a good reference implementation, so feedback on that would
be good.
ENGINEERS AND DEVICES
WORKING TOGETHER
Things to watch out for...
ION ABI (4.12+) changes will affect lots of vendors with custom implementations
● We really need to solve this right, but so far low involvement from vendors in
community discussions!
● GET INVOLVED!
Start aligning with open graphics stack!
● Work with community to resolve issues that keep you on custom
implementations
ENGINEERS AND DEVICES
WORKING TOGETHER
Questions/Discussion
Price vs Power preference?
Upstreaming board support takes a frustratingly long time!
Multiple boards (and supporting multiple kernels) is hard to scale!
Still not getting to the point where we’re really pushing some of the advanced
Android functionality upstream (offloaded sensor collection, wifi/bt scanning, etc).
Standard Kernel interfaces for Android are becoming a smaller issue than
standard bootloader interfaces for Android (Reboot reason, dtb handling,
fastboot flashing, secure boot, A/B updates, etc). Some work going on in UEFI,
but with limited resources.
Thank You
#SFO17
Questions: John Stultz <john.stultz@linaro.org>
SFO17 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org
Backup Slides
ENGINEERS AND DEVICES
WORKING TOGETHER
Hardware Architecture of Cadence HiFi 3 DSP in Hikey960
App Processor
Audio DSP (HiFi 3)
Hi3660 SoC
LPDDR4
Shared Memory
HiFi 3 DSP Core
(500 MHz)
DRAM
IRAM
D-Cache I-Cache
SoC
I/O
ENGINEERS AND DEVICES
WORKING TOGETHER
DSP Software Architecture of the Hikey960
Kernel
App Processor
HiFi 3 DSP
XAF
Xtensa Audio
framework
Audio HALUSB HAL
Host Side XAF
Audio Signal Processing component
DSP Side XAF
Your App SW
IPC Inter-processor
connect
(Shared Memory)
DSP Developers API
(enables direct control of
components)
HiFi
Driver
App Developers API
(abstracts DSP with few APIs)

Contenu connexe

Plus de Linaro

Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
Linaro
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
Linaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
Linaro
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
Linaro
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
Linaro
 
HKG18-212 - Trusted Firmware M: Introduction
HKG18-212 - Trusted Firmware M: IntroductionHKG18-212 - Trusted Firmware M: Introduction
HKG18-212 - Trusted Firmware M: Introduction
Linaro
 
HKG18-116 - RAS Solutions for Arm64 Servers
HKG18-116 - RAS Solutions for Arm64 ServersHKG18-116 - RAS Solutions for Arm64 Servers
HKG18-116 - RAS Solutions for Arm64 Servers
Linaro
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
Linaro
 

Plus de Linaro (20)

Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
 
HKG18-212 - Trusted Firmware M: Introduction
HKG18-212 - Trusted Firmware M: IntroductionHKG18-212 - Trusted Firmware M: Introduction
HKG18-212 - Trusted Firmware M: Introduction
 
HKG18-116 - RAS Solutions for Arm64 Servers
HKG18-116 - RAS Solutions for Arm64 ServersHKG18-116 - RAS Solutions for Arm64 Servers
HKG18-116 - RAS Solutions for Arm64 Servers
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

AOSP Devboard update and recent/future pain points - SFO17-506

  • 1. John Stultz <john.stultz@linaro.org> LMG Kernel Team AOSP Devboard Update & Recent/Future Pain Points
  • 2. ENGINEERS AND DEVICES WORKING TOGETHER Now there are two: https://source.android.com/source/devices HiKey HiKey960
  • 3. ENGINEERS AND DEVICES WORKING TOGETHER Hardware overview HiKey ● HiSilicon Kirin 620 SoC ● 64bit ARM A53 ● 8 cores ● 1 or 2 GB RAM ● 4 or 8 GB eMMC ● Mali 450 (Utgard) Graphics ● USB2 Type A & USB-OTG ● $100-120 HiKey960 ● HiSilicon Kirin 960 SoC ● 64bit ARM 4xA53 + 4xA73 ● 8 core big.LITTLE design ● 3 GB RAM ● 32 GB UFS Storage ● Mali G71 (Bifrost) Graphics ● PCIe ● USB3 Type A & USB-C (USB2) ● 5GHz WiFi & BT 4.1 ● $240
  • 4. ENGINEERS AND DEVICES WORKING TOGETHER Remaining out-of-tree patches (4.14-rc) HiKey ● Minor USB improvements ● ION ABI revert HACK ● Mali gpu HiKey960 ● regulators ● ufs ● mailbox ● cpufreq/thermal ● usb ● iommu ● drm driver ● dts ● Mali gpu ● ...
  • 5. ENGINEERS AND DEVICES WORKING TOGETHER 96Boards.org Vendor neutral hardware standard for developer boards Allows ecosystem of peripherals that can be shared
  • 6. ENGINEERS AND DEVICES WORKING TOGETHER 96Boards.org Vendor neutral hardware standard for developer boards Allows ecosystem of peripherals that can be shared
  • 7. ENGINEERS AND DEVICES WORKING TOGETHER Neonkey Neonkey is certified 96Boards mezzanine: https://source.android.com/source/devices#neonkey ● CPU: STM32F11CE ● NOR Flash: 512 KB ● SRAM: 128 KB ● Pressure sensor: BMP280 ● ARM Hall sensor: MRMS501A ● Temp/Humidity sensor: SI7034-A10 ● ALS/Proximity sensor: RPR-0521RS ● LED driver with 15LEDs: LP3943 ● Accel/Gyro+Geomagnetic sensors: ○ BMI160+BMM150 ● 4 GPIO-driver LEDs ● I2C expansion ● GPIO (2 lines) expansion ● JTAG connector ● 96Boards LS Expansion connector
  • 9. ENGINEERS AND DEVICES WORKING TOGETHER v3.10 Released June 2013 2015 Nexus devices (Oct 2015) v3.18 Released Dec 2014 v4.4 Released Jan 2016 New Phones, Old Kernels 2 years, 4 months v4.9 Released Dec 2016
  • 10. ENGINEERS AND DEVICES WORKING TOGETHER v3.10 Released June 2013 2015 Nexus devices (Oct 2015) v3.18 Released Dec 2014 v4.4 Released Jan 2016 New Phones, Old Kernels 2 years, 4 months v4.9 Released Dec 2016 2016 Pixel Phone (Oct 2016) 1 year, 10 m onths
  • 11. ENGINEERS AND DEVICES WORKING TOGETHER v3.10 Released June 2013 2015 Nexus devices (Oct 2015) v3.18 Released Dec 2014 v4.4 Released Jan 2016 New Phones, Old Kernels 2 years, 4 months 1 year, 3 months v4.9 Released Dec 2016 2016 Pixel Phone (Oct 2016) 1 year, 10 m onths Early 2016 Flagship (Mar 2016) 1 year, 4 months Early 2017 Flagship (April 2017)
  • 12. ENGINEERS AND DEVICES WORKING TOGETHER v3.10 Released June 2013 2015 Nexus devices (Oct 2015) v3.18 Released Dec 2014 v4.4 Released Jan 2016 A Year Ahead 2 years, 4 months 1 year, 3 months v4.9 Released Dec 2016 2016 Pixel Phone (Oct 2016) 1 year, 10 m onths Early 2016 Flagship (Mar 2016) 1 year, 4 months Early 2017 Flagship (April 2017) HiKey on 4.4 (Apr 2016)
  • 13. ENGINEERS AND DEVICES WORKING TOGETHER v3.10 Released June 2013 2015 Nexus devices (Oct 2015) v3.18 Released Dec 2014 v4.4 Released Jan 2016 A Year Ahead 2 years, 4 months 1 year, 3 months v4.9 Released Dec 2016 2016 Pixel Phone (Oct 2016) 1 year, 10 m onths Early 2016 Flagship (Mar 2016) 1 year, 4 months Early 2017 Flagship (April 2017) HiKey on 4.4 (Apr 2016) HiKey on 4.9 (Feb 2017)
  • 14. ENGINEERS AND DEVICES WORKING TOGETHER 2015 Nexus devices (Oct 2015) Kernel/Device Release Latencies 2 years, 4 months 1 year, 10 months 2016 Pixel Phone (Oct 2016) Early 2016 Flagship (Mar 2016) 1 year, 3 months Early 2017 Flagship (April 2017) 1 year, 4 months 2014 2015 2016 2017 HiKey on 4.4 (April 2016) 3m 2m v3.10 (Jun 2013) v3.18 (Dec 2014) v4.4 (Jan 2016) v4.9 (Dec 2016) HiKey on 4.9 (Feb 2017)
  • 15. ENGINEERS AND DEVICES WORKING TOGETHER SoC Android Trees (circa ~2015)
  • 16. HiKey 4.9 Kernel Tree (~July)
  • 17. HiKey 4.9 Kernel Tree (~July)
  • 18. ENGINEERS AND DEVICES WORKING TOGETHER 2015 Nexus devices (Oct 2015) Kernel/Device Release Latencies 2 years, 4 months 1 year, 10 months 2016 Pixel Phone (Oct 2016) Early 2016 Flagship (Mar 2016) 1 year, 3 months Early 2017 Flagship (April 2017) 1 year, 4 months 2014 2015 2016 2017 HiKey on 4.4 (April 2016) 3m 2m v3.10 (Jun 2013) v3.18 (Dec 2014) v4.4 (Jan 2016) v4.9 (Dec 2016) HiKey on 4.9 (Feb 2017)
  • 19. ENGINEERS AND DEVICES WORKING TOGETHER 2015 Nexus devices (Oct 2015) Kernel Release Latencies 2 years, 4 months 1 year, 10 months 2016 Pixel Phone (Oct 2016) Early 2016 Flagship (Mar 2016) 1 year, 3 months Early 2017 Flagship (April 2017) 1 year, 4 months 2014 2015 2016 2017 HiKey on 4.4 (April 2016) HiKey960 on 4.4 (April 2017) 3m 2m v3.10 (Jun 2013) v3.18 (Dec 2014) v4.4 (Jan 2016) v4.9 (Dec 2016) HiKey on 4.9 (Feb 2017) HiKey960 on 4.9 (Aug 2017) 1 year, 4 months 8 months
  • 20. HiKey 4.9 Kernel Tree (after HiKey960)
  • 22. ENGINEERS AND DEVICES WORKING TOGETHER Benefits to Android Devs ● Inexpensive Android development board ● Amount of board-specific patches is small ● Helps development of new Kernel features ○ Android Verity ○ Hibernation ○ Sdcardfs ○ SELinux ● Validation of Kernel patches / -stable updates ○ Wide range of supported kernels ○ Example: 3.18, (4.1), 4.4, 4.9 ● Development of Android runtime libraries ○ Wide range of supported kernels
  • 23. ENGINEERS AND DEVICES WORKING TOGETHER Benefits to Android Devs (cont) ● Development of new Bootloader features ○ UEFI bootloader is provided in source ○ Boot to RAM ● Development and Support of new Hardware modules ○ Display boards ○ Camera modules ○ Sensor modules ( ex: Neonkey sensorhub) ○ Connectivity modules ● Testing ○ Manual ○ Automation
  • 24. ENGINEERS AND DEVICES WORKING TOGETHER Upstream Testing Have a AOSP target that can run mainline kernels. ● LKFT efforts ● Weekly manual testing every mainline -rc release w/ HiKey ● Manually testing mainline ~daily during merge window ○ Small enough patchset that rebase-bisection isn’t bad Found and reported numerous regressions against upstream (SELinux, drm, binder, ipv6 networking, etc) Also reported a number of issues that AOSP needs to address to work with upstream kernels (New SELinux policies, dma_buf fences, ION destaging ABI break)
  • 25. Recent & Future Efforts
  • 26. ENGINEERS AND DEVICES WORKING TOGETHER Recent efforts Bring-up and validation of android-4.9 kernel tree HiKey960 migration to v4.9 Migration to Android O Transition to Generic Linux Bluetooth HAL (hikey & hikey960) Parameterized EAS PowerHAL to make it shared/reusable Gralloc binderization & migration to opensource gralloc on hikey960 Migration to new mali driver, which works w/ dma-buf fence SYNC_FILE interface In Progress: libION/Gralloc support for old and new (4.12+) ION ABIs Hibernation proof-of-concept support on HiKey Cadence HIFI3 DSP enablement
  • 27. ENGINEERS AND DEVICES WORKING TOGETHER Cadence HiFi DSP SDK for Android • A development and demonstration platform for Audio and Speech Applications • Target Applications – Audio and speech codecs – Voice pre-processing such as acoustic echo cancellation, noise reduction – Multi-microphone processing – Audio post processing including object audio processing and rendering – Immersive audio, 3D audio, AR/VR – Speech recognition – Neural network based processing
  • 28. ENGINEERS AND DEVICES WORKING TOGETHER List of Demonstrations • App processor to HiFi 3 DSP IPC (Inter processor communication) • PCM Playback to USB Speaker via HiFi 3 DSP • PCM Record from USB Microphone via HiFi 3 DSP • PCM Playback to HDMI Speaker via HiFi 3 DSP • MP3 Decoder on HiFI 3 DSP 09-29-2017 AOSP App processor Code Release AOSP DSP Code Release 11-10-2017 Cadence HiFi DSP SDK Launch TBD Multi-Microphone support TBD Linaro Connect Demo 10-13-2017 Roadmap
  • 29. ENGINEERS AND DEVICES WORKING TOGETHER Direction forward Utilize HiKey as arm64 target for lots of upstream and LTS testing HiKey960 upstreaming android-4.14 bringup and validation UEFI transition(hikey960), updates & improvements (A/B, ?) drm_hwcomposer Proving ground for upstream EAS Improved treble implementation HiKey960 accelerated video encoding/decoding integration Upstream DT fragments/overlay solution
  • 30. ENGINEERS AND DEVICES WORKING TOGETHER Generic Build ● Kconfig based ● Supports multiple devices/architectures from single build system ● db410c, db820c, nexus7, qemu-x86_64/aarch64, raspi3... ● Need more community involvement Work on open-graphics stack (mesa3d, gbm_gralloc, drm_hwcomposer, libdrm) Other Work
  • 32. ENGINEERS AND DEVICES WORKING TOGETHER AOSP pain points Devboards aren’t really mobile devices (no panel, touch, baseband, etc) Devboards aren’t “product” level targets internally, so AOSP changes break them fairly often. Support Effort/Load (bugs/feature requests): ● HiKey: ~240 over 2 years ● HiKey960: ~ 60 over 0.5 years ● ~1 issue every 3 days Mali blobs make us dependent on ARM for continued support of hardware No real space for developing shared/common HALs (cross-project dependencies avoided) Very difficult process to add/update project trees
  • 33. ENGINEERS AND DEVICES WORKING TOGETHER Community pain points Support multiple older kernels (v3.18, v4.4, v4.9, v4.14) Difficult to develop clean solutions that cross all those points. Example: drm_hwcomposer HWC2 implementation needs changes in v4.10+ Still need something for v3.18, v4.4 kernels Android Sync/dma-buf fence transition, ION ABI changes, etc have been difficult Would be nice if upstream efforts provided better migration paths
  • 34. ENGINEERS AND DEVICES WORKING TOGETHER Vendor pain points Treble trouble ● Wifi / Bluetooth / gralloc all needed work ● Bluetooth was broken for 3 weeks during the transition ○ In part motivated the generic linux bluetooth HAL work ● Gralloc changes required changes into libGLES_mali.so ○ Required ARM to respin We want to provide a good reference implementation, so feedback on that would be good.
  • 35. ENGINEERS AND DEVICES WORKING TOGETHER Things to watch out for... ION ABI (4.12+) changes will affect lots of vendors with custom implementations ● We really need to solve this right, but so far low involvement from vendors in community discussions! ● GET INVOLVED! Start aligning with open graphics stack! ● Work with community to resolve issues that keep you on custom implementations
  • 36. ENGINEERS AND DEVICES WORKING TOGETHER Questions/Discussion Price vs Power preference? Upstreaming board support takes a frustratingly long time! Multiple boards (and supporting multiple kernels) is hard to scale! Still not getting to the point where we’re really pushing some of the advanced Android functionality upstream (offloaded sensor collection, wifi/bt scanning, etc). Standard Kernel interfaces for Android are becoming a smaller issue than standard bootloader interfaces for Android (Reboot reason, dtb handling, fastboot flashing, secure boot, A/B updates, etc). Some work going on in UEFI, but with limited resources.
  • 37. Thank You #SFO17 Questions: John Stultz <john.stultz@linaro.org> SFO17 keynotes and videos on: connect.linaro.org For further information: www.linaro.org
  • 39. ENGINEERS AND DEVICES WORKING TOGETHER Hardware Architecture of Cadence HiFi 3 DSP in Hikey960 App Processor Audio DSP (HiFi 3) Hi3660 SoC LPDDR4 Shared Memory HiFi 3 DSP Core (500 MHz) DRAM IRAM D-Cache I-Cache SoC I/O
  • 40. ENGINEERS AND DEVICES WORKING TOGETHER DSP Software Architecture of the Hikey960 Kernel App Processor HiFi 3 DSP XAF Xtensa Audio framework Audio HALUSB HAL Host Side XAF Audio Signal Processing component DSP Side XAF Your App SW IPC Inter-processor connect (Shared Memory) DSP Developers API (enables direct control of components) HiFi Driver App Developers API (abstracts DSP with few APIs)