Fix incorrect initialization of PCI BARs

Only program a BAR as a 64-bit MEM BAR if it really is a 64-bit MEM BAR.
Fixes an issue with the CMD646 IDE controller under NetBSD.

Signed-off-by: Jason Thorpe <thorpej@me.com>
Message-Id: <20210603035317.6814-6-thorpej@me.com>
[rth: Combine the two tests.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
diff --git a/pci.c b/pci.c
index ba05adb..e60af55 100644
--- a/pci.c
+++ b/pci.c
@@ -120,8 +120,8 @@
 
 	  printf("PCI:   region %d: %08x\r\n", region, addr);
 
-	  if ((val & PCI_BASE_ADDRESS_MEM_TYPE_MASK)
-	      == PCI_BASE_ADDRESS_MEM_TYPE_64)
+	  if ((old & (PCI_BASE_ADDRESS_SPACE | PCI_BASE_ADDRESS_MEM_TYPE_MASK))
+              == (PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_TYPE_64))
 	    {
 	      pci_config_writel(bdf, ofs + 4, 0);
 	      region++;