--
Marc Jones
Senior Firmware Engineer
(970) 226-9684 Office
mailto:Marc.Jones@amd.com
http://www.amd.com/embeddedprocessors
Add AMD dbm690t mainboard to buildrom.
The dbm690t uses an embedded VBIOS which buildrom can attach to the ROM image.
Signed-off-by: Marc Jones
marc.jones@amd.com
Signed-off-by: Jordan Crouse
jordan.crouse@amd.com
Index: buildrom-devel/config/platforms/Config.in
===================================================================
--- buildrom-devel.orig/config/platforms/Config.in 2008-08-11 10:04:01.000000000 -0600
+++ buildrom-devel/config/platforms/Config.in 2008-09-22 10:23:09.000000000 -0600
@@ -164,6 +164,12 @@
depends on COREBOOT_V2
select PLATFORM
select PLATFORM_SUPPORT_64BIT
+
+config PLATFORM_DBM690T
+ bool "AMD dbM690T"
+ depends on VENDOR_AMD
+ select PLATFORM
+ select PLATFORM_SUPPORT_64BIT
endchoice
choice
@@ -208,4 +214,35 @@
Say 'y' here to patch the build to work on an
emulated platform in the AMD SimNow (TM) simulator
+config AMD_R690_HEADLESS
+ bool "Build the R690 platform as headless (without VGA)"
+ depends on ADVANCED && PLATFORM_DBM690T
+ default n
+ help
+ Say 'y' here to build without the VGA BIOS for the
+ R690 chipset. This will result in no video graphics
+ for the platform. This is not likely what you want,
+ so you should say 'n' here unless you are absolutely
+ sure.
+
+config AMD_R690_USE_VBIOS
+ bool
+ depends on !AMD_R690_HEADLESS
+ default y
+
+config AMD_R690_CUSTOM_VBIOS
+ bool "Specify a custom location for the R690 video BIOS"
+ depends on AMD_R690_USE_VBIOS
+ help
+ Say 'y' here to specify a custom location for the R690
+ video BIOS file. Otherwise, it will be looked for in a
+ default location.
+
+config AMD_R690_VBIOS
+ string "Location of the RS690 Video BIOS file"
+ depends on AMD_R690_CUSTOM_VBIOS
+ default ""
+ help
+ Specify the full pathname for your RS690 video BIOS file
+
endmenu
Index: buildrom-devel/config/platforms/dbm690t.conf
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/config/platforms/dbm690t.conf 2008-09-21 15:51:11.000000000 -0600
@@ -0,0 +1,64 @@
+# Support for the AMD Herring Platform
+
+#### Platform configuration
+
+CC=gcc
+STRIP=strip
+AS=as
+
+ifeq ($(CONFIG_TARGET_64BIT),y)
+TARGET_ARCH=x86_64
+CFLAGS_platform =
+else
+TARGET_ARCH=i686
+CFLAGS_platform =
+endif
+
+# Targets
+
+KERNEL_MK=$(PACKAGE_DIR)/kernel/dbm690t.mk
+CBV2_MK=$(PACKAGE_DIR)/coreboot-v2/dbm690t.mk
+
+# kernel configuration (for LAB)
+
+ifeq ($(CONFIG_TARGET_64BIT),y)
+KERNEL_VERSION=2.6.22.2
+KERNEL_MK=$(PACKAGE_DIR)/kernel/dbm690t-x86_64.mk
+KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-dbm690t-x86_64
+BUSYBOX_CONFIG=defconfig-dbm690t-x86_64
+UCLIBC_VER=0.9.29
+UCLIBC_CONFIG=defconfig-x86_64
+else
+KERNEL_VERSION=2.6.20.2
+KERNEL_CONFIG=$(PACKAGE_DIR)/kernel/conf/defconfig-dbm690t
+UCLIBC_VER=0.9.29
+endif
+
+#UCLIBC_ARCH=$(TARGET_ARCH)
+
+# Etherboot configuration
+ETHERBOOT_ARCH=i386
+
+# coreboot configuration
+
+COREBOOT_VENDOR=amd
+CBV2_CONFIG=Config.lb
+CBV2_PAYLOAD_FILE_EXT=elf
+
+CBV3_TAG=HEAD
+
+COREBOOT_BOARD=dbm690t
+CBV2_TDIR=dbm690t
+CBV2_TAG=3092
+
+# FILO configuration
+
+FILO_CONFIG=dbm690t-Config
+
+# VIDEO BIOS configuration
+
+ifeq ($(CONFIG_AMD_R690_VBIOS),"")
+AMD_R690_VBIOS_LOCATION := $(BASE_DIR)/sources/amd_rs690_vbios.bin
+else
+AMD_R690_VBIOS_LOCATION = $(subst ",,$(CONFIG_AMD_R690_VBIOS))
+endif
Index: buildrom-devel/config/platforms/platforms.conf
===================================================================
--- buildrom-devel.orig/config/platforms/platforms.conf 2008-09-11 12:41:29.000000000 -0600
+++ buildrom-devel/config/platforms/platforms.conf 2008-09-21 19:58:48.000000000 -0600
@@ -27,6 +27,7 @@
PLATFORM-$(CONFIG_PLATFORM_CHEETAH_FAM10) = serengeti_cheetah.conf
PLATFORM-$(CONFIG_PLATFORM_GA_2761GXDK) = ga-2761gxdk.conf
PLATFORM-$(CONFIG_PLATFORM_QEMU-X86) = qemu.conf
+PLATFORM-$(CONFIG_PLATFORM_DBM690T) = dbm690t.conf
include $(CONFIG_DIR)/platforms/$(PLATFORM-y)
@@ -35,3 +36,5 @@
# For those platforms that have option roms, add the following line
#DEPENDS-$(MYPLATFORM) += roms
+
+DEPENDS-$(CONFIG_PLATFORM_DBM690T) += roms
Index: buildrom-devel/packages/coreboot-v2/dbm690t.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/coreboot-v2/dbm690t.mk 2008-09-21 15:51:11.000000000 -0600
@@ -0,0 +1,22 @@
+# This is the AMD DBM690T coreboot target
+
+CBV2_PATCHES=
+
+# Make sure we have the tools we need to accomplish this
+HAVE_IASL:=$(call find-tool,iasl)
+
+ifeq ($(HAVE_IASL),n)
+$(error To build coreboot, you need to install the 'iasl' tool)
+endif
+
+ifeq ($(CONFIG_PLATFORM_DBM690T),y)
+ifeq ($(CONFIG_SIMNOW),y)
+CBV2_PATCHES += $(PACKAGE_DIR)/coreboot-v2/patches/simnow.patch
+endif
+endif
+
+include $(PACKAGE_DIR)/coreboot-v2/coreboot.inc
+
+coreboot: generic-coreboot
+coreboot-clean: generic-coreboot-clean
+coreboot-distclean: generic-coreboot-distclean
Index: buildrom-devel/packages/filo/conf/dbm690t-Config
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/filo/conf/dbm690t-Config 2008-09-21 15:51:11.000000000 -0600
@@ -0,0 +1,102 @@
+# !!! NOTE !!!
+# 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
+# SATA
+# MENULST_FILE = "hda1:/boot/filo/menu.lst"
+# PATA
+MENULST_FILE = "hde1:/boot/filo/menu.lst"
+
+# time before default menu.lst is chosen. Set to 0 to ignore
+MENULST_TIMEOUT = 3
+
+# Image filename for automatic boot and optional command line parameter
+#AUTOBOOT_FILE = "hde1:/vmlinuz root=/dev/hda1 console=tty0 console=ttyS0,115200"
+#AUTOBOOT_FILE = "mem@0xfff80000"
+#AUTOBOOT_FILE = "hde1@0"
+#AUTOBOOT_FILE = "uda1:/vmlinuz.elf"
+
+# 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
+
+# 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
+
+# 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
+
+# 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
+
+# i386 options
+
+# Loader for standard Linux kernel image, a.k.a. /vmlinuz
+LINUX_LOADER = 1
+
+# Boot FILO from Multiboot loader (eg. GRUB)
+#MULTIBOOT_IMAGE = 1
+
Index: buildrom-devel/packages/grub2/grub2.mk
===================================================================
--- buildrom-devel.orig/packages/grub2/grub2.mk 2008-06-23 16:37:29.000000000 -0600
+++ buildrom-devel/packages/grub2/grub2.mk 2008-09-21 15:51:11.000000000 -0600
@@ -22,11 +22,13 @@
serial terminal lar terminfo memdisk ata ls \
configfile boot hexdump linux multiboot ext2
+ifeq ($(CONFIG_PAYLOAD_GRUB2),y)
HAVE_RUBY:=$(call find-tool,ruby)
ifeq ($(HAVE_RUBY),n)
$(error To build GRUB2, you need to install 'ruby')
endif
+endif
$(SOURCE_DIR)/$(GRUB2_TAR):
@ mkdir -p $(SOURCE_DIR)
Index: buildrom-devel/packages/kernel/dbm690t.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/kernel/dbm690t.mk 2008-09-21 15:51:11.000000000 -0600
@@ -0,0 +1,16 @@
+# Build file for the AMD DBM690T LAB kernel
+
+KERNEL_URL=
http://kernel.org/pub/linux/kernel/v2.6/
+KERNEL_SOURCE=linux-$(KERNEL_VERSION).tar.bz2
+
+# Kernel config is set in the platform configuration
+
+$(SOURCE_DIR)/$(KERNEL_SOURCE):
+ @ mkdir -p $(SOURCE_DIR)
+ @ wget $(WGET_Q) -P $(SOURCE_DIR) $(KERNEL_URL)/$(KERNEL_SOURCE)
+
+include $(PACKAGE_DIR)/kernel/kernel.inc
+
+kernel: generic-kernel
+kernel-clean: generic-kernel-clean
+kernel-distclean: generic-kernel-distclean
Index: buildrom-devel/packages/roms/amd_r690.mk
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/roms/amd_r690.mk 2008-09-22 10:21:09.000000000 -0600
@@ -0,0 +1,11 @@
+ifeq ($(CONFIG_AMD_R690_USE_VBIOS),y)
+OPTIONROM_TARGETS += $(AMD_R690_VBIOS_LOCATION)
+CBV2_PREPEND := $(AMD_R690_VBIOS_LOCATION)
+endif
+
+$(AMD_R690_VBIOS_LOCATION):
+ @ $(BIN_DIR)/show-instructions.sh \
+ $(PACKAGE_DIR)/roms/amd_r690_instructions \
+ $(AMD_R690_VBIOS_LOCATION)
+ @ echo "Unable to find $(AMD_R690_VBIOS_LOCATION)"
+ @ exit 1
Index: buildrom-devel/packages/roms/amd_r690_instructions
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/packages/roms/amd_r690_instructions 2008-09-21 15:51:11.000000000 -0600
@@ -0,0 +1,10 @@
+Please follow these instructions for downloading the video BIOS
+for your R690 platform:
+
+ * Download the latest video BIOS from:
+
http://url.goes.here/
+ * Copy the file to:
+ %DESTFILE%
+ You may need to create the directory first.
+
+After copying the file, start the build again by typing 'make'.
Index: buildrom-devel/packages/roms/roms.mk
===================================================================
--- buildrom-devel.orig/packages/roms/roms.mk 2008-08-11 10:04:00.000000000 -0600
+++ buildrom-devel/packages/roms/roms.mk 2008-09-21 15:51:11.000000000 -0600
@@ -1,12 +1,13 @@
# Each platform that needs an option ROM or other binary blob is specified
# here
-OPTIONROM_TARGETS?=
+OPTIONROM_TARGETS ?=
-OPTIONROM-y =
+OPTIONROMS-y =
+OPTIONROMS-$(CONFIG_PLATFORM_DBM690T) += $(PACKAGE_DIR)/roms/amd_r690.mk
ifneq ($(OPTIONROMS-y),)
-include $(OPTIONROM-y)
+include $(OPTIONROMS-y)
endif
$(ROM_DIR):
@@ -15,8 +16,5 @@
roms: $(ROM_DIR) $(OPTIONROM_TARGETS)
roms-clean:
-ifneq ($(OPTIONROM_TARGETS),)
- @ rm -rf $(OPTIONROM_TARGETS)
-endif
-roms-distclean: roms-clean
+roms-distclean:
Index: buildrom-devel/bin/show-instructions.sh
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ buildrom-devel/bin/show-instructions.sh 2008-09-22 10:21:09.000000000 -0600
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+tmp=`tempfile`
+cat $1 | sed -e "s:%DESTFILE%:$2:" > $tmp
+`dirname $0`/../scripts/kconfig/lxdialog/lxdialog --textbox $tmp 20 75
+rm -rf $tmp
+