On Sun, Jul 19, 2009 at 09:13:20PM +0200, Rudolf Marek wrote:
> Hi,
>
> Kevin just noticed that recent change in devices.c removed the IO alloc 
> start on IO port address 0x1000, so all code which relies on the fact 
> that 0x1000 and down can be done for static device allocation like in 
> vt8237r.h and k8t890.h will fail now. This needs to be fixed with proper 
> static resource to the read_resources. I'm trying to fix this together 
> with Kevin.
>
> Maybe other chipsets/boards will need similar fixups!

The patch Rudolf and I made is attached.  On IRC though, Rudolf noted
that we aren't explicilty allocating 0xcf8 and other crucial
resources.  Maybe we should just add a generic resource for everything
under 0x1000?

-Kevin
Index: vt8237r_lpc.c
===================================================================
--- vt8237r_lpc.c       (revision 4441)
+++ vt8237r_lpc.c       (working copy)
@@ -421,8 +421,8 @@
 {
        struct resource *res;
 
+       /* Fixed APIC resource */
        pci_dev_read_resources(dev);
-       /* Fixed APIC resource */
        res = new_resource(dev, 0x44);
        res->base = VT8237R_APIC_BASE;
        res->size = 256;
@@ -431,6 +431,50 @@
        res->gran = 8;
        res->flags = IORESOURCE_MEM | IORESOURCE_FIXED |
                     IORESOURCE_STORED | IORESOURCE_ASSIGNED;
+
+       /* Fixed SPI resource */
+       pci_dev_read_resources(dev);
+       res = new_resource(dev, 0xbe);
+       res->base = VT8237S_SPI_MEM_BASE;
+       res->size = 256;
+       res->limit = res->base + res->size - 1;
+       res->align = 8;
+       res->gran = 8;
+       res->flags = IORESOURCE_MEM | IORESOURCE_FIXED |
+                    IORESOURCE_STORED | IORESOURCE_ASSIGNED;
+
+       /* Fixed HPET resource */
+       pci_dev_read_resources(dev);
+       res = new_resource(dev, 0x69);
+       res->base = VT8237R_HPET_ADDR;
+       res->size = 1024;
+       res->limit = res->base + res->size - 1;
+       res->align = 8;
+       res->gran = 8;
+       res->flags = IORESOURCE_MEM | IORESOURCE_FIXED |
+                    IORESOURCE_STORED | IORESOURCE_ASSIGNED;
+
+       /* Fixed smbus resource */
+       pci_dev_read_resources(dev);
+       res = new_resource(dev, 0xd0);
+       res->base = VT8237R_SMBUS_IO_BASE;
+       res->size = 16;
+       res->limit = res->base + res->size - 1;
+       res->align = 8;
+       res->gran = 8;
+       res->flags = IORESOURCE_IO | IORESOURCE_FIXED |
+                    IORESOURCE_STORED | IORESOURCE_ASSIGNED;
+
+       pci_dev_read_resources(dev);
+       /* Fixed pmio resource */
+       res = new_resource(dev, 0x88);
+       res->base = VT8237R_ACPI_IO_BASE;
+       res->size = 128;
+       res->limit = res->base + res->size - 1;
+       res->align = 8;
+       res->gran = 8;
+       res->flags = IORESOURCE_IO | IORESOURCE_FIXED |
+                    IORESOURCE_STORED | IORESOURCE_ASSIGNED;
 }
 
 /**
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to