diff options
-rw-r--r-- | include/APE_DEVICE.h | 8 | ||||
-rw-r--r-- | include/bcm5719_DEVICE.h | 8 | ||||
-rw-r--r-- | ipxact/DEVICE.xml | 15 | ||||
-rw-r--r-- | libs/Network/ports.c | 13 |
4 files changed, 44 insertions, 0 deletions
diff --git a/include/APE_DEVICE.h b/include/APE_DEVICE.h index 7e4f5e1..7b9286e 100644 --- a/include/APE_DEVICE.h +++ b/include/APE_DEVICE.h @@ -4951,6 +4951,10 @@ typedef register_container RegDEVICEEeeLinkIdleControl_t { #define DEVICE_EEE_CONTROL_EXIT_TIME_MASK 0xffffu #define GET_DEVICE_EEE_CONTROL_EXIT_TIME(__reg__) (((__reg__) & 0xffff) >> 0u) #define SET_DEVICE_EEE_CONTROL_EXIT_TIME(__val__) (((__val__) << 0u) & 0xffffu) +#define DEVICE_EEE_CONTROL_EXIT_TIME_16_5_US 0x19du +#define DEVICE_EEE_CONTROL_EXIT_TIME_20_1_US 0x1f8u +#define DEVICE_EEE_CONTROL_EXIT_TIME_36_US 0x384u + #define DEVICE_EEE_CONTROL_MINIMUM_ASSERT_SHIFT 16u #define DEVICE_EEE_CONTROL_MINIMUM_ASSERT_MASK 0xffff0000u #define GET_DEVICE_EEE_CONTROL_MINIMUM_ASSERT(__reg__) (((__reg__) & 0xffff0000) >> 16u) @@ -4989,6 +4993,10 @@ typedef register_container RegDEVICEEeeControl_t { r32.setName("EeeControl"); bits.ExitTime.setBaseRegister(&r32); bits.ExitTime.setName("ExitTime"); + bits.ExitTime.addEnum("16.5 us", 0x19d); + bits.ExitTime.addEnum("20.1 us", 0x1f8); + bits.ExitTime.addEnum("36 us", 0x384); + bits.MinimumAssert.setBaseRegister(&r32); bits.MinimumAssert.setName("MinimumAssert"); } diff --git a/include/bcm5719_DEVICE.h b/include/bcm5719_DEVICE.h index 75b3241..6ea773e 100644 --- a/include/bcm5719_DEVICE.h +++ b/include/bcm5719_DEVICE.h @@ -4951,6 +4951,10 @@ typedef register_container RegDEVICEEeeLinkIdleControl_t { #define DEVICE_EEE_CONTROL_EXIT_TIME_MASK 0xffffu #define GET_DEVICE_EEE_CONTROL_EXIT_TIME(__reg__) (((__reg__) & 0xffff) >> 0u) #define SET_DEVICE_EEE_CONTROL_EXIT_TIME(__val__) (((__val__) << 0u) & 0xffffu) +#define DEVICE_EEE_CONTROL_EXIT_TIME_16_5_US 0x19du +#define DEVICE_EEE_CONTROL_EXIT_TIME_20_1_US 0x1f8u +#define DEVICE_EEE_CONTROL_EXIT_TIME_36_US 0x384u + #define DEVICE_EEE_CONTROL_MINIMUM_ASSERT_SHIFT 16u #define DEVICE_EEE_CONTROL_MINIMUM_ASSERT_MASK 0xffff0000u #define GET_DEVICE_EEE_CONTROL_MINIMUM_ASSERT(__reg__) (((__reg__) & 0xffff0000) >> 16u) @@ -4989,6 +4993,10 @@ typedef register_container RegDEVICEEeeControl_t { r32.setName("EeeControl"); bits.ExitTime.setBaseRegister(&r32); bits.ExitTime.setName("ExitTime"); + bits.ExitTime.addEnum("16.5 us", 0x19d); + bits.ExitTime.addEnum("20.1 us", 0x1f8); + bits.ExitTime.addEnum("36 us", 0x384); + bits.MinimumAssert.setBaseRegister(&r32); bits.MinimumAssert.setName("MinimumAssert"); } diff --git a/ipxact/DEVICE.xml b/ipxact/DEVICE.xml index cfa839b..7c4de9f 100644 --- a/ipxact/DEVICE.xml +++ b/ipxact/DEVICE.xml @@ -2655,6 +2655,21 @@ Link Aware Power mode</ipxact:description> <ipxact:bitOffset>0</ipxact:bitOffset> <ipxact:bitWidth>16</ipxact:bitWidth> <ipxact:access>read-write</ipxact:access> + <ipxact:enumeratedValues> + <!-- LINK: enumeratedValue: see 6.11.10, Enumeration values --> + <ipxact:enumeratedValue> + <ipxact:name>16.5 us</ipxact:name> + <ipxact:value>0x19d</ipxact:value> + </ipxact:enumeratedValue> + <ipxact:enumeratedValue> + <ipxact:name>20.1 us</ipxact:name> + <ipxact:value>0x1f8</ipxact:value> + </ipxact:enumeratedValue> + <ipxact:enumeratedValue> + <ipxact:name>36 us</ipxact:name> + <ipxact:value>0x384</ipxact:value> + </ipxact:enumeratedValue> + </ipxact:enumeratedValues> </ipxact:field> <ipxact:field> <ipxact:name>Minimum Assert</ipxact:name> diff --git a/libs/Network/ports.c b/libs/Network/ports.c index 877d3ec..cf144bc 100644 --- a/libs/Network/ports.c +++ b/libs/Network/ports.c @@ -1120,6 +1120,19 @@ bool Network_updatePortState(NetworkPort_t *port) txMacLengths.bits.IPGCRSLength = 0x2; } port->device->TransmitMacLengths = txMacLengths; + + // Update EEE Control + RegDEVICEEeeControl_t eeectrl; + eeectrl.r32 = 0; + if (emacMode.bits.PortMode == DEVICE_EMAC_MODE_PORT_MODE_1000) + { + eeectrl.bits.ExitTime = DEVICE_EEE_CONTROL_EXIT_TIME_16_5_US; + } + else + { + eeectrl.bits.ExitTime = DEVICE_EEE_CONTROL_EXIT_TIME_36_US; + } + port->device->EeeControl.r32 = eeectrl.r32; } updated = true; |