[PATCH net-next v10 03/11] net: ti: prueth: Adds PRUETH HW and SW configuration

Parvathi Pudi parvathi at couthit.com
Fri Jul 11 05:28:46 PDT 2025


Hi,

> On Wed,  2 Jul 2025 19:36:25 +0530 Parvathi Pudi wrote:
>> diff --git a/drivers/net/ethernet/ti/icssm/icssm_prueth.c
>> b/drivers/net/ethernet/ti/icssm/icssm_prueth.c
>> index aed5cdc402b5..f52858da89d4 100644
>> --- a/drivers/net/ethernet/ti/icssm/icssm_prueth.c
>> +++ b/drivers/net/ethernet/ti/icssm/icssm_prueth.c
>> +	txcfg = PRUSS_MII_RT_TXCFG_TX_ENABLE |
>> +		PRUSS_MII_RT_TXCFG_TX_AUTO_PREAMBLE |
>> +		PRUSS_MII_RT_TXCFG_TX_32_MODE_EN |
>> +		(TX_START_DELAY << PRUSS_MII_RT_TXCFG_TX_START_DELAY_SHIFT) |
>> +		(TX_CLK_DELAY_100M << PRUSS_MII_RT_TXCFG_TX_CLK_DELAY_SHIFT);
> 
>> +	/* Min frame length should be set to 64 to allow receive of standard
>> +	 * Ethernet frames such as PTP, LLDP that will not have the tag/rct.
>> +	 * Actual size written to register is size - 1 per TRM. This also
>> +	 * includes CRC/FCS.
>> +	 */
>> +	txcfg = (((PRUSS_MII_RT_RX_FRMS_MIN_FRM - 1) <<
>> +			PRUSS_MII_RT_RX_FRMS_MIN_FRM_SHIFT) &
>> +			PRUSS_MII_RT_RX_FRMS_MIN_FRM_MASK);
> 
> Please use FIELD_PREP() instead of defining separate _MASK and _SHIFT
> values.
> 

Sure, we will use FIELD_PREP() to align with kernel bit-field handling.

>> +	/* For EMAC, set Max frame size to 1528 i.e size with VLAN.
>> +	 * Actual size written to register is size - 1 as per TRM.
>> +	 * Since driver support run time change of protocol, driver
>> +	 * must overwrite the values based on Ethernet type.
>> +	 */
>> +	txcfg |= (((PRUSS_MII_RT_RX_FRMS_MAX_SUPPORT_EMAC - 1) <<
>> +			   PRUSS_MII_RT_RX_FRMS_MAX_FRM_SHIFT)	&
>> +			   PRUSS_MII_RT_RX_FRMS_MAX_FRM_MASK);
> 
>> +struct prueth_queue_desc {
>> +	u16 rd_ptr;
>> +	u16 wr_ptr;
>> +	u8 busy_s;
>> +	u8 status;
>> +	u8 max_fill_level;
>> +	u8 overflow_cnt;
>> +} __packed;
> 
> Please don't use __packed if the struct will be packed anyway based on
> C packing rules.

We will address this in the next version.

Thanks and Regards,
Parvathi.



More information about the linux-arm-kernel mailing list