Google Nexus 9 (htc-flounder)
Appearance
![]() Nexus 9 | |
Manufacturer | HTC |
---|---|
Name | Nexus 9 (Wifi) |
Codename | htc-flounder |
Released | 2014 |
Hardware | |
Chipset | Nvidia Tegra K1 |
CPU | 2.3 GHz dual-core 64-bit Denver |
GPU | 192-core Kepler, 16M colors |
Display | 2048×1536 LCD IPS |
Storage | 16GB/32GB |
Memory | 2 GB LPDDR3-1600 RAM |
Architecture | aarch64 |
Software | |
Original software | Android Lollipop 5.0 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
Flashing |
Works |
---|---|
USB Networking |
Works |
Internal storage |
No data |
SD card |
No data |
Battery |
No data |
Screen |
Partial |
Touchscreen |
No data |
Multimedia | |
3D Acceleration |
No data |
Audio |
No data |
Camera |
No data |
Camera Flash |
No data |
Connectivity | |
WiFi |
No data |
Bluetooth |
No data |
GPS |
No data |
NFC |
No data |
Miscellaneous | |
FDE |
No data |
USB OTG |
No data |
HDMI/DP |
No data |
Sensors | |
Accelerometer |
No data |
Magnetometer |
No data |
Ambient Light |
No data |
Proximity |
No data |
Hall Effect |
No data |
Haptics |
No data |
Barometer |
No data |
Contributors
- lillywho
Device owners
- Baasm (Notes: still stock)
- Dcambie (Notes: Actually lte version. Boots, USB problematic, DTS needs fixes :()
- Jja2000 (Notes: Looks like shit, but it'll do)
- MartijnBraam (Notes: On loan)
- No112 (Notes: own 2x, mainline work)
- Russanandres (Notes: LinageOS 15.1)
- Segfault (Notes: Currently porting mainline)
- UltrasonicMadness (Notes: Bubbling present in screen)
How to enter flash mode
Hold POWER + VOLDOWN, press Power to confirm Fastboot mode
Installation
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
Minimal working dts
The following is a minimal working device tree that is just enough to boot into the initramfs debug-shell. The boot parameter clk_ignore_unused
is a temporary workaround to fix an issue where the image on the screen slowly distorts to static as soon as the kernel boots. A similar issue is discussed here. Do not edit the google,flounder64
string, otherwise the bootloader will reject the dtb and refuse to boot the kernel.
// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include "tegra132.dtsi" / { model = "Google Nexus 9"; compatible = "google,flounder64", "nvidia,tegra132"; aliases { serial0 = &uarta; }; chosen { stdout-path = "serial0:115200n8"; bootargs = "clk_ignore_unused PMOS_NO_OUTPUT_REDIRECT"; }; memory { device_type = "memory"; reg = <0x0 0x80000000 0x0 0x80000000>; }; clocks { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; clk32k_in: clock@0 { compatible = "fixed-clock"; reg=<0>; #clock-cells = <0>; clock-frequency = <32768>; }; }; serial@70006000 { status = "okay"; }; };
Mainlining notes
- The partition table is a special tegra thing where the sector the GPT is stored is passed as a kernel commandline argument by the bootloader.
- Broadcom BCM4354XKUBG wifi module
- Broadcom BCM4752 GPS
- Broadcom BCM2079x NFC (enable on PB1, irq on PR7, wake on PS1, i2c addr 0x77)
- NXP tfa9895 audio amp (enable on PX5, i2c addr 0x34)
- NXP tfa9895l amp (i2c addr 0x35)
- Realtek rt5677 codec (enable on PX3, i2c addr 0x2d)
- USB port is EHCI1, id pin is PW2
- On the LTE version the modem is on EHCI2
See also
- pmbootstrap!1309 Initial pull request
- pmbootstrap#1384 Kernel panic
- https://en.wikipedia.org/wiki/Nexus_9