menu "BCMGENET options"

config BCMGENET_0_GPHY
	bool "GENET0 is connected to GPHY via RGMII"
	depends on BCMGENET && BRCM_HAS_GENET_0
	default n
	help
	  Say Y to use an external GPHY for GENET_0.  By default this will
	  use RGMII mode and disable the internal 10/100 PHY (if present);
	  the pinmux must be set up properly in arch/mips/brcmstb/board.c .

	  If unsure, say N.

config BCMGENET_1_GPHY
	bool "GENET1 is connected to GPHY via RGMII"
	depends on BCMGENET && BRCM_HAS_GENET_1
	default n
	help
	  Say Y to use an external GPHY for GENET_1.  By default this will
	  use RGMII mode and disable the internal 10/100 PHY (if present);
	  the pinmux must be set up properly in arch/mips/brcmstb/board.c .

	  If unsure, say N.

config BCMGENET_RX_DESC_THROTTLE 
	bool "use hardware rx descriptor throttling"
	depends on BCMGENET
	default n
	help
	  Instead of generating one interrupt for rx packet, the genet can 
	  generate 1 interrupt for multiple rx packet, thus to reduce the interrupt
	  number.

config BCMGENET_NAPI
	bool "use software rx descriptor throttling"
	depends on BCMGENET
	default y
	help
	  Use software interrupt throttling(the NAPI approach).

config BCMGENET_RX_CSUM
	bool "Enable L4 checksum offloading for rx"
	depends on BCMGENET
	default n
	help
	  Enable L4 checksum offloading for rx.

config BCMGENET_TX_CSUM
	bool "Enable L4 checksum offloading for tx"
	depends on BCMGENET
	default n
	help
	  Enable L4 checksum offloading for tx.

config BCMGENET_DUMP_DATA
	bool "Dump out data for debugging"
	depends on BCMGENET
	default n
	help
	  Dump out data for debugging.

config BCMGENET_DUMP_TRACE
	bool "Dump out trace message for debugging"
	depends on BCMGENET
	default n
	help
	  Dump out trace messages for debugging.
endmenu

