ia64/xen-unstable

changeset 17915:3edc443ae8ce

hvm rombios: Move function calls out of 'post' function section

Through recent additions to the rombios the code section of the post
function has filled up considerably. When I enable the BX_TCGBIOS
compile time option the BIOS crashes since the post section code
(starts at $e05b) spills over into the nmi entry point (starts at
$e2c3). as86 doesn't cause an error when building.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 27 14:43:29 2008 +0100 (2008-06-27)
parents 73b798732e77
children 10e79ad54c91
files tools/firmware/rombios/rombios.c
line diff
     1.1 --- a/tools/firmware/rombios/rombios.c	Fri Jun 27 14:40:47 2008 +0100
     1.2 +++ b/tools/firmware/rombios/rombios.c	Fri Jun 27 14:43:29 2008 +0100
     1.3 @@ -9783,6 +9783,27 @@ smbios_init:
     1.4  
     1.5  #endif
     1.6  
     1.7 +#if BX_TCGBIOS
     1.8 +; The section between the POST entry and the NMI entry is filling up
     1.9 +; and causes crashes if this code was directly there
    1.10 +tcpa_post_part1:
    1.11 +  call _tcpa_acpi_init
    1.12 +
    1.13 +  push dword #0
    1.14 +  call _tcpa_initialize_tpm
    1.15 +  add sp, #4
    1.16 +
    1.17 +  call _tcpa_do_measure_POSTs
    1.18 +  call _tcpa_wake_event     /* specs: 3.2.3.7 */
    1.19 +  ret
    1.20 +
    1.21 +tcpa_post_part2:
    1.22 +  call _tcpa_calling_int19h          /* specs: 8.2.3 step 1 */
    1.23 +  call _tcpa_add_event_separators    /* specs: 8.2.3 step 2 */
    1.24 +  /* we do not call int 19h handler but keep following eventlog */
    1.25 +  call _tcpa_returned_int19h         /* specs: 8.2.3 step 3/7 */
    1.26 +  ret
    1.27 +#endif
    1.28  
    1.29  
    1.30  ;; for 'C' strings and other data, insert them here with
    1.31 @@ -10003,14 +10024,7 @@ post_default_ints:
    1.32    mov  0x0410, ax
    1.33  
    1.34  #if BX_TCGBIOS
    1.35 -  call _tcpa_acpi_init
    1.36 -
    1.37 -  push dword #0
    1.38 -  call _tcpa_initialize_tpm
    1.39 -  add sp, #4
    1.40 -
    1.41 -  call _tcpa_do_measure_POSTs
    1.42 -  call _tcpa_wake_event     /* specs: 3.2.3.7 */
    1.43 +  call tcpa_post_part1
    1.44  #endif
    1.45  
    1.46    ;; Parallel setup
    1.47 @@ -10138,10 +10152,7 @@ post_default_ints:
    1.48    call _interactive_bootkey
    1.49  
    1.50  #if BX_TCGBIOS
    1.51 -  call _tcpa_calling_int19h          /* specs: 8.2.3 step 1 */
    1.52 -  call _tcpa_add_event_separators    /* specs: 8.2.3 step 2 */
    1.53 -  /* we do not call int 19h handler but keep following eventlog */
    1.54 -  call _tcpa_returned_int19h         /* specs: 8.2.3 step 3/7 */
    1.55 +  call tcpa_post_part2
    1.56  #endif
    1.57  
    1.58    ;; Start the boot sequence.   See the comments in int19_relocated