embeded/ARM2015. 2. 2. 17:56

음.. cpuinfo에서는 cpu에서 지원하는 사항을

/proc/self/auxy 에서는 레지스터를 볼 수 있다고 한다.

NEON can be detected at compile time by checking: #ifdef __ARM_NEON__

NEON can be detected at runtime on Linux by checking the CPU flags, by running "cat /proc/cpuinfo" or searching the file "/proc/self/auxv" for AT_HWCAP to check for the HWCAP_NEON bit (4096).


[링크 : http://shervinemami.info/armAssembly.html] 


일단은.. 저런 설정사항들이 있고...

AUX. control register랑은 순서가 다르네..

Linux/arch/arm/include/uapi/asm/hwcap.h


  1 #ifndef _UAPI__ASMARM_HWCAP_H

  2 #define _UAPI__ASMARM_HWCAP_H

  3 

  4 /*

  5  * HWCAP flags - for elf_hwcap (in kernel) and AT_HWCAP

  6  */

  7 #define HWCAP_SWP       (1 << 0)

  8 #define HWCAP_HALF      (1 << 1)

  9 #define HWCAP_THUMB     (1 << 2)

 10 #define HWCAP_26BIT     (1 << 3)        /* Play it safe */

 11 #define HWCAP_FAST_MULT (1 << 4)

 12 #define HWCAP_FPA       (1 << 5)

 13 #define HWCAP_VFP       (1 << 6)

 14 #define HWCAP_EDSP      (1 << 7)

 15 #define HWCAP_JAVA      (1 << 8)

 16 #define HWCAP_IWMMXT    (1 << 9)

 17 #define HWCAP_CRUNCH    (1 << 10)

 18 #define HWCAP_THUMBEE   (1 << 11)

 19 #define HWCAP_NEON      (1 << 12)

 20 #define HWCAP_VFPv3     (1 << 13)

 21 #define HWCAP_VFPv3D16  (1 << 14)       /* also set for VFPv4-D16 */

 22 #define HWCAP_TLS       (1 << 15)

 23 #define HWCAP_VFPv4     (1 << 16)

 24 #define HWCAP_IDIVA     (1 << 17)

 25 #define HWCAP_IDIVT     (1 << 18)

 26 #define HWCAP_VFPD32    (1 << 19)       /* set if VFP has 32 regs (not 16) */

 27 #define HWCAP_IDIV      (HWCAP_IDIVA | HWCAP_IDIVT)

 28 #define HWCAP_LPAE      (1 << 20)

 29 #define HWCAP_EVTSTRM   (1 << 21)

 30 

 31 /*

 32  * HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2

 33  */

 34 #define HWCAP2_AES      (1 << 0)

 35 #define HWCAP2_PMULL    (1 << 1)

 36 #define HWCAP2_SHA1     (1 << 2)

 37 #define HWCAP2_SHA2     (1 << 3)

 38 #define HWCAP2_CRC32    (1 << 4)

 39 

 40 #endif /* _UAPI__ASMARM_HWCAP_H */

 41 


[링크 : http://lxr.free-electrons.com/source/arch/arm/include/uapi/asm/hwcap.h#L19]


음. auxy 파일을 덤프해서 봐도 모르겠고 -_-

$ hexdump dump

0000000 0010 0000 30d7 0000 0006 0000 1000 0000

0000010 0011 0000 0064 0000 0003 0000 8034 0000

0000020 0004 0000 0020 0000 0005 0000 0009 0000

0000030 0007 0000 b000 2aaa 0008 0000 0000 0000

0000040 0009 0000 43e8 0001 000b 0000 0000 0000

0000050 000c 0000 0000 0000 000d 0000 0000 0000

0000060 000e 0000 0000 0000 0017 0000 0000 0000

0000070 0019 0000 de48 7e82 001f 0000 dff3 7e82

0000080 000f 0000 de58 7e82 0000 0000 0000 0000

0000090



찾던중에 반가운!!!!

암튼 이녀석은 실제로 활성화된 내용을 볼수 있는 것으로 생각된다!!

왜냐면!!! vfpv3 neon이 없거덩!?

이녀석은.. 일단 root로 실행해야 한다.

# LD_SHOW_AUXV=1 /bin/dd

AT_HWCAP:    swp half thumb fast-mult vfp edsp

AT_PAGESZ:       4096

AT_CLKTCK:       100

AT_PHDR:         0x8034

AT_PHENT:        32

AT_PHNUM:        9

AT_BASE:         0x2aaab000

AT_FLAGS:        0x0

AT_ENTRY:        0x143e8

AT_UID:          0

AT_EUID:         0

AT_GID:          0

AT_EGID:         0

AT_SECURE:       0

AT_RANDOM:       0x7ef2de47

AT_EXECFN:       /bin/dd

AT_PLATFORM:     v7l


[링크 : http://www.linuxquestions.org/.../what-does-proc-pid-auxv-mean-exactly-4175421876/]




'embeded > ARM' 카테고리의 다른 글

neon / co-processor 그리고 MCR MRC p16  (0) 2015.02.09
freescale imx515 neon  (0) 2015.02.02
i.mx515 uboot cross compile  (0) 2015.02.02
i.mx515 kernel cross compile  (0) 2015.02.02
i.mx515 SDMA  (0) 2015.02.02
Posted by 구차니