Group: Hardware/Computers/Laptops/Freeable laptops/Hercules eCAFE

From LibrePlanet
< Group:Hardware‎ | Computers‎ | Laptops‎ | Freeable laptops
Revision as of 13:24, 6 January 2020 by GNUtoo (talk | contribs) (Introduction)
Jump to: navigation, search

Introduction

Hercules made the following laptops with an I.MX51 ARM system on a chip:

  • eCAFE EX HD
  • eCAFE slim HD

Here are some more information on the hardware:

  • 512M of RAM which is soldered. It's also probably the maximum ammount of RAM supported by the I.MX51.
  • There is an USB OTG port
  • The device is capable of booting from an SD card
  • The device has a glossy display (glossy displays are dangerous for the health)
  • The eCAFE EX HD has an HDMI port, which enables to use an external display that is not glossy.

They ship with u-boot, and more recent u-boot versions have been maintained by the free software and open source communities. There is also a device tree available but it needs to be upstreamed in Linux.

Once that will be upstreamed, it will be possible to use them with only free software, with u-boot and Parabola, but it will still have some serious flaws as important features like the 3D acceleration and accelerated video decoding will still be missing.

Source code

Some patches for Linux (including the dts) and u-boot did exist as part of meta-teapot.

Hardware documentation

UART

There is an unpopulated connector for the serial port with UART1 being written under it.

There is an arrow on the left of the connector. Here's the pinout.

> [?][TX?][][][RX][GND][GND][GND]

The MAX3232 that is nearby most probably provides the 5V voltage compatible with common USB serial port adapters.

Status:

  • RX works (115200 8N1 at boot => We can see u-boot logs)
  • TX unknown

JTAG

There is an unpopulated connector with "JTAG" being written on it. I didn't test it.

Booting

  • The microSD slot that is used during boot is located on the side of the laptop.
  • The switch to boot on the microSD changes the bootorder and makes the bootrom loads the bootloader from the microSD slot that is on the side. This has been verified by looking at the serial port logs. It's also documented in the recovery manual.
  • There are some recovery images that can probably be obtained through archive.org (TODO: add a link to them)
    • The boot arguments of the recovery images can easily be altered with vbindiff by looking for ttymxc and altering the default built-in u-boot environement
    • TODO: Find a way to alter the variable environment instead (the built-in environment has a limited size)

TODO

  • Find a proper header for the Serial connector I soldered a cable instead. The cable went through the microSD slot that is on the bottom of the laptop.
  • Find a way to change the u-boot environement
  • Boot Parabola:
    • dd the recovery image to a microSD card
    • Install Parabola on an additional partition
    • Build the meta-teapot dtb
    • Generate a kernel image suitable for that very old u-boot with the Parabola zImage and append the dtb to it.
    • dd the kernel to the location it's loaded from on the microSD and change the bootargs to point to the Parabola partition
    • Ideally use a raw partition for the kernel or an ext4/3/2 with the right flags (no 64bit no metadata_csum, etc) as the /boot partition
  • Upstream the Linux dts
  • Upstream u-boot support (and make use of the Linux dts for that)
  • Add support for that device in Parabola by also packaging u-boot for that device.