Index: boot/arch/sparc32/src/ambapp.c
===================================================================
--- boot/arch/sparc32/src/ambapp.c	(revision b6b02c0fa1670aace09bf1d3f51ce99017e6230e)
+++ boot/arch/sparc32/src/ambapp.c	(revision 4d2dba7fbc2d5f64befb5898859b0ed4ea88adf4)
@@ -54,4 +54,6 @@
 void ambapp_scan()
 {
+	amba_fake = false;
+
 	/* Scan for AHB masters & slaves */
 	ambapp_scan_area(AMBAPP_AHBMASTER_AREA, 64);
@@ -64,5 +66,6 @@
 
 	/* If we found nothing, fake device entries */
-	ambapp_qemu_fake_scan();
+	if (amba_devices_found == 0)
+		ambapp_qemu_fake_scan();
 }
 
@@ -80,5 +83,5 @@
 		amba_device_t *device = &amba_devices[amba_devices_found];
 		device->vendor_id = (amba_vendor_id_t)entry->vendor_id;
-		device->device_id = (amba_device_id_t)entry->device_id;
+	device->device_id = (amba_device_id_t)entry->device_id;
 		device->version = entry->version;
 		device->irq = entry->irq;
@@ -121,5 +124,11 @@
 	amba_devices[2].bars[0].size = 0x100;
 
+	amba_fake = true;
 	amba_devices_found = 3;
+}
+
+bool ambapp_fake()
+{
+	return amba_fake;
 }
 
@@ -130,5 +139,9 @@
 	for (int i = 0; i < amba_devices_found; i++) {
 		amba_device_t *dev = &amba_devices[i];
-		printf("<%1x:%03x> at 0x%08x, irq %d\n", dev->vendor_id, dev->device_id, dev->bars[0].start, dev->irq);
+		printf("<%1x:%03x> at 0x%08x ", dev->vendor_id, dev->device_id, dev->bars[0].start);
+		if (dev->irq == -1)
+			printf("\n");
+		else
+			printf("irq %d\n", dev->irq);
 	}
 }
