mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
efidebug: add multiple device path instances on Boot####
The UEFI spec allows a packed array of UEFI device paths in the FilePathList[] of an EFI_LOAD_OPTION. The first file path must describe the loaded image but the rest are OS specific. Previous patches parse the device path and try to use the second member of the array as an initrd. So let's modify efidebug slightly and install the second file described in the command line as the initrd device path. Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
parent
53f6a5aa86
commit
cbea241e93
7 changed files with 177 additions and 58 deletions
|
@ -28,7 +28,7 @@ class TestEfiSignedImage(object):
|
|||
# Test Case 1a, run signed image if no PK
|
||||
output = u_boot_console.run_command_list([
|
||||
'host bind 0 %s' % disk_img,
|
||||
'efidebug boot add 1 HELLO1 host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot add -b 1 HELLO1 host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot next 1',
|
||||
'bootefi bootmgr'])
|
||||
assert 'Hello, world!' in ''.join(output)
|
||||
|
@ -36,7 +36,7 @@ class TestEfiSignedImage(object):
|
|||
with u_boot_console.log.section('Test Case 1b'):
|
||||
# Test Case 1b, run unsigned image if no PK
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 2 HELLO2 host 0:1 /helloworld.efi ""',
|
||||
'efidebug boot add -b 2 HELLO2 host 0:1 /helloworld.efi ""',
|
||||
'efidebug boot next 2',
|
||||
'bootefi bootmgr'])
|
||||
assert 'Hello, world!' in ''.join(output)
|
||||
|
@ -58,13 +58,13 @@ class TestEfiSignedImage(object):
|
|||
'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
|
||||
assert 'Failed to set EFI variable' not in ''.join(output)
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 1 HELLO1 host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot add -b 1 HELLO1 host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot next 1',
|
||||
'efidebug test bootmgr'])
|
||||
assert('\'HELLO1\' failed' in ''.join(output))
|
||||
assert('efi_start_image() returned: 26' in ''.join(output))
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 2 HELLO2 host 0:1 /helloworld.efi ""',
|
||||
'efidebug boot add -b 2 HELLO2 host 0:1 /helloworld.efi ""',
|
||||
'efidebug boot next 2',
|
||||
'efidebug test bootmgr'])
|
||||
assert '\'HELLO2\' failed' in ''.join(output)
|
||||
|
@ -104,7 +104,7 @@ class TestEfiSignedImage(object):
|
|||
'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
|
||||
assert 'Failed to set EFI variable' not in ''.join(output)
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot next 1',
|
||||
'efidebug test bootmgr'])
|
||||
assert '\'HELLO\' failed' in ''.join(output)
|
||||
|
@ -142,7 +142,7 @@ class TestEfiSignedImage(object):
|
|||
'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
|
||||
assert 'Failed to set EFI variable' not in ''.join(output)
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot next 1',
|
||||
'efidebug test bootmgr'])
|
||||
assert '\'HELLO\' failed' in ''.join(output)
|
||||
|
@ -169,7 +169,7 @@ class TestEfiSignedImage(object):
|
|||
'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
|
||||
assert 'Failed to set EFI variable' not in ''.join(output)
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed_2sigs ""',
|
||||
'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi.signed_2sigs ""',
|
||||
'efidebug boot next 1',
|
||||
'efidebug test bootmgr'])
|
||||
assert 'Hello, world!' in ''.join(output)
|
||||
|
@ -227,7 +227,7 @@ class TestEfiSignedImage(object):
|
|||
'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
|
||||
assert 'Failed to set EFI variable' not in ''.join(output)
|
||||
output = u_boot_console.run_command_list([
|
||||
'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi.signed ""',
|
||||
'efidebug boot next 1',
|
||||
'bootefi bootmgr'])
|
||||
assert 'Hello, world!' in ''.join(output)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue