<?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>i.MX Processors中的主题 UART's register read/write</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/UART-s-register-read-write/m-p/147595#M469</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi i.mx experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I am trying create a hardware driver module for linux kernel. The hardware is connecting to the i.mx28 through UART, therefore I am trying to access the UART register directly through iowrite(). However I found that I can never write to the register address. Below is code I am using:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;release_mem_region(UARTBASE_PA, 145); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;if(request_mem_region(UARTBASE_PA, 145, "myserial") ==NULL){ &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt; printk("iomem request refused\n"); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;} else &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt; UARTBASE =(u32) ioremap_nocache((u32) UARTBASE_PA, 145); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;iowrite32((u32) 0x100,(u32) (UARTBASE+0x20)); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;x=ioread32(UARTBASE+0x20); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;printk("%x\ \n", x);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Where the ioread() output always is the default value instead of the one I write to it.&lt;/P&gt;&lt;P&gt;I have no idea how to solve this problem, please help, any idea will be helpful.&lt;/P&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;James&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 08:49:09 GMT</pubDate>
    <dc:creator>JamesLeung</dc:creator>
    <dc:date>2020-10-29T08:49:09Z</dc:date>
    <item>
      <title>UART's register read/write</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/UART-s-register-read-write/m-p/147595#M469</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi i.mx experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I am trying create a hardware driver module for linux kernel. The hardware is connecting to the i.mx28 through UART, therefore I am trying to access the UART register directly through iowrite(). However I found that I can never write to the register address. Below is code I am using:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;release_mem_region(UARTBASE_PA, 145); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;if(request_mem_region(UARTBASE_PA, 145, "myserial") ==NULL){ &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt; printk("iomem request refused\n"); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;} else &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt; UARTBASE =(u32) ioremap_nocache((u32) UARTBASE_PA, 145); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;iowrite32((u32) 0x100,(u32) (UARTBASE+0x20)); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;x=ioread32(UARTBASE+0x20); &lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;printk("%x\ \n", x);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Where the ioread() output always is the default value instead of the one I write to it.&lt;/P&gt;&lt;P&gt;I have no idea how to solve this problem, please help, any idea will be helpful.&lt;/P&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;James&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:49:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/UART-s-register-read-write/m-p/147595#M469</guid>
      <dc:creator>JamesLeung</dc:creator>
      <dc:date>2020-10-29T08:49:09Z</dc:date>
    </item>
  </channel>
</rss>

