<?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: Get CPU ID from user-space in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172385#M5838</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure if this is any help but there is a file rootfs/usr/include/vpu_lib.h which might give some clues how to do this.&lt;/P&gt;&lt;P&gt;I've never looked at this to see if or how it works, I just remember I edited it once to fix some compiler warnings. In that file are some macros that use an externally defined variable "system_rev", I don't know where that comes from or what's really in it but looking at the macros it seems to contain CPU info. These macros are used in the mxc_vpu_test sample to identify CPU type. This is what's in the file (with my small casts mod):&lt;/P&gt;&lt;P&gt;extern unsigned int system_rev;&lt;/P&gt;&lt;P&gt;#define CHIP_REV_1_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&lt;/P&gt;&lt;P&gt;#define CHIP_REV_2_0 0x20&lt;/P&gt;&lt;P&gt;#define CHIP_REV_2_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x21&lt;/P&gt;&lt;P&gt;#define mxc_cpu()&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; (system_rev &amp;gt;&amp;gt; 12)&lt;/P&gt;&lt;P&gt;#define mxc_is_cpu(part)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((mxc_cpu() == part) ? 1 : 0)&lt;/P&gt;&lt;P&gt;#define mxc_cpu_rev()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (system_rev &amp;amp; 0xFF)&lt;/P&gt;&lt;P&gt;// SRG 9-5-12 added casts to unsigned int to fix signed comparison warning&lt;/P&gt;&lt;P&gt;#define mxc_cpu_is_rev(rev)&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; ((mxc_cpu_rev() == (unsigned int)rev) ? 1 : ((mxc_cpu_rev() &amp;lt; (unsigned int)rev) ? -1 : 2))&lt;/P&gt;&lt;P&gt;#define MXC_REV(type)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;static inline int type## _rev (int rev)&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;&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;&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;&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 (type() ? mxc_cpu_is_rev(rev) : 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#define cpu_is_mx27() mxc_is_cpu(0x27)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx51() mxc_is_cpu(0x51)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx53() mxc_is_cpu(0x53)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx5x() (mxc_is_cpu(0x51) || mxc_is_cpu(0x53))&lt;/P&gt;&lt;P&gt;#define cpu_is_mx6q() mxc_is_cpu(0x63)&lt;/P&gt;&lt;P&gt;MXC_REV(cpu_is_mx27);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 04 Jul 2012 14:08:40 GMT</pubDate>
    <dc:creator>StevieRG</dc:creator>
    <dc:date>2012-07-04T14:08:40Z</dc:date>
    <item>
      <title>Get CPU ID from user-space</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172384#M5837</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;How can I get CPU ID, e.g. iMX53/1, from user-space?&lt;BR /&gt;I can parse /proc/cpuinfo but this is not very, I think, good way.&lt;/P&gt;&lt;P&gt;Thank you and excuse me my bad english.&lt;BR /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jul 2012 12:45:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172384#M5837</guid>
      <dc:creator>BrilliantovKiri</dc:creator>
      <dc:date>2012-07-04T12:45:35Z</dc:date>
    </item>
    <item>
      <title>Re: Get CPU ID from user-space</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172385#M5838</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure if this is any help but there is a file rootfs/usr/include/vpu_lib.h which might give some clues how to do this.&lt;/P&gt;&lt;P&gt;I've never looked at this to see if or how it works, I just remember I edited it once to fix some compiler warnings. In that file are some macros that use an externally defined variable "system_rev", I don't know where that comes from or what's really in it but looking at the macros it seems to contain CPU info. These macros are used in the mxc_vpu_test sample to identify CPU type. This is what's in the file (with my small casts mod):&lt;/P&gt;&lt;P&gt;extern unsigned int system_rev;&lt;/P&gt;&lt;P&gt;#define CHIP_REV_1_0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&lt;/P&gt;&lt;P&gt;#define CHIP_REV_2_0 0x20&lt;/P&gt;&lt;P&gt;#define CHIP_REV_2_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x21&lt;/P&gt;&lt;P&gt;#define mxc_cpu()&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; (system_rev &amp;gt;&amp;gt; 12)&lt;/P&gt;&lt;P&gt;#define mxc_is_cpu(part)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((mxc_cpu() == part) ? 1 : 0)&lt;/P&gt;&lt;P&gt;#define mxc_cpu_rev()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (system_rev &amp;amp; 0xFF)&lt;/P&gt;&lt;P&gt;// SRG 9-5-12 added casts to unsigned int to fix signed comparison warning&lt;/P&gt;&lt;P&gt;#define mxc_cpu_is_rev(rev)&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; ((mxc_cpu_rev() == (unsigned int)rev) ? 1 : ((mxc_cpu_rev() &amp;lt; (unsigned int)rev) ? -1 : 2))&lt;/P&gt;&lt;P&gt;#define MXC_REV(type)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;static inline int type## _rev (int rev)&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;&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;&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;&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 (type() ? mxc_cpu_is_rev(rev) : 0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#define cpu_is_mx27() mxc_is_cpu(0x27)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx51() mxc_is_cpu(0x51)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx53() mxc_is_cpu(0x53)&lt;/P&gt;&lt;P&gt;#define cpu_is_mx5x() (mxc_is_cpu(0x51) || mxc_is_cpu(0x53))&lt;/P&gt;&lt;P&gt;#define cpu_is_mx6q() mxc_is_cpu(0x63)&lt;/P&gt;&lt;P&gt;MXC_REV(cpu_is_mx27);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jul 2012 14:08:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172385#M5838</guid>
      <dc:creator>StevieRG</dc:creator>
      <dc:date>2012-07-04T14:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: Get CPU ID from user-space</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172386#M5839</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First of all, Why do you think "parsing /proc/cpuinfo" is not a good way?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Jul 2012 18:18:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172386#M5839</guid>
      <dc:creator>positron</dc:creator>
      <dc:date>2012-07-04T18:18:04Z</dc:date>
    </item>
    <item>
      <title>Re: Get CPU ID from user-space</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172387#M5840</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;/proc/cpuinfo contained information from kernel and I can change it.  As sample on TI Davinci: # cat /proc/cpuinfo Processor : ARM926EJ-S rev 5 (v5l) BogoMIPS : 215.44 Features : swp half thumb fastmult edsp java CPU implementer : 0x41 CPU architecture: 5TEJ CPU variant : 0x0 CPU part : 0x926 CPU revision : 5 Hardware : DaVinci DM36x EVM Revision : 0000 Serial : 0000000000000000  And search in linux: $ grep EVM -rnI . | grep DM36x ./arch/arm/mach-davinci/board-dm365-evm.c:998:MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM36x EVM")  For iMX53 QSB this: MACHINE_START(MX53_LOCO, "Freescale MX53 LOCO Board")  I think if I change this description I see it in /proc/cpuinfo.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jul 2012 05:09:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Get-CPU-ID-from-user-space/m-p/172387#M5840</guid>
      <dc:creator>BrilliantovKiri</dc:creator>
      <dc:date>2012-07-05T05:09:50Z</dc:date>
    </item>
  </channel>
</rss>

