Logitech Revue Technical
- Intel Atom CE4150 1.2 GHz processor, with a 400 MHz GPU
- Gigabyte GA-SBKAN2 motherboard
- Samsung K9F8G08U0M 1 GB NAND Flash (Single Level Cell) Datasheet Mirror
- Hynix H27UBG8T2ATR 4 GB NAND Flash (Multiple Level Cell)
- Silicon Image Sil9135 HDMI 1.3 Receiver Chip Information Datasheet from TI
- Nanya NT5CB128M8CN-CG 1 GB DDR3 SDRAM (1 Gb X 8) Datasheet
- Realtek Semiconductor RTL8201N 10/100M PHYceiver Datasheet
- Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller Datasheet
- Phison S2251-50 USB to Flash Controller (Datasheet not available to end users according to manufacture)
- IDT ICS9LPRS525AGLF Clock for CPU Datasheet
SemiAccurate has a populated board similar to the one in the Revue: http://www.semiaccurate.com/2010/06/04/gigabyte-has-google-tv-ready-motherboard/
Samsung K9F8G08U0M 1 GB NAND Flash
- Used for storage of bootloader, kernel, boot flash graphics, Linux OS etc..
Hynix H27UBG8T2ATR 4 GB NAND Flash (Long Term Storage)
- Used for persistent storage, device is /dev/sda - possible to override with an external USB drive
Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller
- Used to handle IR input/output for remotes/IR blasters and possible interface with wireless keyboard
- System reboot/powerdown
- Possibly HDMI CEC
Silicon Image Sil9135 HDMI 1.3 Receiver
- Used to process video to and from HDMI ports as well as audio over HDMI and SPDIF
- Supports DTS even though the Revue does not (An update can probably enable this feature)
IDT ICS9LPRS525AGLF Clock for CPU
- Provides a clock for the Intel Atom CPU
Place new update labeled "update.zip" on a USB drive, with a single partition (ie, 1st partition on a USB disk, so say "/dev/sdc1")
Insert into Revue in the Right most USB port (if looking at the back, closest to the power jack)
Boot into recovery mode: (confirm?)
- Hold the Sync button while plugging in the Revue, keep it held, at the same time hold Menu+L on the keyboard.
- Box will reboot, continue to hold Sync button, then hold Alt+L (or mash, your choice), and it should then enter recovery mode.
- You can then update the box, with a newer update. Downgrading fails however due to a date check.
(Add update history?)
Creating 13 MTD partitions on "intel_ce_nand":
- 0x00000000-0x00200000 : "mbr"
- 0x00200000-0x00a00000 : "cefdk"
- 0x00a00000-0x00c00000 : "redboot"
- 0x00c00000-0x00e00000 : "cefdk-config"
- 0x01000000-0x01800000 : "splash"
- 0x01800000-0x01900000 : "fts"
- 0x01900000-0x02d00000 : "recovery"
- 0x02d00000-0x03200000 : "kernel"
- 0x03200000-0x07200000 : "boot"
- 0x07200000-0x1f200000 : "system"
- 0x1f200000-0x3fa00000 : "data"
- 0x3fa00000-0x3ff00000 : "keystore"
- 0x3ff00000-0x40000000 : "bbt"
mbr - Master Boot Record
cefdk - Boot loader, may or may not have a shell
Splash - Splash image, can be seen here ( http://img413.imageshack.us/img413/3144/splashc.png )
Recovery - Full image, including kernel and small ramdisk (in squashfs format), boots to recovery menu
Kernel - The kernel image
Boot - Root partition, goes in hand with the kernel image, also in squashfs format
fts - Flash transactional key/value storage
bbt - Bad block table
system - yaffs
data - yaffs
The logitech revue board contains a UART1 port on the front of the board which before receiving the boxes initial updates is active. In order to communicate with UART port you will need a USB to TTL adapter (or board that does a similar conversion).
The pins operate at 3.3v and the port at 9600 baud with the following pinout:
- There is a standard PIC access port to the right of the UART1 port. It can be accessed via a standard PIC Kit Debug board (Tested with version 2). The port has read/write access but the code is pulled from the chip as .hex file and is unreadable thus far.
- The pinout starting from the left (pin with white square around it) corresponds to pin 1 or Vpp.The remaining pins follow the same layout. PIC Pinout
The updates contain a subset of update files, a boot.img and a recovery.img
The thread at xda-developer has the process to extract from the .img files (thx bftb0):
"the "boot.img" file is in (little-endian) "squashfs" format and unpacks just fine using "unsquashfs" from the (Ubuntu 8.0.04 LTS) squashfs-tools package."
system/boot/recovery.img is a standard Android boot image with some extra garbage (0x580 bytes) at the front. Remove it like so:
dd if=system/boot/recovery.img bs=1408 skip=1 > recovery-ungarbaged.img
Unpack that like a normal Android boot image. Something like this Perl script works well.
The kernel (system/boot/kernel) is also a boot image with the same extra garbage at the front.
The .odex files can be extracted by using the following guide Deodex Instructions
- UART1 --> UART Pinout
- J3 --> PIC Chip Access (Pin 1 = VPP/MCLR, Pin 2 = VDD, Pin 3 = VSS, Pin 4 = ICSPDAT/PGD, Pin 5 = ICSPCLK/PGC, Pin 6 = Auxiliary)
- SW1 --> Push Button Switch (Use is unknown)
- J20 --> I2C (Top left - GND Top right - ? Bottom left - SDA Bottom right - SCL)
- J69 --> USB Pinout
- SATA1 --> SATA Pinout (Pin 1 = GND, Pin 2 = TXP / A+ , Pin 3 = TXN / A-, Pin 4 = GND , Pin 5 = RXN / B-, Pin 6 = RXP / B+ , Pin 7 = GND)
- J24 --> Unknown (Pin 1 = 3.3, Pin 2 = ?, Pin 3 = ?, Pin 4 = GND)
- J13 --> Unknown (Power for SATA?) - (Pin 1 = ?, Pin 2 = GND, Pin 3 = GND, Pin 4 = 5v)
- XDP1 --> Intel XDP Debug Adapter Information on XDP Debugging Page 23 Pinout