Hi Olav, On Fri, Oct 10, 2008 at 11:53 AM, Olav Morken <[EMAIL PROTECTED]> wrote:
> On Fri, Oct 10, 2008 at 7:01 PM, Ben Warren <[EMAIL PROTECTED]> > wrote: > > Olav Morken wrote: > >> > >> This patch removes volatile from: > >> volatile IP_t *ip = (IP_t *)xip; > >> > >> Due to a bug, avr32-gcc will assume that ip is aligned on a word > boundary > >> when > >> using volatile, which causes an exception since xip isn't aligned on a > >> word > >> boundary. > >> > > > > What other architectures have you tried this on? > > None, as we don't have any other boards to test on. I do however believe > that this change should have no side-effects. If any architectures > relied on this function working as some sort of memory/io barrier, they > would have problems with other functions such as ArpRequest, which > doesn't have anything that will work as a memory/io barrier before the > eth_send function. > > Of course, I could be wrong. I would certainly not suggest including > this change without some more testing. > > The bug which causes this problem is in avr32-gcc, which makes > assumptions about the alignement of IP_t when using volatile, and this > change shouldn't be necessary once that bug is fixed. Until that bug > is fixed, this change is needed for anyone trying to run U-Boot on > this microcontroller. > I don't mean to be a pain, it's just that this code is shared by everything, so we need to be really careful. I agree with Haavard that the volatile keyword is probably used much more than it should be in the networking library. I'll pull this into the net/testing branch in the next couple of days, and hopefully we'll get some volunteers to try it out on different architectures. regards, Ben
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot