Jump to content

Experimental Atheros AR81(31/32/51/52/61/62/71/72) Driver for 10.7/10.8

Atheros

  • Please log in to reply
141 replies to this topic

#141
kocoman

kocoman

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 326 posts

Does it works on Yosemite?

 

 

yes for ar8131 but not reliable in 10.10 GM candidate (due to irq conflict?) (disconnects network after heavy load and error messages, see the quote below)

 

I tried the other AtherosL1cEthernet but it does not work at all with the error "cannot allocate ring descriptors", I recompiled the AtherosL1cEthernet 1.2.3 with xcode 6.1 gm and fix the gcc to llvm and set to 64bit and osx 10.10 and it works now...  doing some load testing...

 

 

I discovered on both, using Apple's "Logic Remote" from Wifi (then to ethernet) will kill the driver immediately with "incorrect zfree from zone kalloc.16 to zonekalloc.32".

 


  • XLR likes this

#142
LexHimself

LexHimself

    InsanelyMac Deity

  • Donators
  • 1,643 posts
  • Gender:Male
  • Location:Franeker, The Netherlands
  • Interests:Software Engineering.

Is this driver still under development? 

 

I had the following issue: 

Fixing incorrect zfree from zone kalloc.16 to zone kalloc.32

This is on yosemite, i rebuild the kext with the latest SDK.

 

After some debugging i found that it is because of the ALXEthernet.kext. 

System is slow on boot, restart, sleep and wake because of this. 

 

Removing the following section resolves the issue, but generates new ones: 

int alx_cfg_r32(const struct alx_hw *hw, int reg, u32 pval)
{
  pval = hw->adpt->pdev->extendedConfigRead32(reg);

  return 0;
}

int alx_cfg_w32(const struct alx_hw *hw, int reg, u32 val)
{
  hw->adpt->pdev->extendedConfigWrite32(reg, val);

  return 0;
}

int alx_cfg_r16(const struct alx_hw *hw, int reg, u16 pval)
{
  pval = hw->adpt->pdev->extendedConfigRead16(reg);

  return 0;
}

int alx_cfg_w16(const struct alx_hw *hw, int reg, u16 val)
{
  hw->adpt->pdev->extendedConfigWrite16(reg, val);

  return 0;
}

void alx_mem_flush(const struct alx_hw *hw)
{
  readl(hw->hw_addr);
}


void alx_mem_r32(const struct alx_hw *hw, int reg, u32 val)
{
  if (unlikely(!hw->link_up))
  {
    readl(hw->hw_addr + reg);
  }

  val = readl(hw->hw_addr + reg);
}


void alx_mem_w32(const struct alx_hw *hw, int reg, u32 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writel(val, hw->hw_addr + reg);
}


void alx_mem_r16(const struct alx_hw *hw, int reg, u16 val)
{
  if (unlikely(!hw->link_up))
  {
    readl(hw->hw_addr + reg);
  }

  val = readw(hw->hw_addr + reg);
}


void alx_mem_w16(const struct alx_hw *hw, int reg, u16 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writew(val, hw->hw_addr + reg);
}


void alx_mem_w8(const struct alx_hw *hw, int reg, u8 val)
{
  if (hw->mac_type == alx_mac_l2cb_v20 && reg < 0x1400)
  {
    readl(hw->hw_addr + reg);
  }

  writeb(val, hw->hw_addr + reg);
}

I think the problem lies in this section, but i have no idea on what to edit.








0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2015 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy