Subversion Repositories Kolibri OS

Rev

Rev 7250 | 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