Amazon Fire TV (amazon-bueller)

From postmarketOS
Revision as of 09:51, 10 April 2019 by CalcProgrammer1 (talk | contribs) (How to enter flash mode)
Jump to: navigation, search
Amazon Fire TV
200px
Amazon Fire TV
Manufacturer Amazon
Name Fire TV
Codename amazon-bueller
Released 2014
Category testing
Original software Fire OS 5
Hardware
Chipset Qualcomm APQ8064 Snapdragon 600
CPU 4x 1.7GHz Krait 300
GPU Adreno 320
Display HDMI
Storage 8 GB
Memory 2 GB
Architecture armhf
Features
USB Networking
Broken
Flashing
Broken
Touchscreen
Broken
Display
Works
WiFi
Broken
Xwayland
Broken
FDE
Broken
Mainline
Broken
Battery
Broken
3D Acceleration
Broken
Accelerometer
Broken
Audio
Broken
Bluetooth
Broken
Camera
Broken
GPS
Broken
Mobile data
Broken
SMS
Broken
Calls
Broken
USB OTG



Contributors

  • CalcProgrammer1 (Adam Honse)

Device files:

https://gitlab.com/CalcProgrammer1/pmaports

Maintainer(s)

How to enter flash mode

Unlock the bootloader according to this guide: http://www.aftvnews.com/how-to-fully-unlock-the-amazon-fire-tv-bootloader/

Then you can use fastboot (or the pmbootstrap flasher) to flash and boot images. A USB A-to-A cable is needed to connect a PC for fastboot. I made a dongle by soldering two USB A connectors I salvaged from scrap cables together, then used a USB extension cable with it.

Installation

Upload root filesystem to the partition of your choice using fastboot. I chose the userdata partition since it doesn't replace the default Android installation and has the most space.

Test the boot.img with fastboot, then if it works flash it to the boot partition.

See also

Mainlining in progress, code here: https://gitlab.com/CalcProgrammer1/linux-next

The branch has both Amazon FireTV and Galaxy Note 3 changes.

Notes

  • The FireTV has serial port pads on the bottom side of the PCB. You can solder to them with a fine tipped soldering iron. There is no external serial port available. I modified mine by adding a 3 pin header port and cutting a notch in the case to fit it. See here: [1]
  • The FireTV only has one USB port. It is a type A port, but it can be used as a client through an A-to-A adapter. This allows Fastboot usage.
  • Wireless LAN is a USB device - Qualcomm Atheros 0CF3:9374 (ath6kl)
  • Ethernet is a PCI device - Atheros L2 Ethernet Driver - version 2.2.3, PCI 0000:01:00.0 (atl1c)
  • mmc0 is the EMMC - M8G1GC 7.28GB
  • Debug serial port is on GSBI4
  • TPD12S016 output enables seem to be tied high, so no GPIO stuff needed for it

Chips On Board

  • Burr Brown DIT4192I - Looks like some sort of I2S to S/PDIF chip for the optical output
  • Samsung KLM8G1GEAC - 8 GB eMMC
  • SKhynix H9TKNNNBPDAR - 2 GB LPDDR2 RAM

GPIOs

GPIOs 0-151, platform/msmgpio, msmgpio:
 gpio-5   (spdif_buffer_enable ) out hi
 gpio-6   (HSIC_WAKEUP_GPIO    ) in  lo
 gpio-8   (gpio_8_vreg         ) out hi
 gpio-27  (MI2S_WS             ) in  hi
 gpio-28  (MI2S_SCLK           ) in  lo
 gpio-29  (dit4192_spi-buf_int,) in  hi
 gpio-30  (dit4192_spi-ubit_pin) out lo
 gpio-31  (dit4192_spi-bls_pin ) in  lo
 gpio-32  (MI2S_DOUT0          ) in  hi
 gpio-33  (MI2S_MCLK           ) in  lo
 gpio-35  (dit4192_spi-reset_pi) out hi
 gpio-69  (HDMI_CEC_VAR        ) in  hi
 gpio-70  (HDMI_DDC_CLK        ) in  hi
 gpio-71  (HDMI_DDC_DATA       ) in  hi
 gpio-72  (HDMI_HPD            ) in  hi
 gpio-88  (HSIC_STROBE_GPIO    ) in  hi
 gpio-89  (HSIC_DATA_GPIO      ) in  lo

GPIOs 152-195, platform/pm8xxx-gpio, pm-gpio:
gpio-152 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-153 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-154 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-155 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-156 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-157 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-158 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-159 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-160 (--          ) out        lo 0x05 0x18 0x2a 0x34 0x40 0x50
gpio-161 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-162 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-163 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-164 (pwr_en      ) out        hi 0x01 0x19 0x2a 0x35 0x46 0x58
gpio-165 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-166 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-167 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-168 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-169 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-170 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-171 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-172 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-173 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-174 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-175 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-176 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-177 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-178 (--          ) out        lo 0x01 0x18 0x2a 0x34 0x44 0x58
gpio-179 (--          ) out        lo 0x01 0x18 0x2a 0x34 0x44 0x58
gpio-180 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-181 (--          ) out        lo 0x01 0x18 0x2a 0x34 0x44 0x58
gpio-182 (--          ) in         hi 0x05 0x10 0x20 0x30 0x40 0x58
gpio-183 (--          ) out        lo 0x01 0x18 0x2a 0x34 0x44 0x58
gpio-184 (--          ) out        lo 0x05 0x18 0x2a 0x34 0x40 0x58
gpio-185 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-186 (--          ) in         lo 0x05 0x10 0x24 0x30 0x40 0x50
gpio-187 (--          ) out        lo 0x01 0x18 0x2a 0x35 0x46 0x58
gpio-188 (--          ) in         lo 0x01 0x10 0x2a 0x35 0x46 0x58
gpio-189 (--          ) in         lo 0x05 0x10 0x24 0x30 0x40 0x50
gpio-190 (--          ) in         hi 0x05 0x10 0x2a 0x30 0x40 0x58
gpio-191 (--          ) out        lo 0x01 0x18 0x2a 0x34 0x44 0x58
gpio-192 (--          ) out        lo 0x05 0x18 0x2a 0x34 0x44 0x58
gpio-193 (usb_otg_sw_e) out        hi 0x05 0x19 0x2a 0x34 0x40 0x58
gpio-194 (--          ) in         lo 0x05 0x10 0x2a 0x35 0x46 0x58
gpio-195 (--          ) out        hi 0x05 0x19 0x2a 0x34 0x40 0x58

GPIOs 196-207, platform/pm8xxx-mpp.0, pm8xxx-mpp:
gpio-196 (rst_n       ) d_out      hi 0x2d
gpio-197 (--          ) d_out      lo 0x3c
gpio-198 (--          ) d_out      lo 0x3c
gpio-199 (--          ) d_out      lo 0x3c
gpio-200 (--          ) a_out      lo 0x85
gpio-201 (--          ) sink       lo 0xa0
gpio-202 (ext_5v_en   ) d_out      lo 0x3c
gpio-203 (ext_mpp8_en ) d_out      hi 0x3d
gpio-204 (--          ) sink       lo 0xa0
gpio-205 (--          ) d_out      lo 0x3c
gpio-206 (--          ) sink       lo 0xa0
gpio-207 (--          ) sink       lo 0xa0

GPIOs 208-211, platform/pm8xxx-mpp.1, pm8xxx-mpp:
gpio-208 (--          ) sink       lo 0xa0
gpio-209 (--          ) sink       lo 0xa0
gpio-210 (--          ) sink       lo 0xa0
gpio-211 (--          ) sink       lo 0xa0