Bug 165951

Summary: [ar913x] [ath] DDR flush isn't being done for the WMAC
Product: Base System Reporter: Adrian Chadd <adrian>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Open ---    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description Adrian Chadd freebsd_committer freebsd_triage 2012-03-11 22:20:09 UTC
The AR913x WMAC sits off the Atheros Host Bus (AHB), along with the usb, gmac, etc. The APB (peripheral bus) contains the UART, etc and is a part of the AHB.

Trouble is, the AHB code in -HEAD includes the USB because the USB IRQ sits inside the APB MISC interrupt status word. The other peripherals (GMAC0, GMAC1, WMAC/PCI, etc) are primary MIPS IRQs.

So the AHB devices (besides USB) sit off the nexus, rather than off the AHB. There's no AHB glue, per se, and thus there's no convenient place to put the WMAC DDR flush. For the AR713x/AR71xx there's a PCIe/PCI bus nexus and the IP2 flush is done there.

Fix: 

I'm not sure yet. I think the right thing to do is:

* create the AHB bus;
* have the IRQ handling done inside AHB - mapping the MISC interrupts to say IRQ 15 - 31;
* Create APB;
* Have the APB peripherals now use the MISC interrupts that are between AHB IRQs 15->31;
* Have USB also use the relevant MISC interrupt that's between 15 and 31;
* The APB interrupt code would just punt to the AHB.
Comment 1 Adrian Chadd freebsd_committer freebsd_triage 2012-03-12 00:39:21 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-mips

This is (mostly) an ar71xx MIPS platform issue.
Comment 2 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 08:01:10 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped