vortex86ex: Change PCI S/B resource reservation functions for more I/O devices.

Originally, Vortex86EX PCI S/B internal resource reservation functions can
only support one big legacy I/O device space (0-0xfff).

Change function signature to support other non-legacy I/O device space in
the future.

Change-Id: I22f5c877ed441d59f29801d925ee40b24fb796ce
Signed-off-by: Andrew Wu <arw@dmp.com.tw>
Reviewed-on: http://review.coreboot.org/3976
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Andrew Wu 2013-10-31 20:12:09 +08:00 committed by Patrick Georgi
parent 44af57a78b
commit fea5b50feb
1 changed files with 9 additions and 9 deletions

View File

@ -505,21 +505,21 @@ static void fix_cmos_rtc_time(void)
} }
} }
static void vortex86_sb_set_io_resv(device_t dev, u32 io_resv_size) static void vortex86_sb_set_io_resv(device_t dev, unsigned index, u32 base, u32 size)
{ {
struct resource *res; struct resource *res;
res = new_resource(dev, 1); res = new_resource(dev, index);
res->base = 0x0UL; res->base = base;
res->size = io_resv_size; res->size = size;
res->limit = 0xffffUL; res->limit = 0xffffUL;
res->flags = IORESOURCE_IO | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; res->flags = IORESOURCE_IO | IORESOURCE_ASSIGNED | IORESOURCE_FIXED;
} }
static void vortex86_sb_set_spi_flash_size(device_t dev, u32 flash_size) static void vortex86_sb_set_spi_flash_size(device_t dev, unsigned index, u32 flash_size)
{ {
/* SPI flash is in topmost of 4G memory space */ /* SPI flash is in topmost of 4G memory space */
struct resource *res; struct resource *res;
res = new_resource(dev, 2); res = new_resource(dev, index);
res->base = 0x100000000LL - flash_size; res->base = 0x100000000LL - flash_size;
res->size = flash_size; res->size = flash_size;
res->limit = 0xffffffffUL; res->limit = 0xffffffffUL;
@ -542,11 +542,11 @@ static void vortex86_sb_read_resources(device_t dev)
flash_size = 64 * 1024 * 1024; flash_size = 64 * 1024 * 1024;
} }
/* Reserve space for I/O */ /* Reserve space for legacy I/O */
vortex86_sb_set_io_resv(dev, 0x1000UL); vortex86_sb_set_io_resv(dev, 1, 0, 0x1000UL);
/* Reserve space for flash */ /* Reserve space for flash */
vortex86_sb_set_spi_flash_size(dev, flash_size); vortex86_sb_set_spi_flash_size(dev, 2, flash_size);
} }
static void southbridge_init_func1(struct device *dev) static void southbridge_init_func1(struct device *dev)