id = 'mdio'
name = 'MDIO'
longname = 'Management Data Input/Output'
- desc = 'Half-duplex sync serial bus for MII management between MAC and PHY.'
+ desc = 'MII management bus between MAC and PHY.'
license = 'bsd'
inputs = ['logic']
outputs = ['mdio']
+ tags = ['Networking']
channels = (
{'id': 'mdc', 'name': 'MDC', 'desc': 'Clock'},
{'id': 'mdio', 'name': 'MDIO', 'desc': 'Data'},
('decode', 'Decode'),
)
annotation_rows = (
- ('bit-val', 'Bit value', (0,)),
- ('bit-num', 'Bit number', (1,)),
- ('frame', 'Frame', (2, 3)),
- ('frame-error', 'Frame error', (4,)),
- ('decode', 'Decode', (5,)),
+ ('bit-vals', 'Bit values', (0,)),
+ ('bit-nums', 'Bit numbers', (1,)),
+ ('frames', 'Frames', (2, 3)),
+ ('frame-errors', 'Frame errors', (4,)),
+ ('decode-vals', 'Decode', (5,)),
)
def __init__(self):
- self.initial_pins = [1, 1]
+ self.reset()
+
+ def reset(self):
self.illegal_bus = 0
- self.samplenum = -1
self.clause45_addr = -1 # Clause 45 is context sensitive.
self.reset_decoder_state()
if self.clause45 and self.clause45_addr != -1:
decoded_min += str.format('ADDR: %04X ' % self.clause45_addr)
elif self.clause45:
- decoded_min += str.format('ADDR: UKWN ' % self.clause45_addr)
+ decoded_min += str.format('ADDR: UKWN ')
if self.clause45 and self.opcode > 1 \
or (not self.clause45 and self.opcode):
def state_DATA(self, mdio):
if self.data == -1:
self.data = 0
- self.putff([2, ['TURNAROUND', 'TA', 'T']])
+ self.putff([2, ['TA', 'T']])
if self.ta_invalid:
- self.putff([4, ['TURNAROUND%s' % self.ta_invalid,
- 'TA%s' % self.ta_invalid, 'TA', 'T']])
+ self.putff([4, ['TA%s' % self.ta_invalid, 'TA', 'T']])
self.ss_frame_field = self.samplenum
self.data_bits -= 1
self.data |= mdio << self.data_bits