@@ -695,8 +695,8 @@ bool check_generic_load_map(std::shared_ptr<load_map_item> load_map, model_t mod
695695 // generic xip pinning from the SDK
696696 pin_xip_sram = load_map->entries .size () == 1
697697 && load_map->entries [0 ].storage_address == 0x0
698- && load_map->entries [0 ].runtime_address == model->xip_sram_end () - 0x4
699- && load_map->entries [0 ].size == 0x4 ;
698+ && load_map->entries [0 ].runtime_address == model->xip_sram_start ()
699+ && load_map->entries [0 ].size == 0x0 ;
700700 return pin_xip_sram;
701701}
702702
@@ -724,15 +724,15 @@ std::vector<uint8_t> get_lm_hash_data(elf_file *elf, block *new_block, model_t m
724724 }
725725 if (pin_xip_sram) {
726726 // todo tidy up this way of hashing the uint32_t
727- std::vector<uint32_t > xip_pin_size_vec = {0x4 };
727+ std::vector<uint32_t > xip_pin_size_vec = {0x0 };
728728 entries.push_back ({
729729 0x0 ,
730- model->xip_sram_end () - 0x4 ,
730+ model->xip_sram_start () ,
731731 xip_pin_size_vec[0 ]
732732 });
733733 auto xip_pin_size_data = words_to_lsb_bytes (xip_pin_size_vec.begin (), xip_pin_size_vec.end ());
734734 std::copy (xip_pin_size_data.begin (), xip_pin_size_data.end (), std::back_inserter (to_hash));
735- DEBUG_LOG (" PIN XIP SRAM %08x + %08x\n " , (int )model->xip_sram_end () - 0x4 , (int )xip_pin_size_vec[0 ]);
735+ DEBUG_LOG (" PIN XIP SRAM %08x + %08x\n " , (int )model->xip_sram_start () , (int )xip_pin_size_vec[0 ]);
736736 }
737737 for (const auto &seg : sorted_segs (elf)) {
738738 if (!seg->is_load ()) continue ;
@@ -815,15 +815,15 @@ std::vector<uint8_t> get_lm_hash_data(std::vector<uint8_t> bin, uint32_t storage
815815 }
816816 if (pin_xip_sram) {
817817 // todo tidy up this way of hashing the uint32_t
818- std::vector<uint32_t > xip_pin_size_vec = {0x4 };
818+ std::vector<uint32_t > xip_pin_size_vec = {0x0 };
819819 entries.push_back ({
820820 0x0 ,
821- model->xip_sram_end () - 0x4 ,
821+ model->xip_sram_start () ,
822822 xip_pin_size_vec[0 ]
823823 });
824824 auto xip_pin_size_data = words_to_lsb_bytes (xip_pin_size_vec.begin (), xip_pin_size_vec.end ());
825825 std::copy (xip_pin_size_data.begin (), xip_pin_size_data.end (), std::back_inserter (to_hash));
826- DEBUG_LOG (" PIN XIP SRAM %08x + %08x\n " , (int )model->xip_sram_end () - 0x4 , (int )xip_pin_size_vec[0 ]);
826+ DEBUG_LOG (" PIN XIP SRAM %08x + %08x\n " , (int )model->xip_sram_start () , (int )xip_pin_size_vec[0 ]);
827827 }
828828 to_hash.insert (to_hash.begin (), bin.begin (), bin.end ());
829829 DEBUG_LOG (" HASH %08x + %08x\n " , (int )storage_addr, (int )bin.size ());
0 commit comments