mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
hw/net/lan9118: Extract lan9118_phy
A very similar implementation of the same device exists in imx_fec. Prepare for a common implementation by extracting a device model into its own files. Some migration state has been moved into the new device model which breaks migration compatibility for the following machines: * smdkc210 * realview-* * vexpress-* * kzm * mps2-* While breaking migration ABI, fix the size of the MII registers to be 16 bit, as defined by IEEE 802.3u. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Tested-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20241102125724.532843-2-shentey@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
97f2796a37
commit
c0cf6b412e
5 changed files with 233 additions and 115 deletions
37
include/hw/net/lan9118_phy.h
Normal file
37
include/hw/net/lan9118_phy.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* SMSC LAN9118 PHY emulation
|
||||
*
|
||||
* Copyright (c) 2009 CodeSourcery, LLC.
|
||||
* Written by Paul Brook
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef HW_NET_LAN9118_PHY_H
|
||||
#define HW_NET_LAN9118_PHY_H
|
||||
|
||||
#include "qom/object.h"
|
||||
#include "hw/sysbus.h"
|
||||
|
||||
#define TYPE_LAN9118_PHY "lan9118-phy"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(Lan9118PhyState, LAN9118_PHY)
|
||||
|
||||
typedef struct Lan9118PhyState {
|
||||
SysBusDevice parent_obj;
|
||||
|
||||
uint16_t status;
|
||||
uint16_t control;
|
||||
uint16_t advertise;
|
||||
uint16_t ints;
|
||||
uint16_t int_mask;
|
||||
qemu_irq irq;
|
||||
bool link_down;
|
||||
} Lan9118PhyState;
|
||||
|
||||
void lan9118_phy_update_link(Lan9118PhyState *s, bool link_down);
|
||||
void lan9118_phy_reset(Lan9118PhyState *s);
|
||||
uint16_t lan9118_phy_read(Lan9118PhyState *s, int reg);
|
||||
void lan9118_phy_write(Lan9118PhyState *s, int reg, uint16_t val);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue