
Dear Marek,
I did the changes suggested by you and tested the build. The issue didn't come up. Then I reverted the code to the original (attributes retained and ehci directly de-referencing the pointers. The issue didn't come here too.
Today, I used armv7-linux-gcc (GCC) v4.6.2 So I suspect there has been some fix done in the GCC.
Now, even with the packed attributes, the word fields are accessed word-by-word in contrast to the earlier observed behavior (byte-by-byte). I could see ldr and str in the disassembly.
May be, we can discard this patch and keep drivers/usb/host/ehci.h intact.
Can you check with different toolchain please?
Do you mean different toolchains for ARM? I can surely check if you can help me. I have used ST's internal distribution till date and I guess I need to download and install other ARM toolchains in order to verify this issue.
Or, we can work this way that my source code is compiled by someone already installed/using other tool chains. I can test it on my board and report the results?
Thanks Amit Virdi