Skip to content

Commit 0403699

Browse files
committed
arch: add up_read_cpuid api
Signed-off-by: wangmingrong1 <[email protected]>
1 parent 118f827 commit 0403699

File tree

5 files changed

+24
-0
lines changed

5 files changed

+24
-0
lines changed

arch/arm/include/arch.h

+2
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ typedef struct arch_addrenv_s arch_addrenv_t;
164164
* Public Function Prototypes
165165
****************************************************************************/
166166

167+
uintptr_t up_read_cpuid(void);
168+
167169
#ifdef __cplusplus
168170
#define EXTERN extern "C"
169171
extern "C"

arch/arm/src/armv6-m/arm_cpuinfo.c

+5
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,8 @@ ssize_t up_show_cpuinfo(char *buf, size_t buf_size, off_t file_off)
8989
return -file_off;
9090
}
9191
#endif /* CONFIG_FS_PROCFS && !CONFIG_FS_PROCFS_EXCLUDE_CPUINFO */
92+
93+
uintptr_t up_read_cpuid(void)
94+
{
95+
return *((volatile uint32_t *)ARMV6M_SYSCON2_BASE);
96+
}

arch/arm/src/armv7-a/arm_cpuinfo.c

+7
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,10 @@ ssize_t up_show_cpuinfo(char *buf, size_t buf_size, off_t file_off)
168168
return -file_off;
169169
}
170170
#endif /* CONFIG_FS_PROCFS && !CONFIG_FS_PROCFS_EXCLUDE_CPUINFO */
171+
172+
uintptr_t up_read_cpuid(void)
173+
{
174+
uint32_t cpuid;
175+
asm volatile("MRC p15, 0, %0, c0, c0, 0" : "=r"(cpuid));
176+
return cpuid;
177+
}

arch/arm/src/armv7-m/arm_cpuinfo.c

+5
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,8 @@ ssize_t up_show_cpuinfo(char *buf, size_t buf_size, off_t file_off)
158158
return -file_off;
159159
}
160160
#endif /* CONFIG_FS_PROCFS && !CONFIG_FS_PROCFS_EXCLUDE_CPUINFO */
161+
162+
uintptr_t up_read_cpuid(void)
163+
{
164+
return *((volatile uint32_t *)NVIC_CPUID_BASE);
165+
}

arch/arm/src/armv8-m/arm_cpuinfo.c

+5
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,8 @@ ssize_t up_show_cpuinfo(char *buf, size_t buf_size, off_t file_off)
144144
return -file_off;
145145
}
146146
#endif /* CONFIG_FS_PROCFS && !CONFIG_FS_PROCFS_EXCLUDE_CPUINFO */
147+
148+
uintptr_t up_read_cpuid(void)
149+
{
150+
return *((volatile uint32_t *)NVIC_CPUID_BASE);
151+
}

0 commit comments

Comments
 (0)