Mercurial > flash_v2
changeset 1688:30d12b1c7bb0
Fix test for valid entry point (loaded data)
| author | gthomas |
|---|---|
| date | Wed, 07 Jul 2004 15:44:47 +0000 |
| parents | eb235374a7ae |
| children | b4f47422be81 |
| files | packages/hal/arm/arch/current/ChangeLog packages/hal/arm/arch/current/src/redboot_linux_exec.c |
| diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/ChangeLog +++ b/packages/hal/arm/arch/current/ChangeLog @@ -1,3 +1,8 @@ +2004-07-07 Gary Thomas <gary@mlbassoc.com> + + * src/redboot_linux_exec.c (do_exec): Fix test for valid entry + (was being overwritten by command line parameter) + 2004-05-27 Gary Thomas <gary@mlbassoc.com> * src/redboot_linux_exec.c (do_exec): Be sensitive to value in
--- a/packages/hal/arm/arch/current/src/redboot_linux_exec.c +++ b/packages/hal/arm/arch/current/src/redboot_linux_exec.c @@ -291,6 +291,11 @@ do_exec(int argc, char *argv[]) struct tag *params = (struct tag *)CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS; extern char __tramp_start__[], __tramp_end__[]; + // Check to see if a valid image has been loaded + if (entry_address == (unsigned long)NO_MEMORY) { + diag_printf("Can't execute Linux - invalid entry address\n"); + return; + } // Default physical entry point for Linux is kernel base. entry = (unsigned long)CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS; @@ -316,10 +321,6 @@ do_exec(int argc, char *argv[]) { return; } - if (entry == (unsigned long)NO_MEMORY) { - diag_printf("Can't execute Linux - invalid entry address\n"); - return; - } // Set up parameters to pass to kernel
