On Mon, May 04, 2020 at 07:36:04PM +0530, Sai Pavan Boddu wrote: > Jumbo frames of size 10240 bytes is added.
Hi Sai, I think we should make this a property since it's a design configuration option (10240 being the default). > > Signed-off-by: Sai Pavan Boddu <sai.pavan.bo...@xilinx.com> > --- > hw/net/cadence_gem.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c > index beb38ec..848be3f 100644 > --- a/hw/net/cadence_gem.c > +++ b/hw/net/cadence_gem.c > @@ -313,6 +313,7 @@ > #define DESC_1_RX_EOF 0x00008000 > > #define GEM_MODID_VALUE 0x00020118 > +#define MAX_TX_FRAME_SIZE 10240 This applies to RX aswell, better to rename to MAX_FRAME_SIZE. > > static inline uint64_t tx_desc_get_buffer(CadenceGEMState *s, uint32_t *desc) > { > @@ -1143,7 +1144,7 @@ static void gem_transmit(CadenceGEMState *s) > { > uint32_t desc[DESC_MAX_NUM_WORDS]; > hwaddr packet_desc_addr; > - uint8_t tx_packet[2048]; > + uint8_t tx_packet[MAX_TX_FRAME_SIZE]; rxbuf in gem_receive needs the same. We also may want to consider moving these buffers from the stack to CadenceGEMState *s. > uint8_t *p; > unsigned total_bytes; > int q = 0; > @@ -1344,7 +1345,7 @@ static void gem_reset(DeviceState *d) > s->regs[GEM_RXPARTIALSF] = 0x000003ff; > s->regs[GEM_MODID] = s->revision; > s->regs[GEM_DESCONF] = 0x02500111; > - s->regs[GEM_DESCONF2] = 0x2ab13fff; > + s->regs[GEM_DESCONF2] = 0x2ab12800; We need to add and populate the following register: #define GEM_JUMBO_MAX_LEN (0x00000048/4) /* Maximum Jumbo Frame Size */ > s->regs[GEM_DESCONF5] = 0x002f2045; > s->regs[GEM_DESCONF6] = GEM_DESCONF6_64B_MASK; > > -- > 2.7.4 >