On Tue, Sep 9, 2014 at 8:43 PM, Alistair Francis <alistai...@gmail.com> wrote: > On Wed, Sep 10, 2014 at 12:03 AM, Martin Galvan > <martin.gal...@tallertechnologies.com> wrote: >>>> @@ -259,7 +272,13 @@ qemu_irq *armv7m_init(MemoryRegion *system_memory, >>>> vmstate_register_ram_global(hack); >>>> memory_region_add_subregion(system_memory, 0xfffff000, hack); >>>> >>>> - qemu_register_reset(armv7m_reset, cpu); >>>> + reset_args = (ARMV7MResetArgs) { >>>> + .cpu = cpu, >>>> + .reset_pc = entry, >>>> + .reset_sp = (0x20000000 + ((192 * 1024) * 2)/3), >>> >>> Why is the manual sp setting needed? I thought the V7M specific CPU >>> reset code handled this? Does Martins ARMv7M ROM reset patch help by >>> any chance? >>> >>> Regards, >>> Peter >> >> Indeed, I don't think that would be necessary with my patch. What are >> those hardcoded magic numbers? > > The hard coded numbers are there basically there because they worked at > one point and I haven't removed them yet. There is also no memory aliasing, > so this gets around out of memory access errors from QEMU. > > I haven't had to chance to try your patch yet Martin, but hopefully it removes > the need for any of the reset changes I made.
My patch deals with the initial MSP, PC and Thumb values not being set correctly on reset. I don't know if it's in the main tree yet, but you can see it here: https://patchwork.ozlabs.org/patch/386497/ -- Martín Galván Software Engineer Taller Technologies Argentina San Lorenzo 47, 3rd Floor, Office 5 Córdoba, Argentina Phone: 54 351 4217888 / +54 351 4218211