This one is the most exciting - finally add support for automagically
downloading and pre-pending the VGA VBIOS for the ga-2761gxdk. This
should be a framework for future optionroms to be downloaded and used
from linxubios.org. I'm not super happy with how congested
packages/linuxbios is getting - I think there is definitely some room for
consolidation and improvement, but we are hobbled by v2 in many regards.
v3 will make this stuff so much better.
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
[BUILDROM] Download and prepend the VGA VBIOS for the ga-2761gxdk
First try at downloading and prepending the VGA VBIOS for the ga-2761gxdk
board stored on linuxbios.org. This should be generic enough to extend
to other platforms when the time comes.
Signed-off-by: Jordan Crouse
jordan.crouse@amd.com
Index: buildrom-devel/packages/linuxbios/generic-linuxbios.mk
===================================================================
--- buildrom-devel.orig/packages/linuxbios/generic-linuxbios.mk
+++ buildrom-devel/packages/linuxbios/generic-linuxbios.mk
@@ -12,8 +12,20 @@ LINUXBIOS_TARBALL=linuxbios-svn-$(LINUXB
LINUXBIOS_PAYLOAD_TARGET=$(LINUXBIOS_BUILD_DIR)/payload.elf
TARGET_ROM = $(LINUXBIOS_VENDOR)-$(LINUXBIOS_BOARD).rom
+# This is the list of components that comprise the ROM (excluding the payload)
+LINUXBIOS_COMPONENTS = $(LINUXBIOS_OUTPUT)
+
include $(PACKAGE_DIR)/linuxbios/linuxbios.inc
+# If an optionrom was specified in the configuration, then use it
+
+ifneq($(OPTIONROM_ID),)
+include $(PACKAGE_DIR)/linuxbios/optionroms.inc
+
+# Add it to the front of the list so it is prepended to the LinuxBIOS output
+LINUXBIOS_COMPONENTS = $(SOURCE_DIR)/$(OPTIONROM_ID).rom $(LINUXBIOS_COMPONENTS)
+endif
+
$(SOURCE_DIR)/$(LINUXBIOS_TARBALL):
@ echo "Fetching the LinuxBIOS code..."
@ mkdir -p $(SOURCE_DIR)/linuxbios
@@ -21,9 +33,9 @@ $(SOURCE_DIR)/$(LINUXBIOS_TARBALL):
$(LINUXBIOS_TAG) $(SOURCE_DIR)/$(LINUXBIOS_TARBALL) \
> $(LINUXBIOS_FETCH_LOG) 2>&1
-$(OUTPUT_DIR)/$(TARGET_ROM): $(LINUXBIOS_OUTPUT)
+$(OUTPUT_DIR)/$(TARGET_ROM): $(LINUXBIOS_COMPONENTS)
@ mkdir -p $(OUTPUT_DIR)
- @ cp $< $@
+ @ cat $(LINUXBIOS_COMPONENTS) > $@
linuxbios: $(OUTPUT_DIR)/$(TARGET_ROM)
linuxbios-clean: generic-linuxbios-clean
Index: buildrom-devel/packages/linuxbios/optionroms.inc
===================================================================
--- /dev/null
+++ buildrom-devel/packages/linuxbios/optionroms.inc
@@ -0,0 +1,12 @@
+# Rules to download option roms from the LinuxBIOS option rom
+# repository
+
+OPTIONROMURL=
http://www.linuxbios.org/data/optionroms/
+
+$(OUTPUT_DIR)/$(OPTIONROM_ID).license:
+ @ mkdir -p $(OUTPUT_DIR)
+ @ wget -P $(OUTPUT_DIR) $(OPTIONROMURL)/$(OPTIONROM_ID).license -O $@
+
+$(SOURCE_DIR)/$(OPTIONROM_ID).rom: $(OUTPUT_DIR)/$(OPTIONROM_ID).license
+ @ mkdir -p $(SOURCE_DIR)
+ @ wget -P $(SOURCE_DIR) $(OPTIONROMURL)/$(OPTIONROM_ID).rom -O $@
Index: buildrom-devel/packages/linuxbios/ga-2761gxdk-linuxbios.mk
===================================================================
--- buildrom-devel.orig/packages/linuxbios/ga-2761gxdk-linuxbios.mk
+++ buildrom-devel/packages/linuxbios/ga-2761gxdk-linuxbios.mk
@@ -16,6 +16,12 @@ TARGET_ROM = $(LINUXBIOS_VENDOR)-$(LINUX
include $(PACKAGE_DIR)/linuxbios/linuxbios.inc
+# This matches the base name of the ROM on
+#
http://www.linuxbios.org/data/optionroms/
+
+OPTIONROM_ID = pci1039,6330
+include $(PACKAGE_DIR)/linuxbios/optionroms.inc
+
$(SOURCE_DIR)/$(LINUXBIOS_TARBALL):
@ echo "Fetching the LinuxBIOS code..."
@ mkdir -p $(SOURCE_DIR)/linuxbios
@@ -23,9 +29,9 @@ $(SOURCE_DIR)/$(LINUXBIOS_TARBALL):
$(LINUXBIOS_TAG) $(SOURCE_DIR)/$(LINUXBIOS_TARBALL) \
> $(LINUXBIOS_FETCH_LOG) 2>&1
-$(OUTPUT_DIR)/$(TARGET_ROM): $(LINUXBIOS_OUTPUT)
+$(OUTPUT_DIR)/$(TARGET_ROM): $(LINUXBIOS_OUTPUT) $(SOURCE_DIR)/$(OPTIONROM_ID).rom
@ mkdir -p $(OUTPUT_DIR)
- @ cat $(LINUXBIOS_OUTPUT) > $@
+ @ cat $(SOURCE_DIR)/$(OPTIONROM_ID).rom $(LINUXBIOS_OUTPUT) > $@
linuxbios: $(OUTPUT_DIR)/$(TARGET_ROM)
linuxbios-clean: generic-linuxbios-clean