I did some local optimizations and have some more info. I disabled keyboard init in coreboot-v2 - saves 400ms.
I disabled ATA reset in SeaBIOS on first boot. I exit out of a CBFS search in SeaBIOS if the file signature is zero (CBFS is zero padding instead of ff padding). This brings the boot time on reset to 1.7 seconds (reset press to grub launch - doesn't include 2.5 seconds at boot menu). Boot from powerup takes a bit longer - 8.9s (7 seconds is for drive spinup). Another optimization I could make would be to reduce the 90ms it takes to copy the vga rom from flash. Using 4 byte reads instead of 1 byte reads will likely help. However, enabling an mtrr for the flash would likely lead to the best results. I'm not sure if I'll commit these changes - it is something to think about though. Logs attached. This setup, for what ever reason, puts a null byte to serial on target machine power up and reset press (but not reset release, so resets are off a little bit). I'm using this to time the rest of the results. -Kevin
00.000: <00>0 00.302: 00.303: coreboot-2.0.0-epiacn Sun Apr 19 09:53:06 EDT 2009 starting... 00.563: coreboot-2.0.0-epiacn Sun Apr 19 09:53:06 EDT 2009 booting... 00.587: clocks_per_usec: 1501 00.592: Enumerating buses... 00.591: Finding PCI configuration type. 00.615: done 00.617: Allocating resources... 00.617: Reading resources... 00.679: Done reading resources. 00.681: Setting resources... 00.698: ERROR: PNP: 002e.3 74 drq size: 0x0000000001 not assigned 00.701: PNP: 002e.b missing set_resources 00.704: ERROR: PNP: 002e.4 60 io size: 0x0000000008 not assigned 00.706: ERROR: PNP: 002e.4 70 irq size: 0x0000000001 not assigned 00.709: ERROR: PNP: 002e.6 70 irq size: 0x0000000001 not assigned 00.718: Done setting resources. 00.716: Done allocating resources. 00.715: Enabling resources... 00.718: PCI: 00:00.3 missing enable_resources 00.721: PNP: 002e.b missing enable_resources 00.724: done. 00.725: Initializing devices... 00.728: Primary IDE interface enabled 00.730: Secondary IDE interface enabled 00.737: Initializing CPU #0 00.739: Detected VIA Model D C7-D 00.739: Voltage: 1084mV (min 1084mV; max 1084mV) 00.742: CPU multiplier: 15x (min 15x; max 15x) 00.745: Current voltage: 1084mV 00.745: Current CPU multiplier: 15x 00.747: Enabling cache 00.751: Disabling local apic...done. 00.753: CPU #0 initialized 00.754: Devices initialized 00.754: Copying Interrupt Routing Table to 0x000f0000... done. 00.754: Copying Interrupt Routing Table to 0x3dff0000... done. 00.755: ACPI: Writing ACPI tables at f0400... 00.754: ACPI: done. 00.755: ACPI: Writing ACPI tables at 3dff0400... 00.756: ACPI: done. 00.757: Multiboot Information structure has been written. 00.757: Check fallback/payload 00.757: data: Entry 000f942b 00.855: Start bios 00.856: CPU Mhz=1501 00.857: bios_table_addr: 0x000fa55c end=0x000fad5c 00.858: Copying ACPI RSDP from 3dff0400 to 000fa560 00.858: SMBIOS table addr=0x000fa590 00.860: Found CBFS header at ffffffd0 00.860: Ram Size=0x3dff0000 00.860: Scan for VGA option rom 00.954: Running option rom at 0000c000:00000003 00.955: fail handle_155fXX:114(00000086): 00.956: a=00005f0b b=00010100 c=00000044 d=00000110 si=0000ab66 di=00000044 00.956: ds=00000000 es=0000f000 ip=0000c996 cs=0000c000 f=00000006 r=00007a4c 00.957: Warning: VGA panel type is hardcoded 01.141: Warning: VGA TV/CRT output type is hardcoded 01.141: Warning: VGA memory clock speed is hardcoded 01.142: Warning: VGA memory size is hardcoded 01.150: Turning on vga console 01.157: Starting SeaBIOS 01.157: 01.650: ps2_recvbyte timeout 01.661: keyboard initialized 01.662: e820 map has 5 items: 01.662: 0: 0000000000000000 - 000000000009fc00 = 1 01.667: 1: 000000000009fc00 - 00000000000a0000 = 2 01.664: 2: 00000000000f0000 - 0000000000100000 = 2 01.664: 3: 0000000000100000 - 000000003dff0000 = 1 01.664: 4: 000000003dff0000 - 000000003e000000 = 2 01.665: final bios_table_addr: 0x000fa69a (used 15%) 01.665: ATA controller 0 at 000024a0/000024c0 (dev 00000078 prog_if 0000008f) 01.668: ATA controller 1 at 000024b0/000024d0 (dev 00000078 prog_if 0000008f) 01.668: ATA controller 2 at 000001f0/000003f0 (dev 00000079 prog_if 0000008a) 01.669: ATA controller 3 at 00000170/00000370 (dev 00000079 prog_if 0000008a) 01.671: ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 01.672: ata2-0: Maxtor 6Y250P0 ATA-7 Hard-Disk (233 GiBytes) 01.672: ata2-1: LITE-ON DVDRW LDW-851S ATAPI-5 CD-Rom/DVD-Rom 01.674: 01.674: Scan for option roms 01.674: Press F12 for boot menu. 01.676: 04.212: Changing serial settings was 00000003/00000002 now 00000003/00000000 04.214: enter handle_19: 04.219: NULL 04.218: Booting from Floppy... 04.216: fail check_drive:379(00000080): 04.215: a=00000201 b=00000000 c=00000001 d=00000000 si=00000000 di=00000000 04.217: ds=00000000 es=000007c0 ip=0000e3fb cs=0000f000 f=00000002 r=00007b0e 04.218: Boot failed: could not read the boot disk 04.218: 04.218: enter handle_18: 04.219: NULL 04.218: Booting from CD-Rom... 04.220: Device reports MEDIUM NOT PRESENT 04.220: atapi_is_ready returned -1 04.221: Boot failed: Could not read from CDROM (code 00000003) 04.221: enter handle_18: 04.222: NULL 04.223: Booting from Hard Disk... 04.232: Booting from 00000000:00007c00 04.486: enter handle_12: 04.487: a=00000000 b=00000000 c=00000000 d=00000080 si=00002118 di=00004eac 04.488: ds=00000000 es=00000000 ip=000024c1 cs=00000000 f=00000297 r=00001fd2 04.905: enter handle_12: 04.906: a=00000000 b=00000000 c=00000000 d=00022f80 si=00002118 di=00054c44 04.907: ds=00000000 es=00000000 ip=00008a01 cs=00000000 f=00000297 r=00001fd2 04.908: fail get_device:643(00000001): 04.909: a=00004100 b=000055aa c=00054ccc d=00054c81 si=00067fc4 di=00000081 04.909: ds=00000000 es=00000000 ip=000088b5 cs=00000000 f=00000246 r=00001fd2 04.910: fail get_device:643(00000001): 04.911: a=00000800 b=00000000 c=00054ccc d=00054c81 si=00067fc4 di=00000081 04.911: ds=00000000 es=00000000 ip=000088e9 cs=00000000 f=00000246 r=00001fd2 04.912: fail handle_15XX:313(00000086): 04.913: a=000000c0 b=00000000 c=00054c03 d=00000001 si=00067fc4 di=00000000 04.913: ds=00000000 es=00000000 ip=00008ab6 cs=00000000 f=00000246 r=00001fd2
00.000: <00><00>0 00.457: 00.457: coreboot-2.0.0-epiacn Sun Apr 19 09:53:06 EDT 2009 starting... 00.712: coreboot-2.0.0-epiacn Sun Apr 19 09:53:06 EDT 2009 booting... 00.735: clocks_per_usec: 1501 00.738: Enumerating buses... 00.742: Finding PCI configuration type. 00.765: done 00.766: Allocating resources... 00.767: Reading resources... 00.829: Done reading resources. 00.836: Setting resources... 00.848: ERROR: PNP: 002e.3 74 drq size: 0x0000000001 not assigned 00.851: PNP: 002e.b missing set_resources 00.854: ERROR: PNP: 002e.4 60 io size: 0x0000000008 not assigned 00.857: ERROR: PNP: 002e.4 70 irq size: 0x0000000001 not assigned 00.860: ERROR: PNP: 002e.6 70 irq size: 0x0000000001 not assigned 00.863: Done setting resources. 00.865: Done allocating resources. 00.866: Enabling resources... 00.868: PCI: 00:00.3 missing enable_resources 00.871: PNP: 002e.b missing enable_resources 00.875: done. 00.875: Initializing devices... 00.877: Primary IDE interface enabled 00.880: Secondary IDE interface enabled 00.886: Initializing CPU #0 00.888: Detected VIA Model D C7-D 00.890: Voltage: 1084mV (min 1084mV; max 1084mV) 00.892: CPU multiplier: 15x (min 15x; max 15x) 00.894: Current voltage: 1084mV 00.896: Current CPU multiplier: 15x 00.897: Enabling cache 00.901: Disabling local apic...done. 00.902: CPU #0 initialized 00.903: Devices initialized 00.903: Copying Interrupt Routing Table to 0x000f0000... done. 00.903: Copying Interrupt Routing Table to 0x3dff0000... done. 00.904: ACPI: Writing ACPI tables at f0400... 00.905: ACPI: done. 00.905: ACPI: Writing ACPI tables at 3dff0400... 00.906: ACPI: done. 00.906: Multiboot Information structure has been written. 00.907: Check fallback/payload 00.907: data: Entry 000f942b 01.005: Start bios 01.006: CPU Mhz=1501 01.008: bios_table_addr: 0x000fa55c end=0x000fad5c 01.009: Copying ACPI RSDP from 3dff0400 to 000fa560 01.009: SMBIOS table addr=0x000fa590 01.009: Found CBFS header at ffffffd0 01.009: Ram Size=0x3dff0000 01.010: Scan for VGA option rom 01.103: Running option rom at 0000c000:00000003 01.105: fail handle_155fXX:114(00000086): 01.106: a=00005f0b b=00010100 c=00000044 d=00000110 si=0000ab66 di=00000044 01.106: ds=00000000 es=0000f000 ip=0000c996 cs=0000c000 f=00000006 r=00007a4c 01.107: Warning: VGA panel type is hardcoded 01.290: Warning: VGA TV/CRT output type is hardcoded 01.291: Warning: VGA memory clock speed is hardcoded 01.293: Warning: VGA memory size is hardcoded 01.299: Turning on vga console 01.307: Starting SeaBIOS 01.307: 01.800: ps2_recvbyte timeout 01.812: keyboard initialized 01.818: e820 map has 5 items: 01.816: 0: 0000000000000000 - 000000000009fc00 = 1 01.815: 1: 000000000009fc00 - 00000000000a0000 = 2 01.816: 2: 00000000000f0000 - 0000000000100000 = 2 01.816: 3: 0000000000100000 - 000000003dff0000 = 1 01.816: 4: 000000003dff0000 - 000000003e000000 = 2 01.817: final bios_table_addr: 0x000fa69a (used 15%) 01.817: ATA controller 0 at 000024a0/000024c0 (dev 00000078 prog_if 0000008f) 01.818: ATA controller 1 at 000024b0/000024d0 (dev 00000078 prog_if 0000008f) 01.820: ATA controller 2 at 000001f0/000003f0 (dev 00000079 prog_if 0000008a) 01.821: ATA controller 3 at 00000170/00000370 (dev 00000079 prog_if 0000008a) 08.831: ata2-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 08.833: ata2-0: Maxtor 6Y250P0 ATA-7 Hard-Disk (233 GiBytes) 08.835: ata2-1: LITE-ON DVDRW LDW-851S ATAPI-5 CD-Rom/DVD-Rom 08.835: 08.835: Scan for option roms 08.836: Press F12 for boot menu. 08.837: 11.374: Changing serial settings was 00000003/00000002 now 00000003/00000000 11.375: enter handle_19: 11.380: NULL 11.379: Booting from Floppy... 11.377: fail check_drive:379(00000080): 11.377: a=00000201 b=00000000 c=00000001 d=00000000 si=00000000 di=00000000 11.377: ds=00000000 es=000007c0 ip=0000e3fb cs=0000f000 f=00000002 r=00007b0e 11.379: Boot failed: could not read the boot disk 11.379: 11.379: enter handle_18: 11.379: NULL 11.379: Booting from CD-Rom... 11.380: Device reports MEDIUM NOT PRESENT 11.381: atapi_is_ready returned -1 11.382: Boot failed: Could not read from CDROM (code 00000003) 11.383: enter handle_18: 11.382: NULL 11.383: Booting from Hard Disk... 11.406: Booting from 00000000:00007c00 11.661: enter handle_12: 11.662: a=00000000 b=00000000 c=00000000 d=00000080 si=00002118 di=00004eac 11.663: ds=00000000 es=00000000 ip=000024c1 cs=00000000 f=00000297 r=00001fd2 12.081: enter handle_12: 12.087: a=00000000 b=00000000 c=00000000 d=00022f80 si=00002118 di=00054c44 12.083: ds=00000000 es=00000000 ip=00008a01 cs=00000000 f=00000297 r=00001fd2 12.084: fail get_device:643(00000001): 12.084: a=00004100 b=000055aa c=00054ccc d=00054c81 si=00067fc4 di=00000081 12.085: ds=00000000 es=00000000 ip=000088b5 cs=00000000 f=00000246 r=00001fd2 12.086: fail get_device:643(00000001): 12.087: a=00000800 b=00000000 c=00054ccc d=00054c81 si=00067fc4 di=00000081 12.087: ds=00000000 es=00000000 ip=000088e9 cs=00000000 f=00000246 r=00001fd2 12.088: fail handle_15XX:313(00000086): 12.089: a=000000c0 b=00000000 c=00054c03 d=00000001 si=00067fc4 di=00000000 12.089: ds=00000000 es=00000000 ip=00008ab6 cs=00000000 f=00000246 r=00001fd2
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

