<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to make fiq.c code work with kernel 3.18 on a specific cpu core? in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381838#M55058</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After some trepidation, I went ahead and posted to the arm kernel mailing list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I never did get a response on the arm kernel mailing list. The best I have found so far are patches posted by Daniel Thompson, which purport to enable some NMI like interrupts to use the FIQ mechanism.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm now taking a second look after doing other things for a while. So far I have not had success.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 12 Jan 2015 20:11:16 GMT</pubDate>
    <dc:creator>joshuaclayton</dc:creator>
    <dc:date>2015-01-12T20:11:16Z</dc:date>
    <item>
      <title>How to make FIQ work with vanilla kernel 3.18?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381836#M55056</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I am having trouble getting a FIQ enabled wtih linux 3.18&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have an application that takes data from a FPGA over the EIM bus at 50kHz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Porting to 3.18, the old code causes a panic.&lt;/P&gt;&lt;P&gt;I switch ed to use enable_fiq(), and it almost works. It just seems to fall back to the GIC. (I see about 50k interrupts per second in a spurious Irq handler that is set up with request_irq(), but not enabled)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;More seriously, I cannot figure out how to put those irq's on cpu 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As a result of cpu0 resource contention with network irqs, my userspace application doesn't get all the data...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int evi_init_fiq(struct evifpga_device *dev)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int ret;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; disable_fiq(dev-&amp;gt;irq);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = claim_fiq(&amp;amp;fiq_handle);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk(KERN_ALERT "EVi - Unable to claim FIQ\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set_fiq_handler(&amp;amp;evi_fiq_handler, SZ_256);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable_fiq(dev-&amp;gt;irq);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk(KERN_ALERT "EVi - Unable to enable FIQ on CPU %d\n", FIQ_CPU_TARGET);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; release_fiq(&amp;amp;fiq_handle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On 3.0.35&amp;nbsp; We used a FIQ interrupt on cpu core 3, and then added an isolcpu=3 to the kernel command line to get reliable 50k data.&lt;/P&gt;&lt;P&gt;fiq was enabled by the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void fiq_enable(void * data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long val;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val = readl(GIC_CPU_CTRL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val |= GIC_CPU_CTRL_BITS_FIQEN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writel(val, GIC_CPU_CTRL);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt; I noticed that several of the needed address macros were not exported, and attempts to define them but leave the code otherwise untouched resulted in a kernel panic.&lt;/P&gt;&lt;P&gt;GIC_CPU_CTRL is defined as 0x0 (address ZERO!!!111!!) in 3.0.35, so I'm not sure how this ever worked, but it did.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Joshua Clayton
Remove the reference to initiating the FIQ on a specific cpu core. I don't need this anymore &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Dec 2014 19:50:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381836#M55056</guid>
      <dc:creator>joshuaclayton</dc:creator>
      <dc:date>2014-12-31T19:50:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to make fiq.c code work with kernel 3.18 on a specific cpu core?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381837#M55057</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Maybe you could try asking this one at linux-arm-kernel mailing list.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Jan 2015 01:03:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381837#M55057</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2015-01-02T01:03:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to make fiq.c code work with kernel 3.18 on a specific cpu core?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381838#M55058</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;After some trepidation, I went ahead and posted to the arm kernel mailing list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I never did get a response on the arm kernel mailing list. The best I have found so far are patches posted by Daniel Thompson, which purport to enable some NMI like interrupts to use the FIQ mechanism.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm now taking a second look after doing other things for a while. So far I have not had success.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 12 Jan 2015 20:11:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-to-make-FIQ-work-with-vanilla-kernel-3-18/m-p/381838#M55058</guid>
      <dc:creator>joshuaclayton</dc:creator>
      <dc:date>2015-01-12T20:11:16Z</dc:date>
    </item>
  </channel>
</rss>

