mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-22 17:41:55 +00:00
[util] Allow for CALL NEAR in the option ROM initialisation entry point
Option::ROM currently understands only JMP NEAR and JMP SHORT instructions in the initialisation entry point. At least one Broadcom option ROM has been observed to use a CALL NEAR instruction. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
d0bd383463
commit
37ac7a666f
@ -180,6 +180,7 @@ our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
|
||||
|
||||
use constant JMP_SHORT => 0xeb;
|
||||
use constant JMP_NEAR => 0xe9;
|
||||
use constant CALL_NEAR => 0xe8;
|
||||
|
||||
sub pack_init {
|
||||
my $dest = shift;
|
||||
@ -203,6 +204,9 @@ sub unpack_init {
|
||||
} elsif ( $jump == JMP_NEAR ) {
|
||||
my $offset = unpack ( "xS", $instr );
|
||||
return ( $offset + 6 );
|
||||
} elsif ( $jump == CALL_NEAR ) {
|
||||
my $offset = unpack ( "xS", $instr );
|
||||
return ( $offset + 6 );
|
||||
} elsif ( $jump == 0 ) {
|
||||
return 0;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user