Hi, I have a working usb echi storage support for SLOF. I found that with latest qemu HEAD, USB EHCI registers(HCSPARAMS) started appearing funnily - in place of being LE it appeared BE. Bisecting it down I could get to this zero to the following commit:
commit 08521e28c7e6e8cc1f53424a0f845f58d2ed9546 Author: Paolo Bonzini <pbonz...@redhat.com> Date: Fri May 24 12:54:01 2013 +0200 memory: add big endian support to access_with_adjusted_size This will be used to split 8-byte access down to two four-byte accesses. Reviewed-by: Richard Henderson <r...@twiddle.net> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> If I hack the above funniness in my USB EHCI driver, somewhere down the qemu crashes at code introduced by this patch: Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x00005555557a0ea4 in access_with_adjusted_size (addr=addr@entry=12, value=value@entry=0x7fffd5a86680, size=size@entry=1, access_size_min=<optimized out>, access_size_max=<optimized out>, access=0x5555557a1f80 <memory_region_oldmmio_write_accessor>, opaque=0x5555567f8ab8) at /home/nikunj/work/power/code/qemu/memory.c:396 #2 0x00005555557a5ebb in memory_region_dispatch_write (size=1, data=0, addr=12, mr=0x5555567f8ab8) at /home/nikunj/work/power/code/qemu/memory.c:998 Reverting this, I can safely boot using a usb-storage device put on ehci controller. Regards Nikunj