==================================================================================
 Copyright (c) 2024 Marvell International Ltd., All Rights Reserved
 Redistribution and use in source and binary forms, with or without modification, 
 are permitted provided that the following conditions are met:

 1. Redistributions of source code must retain the above copyright notice, this list 
    of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright notice, this list 
    of conditions and the following disclaimer in the documentation and/or other materials 
    provided with the distribution.
    
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
 AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 POSSIBILITY OF SUCH DAMAGE.
==================================================================================

Release Notes for Marvell 88X33X0, 88E21X0, 88X35X0, 88E25X0, CUX36X0, CUE26X0, CUE2780A and CUX35X0 Ethernet PHYs.


Instructions
------------
This source code provides a set of basic feature library for configuring/controlling and querying status of the Marvell 88X33X0, 88E21X0, 88X35X0, 88E25X0, CUX36X0, CUE26X0, CUE2780A and CUX35X0 Ethernet PHYs.

The header files (e.g. openSourceMtdAPI.h, openSourceMtdFwDownload.h) have the documentation for using the API to interface to the PHY.

The following files are designed to be compiled/linked with the host processor's code as-is:
    openSourceMtdAPI.c
    openSourceMtdAPI.h
    openSourceMtdAPIDevices.c
    openSourceMtdAPIDevices.h
    openSourceMtdAPITypes.h
    openSourceMtdFwDownload.c
    openSourceMtdFwDownload.h
    openSourceMtdSample.c
    openSourceMtdUser.c
    openSourceMtdUser.h


Porting
-------

The file openSourceMtdUser.c is meant to be specific to the host processor's hardware and may need to be modified accordingly. The test code in the hardware-specific files contains code which was used to test the API and was compiled/linked with a test program using MSVC and executed on a Window's-based PC to access a USB-to-MDIO interface in order to test with the PHY evaluation board. The MTD_DEV structure is a pass-in parameter in all functions. This structure will need to be pre-defined with the known device ID and other details before calling the APIs.

All supported devices are provided in the openSourceMtdAPIDevices.c file. Devices that aren’t needed to be used can be removed/commented out.


Additional Information
----------------------

The openSourceMtdSample.c has several sample functions to show how to call the APIs for various features. These samples include features like configuring the PHY speed, loading firmware, check PHY status, configuring the LEDs, etc.


API Errata
----------
- None


API revision history
--------------------
API version 105.0.1
- Added support for X3540/E2540/X3580/E2580/X3510/E2510, X3610/E2610 and E2780A
- Functions in this release brought up-to-date with MTD API version 5.0.1

API version 102.5.6 
- Modified the open source license per customer request and legal approval

API version 102.5.4 
- Initial release. Supported X3310, X3340, E2110, E2180
