On Sun, Apr 17, 2016 at 11:56:58AM +0200, Marek Vasut wrote: > > - desc_p->dmamac_addr = &txbuffs[idx * CONFIG_ETH_BUFSIZE]; > > - desc_p->dmamac_next = &desc_table_p[idx + 1]; > > + desc_p->dmamac_addr = (ulong)&txbuffs[idx * CONFIG_ETH_BUFSIZE]; > > + desc_p->dmamac_next = (ulong)&desc_table_p[idx + 1]; > > Why don't you use u32 instead of ulong ? The u32 is well defined. > DTTO all over the place.
&txbuffs[idx * CONFIG_ETH_BUFSIZE] is a pointer (and hence has the size of a ulong) and casting it to u32 would give a warning on 64 bit archs ("cast from pointer to integer of different size"). > btw just curious, but what will happen if the descriptors get allocated > in area above 4GiB ? Will the code silently corrupt memory by discarding > the top bits in the descriptor pointer? No, if the driver private structure (which contains buffers and descriptors) is above 4GiB, designware_initialize() will complain and return an error. Beniamino _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot