Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 23649)
+++ /trunk/Config.kmk	(revision 23650)
@@ -421,7 +421,5 @@
 VBOX_WITH_EFI = 1
 # Fetch EFI firmware image from the build server  
-# VBOX_WITH_EFI_FIRMWARE_SERVER = 1
-# Revision of EFI firmware to use, need VBOX_WITH_EFI_FIRMWARE_SERVER enabled
-# VBOX_EFI_FW_REV=9330
+# VBOX_WITH_EFIFW_FROM_BUILD_SERVER = 1
 # Enable SCSI drivers
 VBOX_WITH_SCSI = 1
Index: /trunk/Makefile.kmk
===================================================================
--- /trunk/Makefile.kmk	(revision 23649)
+++ /trunk/Makefile.kmk	(revision 23650)
@@ -288,4 +288,26 @@
 endif # VBOX_WITH_DOCS_FROM_BUILD_SERVER
 
+
+ifdef VBOX_WITH_EFIFW_FROM_BUILD_SERVER
+include $(KBUILD_PATH)/tools/TAR.kmk
+
+VBOX_FW_BASE=$(PATH_TARGET)/EfiFw
+
+BLDDIRS += $(VBOX_FW_BASE)
+
+buildserver-efifw_INST = $(INST_BIN)
+buildserver-efifw_MODE = 0644
+buildserver-efifw_SOURCES = \
+      $(VBOX_FW_BASE)/FV/VBOX.fd=>vboxefi.fv
+buildserver-efifw_CLEANS = $(VBOX_FW_BASE)
+
+$$(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2: $(VBOX_SVN_REV_KMK) $(PATH_DEVTOOLS)/bin/efi_firmware.sh | $$(dir $$@)
+	$(RM) -f $(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2.tmp
+	$(SHELL) $(PATH_DEVTOOLS)/bin/efi_firmware.sh --cmd fetch --filename $(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2.tmp
+	$(MV) $(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2.tmp $(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2
+
+$$(VBOX_FW_BASE)/FV/VBOX.fd: $(VBOX_FW_BASE)/VBoxEfiFirmware.tar.bz2
+	$(TOOL_TAR_UNPACK) xjf $< -C $(VBOX_FW_BASE)
+endif
 
 #
Index: /trunk/src/VBox/Devices/EFI/Thunk/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/EFI/Thunk/Makefile.kmk	(revision 23649)
+++ /trunk/src/VBox/Devices/EFI/Thunk/Makefile.kmk	(revision 23650)
@@ -53,5 +53,4 @@
 EfiThunk_SOURCES      = EfiThunk.asm
 
-
 #
 # Used by EfiThunk. Promote to Config.kmk if needed else where.
@@ -62,18 +61,4 @@
 endef
 
-ifdef VBOX_WITH_EFI_FIRMWARE_SERVER
-#
-# Installation firmware from server
-#
-INSTALLS += vboxefi.fv
-vboxefi.fv_MODE = 755
-vboxefi.fv_INST = $(INST_BIN)/vboxefi.fv
-vboxefi.fv_SOURCES = $(PATH_DEVTOOLS)/common/VBoxEfiFirmware/$(VBOX_EFI_REV)/FV/VBOX.fd
-
-$$(PATH_vboxefi.fv)/vboxefi.fv: $(PATH_DEVTOOLS)/common/VBoxEfiFirmware/$(VBOX_EFI_REV)/FV/VBOX.fd
-	$(CP) -v $< $@
-endif
-
-
 include $(KBUILD_PATH)/subfooter.kmk
 
Index: /trunk/src/VBox/Devices/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/Makefile.kmk	(revision 23649)
+++ /trunk/src/VBox/Devices/Makefile.kmk	(revision 23650)
@@ -39,4 +39,7 @@
 ifdef VBOX_WITH_EFI
  include $(PATH_SUB_CURRENT)/EFI/Thunk/Makefile.kmk
+ ifdef VBOX_WITH_EFIFW_FROM_BUILD_SERVER
+  INSTALLS += buildserver-efifw
+ endif
 endif
 ifdef VBOX_WITH_INTEL_PXE
