fix CPU coprocessor detection and SCSI boot on HPUX
diff --git a/src/hw/blockcmd.c b/src/hw/blockcmd.c
index 89f16a8..abddb76 100644
--- a/src/hw/blockcmd.c
+++ b/src/hw/blockcmd.c
@@ -144,7 +144,7 @@
 scsi_is_ready(struct disk_op_s *op)
 {
     ASSERT32FLAT();
-    dprintf(6, "scsi_is_ready (drive=%p)\n", op->drive_fl);
+    // dprintf(6, "scsi_is_ready (drive=%p)\n", op->drive_fl);
 
     /* Retry TEST UNIT READY for 5 seconds unless MEDIUM NOT PRESENT is
      * reported by the device 3 times.  If the device reports "IN PROGRESS",
diff --git a/src/parisc/hppa_hardware.h b/src/parisc/hppa_hardware.h
index b088801..3d67fbc 100644
--- a/src/parisc/hppa_hardware.h
+++ b/src/parisc/hppa_hardware.h
@@ -30,6 +30,8 @@
 
 #define PCI_HPA         DINO_HPA        /* PCI bus */
 
+#define SCSI_HPA        0xf1040000      /* emulated SCSI, needs to be in f region */
+
 /* offsets to DINO HPA: */
 #define DINO_PCI_ADDR           0x064
 #define DINO_CONFIG_DATA        0x068
diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c
index 095017d..1b03a02 100644
--- a/src/parisc/parisc.c
+++ b/src/parisc/parisc.c
@@ -340,6 +340,7 @@
     DO(DINO_SCSI_HPA)
     DO(CPU_HPA)
     DO(MEMORY_HPA)
+    DO(SCSI_HPA)
     DO(LASI_HPA)
     DO(LASI_UART_HPA)
     DO(LASI_SCSI_HPA)
@@ -596,6 +597,7 @@
         BUG_ON(offs == -1UL);
         pfa = (unsigned long) elroy_port(0, offs);
         pfa += pci->bdf << 8;
+        pfa |= SCSI_HPA;
         dprintf(1, "PCI device #%d %pP bdf 0x%x at pfa 0x%lx\n", curr_pci_devices, pci, pci->bdf, pfa);
 
         pdev->hpa       = pfa;
@@ -1399,7 +1401,10 @@
                     machine_cache_info->ic_count, machine_cache_info->ic_loop, machine_cache_info->ic_stride,
                     machine_cache_info->dc_count, machine_cache_info->dc_loop, machine_cache_info->dc_stride);
 #endif
-#if 0
+#if 1
+            machine_cache_info->ic_size = 1024; /* no instruction cache */
+            machine_cache_info->dc_size = 1024; /* no data cache */
+#elif 0
             machine_cache_info->dc_conf = (struct pdc_cache_cf) { 0 };  // .alias=1, .sh=3, };
             machine_cache_info->ic_conf = (struct pdc_cache_cf) { 0 };  // .alias=1, .sh=3, };
 
@@ -1459,10 +1464,10 @@
             /* Set one bit per cpu in ccr_functional and ccr_present.
                Ignore that specification only mentions 8 bits for cr10
                and set all FPUs functional */
-            mask = 1UL;
+            mask = 1UL << 7;
             mtctl(mask, 10); /* initialize cr10 */
-            result[0] = 1; // mask
-            result[1] = 1; // mask
+            result[0] = mask;
+            result[1] = mask;
             result[17] = 1; // Revision
             result[18] = has_astro ? 0x0f : 0x13; // Model
             return PDC_OK;
@@ -1495,7 +1500,7 @@
                     ARG6 = 2; // Memory modules return 2 bytes of IODC memory (result2 ret[0] = 0x6701f41 HI !!)
                 memcpy((void*) ARG5, iodc_p, ARG6);
                 c = (unsigned char *) ARG5;
-                printf("SeaBIOS: PDC_IODC get: hpa = 0x%lx, HV: 0x%x 0x%x IODC_SPA=0x%x  type 0x%x, \n", hpa, c[0], c[1], c[2], c[3]);
+                // printf("SeaBIOS: PDC_IODC get: hpa = 0x%lx, HV: 0x%x 0x%x IODC_SPA=0x%x  type 0x%x, \n", hpa, c[0], c[1], c[2], c[3]);
                 // c[0] = iodc_p->hversion_model; // FIXME. BROKEN HERE !!!
                 // c[1] = iodc_p->hversion_rev || (iodc_p->hversion << 4);
                 result[0] = ARG6;
@@ -1804,7 +1809,7 @@
         case PDC_TRANSLATE_PATH:
             mod_path = (struct pdc_module_path *)ARG3;
             hppa_device_t *dev = find_hppa_device_by_path(mod_path, &hpa_index, 1);
-            if (1) {
+            if (0) {
                 dprintf(1, "PDC_TRANSLATE_PATH dev=%p hpa=%lx ", dev, dev ? dev->hpa:0UL);
                 print_mod_path(mod_path);
                 if (dev && dev->pci)
@@ -2587,6 +2592,7 @@
         pdev++;
     pdev->pci_addr = pmem;
     mem_boot_boot.hpa = pdev->hpa;
+    dprintf(1, "PCI: Enabling BOOT DEVICE HPA %x\n", mem_boot_boot.hpa);
 }