summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-11-06 20:40:54 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-11-06 20:40:54 +0000
commitd9b7d58fa6c9ceb136bea429adf6746cc7138208 (patch)
tree65390c8fb5ef5af05418daaf8dd00b695e7d4c81
parent0609bfd9f3de8761bd199960085ceb561a2efa56 (diff)
downloadrockbox-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.c6
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 =
80static const struct imx_model_desc_t imx_models[] = 80static 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