Board:rca/rm4100: Difference between revisions

From coreboot
Jump to navigation Jump to search
No edit summary
m (Cosmetics.)
Line 1: Line 1:
The 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.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.


== Status ==
== Status ==
Line 8: Line 8:
|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_L1_comments =
|CPU_L2_status = OK
|CPU_L2_status = OK
|CPU_L2_comments = 256 KB
|CPU_L2_comments = 256 KB
Line 28: Line 27:


|IDE_status = OK
|IDE_status = OK
|IDE_comments = Tested with hard drive
|IDE_comments = Tested with hard drive.
|IDE_25_status = OK
|IDE_25_status = OK
|IDE_25_comments = Tested with 2.5" hard drive and adapter
|IDE_25_comments = Tested with 2.5" hard drive and adapter.
|IDE_CF_status = OK
|IDE_CF_status = OK
|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


|SATA_status = N/A
|SATA_status = N/A
|USB_status = OK
|USB_status = OK
|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.
|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_audio_comments =
|Onboard_modem_status = OK
|Onboard_modem_status = OK
|Onboard_firewire_status = N/A
|Onboard_firewire_status = N/A
|Smartcard_status = N/A
|Smartcard_status = N/A
|Smartcard_comments =
|Onboard_CF_status = OK
|Onboard_CF_status = OK
|Onboard_PCMCIA_status = N/A
|Onboard_PCMCIA_status = N/A
Line 66: Line 63:
|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.
|PP_status = OK
|PP_status = OK
|PP_comments = There is no actual Parallel connector, the Parallel is used to enable IR and control 3 LED's
|PP_comments = There is no actual Parallel connector, the Parallel is used to enable IR and control 3 LEDs.
|PS2_keyboard_status = N/A
|PS2_keyboard_status = N/A
|PS2_mouse_status = N/A
|PS2_mouse_status = N/A
Line 74: Line 71:
|IR_status = OK
|IR_status = OK
|Speaker_status = N/A
|Speaker_status = N/A
|Speaker_comments =
|DiskOnChip_status = N/A
|DiskOnChip_status = N/A
|DiskOnChip_comments =


|Sensors_status = OK
|Sensors_status = OK
|Sensors_comments = lm_sensors uses I801, smsc47m192
|Sensors_comments = lm-sensors uses '''i801''', '''smsc47m192'''.
|Watchdog_status = Untested
|Watchdog_status = Untested
|CAN_bus_status = N/A
|CAN_bus_status = N/A
|CPUfreq_status = Untested
|CPUfreq_status = Untested
|CPUfreq_comments =
|Powersave_status = WIP
|Powersave_status = WIP
|Powersave_comments =
|ACPI_status = N/A
|ACPI_status = N/A
|Reboot_status = WIP
|Reboot_status = WIP
|Reboot_comments =
|Poweroff_status = WIP  
|Poweroff_status = WIP
|Poweroff_comments =
|LEDs_status = OK
|LEDs_status = OK
|LEDs_comments = Controled by Parallel Port
|LEDs_comments = Controled by parallel port.
|HPET_status = N/A
|HPET_status = N/A
|RNG_status = N/A
|RNG_status = N/A
|WakeOnModem_status = Untested
|WakeOnModem_status = Untested
|WakeOnModem_comments =
|WakeOnLAN_status = Untested
|WakeOnLAN_status = Untested
|WakeOnLAN_comments = Enabled on LOM Design, should work fine but untested
|WakeOnLAN_comments = Enabled on LOM Design, should work fine but untested.
|WakeOnKeyboard_status = Untested
|WakeOnKeyboard_status = Untested
|WakeOnKeyboard_comments = Supported by the Super I/O but not implimented
|WakeOnKeyboard_comments = Supported by the Super I/O but not implemented.
|WakeOnMouse_status = N/A
|WakeOnMouse_status = N/A
|WakeOnMouse_comments =
|Flashrom_status = WIP
|Flashrom_status = WIP
|Flashrom_comments =


}}
}}


== Building a coreboot image ==
== VGA vs. headless ==


<b>Before building coreboot for the RCA RM4100 there are a few settings to consider.</b>
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.


1. Do you want to use VGA for your application?<br>
=== Headless (no VGA) ===


<b>For a :</b><br>
You have the ability to build a "headless" version of coreboot that will only output to the serial console:
Edit targets/rca/rm4100/Config.lb<br>
 
Change:
Edit '''targets/rca/rm4100/Config.lb''' and change:
  # option ROM_SIZE = 1024 * 1024  
 
to
  # option ROM_SIZE = 1024 * 1024
option ROM_SIZE = 1024 * 1024
  option ROM_SIZE = (1024 * 1024) - (64 * 1024)
and change
to
  option ROM_SIZE = (1024 * 1024) - (64 * 1024)  
option ROM_SIZE = 1024 * 1024
to  
  # option ROM_SIZE = (1024 * 1024) - (64 * 1024)
  # option ROM_SIZE = (1024 * 1024) - (64 * 1024)
Change:
option CONFIG_CONSOLE_VGA = 1 and option CONFIG_PCI_ROM_RUN = 1
to 0


Change:
Also, change:
  option CONFIG_VIDEO_MB = 8  
option CONFIG_CONSOLE_VGA = 1
to 0
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<br>
Edit '''src/mainboard/rca/rm4100/Config.lb''' and comment out these lines so it looks like this:
Comment out these lines so it looks like this:  
  #    chip drivers/pci/onboard # Onboard VGA
  #    chip drivers/pci/onboard # Onboard VGA
       device pci 2.0 on end # VGA (Intel 82830 CGC)  
       device pci 2.0 on end # VGA (Intel 82830 CGC)  
Line 140: Line 130:
  #    end
  #    end


<b>If you do want VGA</b> you can choose how much memory is pre-allocated for VGA. Possible options are:
=== 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)
  ## 0 for No memory pre-allocated (Graphics memory Disabled)
  ## 512 for DVMT (UMA) mode, 512K of memory pre-allocated for frame buffer
  ## 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
  ## 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
  ## 8 for DVMT (UMA) mode, 8M of memory pre-allocated for frame buffer
To adjust this edit targets/rca/rm4100/Config.lb and change option
 
To adjust this edit '''targets/rca/rm4100/Config.lb''', edit the line
  CONFIG_VIDEO_MB =  
  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).
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. 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
make
like instructed in the INSTALL directions and then edit the file '''Config'''.


2. 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
make
like instructed in the INSTALL directions and then edit 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 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 to GRUB on the harddrive (if you have the HD hack installed).


Change:
Change:
Line 165: Line 161:
to
to
  SERIAL_SPEED = 115200
  SERIAL_SPEED = 115200
to insure we get output to the serial console. That should be it. Now you can run  
to insure we get output to the serial console. That should be it. Now you can run
  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.
 
== Building coreboot ==
 
Now we are ready to build coreboot.
 
$ cd ~/coreboot-v2/targets
$ ./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:


3. Now we are ready to build core boot.
cd ~/coreboot-v2/targets
./buildtarget rca/rm4100
cd rca/rm4100/rm4100
make
If your using VGA to now need to prepend your video bios to the coreboot.rom. Copy your vga bios file (vga.rom) to the ~/coreboot-v2/targets/rca/rm4100/rm4100 directory and then:
  cat vga.rom coreboot.rom > bios.bin
  cat vga.rom coreboot.rom > bios.bin


== Flashing coreboot ==


4. At last your 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.
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]].

Revision as of 22:33, 11 March 2008

The 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.

Status

Device/functionality Status Comments
CPU
CPU works OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Mobile Intel(R) Celeron(TM) CPU 733MHz
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 256 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 N/A
SO-DIMM OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK Onboard 128MB 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.
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 }}" | OK
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.
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
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 }}" | WIP
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 Controled 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 }}" | WIP

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/rca/rm4100/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

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

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. 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

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 to GRUB on the harddrive (if you have the HD hack installed).

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/rca/rm4100/Config.lb to point to where filo.elf is.

Building coreboot

Now we are ready to build coreboot.

$ cd ~/coreboot-v2/targets
$ ./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:

cat vga.rom coreboot.rom > bios.bin

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 on the RM4100 Customizing website to flash, otherwise you can just use flashrom.