Difference between revisions of "Board:rca/rm4100"

From coreboot
Jump to navigation Jump to search
m (Cosmetics.)
m (Phcoder moved page RCA RM4100 to Board:rca/rm4100)
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The '''[http://www.smittys.pointclark.net/rm4100/index.php RCA RM4100]''' was originally designed by Thomson Electronics and was called the '''IP1000'''. I was then manufactured by RCA and named the '''RM4100'''. It is a great little set-top-box for coreboot.
The '''[http://www.settoplinux.org RCA RM4100]''' was originally designed by Thomson Electronics and was called the '''IP1000'''. I was then manufactured by RCA and named the '''RM4100'''. It is the '''Thomson IP1000's''' little brother. It is a great little set-top-box for coreboot. Maintained by [[User:linux_junkie|Joseph Smith]].
 
A [http://www.coreboot.org/pipermail/coreboot/2008-March/032221.html full boot log] of this board running coreboot is available for reference.


== Status ==
== Status ==
Line 6: Line 8:


|CPU_status = OK
|CPU_status = OK
|CPU_comments = Mobile Intel(R) Celeron(TM) CPU 733MHz
|CPU_comments = Mobile Intel(R) Celeron(TM) CPU 733MHz.
|CPU_L1_status = OK
|CPU_L1_status = OK
|CPU_L2_status = OK
|CPU_L2_status = OK
Line 17: Line 19:
|RAM_EDO_status = N/A
|RAM_EDO_status = N/A
|RAM_SDRAM_status = N/A
|RAM_SDRAM_status = N/A
|RAM_SDRAM_comments = N/A
|RAM_SODIMM_status = OK
|RAM_SODIMM_status = OK
|RAM_SODIMM_comments = Onboard 128MB PC133
|RAM_SODIMM_comments = Onboard 128MB PC133.
|RAM_DDR_status = N/A
|RAM_DDR_status = N/A
|RAM_DDR2_status = N/A
|RAM_DDR2_status = N/A
Line 33: Line 34:
|IDE_CF_comments = Works both with vendor BIOS and coreboot.
|IDE_CF_comments = Works both with vendor BIOS and coreboot.
|CDROM_DVD_status = OK
|CDROM_DVD_status = OK
|CDROM_DVD_comments = Tested by mounting a CD-ROM in Linux.


|SATA_status = N/A
|SATA_status = N/A
Line 38: Line 40:
|USB_comments = Tested with USB keyboard.
|USB_comments = Tested with USB keyboard.
|Onboard_VGA_status = OK
|Onboard_VGA_status = OK
|Onboard_VGA_comments = VGA support in coreboot works fine.
|Onboard_VGA_comments = VGA support in coreboot works fine. TV-Out is still a WIP.
|Onboard_ethernet_status = OK
|Onboard_ethernet_status = OK
|Onboard_ethernet_comments = Onboard Intel 82562ET LAN On Motherboard (LOM) Design.
|Onboard_ethernet_comments = Onboard Intel 82562ET LAN On Motherboard (LOM) Design.
|Onboard_audio_status = OK
|Onboard_audio_status = OK
|Onboard_modem_status = OK
|Onboard_modem_status = Untested
|Onboard_modem_comments = Detected by the kernel ok, but has not been tested.
|Onboard_firewire_status = N/A
|Onboard_firewire_status = N/A
|Smartcard_status = N/A
|Smartcard_status = N/A
Line 63: Line 66:
|COM1_status = OK
|COM1_status = OK
|COM2_status = OK
|COM2_status = OK
|COM2_comments = IR is connected to COM2.
|COM2_comments = IR is connected to COM2. Tested: Wireless (IR) keyboard on COM2.
|PP_status = OK
|PP_status = OK
|PP_comments = There is no actual Parallel connector, the Parallel is used to enable IR and control 3 LEDs.
|PP_comments = There is no actual Parallel connector, the Parallel is used to enable IR and control 3 LEDs.
Line 70: Line 73:
|Game_port_status = N/A
|Game_port_status = N/A
|IR_status = OK
|IR_status = OK
|IR_comments = Should work fine but has not been tested with lirc and a remote yet.
|Speaker_status = N/A
|Speaker_status = N/A
|DiskOnChip_status = N/A
|DiskOnChip_status = N/A
Line 80: Line 84:
|Powersave_status = WIP
|Powersave_status = WIP
|ACPI_status = N/A
|ACPI_status = N/A
|Reboot_status = WIP
|Reboot_status = OK
|Poweroff_status = WIP  
|Poweroff_status = WIP  
|LEDs_status = OK
|LEDs_status = OK
|LEDs_comments = Controled by parallel port.
|LEDs_comments = Controlled by parallel port.
|HPET_status = N/A
|HPET_status = N/A
|RNG_status = N/A
|RNG_status = N/A
Line 92: Line 96:
|WakeOnKeyboard_comments = Supported by the Super I/O but not implemented.
|WakeOnKeyboard_comments = Supported by the Super I/O but not implemented.
|WakeOnMouse_status = N/A
|WakeOnMouse_status = N/A
|Flashrom_status = WIP
|Flashrom_status = OK
|Flashrom_comments = Should work since flashrom version [http://www.coreboot.org/pipermail/coreboot/2008-March/032246.html r3145].


}}
}}


== VGA vs. headless ==
== Hardware ==
 
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) ===
{| style="float: right; background: transparent; padding: 0px; margin: 0px;"
|- valign="top"
| [[Image:rm4100_front.jpg|thumb|Front of the RCA RM4100.]]
| [[Image:rm4100_rear.jpg|thumb|Back of the RCA RM4100.]]
|- valign="top"
| [[Image:rca_rm4100.jpg|thumb|Stock RM4100, still in the case.]]
| [[Image:rca_rm4100_mods.jpg|thumb|RM4100 with PLCC socket, IDE, and VGA modifications.]]
|}


You have the ability to build a "headless" version of coreboot that will only output to the serial console:
* Low Voltage Intel® Celeron® processor (Micro-FC-BGA) 733MHz
* Intel 830M northbridge
* Intel 82801DB (ICH4) southbridge
* SMSC LPC47M192 Super I/O
* ST M50FW080 8-Mbit (1Mbx8) Firmware Hub (FWH) flash memory
* 128MB PC133 SDRAM on board
* Two USB 2.0 ports
* 2 Ultra-ATA/100/66/33 IDE channels (no connectors)
* 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
* Optical SPDIF output (Dolby Digital)
* Composite and S-Video outputs (can deliver either NTSC or PAL video)
* Integrated Conexant CX81801-94 SmartV.XX V.92, V.34, V.32 data modem
* IR receiver for remote / keyboard
* 3 LEDs with GPIO control


Edit '''targets/rca/rm4100/Config.lb''' and change:
== VGA vs. Headless ==


# option ROM_SIZE = 1024 * 1024
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.
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
 
Edit '''src/mainboard/rca/rm4100/Config.lb''' and comment out these lines so it looks like this:
#    chip drivers/pci/onboard # Onboard VGA
      device pci 2.0 on end # VGA (Intel 82830 CGC)
#      register "rom_address" = "0xfff00000"
#    end
 
=== VGA ===
 
If you do want VGA you can choose how much memory is pre-allocated for VGA. 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/rca/rm4100/Config.lb''', edit the line
See [[VGA support]] for information on how to add support for the onboard VGA controller.
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 ==
== Payload ==


Next you will need to prepare a payload. See the [[Payloads]] page for your options. For this tutorial I will use [[FILO]] to boot from a hard drive to GRUB/Fedora Core 7. In the FILO directory run
Next you will need to prepare a [[Payloads|payload]]. For this tutorial I will use [[FILO]] to boot from a hard drive (Fedora Core 7). In the FILO directory run
  make
  make
like instructed in the INSTALL directions and then edit the file '''Config'''.
like instructed in the '''INSTALL''' directions and then edit the file '''Config'''.


Change:
Change:
  MENULST_FILE = "hda3:/boot/filo/menu.lst"
  MENULST_FILE = "hda3:/boot/filo/menu.lst"
to (menu.lst is a symlink to grub.conf and FILO does not like that)
to (menu.lst is a symlink to grub.conf and FILO does not like that)
  MENULST_FILE = "hda1:/grub/grub.conf"
  MENULST_FILE = "'''hda1''':/grub/grub.conf"
to boot to GRUB on the Compact Flash card or
to boot to GRUB on the '''Compact Flash card''' or
  MENULST_FILE = "hdc1:/grub/grub.conf"
  MENULST_FILE = "'''hdc1''':/grub/grub.conf"
to boot to GRUB on the harddrive (if you have the HD hack installed).
to '''boot from the harddrive''' (if you have the HD hack installed).


Change:
Change:
Line 164: Line 158:
  make  
  make  
again to build your payload ELF file. Once that finishes copy '''filo.elf''' to the '''/tmp''' directory, or you can adjust '''targets/rca/rm4100/Config.lb''' to point to where filo.elf is.
again to build your payload ELF file. Once that finishes copy '''filo.elf''' to the '''/tmp''' directory, or you can adjust '''targets/rca/rm4100/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 ==
== Building coreboot ==
Line 169: Line 165:
Now we are ready to build coreboot.
Now we are ready to build coreboot.


$ cd ~/coreboot-v2/targets
See the [[Build HOWTO]] for information on how to build coreboot for this board.
$ ./buildtarget rca/rm4100
$ cd rca/rm4100/rm4100
$ 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/rca/rm4100/rm4100''' directory and then:
See [[VGA support]] for information on how to add support for the onboard VGA controller.


cat vga.rom coreboot.rom > bios.bin
== Flashing coreboot ==


== Flashing coreboot ==
At last you're ready to flash '''bios.bin''' to your RM4100. If this is the first time, meaning your RM4100 still has the original BIOS, you need to use the method described on the [http://www.settoplinux.org/index.php?title=RCA_RM4100:Howto_coreboot_and_Linux Howto install coreboot & Linux on the RM4100] article to flash, otherwise you can just use [[flashrom]].


At last you're ready to flash '''bios.bin''' to your RM4100. If this is the first time, meaning your RM4100 still has the original BIOS, you need to use the method on the RM4100 Customizing website to flash, otherwise you can just use [[flashrom]].
{{PD-self}}

Latest revision as of 23:22, 18 January 2014