Improve debug messages, code indenting, TOD accuracy
diff --git a/src/parisc/parisc.c b/src/parisc/parisc.c
index 27dbc97..26e509c 100644
--- a/src/parisc/parisc.c
+++ b/src/parisc/parisc.c
@@ -208,25 +208,51 @@
 
 static const char *hpa_name(unsigned long hpa)
 {
-#define DO(x) if (hpa == x) return #x;
+    struct pci_device *pci;
+    int i;
+
+    #define DO(x) if (hpa == x) return #x;
     DO(GSC_HPA)
-        DO(DINO_HPA)
-        DO(DINO_UART_HPA)
-        DO(DINO_SCSI_HPA)
-        DO(CPU_HPA)
-        DO(MEMORY_HPA)
-        DO(IDE_HPA)
-        DO(LASI_HPA)
-        DO(LASI_UART_HPA)
-        DO(LASI_SCSI_HPA)
-        DO(LASI_LAN_HPA)
-        DO(LASI_LPT_HPA)
-        DO(LASI_AUDIO_HPA)
-        DO(LASI_PS2KBD_HPA)
-        DO(LASI_PS2MOU_HPA)
-        DO(LASI_GFX_HPA)
-#undef DO
-        return "UNKNOWN HPA";
+    DO(DINO_HPA)
+    DO(DINO_UART_HPA)
+    DO(DINO_SCSI_HPA)
+    DO(CPU_HPA)
+    DO(MEMORY_HPA)
+    DO(IDE_HPA)
+    DO(LASI_HPA)
+    DO(LASI_UART_HPA)
+    DO(LASI_SCSI_HPA)
+    DO(LASI_LAN_HPA)
+    DO(LASI_LPT_HPA)
+    DO(LASI_AUDIO_HPA)
+    DO(LASI_PS2KBD_HPA)
+    DO(LASI_PS2MOU_HPA)
+    DO(LASI_GFX_HPA)
+    #undef DO
+
+    /* could be one of the SMP CPUs */
+    for (i = 1; i < smp_cpus; i++) {
+        static char CPU_TXT[] = "CPU_HPA_x";
+        if (hpa == (CPU_HPA + i*0x1000)) {
+            CPU_TXT[8] = '0'+i;
+            return CPU_TXT;
+        }
+    }
+
+    /* could be a PCI device */
+    foreachpci(pci) {
+        unsigned long mem, mmio;
+        mem = pci_config_readl(pci->bdf, PCI_BASE_ADDRESS_0);
+        mem &= PCI_BASE_ADDRESS_MEM_MASK;
+        if (hpa == mem)
+            return "HPA_PCI_CARD_MEM";
+        mmio = pci_config_readl(pci->bdf, PCI_BASE_ADDRESS_2);
+        mmio &= PCI_BASE_ADDRESS_MEM_MASK;
+        if (hpa == mem)
+            return "HPA_PCI_CARD_MMIO";
+    }
+
+    return "UNKNOWN HPA";
 }
 
 int HPA_is_serial_device(unsigned long hpa)
@@ -954,7 +980,7 @@
             /* double-precision floating-point with frequency of Interval Timer in megahertz: */
             *(double*)&result[0] = (double)CPU_CLOCK_MHZ;
             /* unsigned 64-bit integers representing  clock accuracy in parts per billion: */
-            result[2] = 0x5a6c; /* TOD_acc */
+            result[2] = 1000000000; /* TOD_acc */
             result[3] = 0x5a6c; /* CR_acc (interval timer) */
             return PDC_OK;
     }
@@ -1201,10 +1227,7 @@
             return PDC_BAD_OPTION;
         case PDC_PCI_PCI_PATH_TO_PCI_HPA:
             result[0] = PCI_HPA;
-            // result[0] = DINO_SCSI_HPA;
-            // result[0] = IDE_HPA;
             return PDC_OK;
-            // return PDC_BAD_OPTION;
         case PDC_PCI_PCI_HPA_TO_PCI_PATH:
             BUG_ON(1);
     }
@@ -1340,7 +1363,7 @@
 
         case PDC_INITIATOR:
             return pdc_initiator(arg);
-}
+    }
 
     printf("\n** WARNING **: SeaBIOS: Unimplemented PDC proc %s(%d) option %d result=%x ARG3=%x ",
             pdc_name(ARG0), ARG0, ARG1, ARG2, ARG3);