On 10/24/2011 4:05 PM, Kelvin Cheung wrote: > 2011/10/24, Giuseppe CAVALLARO <peppe.cavallaro@xxxxxx>: >> Hello Kelvin. >> >> On 10/24/2011 12:36 PM, Kelvin Cheung wrote: >> >> [snip] >> >>> According to datasheet of Loongson 1B, the buffer size in RX/TX >>> descriptor is only 2KB. So the Loongson1B's GMAC could not handle >>> jumbo frames. And the second buffer is useless in this case. Am I >>> right? Is there a better way than ifdef CONFIG_MACH_LOONGSON1 to >>> avoid duplicate code? >> >> Sorry for my misunderstanding. >> >> I think you have to use the normal descriptor and remove the enh_desc >> from the platform w/o modifying the driver at all. >> >> The driver will be able to select/configure all automatically (also jumbo). >> >> Let me know. > > That's the problem. > The bitfield definition of Loongson1B is also different from normal descriptor. The problem is not in the Loongson1B gmac. The normal descriptor fields in the stmmac refer to an old synopsys databook. New chips have the same structure you have added; so we should fix this in the driver w/o breaking the compatibility for old chips. I kindly ask you to confirm if the currently normal descriptor structure (w/o your changes) doesn't work on your platform. Did you test it? > Moreover, I want to enable the TX checksum offload function which is > not supported in normal descriptor. > Any suggestions? It is supported but you have to pass from the platform: tx_coe = 1. Peppe > >> Note: >> IIRC, there is a bit difference in case of normal descriptors for >> Synopsys databook newer than the 1.91 (I used for testing this mode). >> In any case, I remember that, on some platforms, the normal descriptors >> have been used w/o problems also on these new chip generations. >> >> Peppe >> >> > >