diff --git a/src/device/Makefile.inc b/src/device/Makefile.inc
index 82d4b36..e86aa2c 100644
--- a/src/device/Makefile.inc
+++ b/src/device/Makefile.inc
@@ -26,6 +26,7 @@
 smm-y += device_simple.c
 verstage-y += device_simple.c
 romstage-y += device_simple.c
+ramstage-y += device_simple.c
 romstage-$(CONFIG_PCI) += pci_early.c
 
 subdirs-y += oprom dram
diff --git a/src/device/device.c b/src/device/device.c
index 5b4c264..79dceaa 100644
--- a/src/device/device.c
+++ b/src/device/device.c
@@ -51,8 +51,6 @@
 #endif
 #include <timer.h>
 
-/** Linked list of ALL devices */
-struct device *all_devices = &dev_root;
 /** Pointer to the last device */
 extern struct device *last_dev;
 /** Linked list of free resources */
diff --git a/src/device/device_util.c b/src/device/device_util.c
index c4f5873..3315e48 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -44,73 +44,6 @@
 }
 
 /**
- * Given a PCI bus and a devfn number, find the device structure.
- *
- * @param bus The bus number.
- * @param devfn A device/function number.
- * @return Pointer to the device structure (if found), 0 otherwise.
- */
-struct device *dev_find_slot(unsigned int bus, unsigned int devfn)
-{
-	struct device *dev, *result;
-
-	result = 0;
-	for (dev = all_devices; dev; dev = dev->next) {
-		if ((dev->path.type == DEVICE_PATH_PCI) &&
-		    (dev->bus->secondary == bus) &&
-		    (dev->path.pci.devfn == devfn)) {
-			result = dev;
-			break;
-		}
-	}
-	return result;
-}
-
-/**
- * Given an SMBus bus and a device number, find the device structure.
- *
- * @param bus The bus number.
- * @param addr A device number.
- * @return Pointer to the device structure (if found), 0 otherwise.
- */
-struct device *dev_find_slot_on_smbus(unsigned int bus, unsigned int addr)
-{
-	struct device *dev, *result;
-
-	result = 0;
-	for (dev = all_devices; dev; dev = dev->next) {
-		if ((dev->path.type == DEVICE_PATH_I2C) &&
-		    (dev->bus->secondary == bus) &&
-		    (dev->path.i2c.device == addr)) {
-			result = dev;
-			break;
-		}
-	}
-	return result;
-}
-
-/**
- * Given a PnP port and a device number, find the device structure.
- *
- * @param port The I/O port.
- * @param device Logical device number.
- * @return Pointer to the device structure (if found), 0 otherwise.
- */
-struct device *dev_find_slot_pnp(u16 port, u16 device)
-{
-	struct device *dev;
-
-	for (dev = all_devices; dev; dev = dev->next) {
-		if ((dev->path.type == DEVICE_PATH_PNP) &&
-		    (dev->path.pnp.port == port) &&
-		    (dev->path.pnp.device == device)) {
-			return dev;
-		}
-	}
-	return 0;
-}
-
-/**
  * Given a Local APIC ID, find the device structure.
  *
  * @param apic_id The Local APIC ID number.
