[OpenBIOS] r664 - trunk/openbios-devel/drivers

svn at openbios.org svn at openbios.org
Sun Jan 10 19:26:34 CET 2010


Author: blueswirl
Date: 2010-01-10 19:26:34 +0100 (Sun, 10 Jan 2010)
New Revision: 664

Modified:
   trunk/openbios-devel/drivers/pci.c
   trunk/openbios-devel/drivers/pci_database.c
   trunk/openbios-devel/drivers/pci_database.h
Log:
Sparc64: fix Sabre properties

Signed-off-by: Blue Swirl <blauwirbel at gmail.com>

Modified: trunk/openbios-devel/drivers/pci.c
===================================================================
--- trunk/openbios-devel/drivers/pci.c	2010-01-09 21:28:28 UTC (rev 663)
+++ trunk/openbios-devel/drivers/pci.c	2010-01-10 18:26:34 UTC (rev 664)
@@ -348,6 +348,63 @@
 	return 0;
 }
 
+int sabre_config_cb(const pci_config_t *config)
+{
+        phandle_t dev = get_cur_dev();
+        uint32_t props[28];
+
+        props[0] = 0x00000000;
+        props[1] = 0x00000003;
+        set_property(dev, "bus-range", (char *)props, 2 * sizeof(props[0]));
+        props[0] = 0x000001fe;
+        props[1] = 0x00000000;
+        props[2] = 0x00000000;
+        props[3] = 0x00010000;
+        props[4] = 0x000001fe;
+        props[5] = 0x01000000;
+        props[6] = 0x00000000;
+        props[7] = 0x00000100;
+        set_property(dev, "reg", (char *)props, 8 * sizeof(props[0]));
+        props[0] = 0x00000000;
+        props[1] = 0x00000000;
+        props[2] = 0x00000000;
+        props[3] = 0x000001fe;
+        props[4] = 0x01000000;
+        props[5] = 0x00000000;
+        props[6] = 0x01000000;
+        props[7] = 0x01000000;
+        props[8] = 0x00000000;
+        props[9] = 0x00000000;
+        props[10] = 0x000001fe;
+        props[11] = 0x02000000;
+        props[12] = 0x00000000;
+        props[13] = 0x01000000;
+        props[14] = 0x02000000;
+        props[15] = 0x00000000;
+        props[16] = 0x00000000;
+        props[17] = 0x000001ff;
+        props[18] = 0x00000000;
+        props[19] = 0x00000001;
+        props[20] = 0x00000000;
+        props[21] = 0x03000000;
+        props[22] = 0x00000000;
+        props[23] = 0x00000000;
+        props[24] = 0x000001ff;
+        props[25] = 0x00000000;
+        props[26] = 0x00000001;
+        props[27] = 0x00000000;
+        set_property(dev, "ranges", (char *)props, 28 * sizeof(props[0]));
+        props[0] = 0xc0000000;
+        props[1] = 0x20000000;
+        set_property(dev, "virtual-dma", (char *)props, 2 * sizeof(props[0]));
+        props[0] = 1;
+        set_property(dev, "#virtual-dma-size-cells", (char *)props,
+                     sizeof(props[0]));
+        set_property(dev, "#virtual-dma-addr-cells", (char *)props,
+                     sizeof(props[0]));
+        return 0;
+}
+
 int bridge_config_cb(const pci_config_t *config)
 {
 	phandle_t aliases;

Modified: trunk/openbios-devel/drivers/pci_database.c
===================================================================
--- trunk/openbios-devel/drivers/pci_database.c	2010-01-09 21:28:28 UTC (rev 663)
+++ trunk/openbios-devel/drivers/pci_database.c	2010-01-10 18:26:34 UTC (rev 664)
@@ -313,7 +313,7 @@
         PCI_VENDOR_ID_SUN, PCI_DEVICE_ID_SUN_SABRE, NULL,
         "pci", "SUNW,sabre", "pci108e,a000\0pciclass,0\0",
         3, 2, 1,
-        host_config_cb, NULL,
+        sabre_config_cb, NULL,
     },
     {
         0xFFFF, 0xFFFF,

Modified: trunk/openbios-devel/drivers/pci_database.h
===================================================================
--- trunk/openbios-devel/drivers/pci_database.h	2010-01-09 21:28:28 UTC (rev 663)
+++ trunk/openbios-devel/drivers/pci_database.h	2010-01-10 18:26:34 UTC (rev 664)
@@ -31,6 +31,7 @@
 extern int macio_keylargo_config_cb(const pci_config_t *config);
 extern int vga_config_cb(const pci_config_t *config);
 extern int host_config_cb(const pci_config_t *config);
+extern int sabre_config_cb(const pci_config_t *config);
 extern int bridge_config_cb(const pci_config_t *config);
 extern int ebus_config_cb(const pci_config_t *config);
 




More information about the OpenBIOS mailing list