google nexus 5x 6p mainlining effort jeremy mcnicoll
play

GOOGLE NEXUS 5X & 6P MAINLINING EFFORT JEREMY MCNICOLL - PowerPoint PPT Presentation

GOOGLE NEXUS 5X & 6P MAINLINING EFFORT JEREMY MCNICOLL JEREMYMC@REDHAT.COM $> WHOAMI 2 Jeremy McNicoll Nexus Mainline Effort 3 Jeremy McNicoll Nexus Mainline Effort WHY? 4 Jeremy McNicoll Nexus Mainline Effort NEXUS 5X


  1. GOOGLE NEXUS 5X & 6P MAINLINING EFFORT JEREMY MCNICOLL JEREMYMC@REDHAT.COM

  2. $> WHOAMI 2 Jeremy McNicoll – Nexus Mainline Effort

  3. 3 Jeremy McNicoll – Nexus Mainline Effort

  4. WHY? 4 Jeremy McNicoll – Nexus Mainline Effort

  5. NEXUS 5X SPECS 5 Jeremy McNicoll – Nexus Mainline Effort

  6. NEXUS 6P SPECS 6 Jeremy McNicoll – Nexus Mainline Effort

  7. TERMINOLOGY • Nexus 5X çè MSM8992 çè Snapdragon 808 • Nexus 6P çè MSM8994 çè Snapdragon 810 • MSM == Mobile Station Modem • Linaro Integration branch • Downstream • Msm 3.10 • Msm 3.18 7 Jeremy McNicoll – Nexus Mainline Effort

  8. THE BEGINNING … 8 Jeremy McNicoll – Nexus Mainline Effort

  9. ELC 2016 – SAN DIEGO • Mainline support of Nexus 5X ? • Downstream working • Community help / assistance 9 Jeremy McNicoll – Nexus Mainline Effort

  10. DEBUG CABLE 10 Jeremy McNicoll – Nexus Mainline Effort

  11. WHAT’S WORKING? • Single CPU • INITRD / RAMDISK • Debug Serial • Global Clocks • SDHCI / MMC / onboard storage • Pinctrl • Bluetooth (WIP) 11 Jeremy McNicoll – Nexus Mainline Effort

  12. MAINLINE STATUS Where can I get this cool new hotness?!? $ ¡git ¡tag ¡-­‑-­‑contains ¡a77a713395392a ¡ ¡ v4.10-­‑rc1 ¡ v4.10-­‑rc2 ¡ v4.10-­‑rc3 ¡ v4.10-­‑rc4 ¡ v4.10-­‑rc5 ¡ v4.10-­‑rc6 ¡ 12 Jeremy McNicoll – Nexus Mainline Effort

  13. UPDATING CLOCKS Where are the values hiding? (mainline) ¡drivers/clk/qcom/gcc-­‑msm8916.c ¡ (downstream) ¡drivers/clk/qcom/clock-­‑gcc-­‑8916.c ¡ 13 Jeremy McNicoll – Nexus Mainline Effort

  14. UPDATING CLOCKS Where are the values hiding? (downstream) ¡drivers/clk/qcom/clock-­‑gcc-­‑8992.c ¡ (Mainline) ¡drivers/clk/qcom/gcc-­‑msm8996.c ¡ 14 Jeremy McNicoll – Nexus Mainline Effort

  15. UPDATING CLOCKS continued … Downstream ¡vs ¡Upstream ¡? ¡ 15 Jeremy McNicoll – Nexus Mainline Effort

  16. LESSONS LEARN 16 Jeremy McNicoll – Nexus Mainline Effort

  17. LESSONS LEARNED Tips and tricks for those brave enough to repeat this!! • Get things sent upstream ASAP (3.10 vs 4.5) • Don’t take on too much • Keep your goals small and attainable • Cheerleaders are helpful • Don’t just focus on getting X lines committed into the kernel. Helping others and the community is greatly appreciated and goes a long way. • Community is not big bad and scary. People are quite cooperative / helpful if you play nice and are not an A$$H0l3 17 Jeremy McNicoll – Nexus Mainline Effort

  18. NEXT SUBSYSTEM? 18 Jeremy McNicoll – Nexus Mainline Effort

  19. SUBSYSTEM SELECTION? • SDHCI done • Screen / graphics 418 & 430 via Freedreno • USB (good candidate) • WIFI • I2C • SPI • Modem • Sound • Camera • Others …… ? 19 Jeremy McNicoll – Nexus Mainline Effort

  20. BLUETOOTH (WIP … ) 20 Jeremy McNicoll – Nexus Mainline Effort

  21. BLUETOOTH Downstream investigation • Qualcomm ¡QCA6174 ¡802.11ac ¡Wi-­‑Fi ¡2x2 ¡MIMO ¡Combo ¡SoC ¡ • PyHS0 ¡at ¡MMIO ¡0xf995e000 ¡(irq ¡= ¡146) ¡is ¡a ¡MSM ¡HS ¡UART ¡ ¡ • Sequence ¡of ¡events: ¡ 1. Enable ¡BT ¡via ¡GPIO ¡( drivers/bluetooth/bluetooth-­‑power.c) ¡ 2. Send ¡reset ¡(HCI_RESET ¡ ¡0x0C03) ¡to ¡/dev/PyHS0 ¡ ¡ 3. Communica_on ¡starts…. ¡ 21 Jeremy McNicoll – Nexus Mainline Effort

  22. BLUETOOTH Modifications for upstream • PCIe ¡clocks ¡ ¡ • PCIe ¡PHY ¡clocks ¡ • PHY ¡QMP ¡not ¡upstream ¡ • PCIe ¡QCA6174 ¡supported ¡via ¡ath10k ¡driver ¡ • Use ¡latest ¡ath10k ¡on ¡3.10 ¡using ¡backports ¡ • RPM ¡SMD ¡ • Luser ¡space ¡with ¡Bluez ¡and ¡firmware ¡ 22 Jeremy McNicoll – Nexus Mainline Effort

  23. 23 Jeremy McNicoll – Nexus Mainline Effort

  24. GETTING INVOLVED! WISH LIST / TODO LIST / HELP LIST • RAMDISK / InitRD > 2.1 MB booting • Subsystem volunteers • Hardware (Cables & Phones) • Preconfigured VM to build AOSP? • Help Jeremy investigate various subsystems downstream • Kernel newbie • Documentation published or subset 24 Jeremy McNicoll – Nexus Mainline Effort

  25. LINKS AND REFERENCES • IRC: Freenode ##linux-msm (yes, there are 2 #’s) • Mailing lists: linux-arm-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org • Git Repo’s • MSM kernel 3.14 --> https://us.codeaurora.org/cgit/quic/la/kernel/msm-3.14/ • MSM kernel 3.18 --> https://us.codeaurora.org/cgit/quic/la/kernel/msm-3.18/ • Linaro http://git.linaro.org/landing-teams/working/qualcomm/kernel.git • Initial Nexus mainline patches (http://lists.infradead.org/pipermail/linux-arm-kernel/2016- July/442069.html) • http://source.android.com/source/building-kernels.html • iFixit Teardown: https://www.ifixit.com/Teardown/Nexus+5X+Teardown/51318 25 Jeremy McNicoll – Nexus Mainline Effort

  26. LINKS AND REFERENCES – PART 2 • Dissecting the QCOM 1.7M line fork (https://youtu.be/JnGL85SglbA) • Debug Cable: • http://people.redhat.com/jmcnicol/nexus_debug/ • https://android.googlesource.com/device/google/debugcable/+/master 26 Jeremy McNicoll – Nexus Mainline Effort

  27. THANK YOU 27 Jeremy McNicoll – Nexus Mainline Effort

  28. QUESTIONS & OPEN DISCUSSION 28 Jeremy McNicoll – Nexus Mainline Effort

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend