Many thanks.
Took a bit longer to push than I at first expected, since after a quick glance I took a bit of a hatchet to it, and verified with Daniil.
This does leave a functionality gap (for now) on Juno, since the mechanism for setting the MAC address is one of the bits that disappeared. But especially after Daniils work making the driver portable enough that it builds (and works!) as EBC, I really want to make sure any platform-specific bits don't get included in the main driver.
For this reason, I have not pushed the patch enabling the driver on Juno.
Talking to Daniil, he also felt that your version of the fix for the RELEASE build was the cleaner one - so I have left that bit out, and the driver currently builds only with DEBUG :)
Regards,
Leif
On Thu, Aug 18, 2016 at 08:12:45AM -0700, Alan Ott wrote:
No problem. Let me know when you get his patches pushed.
On August 18, 2016 8:03:09 AM MST, Leif Lindholm leif.lindholm@linaro.org wrote:
Hi Alan, many thanks for this - and for verifying the driver on another hardware platform!
I would like to get this driver into the tree, but I think the cleanest way of doing this would be to squash all of Daniil's outstanding patches into a single commit.
Would you be OK with rebasing this series on top, once I push that?
Regards,
Leif
On Sat, Aug 13, 2016 at 07:48:26PM -0400, Alan Ott wrote:
These patches are for v4 of the MarvellYukon driver posted by Daniil
Egranov
on June 16 to this mailing list.
The impetus was to get this driver to work on a SoftIron Overdrive
1000
board using the AMD Opteron-A (Seattle/Styx) SoC. On this platform,
in my
testing, edk2 allocates DMA buffers with 64-bit addresses. The
Marvell
Yukon driver as posted did not support 64-bit addresses, and simply truncated any DMA address to 32-bits. After consulting with Ard
Biesheuvel
and Leif Lindholm on IRC, it seemed the proper fix was to add support
for
64-bit DMA. For this I went back to the original source of this
driver
(FreeBSD), and brought over the appropriate code.
A couple of patches are basic fixes, but the one titled "Don't re-use
DMA
buffers" changes how handling of DMA buffers works. This patch makes
it
work closer to how the FreeBSD implementation works and also adds
some
required DMA function calls. Its commit message is worth a read.
I don't have a Juno board to test this on, so while this does work on
my
Overdrive 1000, there's a chance I broke something for other users.
Let me know!
Alan.
Alan Ott (7): Drivers/Net/MarvellYukon: Remove ARM-specific include Drivers/Net/MarvellYukon: Set Dual Address Cycle Attribute Drivers/Net/MarvellYukon: Put model_name under MDEPKG_NDEBUG ifndef Drivers/Net/MarvellYukon: Use EFI_SIZE_TO_PAGES() Drivers/Net/MarvellYukon: Don't re-use DMA buffers Drivers/Net/MarvellYukon: Zero allocated memory for DMA receive buffers Drivers/Net/MarvellYukon: Add 64-bit DMA support
Drivers/Net/MarvellYukonDxe/DeviceConfig.c | 4 +- Drivers/Net/MarvellYukonDxe/if_msk.c | 95
+++++++++++++++++++++++-------
Drivers/Net/MarvellYukonDxe/if_mskreg.h | 17 +++++- 3 files changed, 91 insertions(+), 25 deletions(-)
-- 2.5.0