Board:rca/rm4100: Difference between revisions
m (Cosmetics.) |
(→Payload: FILO doesn't boot "into" GRUB, it just uses the GRUB config file and behaves similarly.) |
||
Line 145: | Line 145: | ||
== Payload == | == Payload == | ||
Next you will need to prepare a | 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 '''boot from the harddrive''' (if you have the HD hack installed). | ||
Change: | Change: | ||
Line 164: | Line 164: | ||
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 == |
Revision as of 22:39, 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. 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 (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.
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 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.