13 Aug, 2009
9 commits
-
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Moving the code to a more logical place and beautifying it. No real change in
behavior.Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Moved the dmae_command from the heap to the stack. This will save 56
bytes per bnx2x structure. As a side benefit, we can also reduce the
time the dmae_mutex is held. This is because do we not need to hold
this mutex when setting up the dmae command. The memory where is dmae
command is stored is not a shared resource and doesn not need to be
protected.Signed-off-by: Benjamin Li
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Benjamin Li
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
When a given ring is running out of space, the FW can send pause towards the
network. When working with multi-queues, when one queue is getting out of space
it can block all other queues. The preferred scheme is to send pause frames only
when running out of the shared internal chip buffers and if a given queue cannot
place a packet on the host, it will drop it. Since some users might want to work
in drop-less mode, allowing changing the behavior as a module parameter.Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
This is required for NCSI statistics
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
As suggested by Ben Hutchings , using the MDC/MDIO
IOCTLSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
In multi-function mode, the FW can receive special management control commands
to set the Min/Max BW and the the function link stateSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
The new FW improves the packets per second rate. It required a lot of change in
the FW which implies many changes in the driver to support it. It is now also
possible for the driver to use a separate MSI-X vector for Rx and Tx - this also
add some to the complicity of this change.All things said - after this patch, practically all performance matrixes show
improvement.
Though Vladislav Zolotarov is not signed on this patch, he did most of the job
and deserves credit for that.Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
22 Jul, 2009
2 commits
-
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Adding support for BCM8727 - a dual port SFP+ PHY. That includes verification of
the optic module vendor and part number - the list of approved modules resides
on the nvram and the module is verified by the FW. Since not all users would
like to use this verification feature, it can be disabled. The default behavior
is to issue a warning if the module is not approved, but still allow using it -
but it is also possible to disable the link if the module is not approved.Signed-off-by: Yaniv Rosner
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
06 Jul, 2009
1 commit
-
This patch properly defines the maximum values for rx/tx coalescing timeouts.
Signed-off-by: Vlad Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
27 Apr, 2009
1 commit
-
>From now on FW will be downloaded from the binary file using request_firmware.
There will be different files for every supported chip. Currently 57710 (e1) and
57711 (e1h).File names have the following format: bnx2x--.fw.
ihex versions of current FW files are submitted in the next patch.Each binary file has a header in the following format:
struct bnx2x_fw_file_section {
__be32 len;
__be32 offset;
}struct bnx2x_fw_file_hdr {
struct bnx2x_fw_file_section init_ops;
struct bnx2x_fw_file_section init_ops_offsets;
struct bnx2x_fw_file_section init_data;
struct bnx2x_fw_file_section tsem_int_table_data;
struct bnx2x_fw_file_section tsem_pram_data;
struct bnx2x_fw_file_section usem_int_table_data;
struct bnx2x_fw_file_section usem_pram_data;
struct bnx2x_fw_file_section csem_int_table_data;
struct bnx2x_fw_file_section csem_pram_data;
struct bnx2x_fw_file_section xsem_int_table_data;
struct bnx2x_fw_file_section xsem_pram_data;
struct bnx2x_fw_file_section fw_version;
}Each bnx2x_fw_file_section contains the length and the offset of the appropriate
section in the binary file. Values are stored in the big endian format.Data types of arrays:
init_data __be32
init_ops_offsets __be16
XXsem_pram_data u8
XXsem_int_table_data u8
init_ops struct raw_op {
u8 op;
__be24 offset;
__be32 data;
}
fw_version u8>From now boundaries of a specific initialization stage are stored in
init_ops_offsets array instead of being defined by separate macroes. The index
in init_ops_offsets is calculated by BLOCK_OPS_IDX macro:#define BLOCK_OPS_IDX(block, stage, end) \
(2*(((block)*STAGE_IDX_MAX) + (stage)) + (end))Security:
In addition to sanity check of array boundaries bnx2x will check a FW version.
Additional checks might be added in the future.Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
10 Mar, 2009
2 commits
-
Conflicts:
drivers/net/bnx2x_main.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/rt2x00/rt73usb.c -
Adding a proper cast to the argument of PAGE_ALIGN macro so that the output
won't depend on its original type. Without this cast aligned value will be
truncated to the size of the argument type.Reported-by: Bjorn Helgaas
Signed-off-by: Vladislav Zolotarov
Tested-by: Bjorn Helgaas
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
16 Feb, 2009
19 commits
-
Whitespaces, empty lines, 80 columns, indentations and removing redundant
parenthesisSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Resolving the majority of the issues, but there are still some left for future
patches.Signed-off-by: Harvey Harrison
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Harvey Harrison
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
When loading in diag mode, set the device to loopback instead of normal link and
then changing it to loopback modeSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Allows better debug capabilities if the user wants to force an MRRS value
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Some dual port PHY require HW lock since they are used by both interfaces
(different driver instances). Since this list is getting longer, update a
parameter at load time instead of calculating it on runtimeSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
A GPIO is used with the 8726 PHY. Adding the GPIO related functions in this
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
There are too many different board types and this field is not scalable.
Removing it and making decisions according to other fieldsSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Setting better HW thresholds and enabling FW capabilities for better
enforcement. Also set the HW to more efficiently use the internal buffers if
this is a single port designSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Some of the configuration can be set when loading the device and shouldn't be
re-calculated after each link up indication since it is not dependent on the
link speedSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Re-ordering the statistics to enhance readability and adding per queue
statistics (available via ethtool -S)Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
This check is unreliable since latest MC can issue warnings on rare occasions
which are not fatal errorsSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Enabling MSI on top of MSI-X and INTA. Also changing the module parameter to
allow choosing INTA or MSI even when MSI-X is available. The default status
block should not be reversed for endianity. Since MSI can issue
re-configuration, the interrupt disable function now requires mmiowbSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Adding Tx multi-queue and enabling multi-queue by default
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
This is the FW blob and the relevant definitions without any logic. It
also contains the minimal mandatory code changes to work with this FW
but it does not contain enabling of the new features that this FW
provides.This FW is needed for:
- More efficient multi-queue
- per queue statistics
- Big-endian issue with MSI
- Improved pause responseSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
20 Jan, 2009
2 commits
-
Updating the version and the year of updated files
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
To make sure no swapping are made by the compiler, changed HAS_WORK to inline
functions and added all the necessary barriersSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller
16 Jan, 2009
4 commits
-
The size of the doorbell is 4KB, this bug become visible when using
more than 8 queuesSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Wrong handling of tagged packet if VLAN offload is disabled caused
packets to get corruptedSigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
When the page size is not 4KB, the FW must be programmed to work with
the right SGE boundaries and fragment list length.To avoid confusion with the BCM_PAGE_SIZE which is set to 4KB for the
FW sake, another alias for the system page size was added to
explicitly indicate that it is meant for the SGESigned-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Since slow-path events, including link update, are handled in
work-queue, a race condition was introduced in the self-test that
sometimes caused the link status to fail: the self-test was running
under RTNL lock, and if the link-watch was scheduled it stoped the
shared work-queue (waiting for the RTNL lock) and so the link update
event was not handled until the self-test ended (releasing the RTNL
lock) with failure (since the link status was not updated)Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller