Board:thomson/ip1000

From coreboot
Revision as of 02:54, 18 May 2008 by Linux junkie (talk | contribs)
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

The Thomson IP1000 is designed by Thomson Electronics. It is the RCA RM4100's big brother. It is a great little set-top-box for coreboot. Linux has never been able to run on this board until now. Maintained by Joseph Smith.

TODO: A full bootlog of this board running coreboot is available for reference.

Status

Device/functionality Status Comments
CPU
CPU works OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Low Voltage Intel(R) Pentium(R) III CPU 933MHz
L1 cache enabled OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
L2 cache enabled OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK 512 KB
L3 cache enabled OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Multiple CPU support OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Multi-core support OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Hardware virtualization OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
RAM
EDO OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
SDRAM OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
SO-DIMM OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Sodimm socket and onboard 64MB PC133.
DDR OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
DDR2 OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
DDR3 OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Dual channel support OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
ECC support OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board Hardware
On-board IDE 3.5" OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Tested with hard drive.
On-board IDE 2.5" OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Tested with 2.5" hard drive and adapter.
On-board SATA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board SCSI OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
On-board USB OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Tested with USB keyboard.
On-board VGA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK VGA support in coreboot works fine. TV-Out is still a WIP.
On-board Ethernet OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Onboard Intel 82562ET LAN On Motherboard (LOM) Design.
On-board Audio OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
On-board Modem OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested Detected by the kernel ok, but has not been tested.
On-board FireWire OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board Smartcard reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board CompactFlash OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
On-board PCMCIA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board Wifi OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board Bluetooth OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
On-board SD card reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Add-on slots/cards
ISA add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Audio/Modem-Riser (AMR/CNR) cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Mini-PCI add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
Mini-PCI-Express add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
PCI-X add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
AGP graphics cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x1 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x2 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x4 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x8 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x16 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PCI Express x32 add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
HTX add-on cards OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Legacy / Super I/O
Floppy OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Serial port 1 (COM1) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
Serial port 2 (COM2) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK IR is connected to COM2. Tested: Wireless (IR) keyboard on COM2.
Parallel port OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK There is no actual Parallel connector, the Parallel is used to enable IR and control 3 LEDs.
PS/2 keyboard OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
PS/2 mouse OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Game port OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Infrared OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Should work fine but has not been tested with lirc and a remote yet.
PC speaker OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
DiskOnChip OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Input
Trackpoint OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Touchpad OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Fn Hotkeys OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Fingerprint Reader OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Laptop
Docking VGA OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking LAN OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking USB OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking Audio OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Docking Displayport OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Thinklight OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Webcam OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Miscellaneous
Sensors / fan control OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK lm-sensors uses i801, smsc47m192.
Hardware watchdog OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested
SMBus OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
CAN bus OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
CPU frequency scaling OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested
Other powersaving features OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | WIP
ACPI OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Reboot OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK
Poweroff OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | WIP
Suspend OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
Nonstandard LEDs OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Controlled by parallel port.
High precision event timers (HPET) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Random number generator (RNG) OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
Wake on modem ring OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested
Wake on LAN OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested Enabled on LOM Design, should work fine but untested.
Wake on keyboard OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested Supported by the Super I/O but not implemented.
Wake on mouse OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A
TPM OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown
Flashrom OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Should work since flashrom version r3145.

Hardware

Front of Thomson IP1000.
Back of Thomson IP1000.
Thomson IP1000 Board still in the case.
  • Low Voltage Intel® Pentium® III Processor with 512K Cache (Micro-FCBGA) 933MHz
  • Intel 830M northbridge
  • Intel 82801DB (ICH4) southbridge
  • SMSC LPC47M192 Super I/O
  • ST M50FW080 8-Mbit (1Mbx8) Firmware Hub (FWH) flash memory
  • 64MB PC133 SDRAM on board
  • 144 pin SO_DIMM socket
  • PCI Slot
  • Two USB 2.0 ports
  • 2 Ultra-ATA/100/66/33 IDE channels (one connector)
  • 64MB Compact Flash via IDE controller (upgradeable)
  • Integrated 10/100 Intel 82562ET LAN On Motherboard (LOM)
  • Integrated 2D and 3D graphics with AGP 4X interface
  • Conexant CX25873-13 High Performance Video Encoder
  • Composite and S-Video outputs (can deliver either NTSC or PAL video)
  • Sigmatel STAC9767 AC’97 2.3 20-Bit audio controller with digital out
  • Optical SPDIF output (Dolby Digital)
  • IR receiver for remote / keyboard
  • PS/2 Keyboard & Mouse connectors
  • 3 LEDs with GPIO control

VGA vs. Headless

Before building coreboot for the RCA RM4100 there are a few settings to consider. Depending on whether you want VGA support or not, you might have to modify some files.

Headless (no VGA)

You have the ability to build a "headless" version of coreboot that will only output to the serial console:

Edit targets/thomson/ip1000/Config.lb and change:

# option ROM_SIZE = 1024 * 1024
option ROM_SIZE = (1024 * 1024) - (64 * 1024)

to

option ROM_SIZE = 1024 * 1024
# option ROM_SIZE = (1024 * 1024) - (64 * 1024)

Also, change:

option CONFIG_CONSOLE_VGA = 1
option CONFIG_PCI_ROM_RUN = 1

to

option CONFIG_CONSOLE_VGA = 0
option CONFIG_PCI_ROM_RUN = 0 

Change

option CONFIG_VIDEO_MB = 8

to

option CONFIG_VIDEO_MB = 0

VGA

If you do want VGA you can choose how much memory is pre-allocated for VGA. Note: You can still use the serial console when VGA is enabled. Possible options are:

## 0 for No memory pre-allocated (Graphics memory Disabled)
## 512 for DVMT (UMA) mode, 512K of memory pre-allocated for frame buffer
## 1 for DVMT (UMA) mode, 1M of memory pre-allocated for frame buffer
## 8 for DVMT (UMA) mode, 8M of memory pre-allocated for frame buffer

To adjust this edit targets/thomson/ip1000/Config.lb, edit the line

CONFIG_VIDEO_MB = 

and change it to any of the options above. Note: Remember that if you do want VGA you will need the VGA BIOS file (vga.rom).

Payload

Next you will need to prepare a payload. For this tutorial I will use FILO to boot from a hard drive (Fedora Core 7). In the FILO directory run

make

like instructed in the INSTALL directions and then edit the file Config.

Change:

MENULST_FILE = "hda3:/boot/filo/menu.lst"

to (menu.lst is a symlink to grub.conf and FILO does not like that)

MENULST_FILE = "hda1:/grub/grub.conf"

to boot to GRUB on the Compact Flash card or

MENULST_FILE = "hdc1:/grub/grub.conf"

to boot from the harddrive.

Change:

#SERIAL_SPEED = 115200

to

SERIAL_SPEED = 115200

to insure we get output to the serial console. That should be it. Now you can run

make 

again to build your payload ELF file. Once that finishes copy filo.elf to the /tmp directory, or you can adjust targets/thomson/ip1000/Config.lb to point to where filo.elf is.

You can further reduce the size of filo.elf by disabling various unneeded options in FILO's Config file (e.g. support for filesystems you don't use).

Building coreboot

Now we are ready to build coreboot.

$ cd ~/coreboot-v2/targets
$ ./buildtarget thomson/ip1000
$ cd thomson/ip1000/ip1000
$ make

If you're using VGA you need to prepend your video BIOS to the coreboot.rom file. Copy your VGA BIOS file (vga.rom) to the ~/coreboot-v2/targets/thomson/ip1000/ip1000 directory and then:

cat vga.rom coreboot.rom > cboot.rom

Flashing coreboot

At last you're ready to flash cboot.rom to your IP1000. Unfortunately there is not really an easy way to do this. The IP1000 has a PLCC32 socket for the firmware chip so you can take the chip out and use the Hot Flash method or a programmer device. After you have Linux running you can always use flashrom.

Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.