On Fri, 10 Jul 2020 at 16:03, Thomas Huth <th...@redhat.com> wrote:
> Endianess bug ... this should fix it:
>
> diff --git a/target/avr/helper.c b/target/avr/helper.c
> --- a/target/avr/helper.c
> +++ b/target/avr/helper.c
> @@ -337,6 +337,7 @@ void helper_fullwr(CPUAVRState *env, uint32_t data,
> uint32_t addr)
>          helper_outb(env, addr - NUMBER_OF_CPU_REGISTERS, data);
>      } else {
>          /* memory */
> -        cpu_physical_memory_write(OFFSET_DATA + addr, &data, 1);
> +        uint8_t data8 = data;
> +        cpu_physical_memory_write(OFFSET_DATA + addr, &data8, 1);
>      }

Or equivalently
  address_space_stb(&address_space_memory, data, MEMTXATTRS_UNSPECIFIED, NULL);

(better choices of address space may be available, but this is
the exact-same-behaviour one).

>  }

thanks
-- PMM

Reply via email to