diff options
author | Amaury Pouly <pamaury@rockbox.org> | 2011-11-06 20:40:54 +0000 |
---|---|---|
committer | Amaury Pouly <pamaury@rockbox.org> | 2011-11-06 20:40:54 +0000 |
commit | d9b7d58fa6c9ceb136bea429adf6746cc7138208 (patch) | |
tree | 65390c8fb5ef5af05418daaf8dd00b695e7d4c81 | |
parent | 0609bfd9f3de8761bd199960085ceb561a2efa56 (diff) | |
download | rockbox-d9b7d58fa6c9ceb136bea429adf6746cc7138208.tar.gz rockbox-d9b7d58fa6c9ceb136bea429adf6746cc7138208.zip |
mkimxboot: fix bootloader load address, replace call by jump on final call to have a clean boot
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30922 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | rbutil/mkimxboot/mkimxboot.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/rbutil/mkimxboot/mkimxboot.c b/rbutil/mkimxboot/mkimxboot.c index f1a874b3f5..6f90924c9a 100644 --- a/rbutil/mkimxboot/mkimxboot.c +++ b/rbutil/mkimxboot/mkimxboot.c | |||
@@ -80,7 +80,7 @@ static struct crypto_key_t zero_key = | |||
80 | static const struct imx_model_desc_t imx_models[] = | 80 | static const struct imx_model_desc_t imx_models[] = |
81 | { | 81 | { |
82 | [MODEL_FUZEPLUS] = { "Fuze+", dualboot_fuzeplus, sizeof(dualboot_fuzeplus), "fuz+", 72, | 82 | [MODEL_FUZEPLUS] = { "Fuze+", dualboot_fuzeplus, sizeof(dualboot_fuzeplus), "fuz+", 72, |
83 | 1, &zero_key }, | 83 | 1, &zero_key, 0, 0x40000000 }, |
84 | }; | 84 | }; |
85 | 85 | ||
86 | #define NR_IMX_SUMS (sizeof(imx_sums) / sizeof(imx_sums[0])) | 86 | #define NR_IMX_SUMS (sizeof(imx_sums) / sizeof(imx_sums[0])) |
@@ -163,7 +163,7 @@ static enum imx_error_t patch_std_zero_host_play(int jump_before, int model, | |||
163 | rock_sec.insts[0].size = boot_sz; | 163 | rock_sec.insts[0].size = boot_sz; |
164 | rock_sec.insts[0].data = memdup(boot, boot_sz); | 164 | rock_sec.insts[0].data = memdup(boot, boot_sz); |
165 | rock_sec.insts[0].addr = imx_models[model].bootloader_addr; | 165 | rock_sec.insts[0].addr = imx_models[model].bootloader_addr; |
166 | rock_sec.insts[1].inst = SB_INST_CALL; | 166 | rock_sec.insts[1].inst = SB_INST_JUMP; |
167 | rock_sec.insts[1].addr = imx_models[model].bootloader_addr; | 167 | rock_sec.insts[1].addr = imx_models[model].bootloader_addr; |
168 | rock_sec.insts[1].argument = MAGIC_NORMAL; | 168 | rock_sec.insts[1].argument = MAGIC_NORMAL; |
169 | 169 | ||
@@ -187,7 +187,7 @@ static enum imx_error_t patch_std_zero_host_play(int jump_before, int model, | |||
187 | new_insts[jump_idx + 0].size = boot_sz; | 187 | new_insts[jump_idx + 0].size = boot_sz; |
188 | new_insts[jump_idx + 0].data = memdup(boot, boot_sz); | 188 | new_insts[jump_idx + 0].data = memdup(boot, boot_sz); |
189 | new_insts[jump_idx + 0].addr = imx_models[model].bootloader_addr; | 189 | new_insts[jump_idx + 0].addr = imx_models[model].bootloader_addr; |
190 | new_insts[jump_idx + 1].inst = SB_INST_CALL; | 190 | new_insts[jump_idx + 1].inst = SB_INST_JUMP; |
191 | new_insts[jump_idx + 1].addr = imx_models[model].bootloader_addr; | 191 | new_insts[jump_idx + 1].addr = imx_models[model].bootloader_addr; |
192 | new_insts[jump_idx + 1].argument = recovery ? MAGIC_RECOVERY : MAGIC_NORMAL; | 192 | new_insts[jump_idx + 1].argument = recovery ? MAGIC_RECOVERY : MAGIC_NORMAL; |
193 | 193 | ||