Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Intel ATOM D945GCLF onboard LAN driver-card problem

    Problems Installing or Upgrading pfSense Software
    13
    33
    51.8k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Cry HavokC
      Cry Havok
      last edited by

      Pantagruel, as others have said, many times and in this thread, pfSense is based on FreeBSD, FreeBSD is not Linux.  Getting it working under Linux doesn't really help.

      Nice to know that it's as broken under Linux as FreeBSD though ;)

      1 Reply Last reply Reply Quote 0
      • P
        Pantagruel
        last edited by

        @Cry:

        .. FreeBSD is not Linux.  Getting it working under Linux doesn't really help.

        Nice to know that it's as broken under Linux as FreeBSD though ;)

        I know but it's a small step from a solution regarding freebsd to solving it for linux (or vice versa)

        1 Reply Last reply Reply Quote 0
        • T
          tucson
          last edited by

          Sounds like we're just going to have to wait for intel to update this board or use PCI. I was disapointed it wasn't gigabit anyway but it still would have been nice to use as a wan port.

          1 Reply Last reply Reply Quote 0
          • P
            Pantagruel
            last edited by

            RealTek mailed me about changing/upgrading the driver.

            Drivers can be found at:

            http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=2&PNid=14&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=false

            Perhaps this will be of any help to you as well. I'll go and wreck my install later this evening.

            1 Reply Last reply Reply Quote 0
            • D
              David_W
              last edited by

              @Pantagruel:

              RealTek mailed me about changing/upgrading the driver.

              I've already dealt with this; I spent quite a bit of time investigating the situation a few days ago.

              There's almost zero, nothing, zilch, nada in common between the Linux and FreeBSD drivers, Pantagruel - it's not a small step for solving the problem on one kernel to solving it on another when there's no common code. Sometimes code reading the drivers for Linux helps when writing FreeBSD drivers, especially if you're after a small tweak to support a new variant of a device on FreeBSD that is already supported on Linux.

              In this case, I can't see anything in the Linux kernel that will help in supporting this NIC in the FreeBSD re(4) driver. I'm not an expert on FreeBSD device drivers, but I am pretty familiar with FreeBSD in general and I am a competent C programmer. If you've got at least some familiarity with C, by all means compare the if_re.c file in FreeBSD (in src/sys/dev/re) with the Realtek driver in the Linux kernel.

              Realtek's driver for FreeBSD apparently works, but it's utterly horrible. It's based on 6 year old FreeBSD code which is PIO based (so no DMA, which means horrible I/O performance) and is under the Giant lock (so no threading - not that this is a surprise for code based on the non-SMP FreeBSD 4.x). Because of the ancient revision Realtek have forked from, it would be very hard to backport the changes to a modern version of the rl(4) driver, let alone the re(4) driver, which is where you want support.

              Realtek could have chosen to work with the FreeBSD developers on getting their hardware supported properly - other companies such as Intel, Broadcom and LSI Logic have done so.

              I expect that the built in NIC on the Atom board will be supported eventually - there's likely to be a lot of these boards, so someone is going to be interested in doing the work. Finding an interested FreeBSD developer and offering them hardware or money is likely to get this work done sooner, though it still relies on finding (or obtaining) programming details from Realtek. The datasheets that are publicly available don't have the programming details necessary.

              Even if you did get the built in NIC working, Realtek NICs are far from brilliant - search the forum for Realtek for the issues that people are experiencing. It's a cheap 10/100 desktop NIC. For a firewall, I'd put an Intel Gigabit NIC in the PCI slot and have done - even a cheap Intel Gigabit desktop NIC would be very much better than this Realtek device.

              I think there's only single port desktop NICs, but if you have a switch that supports VLANs (which work fine with the single port Intel 1000/GT PCI desktop adapter), you only need a single NIC for pfSense.

              1 Reply Last reply Reply Quote 0
              • D
                David_W
                last edited by

                There's some work going on to support this card now - see the posts of the last few days in freebsd-stable (the thread starts here (click)). Basic support has been managed, but doesn't appear to be in a state to be committed yet. The more complex features of the chip are proving more troublesome, because the 8102E is different to the 8101E.

                Hopefully this will turn into something that gets committed to FreeBSD HEAD, then MFCed to 7-STABLE. I'm not so sure any patch will be made to 6-STABLE, but now that pfSense 1.2.1 looks as if it will be based around FreeBSD 7, hopefully that won't be an issue.

                1 Reply Last reply Reply Quote 0
                • W
                  wolrah
                  last edited by

                  There appears to be a tweak in HEAD related to this device as of half a day ago.

                  http://freshbsd.org/2008/07/09/01/58/18

                  No code changes, just PCI device IDs as far as I can see, so I'm not sure how much it will actually affect.

                  1 Reply Last reply Reply Quote 0
                  • B
                    Bpedersen
                    last edited by

                    Hi

                    I just got one of these great boards also. Any news on how to add support for the nic ?

                    Thanks!  :)

                    1 Reply Last reply Reply Quote 0
                    • N
                      nocer
                      last edited by

                      Hi,

                      I have one myself too, but just bought cheap and put PCI a D-Link's Intel-base 4 ports card.

                      cheers,

                      1 Reply Last reply Reply Quote 0
                      • M
                        magicduck
                        last edited by

                        @David_W:

                        @mona:

                        none1@pci1:0:0: class=0x020000 card=0x00018086 chip=0x813610ec rev=0x02 hdr=0x00
                            vendor     = 'Realtek Semiconductor'
                            device     = 'RTL8139/810x Family Fast Ethernet NIC'
                            class      = network
                            subclass   = ethernet

                        That's the device we're trying to support.

                        The Intel vendor ID always amuses me - note that the low word of 'card', the subvendor ID, is 0x8086.

                        'Chip' is the more important value - the low word is 0x10ec, which is Realtek. The high word is 0x8136 - Realtek 8101E alike. The re(4) driver already has support for the Realtek 8101E.

                        Looking at if_re.c, I can only surmise that the driver is trying to attach to this NIC expecting a Realtek 8101E, but discovers that it's a different hardware revision to one it expects for the 8101E, so it doesn't attach to the chip. After all, 8102E is not 8101E! Hopefully someone can get hold of the necessary programming documentation to add support for the NIC that is on this Intel board.

                        I have had a quick glance at the Linux driver, but it didn't help me understand what was happening. I'm not familiar with Linux drivers, and the driver API is somewhat different to FreeBSD.

                        I have also a card like this.

                        I have modified /usr/src/sys/pci/if_rl.c in the 'static struc rl_type rl_devs[] ='

                        I have added the following lines :

                        { RT_VENDORID, RT_DEVICEID_8101E, RL_8139,
                             "Realtek 8102E 10/100BaseTX" },

                        After compilation this seems to work (card is correctly detected, with right Mac Address), but phy that is detected is 100BaseT4 and no carrier is found.

                        I think there is some fix to add somewhere and I still investigate where I can fix that….

                        To be continued...

                        […Some update...]
                        Okay after looking inside CVSweb, and haxoring a bit FreeBSD i was being able to compile this on FreeBSD :

                        You will need from CVS :
                        src/sys/sys/sockio.h
                        src/pci/if_rlreg.h
                        src/sys/net/if.h
                        src/sys/net/if.c
                        src/sys/dev/re/if_re.c

                        From RELENG_7 Branch (this can be also backported form RELENG_6 as well, thus not tested yet. I don't have any FreeBSD 6 on my hand with this mobo).

                        On if_re.c, you will have to modify the line 2235 :

                        m_new = m_collapse(*m_head, M_DONTWAIT, RL_NTXSEGS);

                        by

                        m_new = m_defrag(*m_head, M_DONTWAIT);

                        And you will have an brand new interface with support of this card :

                        re0: <realtek 10="" 8101e="" 8102e="" 8102el="" pcie="" 100basetx="">port 0x2000-0x20ff mem 0x88200000-0x88200fff,0x88000000-0x8800ffff irq 16 at device 0.0 on pci1
                        re0: turning off MSI enable bit.
                        re0: Chip rev. 0x24800000
                        re0: MAC rev. 0x00200000
                        miibus0: <mii bus="">on re0
                        rlphy0: <rtl8201l 10="" 100="" media="" interface="">PHY 1 on miibus0
                        rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
                        re0: Ethernet address: 00:1c:c0:45:21:04
                        re0: [FILTER]</rtl8201l></mii></realtek>

                        1 Reply Last reply Reply Quote 0
                        • S
                          synergix-ch
                          last edited by

                          Good morning,

                          Realtek released a new driver - Version 1.77 - release Date 2008/10/27. Seems to be new. Does anybody tried this driver?
                          At the moment I switched back to my Intel Celeron DLG201 Board, but the atom would be more interesting.

                          1 Reply Last reply Reply Quote 0
                          • M
                            mrsense
                            last edited by

                            FYI: I just installed pfsense 1.2.1 rc2 from nov 17 on intel atom.  It recognized the 8102EL just fine…

                            1 Reply Last reply Reply Quote 0
                            • S
                              synergix-ch
                              last edited by

                              Really cool - it works  :)

                              I made the 1.2 Full install, and after that a 1.2.1 RC2 Full update.

                              • at first, the onboard card was not recognized - but after the update, I could assign an interface and it worked really fine.

                              great job!

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.