summaryrefslogtreecommitdiff
path: root/cleopatre/linux-2.6.25.10-spc300/drivers/net
AgeCommit message (Collapse)Author
2013-05-30cleo/linux/drivers/net/arm: add fixed phy support in eth driver, closes #4009Olivier Dufour
2013-05-30cleo/linux/drivers/net/phy: add getters in fixed driver, refs #4009Olivier Dufour
2013-05-30cleo/linux/drivers/net/phy: allocate phydev in fixed driver, refs #4009Olivier Dufour
2013-04-18{cleo, polux}/linux/drivers/net: set RMII speed in ETH_CONFIG, closes #3900Olivier Dufour
2013-02-06cleo/linux/driver/net/phy: disable EEE in RTL821x phy driver, refs #3755Olivier Dufour
Backport of eoc-drv code, see #3664.
2013-01-31{cleo/linux, common/inc/asm/arch}: create sram-mapping.h, refs #3692Cyril Jourdan
The goal is to separate the management of SRAM data organization (now in sram-mapping.h) and the management of SRAM as an hardware IP (in ips/sram.h). Moreover, we separate the SRAM mapping from the definition of data that will be put in SRAM. This allows to give access to whole SRAM only to software components which are responsible for managing a part of the data in SRAM. For the moment, the only software component that uses SRAM is Power Management, but autoswitch comes soon...
2013-01-18cleo/linux/driver/net/phy: add support for our realtek chipset, refs #3707Jérémy Dufour
The mask provided is too small and only support one chipset. With this mask, the version can change. The OUI (LSB and MSB) and the model must be the same as the one provided.
2013-01-18cleo/linux/driver/net: reset PHY only when at driver loading, refs #3707Jérémy Dufour
Rather than reseting the PHY every time the device is opened, it is now reseted when the synopsys driver is probing. In polux, this is the same: it is done at driver init.
2012-12-21cleo/app/pmd: add a daemon to handle power state changes, closes #2633Olivier Dufour
pmd polls /proc/pm/suspend_cmd, and triggers the suspend script when the criterias are matched. The criterias are defined and handled by the kernel, pmd only reads the status entry and triggers the script, as it cannot be done from kernel space.
2012-12-21cleo/linux/arch/arm/spc300: wake up on eth link up, refs #2633Olivier Dufour
There is now a data section in SRAM, that contains dynamic parameters for pm_process function in SRAM.
2012-12-21cleo/linux/drv/net/arm: switch off ethernet clocks, refs #2633Olivier Dufour
2012-11-06cleo/arch/arm/spc300: Add support of eth2 for MSE500, closes #3413Olivier Dufour
2012-11-06cleo/linux/drv/eth: don't netif_wake_queue() on link upYacine Belkadi
In the Synop3504 Ethernet driver, there is no reason to wake the queue on link up, because it's already started on open() and it's not stopped on link down.
2012-11-06cleo/linux/drv/eth: don't txdesc_reset() on link up, refs #3195, (ind.) ↵Yacine Belkadi
closes #3439 In the Synop3504 Ethernet driver, the Tx descriptors were reset on link up. That's not necessary because the MAC TxDMA will process (fetch and close) the Tx descriptors even if the link is down. So letting the normal process happen will take care of the pending descriptors. This Tx descriptor reset already caused problems when it was performed on link_down. It was then moved to link up. In link up, this reset is one of the causes of #3439*. So removing the reset of the Tx descriptors on link up also indirectly closes the ticket #3439. *#3439 is a kernel oops that happens when booting in "single mode" on a board with an IP75D PHY: The IP175D driver declares its readiness to the Linux PHY Layer in a particular way, probably to skip the Auto-Negotiation step. As a consequence, the PHY layer may call the Ethernet driver's adjust_link() before it's ready (before phy_start() is called). In other words, adjust_link() may be called before the driver has initialized the descriptors. If that happens, the Ethernet driver touches the uninitialized Tx descriptors, and a kernel oops occurs. The problem is visible in single mode because the eth interface is not brought up. So synop3504_open() is not run. So the Tx descriptors are not already initialized when the PHY layer calls synop3504_handle_link_change() which calls txdesc_reset(), which causes a kernel oops.
2012-11-06cleo/linux/drv/eth: don't netif_carrier_{on|off}() on link change, closes #3254Yacine Belkadi
In the Synop3504 Ethernet driver, it is not necessary to call netif_carrier_{on,off}() on link up/down, because the PHY layer already takes care of that before calling the driver's link change handler. More precisely, in linux/drivers/net/phy.c, phy_state_machine() calls netif_carrier_{on|off}() before calling phydev->adjust_link().
2012-10-19cleo/linux/driver/net/arm/synop3504: flush MIU only on MSE500, closes #3408Jean-Philippe SAVE
2012-10-17cleo/linux/driver/net/arm/synop3504: adapt synchro with DMA, closes #3408Jean-Philippe SAVE
- force compiler to set dma own-bit at the end of the descriptor changes. - waiting for miu flush before using dma descriptors changed by dma.
2012-09-20cleo/{linux, buildroot}: handle eth clks and rgmii on MSE500, refs #3318Jean-Philippe SAVE
2012-09-20cleopatre: rename SPC300DINI into MSE500DINI_300, refs #3119Cyril Jourdan
2012-09-20cleo/linux: rename hardware and import dir into ips and hardware, refs #3119Cyril Jourdan
2012-09-06cleo/linux/drv/net/arm/synop3504: reset rings on timeout, refs #3161Nélio Laranjeiro
Linux network scheduler handles a timer to detect timeout TX. This timeout is configurable for the device. The watchdog only call the drivers' timeout function if the carrier is ON, so it is only used to detect problems on transmission or congestion on the medium. In our case, as the timeout is pretty long, if the first packet in the DMA has expired the last one has expired too, so the ring can be reseted. This is only true for TX DMA ring, because the timeout is configured to expire 4 seconds after the last TX has been requested. Used example from drivers/net/meth.c
2012-09-06cleo/linux/drv/net/arm/synop3504: only reset TX desc on link_up, closes #3195Nélio Laranjeiro
All received packets are still for linux or any application on linux or even for cesar, so those packets can be processed. On the contrary, TX descriptors are for the world behind the Ethernet, this world could have change between the link_down and the link_up, so it is better to discard packets currently present in the DMA.
2012-09-06cleo/linux/drv/net/arm/synop3504: remove netif_carrier_off on stop, refs #3195Nélio Laranjeiro
Calling netif_carrier_off on stop function is redundant with the behavior of the phy_stop function. When the PHY change its status, it calls the driver's handler synop3504_handle_link_change, this function will check the status and call link_down function. Currently synop3504_on_link_down calls netif_carrier_off linux's function, as it is done by the process, there is no need to call it twice.
2012-09-06cleo/linux/drv/net/arm/synop3504: don't stop DMA on link_down, refs #3195Nélio Laranjeiro
On link down, there is no need to stop the DMA neither to stop the queue. The PHY has no link, so it will not receive any frame from Ethernet. TX is stopped until the link becomes UP (i.e. netif_carrier_on is called).
2012-09-06cleo/linux/drv/net/arm/synop3504: remove link_down call on open, refs #3195Nélio Laranjeiro
In open function, the link_down should not be called as nothing is started yet.
2012-09-06cleo/linux/drv/net/arm/synop3504: start DMA on synop3504_open, refs #3195Nélio Laranjeiro
Open function should prepare the DMA for transmissions. Linux has still the carrier OFF so it will not try to send packets. As the PHY is started at the end of the open function, it can receive frames from the Ethernet before the handler could be called (i.e. synop3504_handle_link_change), in this case the DMA is ready and can process the received frame.
2012-06-28cleo/linux/drv/net/arm/synop3504: do not enable carrier at open, closes #3048Cyril Jourdan
We must wait a link up and declare carrier on. We do this to prevent us from trying to send packets before first link up, what may create a shift between DMA current descriptor address and our TX descriptor ring state.
2012-05-09cleo/linux/drv: make ethernet work on spc300dini, refs #2759MSE500 Team
- Prevent advertising of 1000Base-T capability because the spc300dini doesn't support Gigabit Ethernet. - Apply a specific configuration to the phy (2ns delay for TX and RX clock).
2012-05-09cleo/linux: switch to board/chip/feature configurationNicolas Schodet
2012-04-26cleo/linux/drivers/net/arm: accept giant frames, closes #2992Nicolas Schodet
2012-03-30cleo/linux/driver/net: redefine PKT_BUF_SZ using linux definesJérémy Dufour
2012-03-30cleo/linux/driver/net: use default ethernet change mtu function, closes #2969Jérémy Dufour
2012-02-20cleo/linux/driver/net: return remaining budget after NAPI pollJérémy Dufour
2012-02-10cleo/linux/drivers/net: use dev_alloc_skb for synop3504 driverNicolas Schodet
2011-12-20cleo/linux/drivers/net/arm/synop3504: reset descriptors on link up, refs #2701Nicolas Schodet
When interface is brought down, phy is stopped which will make the link down in the next phy timer run. Descriptors can not be cleared when link comes down because descriptors memory is freed yet.
2011-10-27cleo/linux/drivers/net: fix DMA synchronisation in Synopsys driver, refs #2295Jérémy Dufour
2011-09-08cleo/linux/drv/eth: add seq_check support, refs #2644Yacine Belkadi
2011-08-12cleo/linux/drv/eth: support getting/setting flow control params from ↵Yacine Belkadi
ethtool, closes #2487 In the Ethernet driver, add support for using ethtool: - to query whether Rx or Tx pause are enabled. e.g. ethtool -a eth0 - to specify whether Rx or Tx pause should be enabled. e.g. ethtool -A eth0 rx on tx off
2011-08-12cleo/linux/drv/eth: flow control: change Rx FIFO fill-level thresholds, refs ↵Belkadi & Save
#2487 Set (Rx FIFO fill-level reaches (full - 2K)) as the threshold for activating the flow control. Set (Rx FIFO fill-level returns to (full - 2K)) as the threshold for deactivating the flow control.
2011-08-12cleo/linux/drv/eth: replace printk "Rx FIFO Error" by TRACE "Rx FIFO ↵Belkadi & Save
overflow", refs #2487 - It's not really an error. - A precedent commit disabled the flushing of the Rx FIFO, so this message will be printed far more frequently, which is not that useful.
2011-08-12cleo/linux/drv/eth: flow control: set Pause Low Threshold to 144, refs #2487Yacine Belkadi
Pause Low Threshold was set to 4 slot times, which seems too low.
2011-08-12cleo/linux/drv/eth: flow control: set Pause Time to 65535 quanta, refs #2487Yacine Belkadi
The Ethernet Hardware is configured to send a pause frame (with some pause time value) when the use of the Rx FIFO reaches a configured threshold. This pause frame asks the other end to stop sending packets for the specified duration (the pause time). The Ethernet hardware is configured to send a pause frame with 0 quanta as the pause time, when the use of the Rx FIFO falls to an other configured threshold. This pause frame with a zero pause time asks the other end to resume the sending of packets. Because: 1) the first pause frame is sent again if the initial pause time is almost expired (cf. Pause Low Threshold), 2) a zero pause frame is sent when the hardware is able to receive again, the mechanism is like an X-OFF/X-ON mechanism: Stop transmission/Resume transmission. So it seems appropriate to set the Pause Time to the maximum possible value: 65535.
2011-08-12cleo/linux/drv/eth: don't flush the Rx FIFO when no descriptor is available, ↵Belkadi & Save
refs #2487 The Ethernet hardware is configured to send pause frames when the Rx FIFO reaches a preconfigured threshold. The hardware was configured to flush the Rx FIFO when no descriptor is available. This prevented the Rx FIFO from filling up, and thus prevented the sending of pause frames. This commit disables the flushing of the Rx FIFO, causing it to fill up and reach the threshold that triggers the sending of pause frames.
2011-08-12cleo/linux/drv/eth: fix flow control activation thresholds, refs #2487Yacine Belkadi
Correct the DmaRxFlowCtrlAct* flags used to specifiy the Rx FIFO fill-level threshold that triggers the sending of pause frames.
2011-08-12cleo/linux/drv/eth: fix: hardware flow control (sending pause frames) was ↵Yacine Belkadi
not enabled, refs #2487 Correct the DmaEnHwFlowCtrl flag used to enable the hardware flow control (responsible for sending pause frames when appropriate).
2011-08-12cleo/linux/drv/eth: fix double free()Yacine Belkadi
Remove the kfree(dev->priv) call because the free_netdev(dev) call frees dev->priv.
2011-08-12cleo/linux/drv/eth: refactor: use the SynopsysSetMacReg() and ↵Yacine Belkadi
SynopsysClearMacReg() helpers
2011-08-12cleo/linux/drv/eth: fix: a DMA register was read instead of a GMAC registerYacine Belkadi
2010-10-04cleo/linux/eth : Add IP175x swich driver handel VLAN managed by ethtool, fix ↵Badreddine ZAGROUBA
#398 *Add ethtool patch for VLAN configuration *Add VLAN management code to IP175x & ETH drivers
2010-10-04cleo/linux/eth: Split ETH and PHY drivers, closes #1860Badreddine ZAGROUBA
- ETH driver : cleaning & /proc entry modification to be completely independent from PHY driver - IP175 PHY driver : add connection autodetection mechnaism and 100M/Full static setting for PHY5 Please enter the commit message for your changes.