|
@@ -458,6 +458,39 @@ void __init reserve_crashkernel(void)
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+static struct resource standard_io_resources[] = {
|
|
|
|
+ { .name = "dma1", .start = 0x00, .end = 0x1f,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "pic1", .start = 0x20, .end = 0x21,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "timer0", .start = 0x40, .end = 0x43,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "timer1", .start = 0x50, .end = 0x53,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "keyboard", .start = 0x60, .end = 0x60,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "keyboard", .start = 0x64, .end = 0x64,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "dma page reg", .start = 0x80, .end = 0x8f,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "pic2", .start = 0xa0, .end = 0xa1,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "dma2", .start = 0xc0, .end = 0xdf,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO },
|
|
|
|
+ { .name = "fpu", .start = 0xf0, .end = 0xff,
|
|
|
|
+ .flags = IORESOURCE_BUSY | IORESOURCE_IO }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+void __init reserve_standard_io_resources(void)
|
|
|
|
+{
|
|
|
|
+ int i;
|
|
|
|
+
|
|
|
|
+ /* request I/O space for devices used on all i[345]86 PCs */
|
|
|
|
+ for (i = 0; i < ARRAY_SIZE(standard_io_resources); i++)
|
|
|
|
+ request_resource(&ioport_resource, &standard_io_resources[i]);
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Determine if we were loaded by an EFI loader. If so, then we have also been
|
|
* Determine if we were loaded by an EFI loader. If so, then we have also been
|
|
* passed the efi memmap, systab, etc., so we should use these data structures
|
|
* passed the efi memmap, systab, etc., so we should use these data structures
|