From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Berger Subject: [PATCH] [HVM] [BIOS] Move function calls out of 'post' function section Date: Sat, 21 Jun 2008 09:44:34 -0400 Message-ID: <1214055874.5378.18.camel@lt2.watson.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-ncq2c9nF3qTMqO0cbe5c" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen-devel Cc: keir.fraser@eu.citrix.com List-Id: xen-devel@lists.xenproject.org --=-ncq2c9nF3qTMqO0cbe5c Content-Type: text/plain Content-Transfer-Encoding: 7bit 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. With this option is enabled there are now 12 bytes free ($e2b7 - $e2c2) ... 38253 E2B6 CD 18 int #0x18 38254 E2C3 .org 0xe2c3 ; NMI Handler Entry 38255 0000E2C3 nmi: Signed-off-by: Stefan Berger --=-ncq2c9nF3qTMqO0cbe5c Content-Disposition: attachment; filename=rombios_move_calls_from_post_section.diff Content-Type: text/x-patch; name=rombios_move_calls_from_post_section.diff; charset=UTF-8 Content-Transfer-Encoding: 7bit diff -r dedfadeadf86 tools/firmware/rombios/rombios.c --- a/tools/firmware/rombios/rombios.c Fri Jun 20 18:42:45 2008 +0100 +++ b/tools/firmware/rombios/rombios.c Sat Jun 21 09:13:41 2008 -0400 @@ -9783,6 +9783,27 @@ smbios_init: #endif +#if BX_TCGBIOS +; The section between the POST entry and the NMI entry is filling up +; and causes crashes if this code was directly there +tcpa_post_part1: + call _tcpa_acpi_init + + push dword #0 + call _tcpa_initialize_tpm + add sp, #4 + + call _tcpa_do_measure_POSTs + call _tcpa_wake_event /* specs: 3.2.3.7 */ + ret + +tcpa_post_part2: + call _tcpa_calling_int19h /* specs: 8.2.3 step 1 */ + call _tcpa_add_event_separators /* specs: 8.2.3 step 2 */ + /* we do not call int 19h handler but keep following eventlog */ + call _tcpa_returned_int19h /* specs: 8.2.3 step 3/7 */ + ret +#endif ;; for 'C' strings and other data, insert them here with @@ -10003,14 +10024,7 @@ post_default_ints: mov 0x0410, ax #if BX_TCGBIOS - call _tcpa_acpi_init - - push dword #0 - call _tcpa_initialize_tpm - add sp, #4 - - call _tcpa_do_measure_POSTs - call _tcpa_wake_event /* specs: 3.2.3.7 */ + call tcpa_post_part1 #endif ;; Parallel setup @@ -10138,10 +10152,7 @@ post_default_ints: call _interactive_bootkey #if BX_TCGBIOS - call _tcpa_calling_int19h /* specs: 8.2.3 step 1 */ - call _tcpa_add_event_separators /* specs: 8.2.3 step 2 */ - /* we do not call int 19h handler but keep following eventlog */ - call _tcpa_returned_int19h /* specs: 8.2.3 step 3/7 */ + call tcpa_post_part2 #endif ;; Start the boot sequence. See the comments in int19_relocated --=-ncq2c9nF3qTMqO0cbe5c Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=-ncq2c9nF3qTMqO0cbe5c--