Rev 7250 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7250 | Rev 9149 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2018. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;; FORCEDETH.INC ;; |
6 | ;; FORCEDETH.INC ;; |
7 | ;; ;; |
7 | ;; ;; |
8 | ;; Ethernet driver for Kolibri OS ;; |
8 | ;; Ethernet driver for Kolibri OS ;; |
Line 1604... | Line 1604... | ||
1604 | jz .no_gigabit |
1604 | jz .no_gigabit |
1605 | test ecx, ADVERTISE_1000FULL |
1605 | test ecx, ADVERTISE_1000FULL |
1606 | jz .no_gigabit |
1606 | jz .no_gigabit |
Line 1607... | Line 1607... | ||
1607 | 1607 | ||
1608 | DEBUGF 1,"update_linkspeed: GBit ethernet detected.\n" |
1608 | DEBUGF 1,"update_linkspeed: GBit ethernet detected.\n" |
1609 | mov [ebx + device.state], ETH_LINK_1G |
1609 | mov [ebx + device.state], ETH_LINK_SPEED_1G |
1610 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_1000) |
1610 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_1000) |
1611 | xor eax, eax |
1611 | xor eax, eax |
1612 | inc eax |
1612 | inc eax |
1613 | jmp set_speed |
1613 | jmp set_speed |
Line 1629... | Line 1629... | ||
1629 | and eax, ecx ; FIXME: handle parallel detection properly, handle gigabit ethernet |
1629 | and eax, ecx ; FIXME: handle parallel detection properly, handle gigabit ethernet |
Line 1630... | Line 1630... | ||
1630 | 1630 | ||
1631 | test eax, LPA_100FULL |
1631 | test eax, LPA_100FULL |
1632 | jz @f |
1632 | jz @f |
1633 | DEBUGF 1,"update_linkspeed: 100 mbit full duplex\n" |
1633 | DEBUGF 1,"update_linkspeed: 100 mbit full duplex\n" |
1634 | mov [ebx + device.state], ETH_LINK_100M + ETH_LINK_FD |
1634 | mov [ebx + device.state], ETH_LINK_SPEED_100M + ETH_LINK_FULL_DUPLEX |
1635 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_100) |
1635 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_100) |
1636 | xor eax, eax |
1636 | xor eax, eax |
1637 | inc eax |
1637 | inc eax |
1638 | jmp set_speed |
1638 | jmp set_speed |
Line 1639... | Line 1639... | ||
1639 | @@: |
1639 | @@: |
1640 | 1640 | ||
1641 | test eax, LPA_100HALF |
1641 | test eax, LPA_100HALF |
1642 | jz @f |
1642 | jz @f |
1643 | DEBUGF 1,"update_linkspeed: 100 mbit half duplex\n" |
1643 | DEBUGF 1,"update_linkspeed: 100 mbit half duplex\n" |
1644 | mov [ebx + device.state], ETH_LINK_100M |
1644 | mov [ebx + device.state], ETH_LINK_SPEED_100M |
1645 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_100) |
1645 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_100) |
1646 | xor eax, eax |
1646 | xor eax, eax |
Line 1647... | Line 1647... | ||
1647 | jmp set_speed |
1647 | jmp set_speed |
1648 | @@: |
1648 | @@: |
1649 | 1649 | ||
1650 | test eax, LPA_10FULL |
1650 | test eax, LPA_10FULL |
1651 | jz @f |
1651 | jz @f |
1652 | DEBUGF 1,"update_linkspeed: 10 mbit full duplex\n" |
1652 | DEBUGF 1,"update_linkspeed: 10 mbit full duplex\n" |
1653 | mov [ebx + device.state], ETH_LINK_10M + ETH_LINK_FD |
1653 | mov [ebx + device.state], ETH_LINK_SPEED_10M + ETH_LINK_FULL_DUPLEX |
1654 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_10) |
1654 | mov ecx, (LINKSPEED_FORCE or LINKSPEED_10) |
1655 | xor eax, eax |
1655 | xor eax, eax |
Line 1656... | Line 1656... | ||
1656 | inc eax |
1656 | inc eax |
1657 | jmp set_speed |
1657 | jmp set_speed |
1658 | @@: |
1658 | @@: |
1659 | 1659 | ||
1660 | .10mbit_hd: |
1660 | .10mbit_hd: |
1661 | DEBUGF 1,"update_linkspeed: 10 mbit half duplex\n" |
1661 | DEBUGF 1,"update_linkspeed: 10 mbit half duplex\n" |
Line 1662... | Line 1662... | ||
1662 | mov [ebx + device.state], ETH_LINK_10M |
1662 | mov [ebx + device.state], ETH_LINK_SPEED_10M |