I’ve been doing a horrible job of jotting things down here when I mean to, so I’m taking a stab at that again. I meant to jot down all my notes on getting GROMACS running with icc, OpenMP, and CUDA on my Mac Pro, but that’s been a few months since I did that now, and it’s drifted out of my head. So. Trying to take a new stab at this when I’m ‘hacking’ things (so to speak)…

I had an older laptop that I finished out my PhD with (a 13″ 2010 MacBook Pro), but unfortunately succumbed to brain damage from drowning my first summer in Toronto, but I managed to resuscitate about a month later. I had picked up a 15″ refurb in the interim because I wasn’t dealing well with the downtime on keeping up with work-related stuff, but that ended up leaving me with the old 13″ sitting around without much use. It’s bounced around between El Capitan, Snow Leopard, and the occasional forays into Linux distros (bleagh). Recently, I’ve made a more concerted effort to get FreeBSD running on it with some success!

The latest stable releases of FreeBSD have made ZFS installations much easier, so that was a non-issue to deal with (important because I wanted ability to install jails via iocage eventually). There are some blatant driver issues—probably due to lack of developers for each/any of the Apple platforms—but Googling around got past some initial issues.

The biggest problem getting off the ground with it was fixing some networking issues that kept it from getting connected via ethernet. I was getting bge0 watchdog timeout errors, which between this (FreeBSD wiki – AppleMacBook) and this (Fixing Dell Broadcom bge0 watchdog timeout errors), I finally got connected from the console with:
# sysctl hw.bge.allow_asf=0
# sysctl hw.pci.enable_msi=0
# dhclient bge0
Since that seemed to work fine, I dumped the first two mods into /boot/loader.conf.local, ifconfig_bge0="syncdhcp" into /etc/rc.conf.local, and rebooted to ensure it would all take stably upon booting (to which they did, yay!).

Following it up a little closer to understand what it was I did (particularly with disabling MSI, I decided it probably wasn’t in my best interests to disable MSI over all the PCIe devices on the laptop. Digging a bit further, I found out I could disable MSI specifically on the NIC itself, not to mention discovering what ASF is and what it’s (likely) doing. Retweaking /boot/loader.conf.local with hw.bge0.allow_asf=1 and dev.bge.0.msi=0 achieved the same effect of alleviating the networking problems.

Unfortunately, I have had no luck getting the wireless NIC (reporting as a Broadcom BCM4322) working, but I’m not as concerned with that as I’m trying to get a webserver running within a jail right now.

In the interim, I am trying to get some more of the unique features to the laptop (e.g. SMC devices) running. I got the asmc driver running with some patching (I’ll link to that later), but it needs some work (getting some polling failures in the logs). In case anyone else ends up here looking for tweaks/help on this specific platform, I’m dumping the contents of pciconf -lcv below in the event it could possibly be useful:


hostb0@pci0:0:0:0:	class=0x060000 card=0x00000000 chip=0x0d6010de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 HOST Bridge'
    class      = bridge
    subclass   = HOST-PCI
none0@pci0:0:0:1:	class=0x050000 card=0x00000000 chip=0x0d6810de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 Memory Controller'
    class      = memory
    subclass   = RAM
none1@pci0:0:1:0:	class=0x050000 card=0x00000000 chip=0x0d6d10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
none2@pci0:0:1:1:	class=0x050000 card=0x00000000 chip=0x0d6e10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
none3@pci0:0:1:2:	class=0x050000 card=0x00000000 chip=0x0d6f10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
none4@pci0:0:1:3:	class=0x050000 card=0x00000000 chip=0x0d7010de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
none5@pci0:0:2:0:	class=0x050000 card=0x00000000 chip=0x0d7110de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
none6@pci0:0:2:1:	class=0x050000 card=0x00000000 chip=0x0d7210de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
isab0@pci0:0:3:0:	class=0x060100 card=0xcb89106b chip=0x0d8010de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 LPC Bridge'
    class      = bridge
    subclass   = PCI-ISA
none7@pci0:0:3:1:	class=0x050000 card=0x00000000 chip=0x0d7b10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 Memory Controller'
    class      = memory
    subclass   = RAM
none8@pci0:0:3:2:	class=0x0c0500 card=0xcb8910de chip=0x0d7910de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 SMBus'
    class      = serial bus
    subclass   = SMBus
    cap 01[44] = powerspec 2  supports D0 D3  current D0
none9@pci0:0:3:3:	class=0x050000 card=0x00000000 chip=0x0d6910de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 Memory Controller'
    class      = memory
    subclass   = RAM
none10@pci0:0:3:4:	class=0x0b4000 card=0xcb8910de chip=0x0d7a10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 Co-Processor'
    class      = processor
ohci0@pci0:0:4:0:	class=0x0c0310 card=0xcb8910de chip=0x0d9c10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 OHCI USB 1.1 Controller'
    class      = serial bus
    subclass   = USB
    cap 01[44] = powerspec 2  supports D0 D1 D2 D3  current D0
ehci0@pci0:0:4:1:	class=0x0c0320 card=0xcb8910de chip=0x0d9d10de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 EHCI USB 2.0 Controller'
    class      = serial bus
    subclass   = USB
    cap 0a[44] = EHCI Debug Port at offset 0xa0 in map 0x14
    cap 01[80] = powerspec 2  supports D0 D1 D2 D3  current D0
ohci1@pci0:0:6:0:	class=0x0c0310 card=0xcb8910de chip=0x0d9c10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 OHCI USB 1.1 Controller'
    class      = serial bus
    subclass   = USB
    cap 01[44] = powerspec 2  supports D0 D1 D2 D3  current D0
ehci1@pci0:0:6:1:	class=0x0c0320 card=0xcb8910de chip=0x0d9d10de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 EHCI USB 2.0 Controller'
    class      = serial bus
    subclass   = USB
    cap 0a[44] = EHCI Debug Port at offset 0xa0 in map 0x14
    cap 01[80] = powerspec 2  supports D0 D1 D2 D3  current D0
hdac0@pci0:0:8:0:	class=0x040300 card=0xcb8910de chip=0x0d9410de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 High Definition Audio'
    class      = multimedia
    subclass   = HDA
    cap 01[44] = powerspec 2  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks enabled with 1 message
    cap 08[6c] = HT MSI fixed address window enabled at 0xfee00000
ahci0@pci0:0:10:0:	class=0x010601 card=0xcb89106b chip=0x0d8810de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 SATA Controller (AHCI mode)'
    class      = mass storage
    subclass   = SATA
    cap 01[44] = powerspec 2  supports D0 D3  current D0
    cap 12[8c] = SATA Index-Data Pair
    cap 05[b0] = MSI supports 8 messages, 64 bit enabled with 8 messages
none11@pci0:0:11:0:	class=0x050000 card=0x00000000 chip=0x0d7510de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    class      = memory
    subclass   = RAM
    cap 01[44] = powerspec 2  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks 
pcib1@pci0:0:14:0:	class=0x060400 card=0x000010de chip=0x0d9a10de rev=0xa1 hdr=0x01
    vendor     = 'NVIDIA Corporation'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[40] = PCI Bridge card=0x000010de
    cap 01[48] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 2 messages, 64 bit 
    cap 08[60] = HT MSI address window disabled at 0xfee00000
    cap 10[80] = PCI-Express 1 root port slot max data 128(128) RO NS link x1(x1)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)
pcib2@pci0:0:21:0:	class=0x060400 card=0x000010de chip=0x0d9b10de rev=0xa1 hdr=0x01
    vendor     = 'NVIDIA Corporation'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[40] = PCI Bridge card=0x000010de
    cap 01[48] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 2 messages, 64 bit 
    cap 08[60] = HT MSI address window disabled at 0xfee00000
    cap 10[80] = PCI-Express 1 root port slot max data 128(128) RO NS link x1(x1)
                 speed 2.5(2.5) ASPM L1(L0s/L1)
pcib3@pci0:0:22:0:	class=0x060400 card=0x000010de chip=0x0d9b10de rev=0xa1 hdr=0x01
    vendor     = 'NVIDIA Corporation'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[40] = PCI Bridge card=0x000010de
    cap 01[48] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 2 messages, 64 bit 
    cap 08[60] = HT MSI address window disabled at 0xfee00000
    cap 10[80] = PCI-Express 1 root port slot max data 128(128) RO NS link x1(x1)
                 speed 2.5(2.5) ASPM L1(L0s/L1)
pcib4@pci0:0:23:0:	class=0x060400 card=0x000010de chip=0x0d7610de rev=0xa1 hdr=0x01
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 PCI Express Bridge'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[40] = PCI Bridge card=0x000010de
    cap 01[48] = powerspec 2  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit 
none12@pci0:1:0:0:	class=0x0c0010 card=0x590011c1 chip=0x590111c1 rev=0x08 hdr=0x00
    vendor     = 'LSI Corporation'
    device     = 'FW643 [TrueFire] PCIe 1394b Controller'
    class      = serial bus
    subclass   = FireWire
    cap 01[44] = powerspec 3  supports D0 D1 D2 D3  current D0
    cap 05[4c] = MSI supports 1 message, 64 bit 
    cap 10[60] = PCI-Express 1 endpoint max data 128(256) RO link x1(x1)
                 speed 2.5(2.5) ASPM disabled(L0s/L1) ARI disabled
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0002[140] = VC 1 max VC1
    ecap 0003[170] = Serial 1 0000000000000000
none13@pci0:2:0:0:	class=0x028000 card=0x008d106b chip=0x432b14e4 rev=0x01 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'BCM4322 802.11a/b/g/n Wireless LAN Controller'
    class      = network
    cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D0
    cap 09[58] = vendor (length 120)
    cap 05[e8] = MSI supports 1 message, 64 bit 
    cap 10[d0] = PCI-Express 1 endpoint max data 128(128) link x1(x1)
                 speed 2.5(2.5) ASPM L0s/L1(L0s/L1)
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0002[13c] = VC 1 max VC0
    ecap 0003[160] = Serial 1 90da39ffffb478ca
    ecap 0004[16c] = Power Budgeting 1
bge0@pci0:3:0:0:	class=0x020000 card=0x168414e4 chip=0x168414e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme BCM5764M Gigabit Ethernet PCIe'
    class      = network
    subclass   = ethernet
    cap 01[48] = powerspec 3  supports D0 D3  current D0
    cap 03[40] = VPD
    cap 09[60] = vendor (length 108)
    cap 05[50] = MSI supports 1 message, 64 bit 
    cap 10[cc] = PCI-Express 2 endpoint max data 128(256) link x1(x1)
                 speed 2.5(2.5) ASPM L1(L0s/L1)
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0002[13c] = VC 1 max VC0
    ecap 0003[160] = Serial 1 c42c03fffe3808f0
    ecap 0004[16c] = Power Budgeting 1
vgapci0@pci0:4:0:0:	class=0x030000 card=0x00c2106b chip=0x08a010de rev=0xa2 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP89 [GeForce 320M]'
    class      = display
    subclass   = VGA
    cap 01[60] = powerspec 3  supports D0 D3  current D0
    cap 05[68] = MSI supports 1 message, 64 bit 
    cap 09[e0] = vendor (length 20)

Leave a Reply

Your email address will not be published. Required fields are marked *