Author: myles
Date: Thu Sep  9 16:51:17 2010
New Revision: 5795
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5795

Log:
Add support for reserved regions to resources and coreboot tables.

Signed-off-by: Myles Watson <[email protected]>
Acked-by: Myles Watson <[email protected]>

Modified:
   trunk/src/arch/i386/boot/coreboot_table.c
   trunk/src/include/device/resource.h

Modified: trunk/src/arch/i386/boot/coreboot_table.c
==============================================================================
--- trunk/src/arch/i386/boot/coreboot_table.c   Thu Sep  9 16:44:51 2010        
(r5794)
+++ trunk/src/arch/i386/boot/coreboot_table.c   Thu Sep  9 16:51:17 2010        
(r5795)
@@ -488,6 +488,20 @@
        return mem;
 }
 
+static void lb_add_rsvd_range(void *gp, struct device *dev, struct resource 
*res)
+{
+       struct lb_memory *mem = gp;
+       lb_add_memory_range(mem, LB_MEM_RESERVED, res->base, res->size);
+}
+
+static void add_lb_reserved(struct lb_memory *mem)
+{
+       /* Add reserved ranges */
+       search_global_resources(
+               IORESOURCE_MEM | IORESOURCE_RESERVE, IORESOURCE_MEM | 
IORESOURCE_RESERVE,
+               lb_add_rsvd_range, mem);
+}
+
 #if CONFIG_WRITE_HIGH_TABLES == 1
 extern uint64_t high_tables_base, high_tables_size;
 #endif
@@ -562,6 +576,9 @@
                high_tables_base, high_tables_size);
 #endif
 
+       /* Add reserved regions */
+       add_lb_reserved(mem);
+
 #if (CONFIG_HAVE_MAINBOARD_RESOURCES == 1)
        add_mainboard_resources(mem);
 #endif

Modified: trunk/src/include/device/resource.h
==============================================================================
--- trunk/src/include/device/resource.h Thu Sep  9 16:44:51 2010        (r5794)
+++ trunk/src/include/device/resource.h Thu Sep  9 16:51:17 2010        (r5795)
@@ -20,6 +20,7 @@
                                                 * to the bus below.
                                                 */
 #define IORESOURCE_BRIDGE      0x00080000      /* The IO resource has a bus 
below it. */
+#define IORESOURCE_RESERVE     0x10000000      /* The resource needs to be 
reserved in the Coreboot table */
 #define IORESOURCE_STORED      0x20000000      /* The IO resource assignment 
has been stored in the device */
 #define IORESOURCE_ASSIGNED    0x40000000      /* An IO resource that has been 
assigned a value */
 #define IORESOURCE_FIXED       0x80000000      /* An IO resource the allocator 
must not change */

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to