[coreboot] Timings v2

Kevin O'Connor kevin at koconnor.net
Sun Apr 19 16:38:36 CEST 2009


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
-------------- next part --------------
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
-------------- next part --------------
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


More information about the coreboot mailing list