Index: boot/Makefile
===================================================================
--- boot/Makefile	(revision 7f766f4bd1ce93d6fd870f6e467dbbd822e73d0a)
+++ boot/Makefile	(revision 3c5b86c2ca53284195eca328c9cf627b285959a3)
@@ -113,5 +113,5 @@
 		file_dir="`dirname "$$file"`" ; \
 		file_name="`basename "$$file"`" ; \
-		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$file_dir/$$file_name/$$file_name.dev" "$(DIST_PATH)/$(DRVS_PATH)/$$file_name/" ; \
+		cp "$(USPACE_PATH)/$(DRVS_PATH)/$$file_dir/$$file_name/"*".dev" "$(DIST_PATH)/$(DRVS_PATH)/$$file_name/" ; \
 	done
 	for file in $(RD_DRVS_FW) ; do \
Index: uspace/drv/bus/isa/ebus.dev
===================================================================
--- uspace/drv/bus/isa/ebus.dev	(revision 3c5b86c2ca53284195eca328c9cf627b285959a3)
+++ uspace/drv/bus/isa/ebus.dev	(revision 3c5b86c2ca53284195eca328c9cf627b285959a3)
@@ -0,0 +1,4 @@
+com1:
+	match 100 isa/ns8250
+	irq 2027
+	io_range 3f8 8
Index: uspace/drv/bus/isa/isa.c
===================================================================
--- uspace/drv/bus/isa/isa.c	(revision 7f766f4bd1ce93d6fd870f6e467dbbd822e73d0a)
+++ uspace/drv/bus/isa/isa.c	(revision 3c5b86c2ca53284195eca328c9cf627b285959a3)
@@ -66,8 +66,11 @@
 #include <device/pio_window.h>
 
+#include <pci_dev_iface.h>
+
 #include "i8237.h"
 
 #define NAME "isa"
-#define CHILD_FUN_CONF_PATH "/drv/isa/isa.dev"
+#define ISA_CHILD_FUN_CONF_PATH "/drv/isa/isa.dev"
+#define EBUS_CHILD_FUN_CONF_PATH "/drv/isa/ebus.dev"
 
 #define ISA_MAX_HW_RES 5
@@ -75,4 +78,6 @@
 typedef struct {
 	fibril_mutex_t mutex;
+	uint16_t vendor_id;
+	uint16_t device_id;
 	ddf_dev_t *dev;
 	ddf_fun_t *fctl;
@@ -593,5 +598,16 @@
 static void isa_functions_add(isa_bus_t *isa)
 {
-	char *conf = fun_conf_read(CHILD_FUN_CONF_PATH);
+#define VENDOR_ID_SUN	0x108e
+#define DEVICE_ID_EBUS	0x1000
+	bool ebus = ((isa->vendor_id == VENDOR_ID_SUN) &&
+	    (isa->device_id == DEVICE_ID_EBUS));
+
+	const char *conf_path;
+	if (ebus)
+		conf_path = EBUS_CHILD_FUN_CONF_PATH; 
+	else
+		conf_path = ISA_CHILD_FUN_CONF_PATH;
+
+	char *conf = fun_conf_read(conf_path);
 	while (conf != NULL && *conf != '\0') {
 		conf = isa_fun_read_info(conf, isa);
@@ -623,4 +639,11 @@
 	}
 
+	rc = pci_config_space_read_16(sess, PCI_VENDOR_ID, &isa->vendor_id);
+	if (rc != EOK)
+		return rc;
+	rc = pci_config_space_read_16(sess, PCI_DEVICE_ID, &isa->device_id);
+	if (rc != EOK)
+		return rc;
+	
 	rc = pio_window_get(sess, &isa->pio_win);
 	if (rc != EOK) {
