Difference between revisions of "DFI NF570 Build Tutorial"

From coreboot
Jump to: navigation, search
Line 211: Line 211:
 
'''lspci -tvnn'''
 
'''lspci -tvnn'''
  
   
+
  -[0000:00]-+-00.0  nVidia Corporation MCP55 Memory Controller [10de:0369]
 
+
[0000:00]-+-00.0  nVidia Corporation MCP55 Memory Controller [10de:0369]
+
 
           +-01.0  nVidia Corporation MCP55 LPC Bridge [10de:0362]
 
           +-01.0  nVidia Corporation MCP55 LPC Bridge [10de:0362]
 
           +-01.1  nVidia Corporation MCP55 SMBus [10de:0368]
 
           +-01.1  nVidia Corporation MCP55 SMBus [10de:0368]

Revision as of 14:55, 8 November 2008

This page describes how to use coreboot on the DFI Infinity NF570 series mainboard. It is maintained by Chris Lingard.


Work in progress, back soon


After much failure trying to get a motherboard modified with a switch and a second BIOS socket, I found one with a socketed BIOS. It comes in three flavors:

NF570 SLI-M2/G, NS570-M2/G and NF550-M2/G

The designers have chosen an identical chip set to the Gigabyte M57SLI, so I only had to make trivial code changes for it to work to the standard shown below. All credit to coreboot's M57SLI team.

This board would be too easy for any experienced corebooter; but it is an ideal entry point for someone who has never hot swapped a chip before, nor flashed a BIOS.

Here is a picture of the motherboard:

Status

Device/functionality Status Comments
CPU
CPU works OK AMD Athlon(tm) X2 dual core Processor 6000+
L1 cache enabled OK CPU: L1 I Cache: 64K (64 bytes/line),
L2 cache enabled OK CPU: L2 Cache: 256K (64 bytes/line)
L3 cache enabled N/A
Multiple CPU support N/A
Multi-core support OK Works fine, tested with prolonged builds like gcc and glibc
Hardware virtualization Untested
RAM
EDO N/A
SDRAM N/A
SO-DIMM N/A
DDR N/A N/A
DDR2 OK Using 2 by 2GB 667
DDR3 N/A
Dual channel support Untested
ECC support Untested
On-board Hardware
On-board IDE 3.5" N/A
On-board IDE 2.5" N/A
On-board SATA OK Tested: SATA port 1 , that is my CD/DVD RW.
On-board SCSI Unknown
On-board USB Untested Should be OK.all the right modules are loaded by udev/kernel
On-board VGA N/A
On-board ethernet OK
On-board audio Untested
On-board modem N/A
On-board FireWire Untested
On-board smartcard reader N/A
On-board CompactFlash N/A
On-board PCMCIA N/A
Add-on slots/cards
ISA add-on cards N/A
Audio/Modem-Riser (AMR/CNR) cards N/A
PCI add-on cards Untested
Mini-PCI add-on cards Unknown
PCI-X add-on cards Unknown
AGP graphics cards N/A
PCI Express x1 add-on cards OK
PCI Express x2 add-on cards Untested
PCI Express x4 add-on cards N/A
PCI Express x8 add-on cards N/A
PCI Express x16 add-on cards OK Tested: Saphire ati clone radion card. Works using the radionhd X11 driver.
PCI Express x32 add-on cards N/A
HTX add-on cards N/A
Legacy / Super I/O
Floppy WIP Does not work with either the factory or coreboot BIOS
Serial port 1 (COM1) OK
Serial port 2 (COM2) N/A
Parallel port Untested
PS/2 keyboard OK
PS/2 mouse OK
Game port Untested
Infrared N/A
PC speaker OK
DiskOnChip N/A
Miscellaneous
Sensors / fan control Untested
Hardware watchdog Untested
SMBus Unknown
CAN bus N/A
CPU frequency scaling Untested
Other powersaving features N/A
ACPI Untested
Reboot OK
Poweroff Untested
Suspend Unknown
Nonstandard LEDs OK
High precision event timers (HPET) Untested
Random number generator (RNG) N/A
Wake on modem ring Untested
Wake on LAN Untested
Wake on keyboard Untested
Wake on mouse Untested
Flashrom OK Works fine with coreboot and with the proprietary BIOS. The board/chipset/flashrom can decode 1MB chips fine.

Hardware

  • AMD Athlon(tm) 64 X2
  • Nvidea MCP55
  • Nvidea
  • PMC Pm49FL004

lspci -tvnn

-[0000:00]-+-00.0  nVidia Corporation MCP55 Memory Controller [10de:0369]
          +-01.0  nVidia Corporation MCP55 LPC Bridge [10de:0362]
          +-01.1  nVidia Corporation MCP55 SMBus [10de:0368]
          +-01.2  nVidia Corporation MCP55 Memory Controller [10de:036a]
          +-01.3  nVidia Corporation MCP55 SMU [10de:036b]
          +-02.0  nVidia Corporation MCP55 USB Controller [10de:036c]
          +-02.1  nVidia Corporation MCP55 USB Controller [10de:036d]
          +-04.0  nVidia Corporation MCP55 IDE [10de:036e]
          +-05.0  nVidia Corporation MCP55 SATA Controller [10de:037f]
          +-05.1  nVidia Corporation MCP55 SATA Controller [10de:037f]
          +-05.2  nVidia Corporation MCP55 SATA Controller [10de:037f]
          +-06.0-[0000:01]----07.0  VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller [1106:3044]
          +-06.1  nVidia Corporation MCP55 High Definition Audio [10de:0371]
          +-08.0  nVidia Corporation MCP55 Ethernet [10de:0373]
          +-0b.0-[0000:02]--
          +-0c.0-[0000:03]--
          +-0d.0-[0000:04]--
          +-0e.0-[0000:05]--
          +-0f.0-[0000:06]--+-00.0  ATI Technologies Inc RV630 [Radeon HD 2600XT] [1002:9588]
          |                 \-00.1  ATI Technologies Inc RV630/M76 audio device [Radeon HD 2600 Series] [1002:aa08]
          +-18.0  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
          +-18.1  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
          +-18.2  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
          \-18.3  Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]


Building coreboot

First get and compile filo-0.5. Here is my configuration file



# Do NOT add spaces or comments at the end of option lines.
# It confuses some versions of make.

# Use grub instead of autoboot?
USE_GRUB = 1

# Grub menu.lst path
MENULST_FILE = "hda1:/filo/menu.lst"
# Via Epia-MII CF boot:
#MENULST_FILE = "hde1:/boot/filo/menu.lst"

# time before default menu.lst is chosen. Set to 0 to ignore
MENULST_TIMEOUT = 0

# Image filename for automatic boot and optional command line parameter
AUTOBOOT_FILE = "hda1:/vmlinuz root=/dev/hda3 console=tty0 console=ttyS0,115200"
#AUTOBOOT_FILE = "mem@0xfff80000"
#AUTOBOOT_FILE = "hde1@0"
#AUTOBOOT_FILE = "uda1:/vmlinuz.elf"
#AUTOBOOT_FILE = "flashb@0x00400000,0x154a00 console=tty0 console=ttyS0,115200"

# Time in second before booting AUTOBOOT_FILE
AUTOBOOT_DELAY = 2

# Driver for hard disk, CompactFlash, and CD-ROM on IDE bus
IDE_DISK = 1

# Add a short delay when polling status registers
# (required on some broken SATA controllers)
# NOTE: Slows down access significantly, so disable
# whenever possible.
#IDE_DISK_POLL_DELAY = 1

# SATA drives seem to have problems reporting their spinup.
# This will delay FILO start by 5s so the disks have some time to settle.
# (required on some broken SATA controllers)
# NOTE: Slows down access significantly, so disable
# whenever possible.
#SLOW_SATA = 1

# Use PCMCIA compact flash on Via Epia MII10000 and MII6000E
# This device is referred to as hde.
#PCMCIA_CF = 1

# Driver for USB Storage
#USB_DISK = 1

# Driver for NAND flash storage
#FLASH_DISK = 1

# VGA text console
VGA_CONSOLE = 1
PC_KEYBOARD = 1

# Serial console
SERIAL_CONSOLE = 1
SERIAL_IOBASE = 0x3f8
# if SERIAL_SPEED is commented out, the speed will not be changed.
#SERIAL_SPEED = 115200

# Filesystems
FSYS_EXT2FS = 1
#FSYS_FAT = 1
#FSYS_JFS = 1
#FSYS_MINIX = 1
#FSYS_REISERFS = 1
#FSYS_XFS = 1
FSYS_ISO9660 = 1
#FSYS_CRAMFS = 1
#FSYS_SQUASHFS = 1

# Support for boot disk image in bootable CD-ROM (El Torito)
ELTORITO = 1

# PCI support
SUPPORT_PCI = 1

# Enable this to scan PCI busses above bus 0
# AMD64 based boards do need this.
PCI_BRUTE_SCAN = 1

# Sound support (needs SUPPORT_PCI)
#SUPPORT_SOUND = 1

# Sound drivers
#VIA_SOUND = 1

# Debugging
#DEBUG_ALL = 1
#DEBUG_ELFBOOT = 1
#DEBUG_ELFNOTE = 1
#DEBUG_LINUXBIOS = 1
#DEBUG_MALLOC = 1
#DEBUG_MULTIBOOT = 1
#DEBUG_SEGMENT = 1
#DEBUG_SYS_INFO = 1
#DEBUG_TIMER = 1
#DEBUG_BLOCKDEV = 1
#DEBUG_PCI = 1
#DEBUG_VIA_SOUND = 1
#DEBUG_LINUXLOAD = 1
#DEBUG_IDE = 1
#DEBUG_USB = 1
#DEBUG_ELTORITO = 1
#DEBUG_FLASH = 1
#DEBUG_ARTECBOOT = 1


# i386 options

# Loader for standard Linux kernel image, a.k.a. /vmlinuz
LINUX_LOADER = 1

# Loader for Windows CE image


# Leave disabled for now. Not supported.
#WINCE_LOADER = 1

# Artecboot loader support
#ARTEC_BOOT = 1

# Boot FILO from Multiboot loader (eg. GRUB)
MULTIBOOT_IMAGE = 1

/pre>

The only ones that I changed are yje MULTOBOOT_IMAGE-1 makes filo build a bootable filo.elf

And AUTOBOOT_FILE = "hda1:/vmlinuz root=/dev/hda3 because I have a separate boot partition on the very first partition, but my root partition is on the third partition, (The second partition is swap space)

Build your filo.elf and copy it into .boot.  Boot it via the grub command line and make sure it works.


This motherboard has a socketed BIOS chip, so, first buy half a dozen empty Pm49FL004 chips.  Build flashrom and do something like:


sudo flashrom   -V  -c Pm49FL004

Your output should contain the lines

Probing for PMC Pm49FL004, 512 KB: probe_jedec: id1 0x9d, id2 0x6e
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
No operations were specified.

You can now take a copy of the factory BIOS

sudo flashrom   -V  -c Pm49FL004  -r -o factory
sudo flashrom   -V  -c Pm49FL004   -V  factory

You now should have read and verified a copy of your BIOB.






{| border="0" style="font-size: smaller"
|- bgcolor="#6699ff"
! align="left" | BIOS
! align="left" | Power up — OS loader
! align="left" | Linux — shell
! align="left" | Summary

|- bgcolor="#eeeeee"
| Vendor BIOS (boot from SATA disk)
| 24s
| 24s
| 48s

|- bgcolor="#eeeeee"
| coreboot (boot from SATA disk)
| 9s
| 24s  
| 33s

|}


{{PD-self}}