소스 검색

内核Kconfig增加AMP选项, api:rt_hw_cpu_id和 RT_USING_SMP宏解耦,增加rt_hw_ipi_send对RT_USING_AMP的依赖

wangqinglin 1 년 전
부모
커밋
0c29bed30f
2개의 변경된 파일26개의 추가작업 그리고 8개의 파일을 삭제
  1. 9 7
      include/rthw.h
  2. 17 1
      src/Kconfig

+ 9 - 7
include/rthw.h

@@ -160,6 +160,15 @@ void rt_hw_exception_install(rt_err_t (*exception_handle)(void *context));
  */
 void rt_hw_us_delay(rt_uint32_t us);
 
+int rt_hw_cpu_id(void);
+
+#if defined(RT_USING_SMP) || defined(RT_USING_AMP)
+/**
+ *  ipi function
+ */
+void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask);
+#endif
+
 #ifdef RT_USING_SMP
 #include <cpuport.h> /* for spinlock from arch */
 
@@ -172,8 +181,6 @@ void rt_hw_spin_lock_init(rt_hw_spinlock_t *lock);
 void rt_hw_spin_lock(rt_hw_spinlock_t *lock);
 void rt_hw_spin_unlock(rt_hw_spinlock_t *lock);
 
-int rt_hw_cpu_id(void);
-
 extern rt_hw_spinlock_t _cpus_lock;
 extern rt_hw_spinlock_t _rt_critical_lock;
 
@@ -185,11 +192,6 @@ extern rt_hw_spinlock_t _rt_critical_lock;
 #define RT_DEFINE_SPINLOCK(x)  rt_hw_spinlock_t x = __RT_HW_SPIN_LOCK_UNLOCKED(x)
 #define RT_DECLARE_SPINLOCK(x)
 
-/**
- *  ipi function
- */
-void rt_hw_ipi_send(int ipi_vector, unsigned int cpu_mask);
-
 /**
  * boot secondary cpu
  */

+ 17 - 1
src/Kconfig

@@ -38,6 +38,22 @@ config RT_USING_SMART
     help
         RT-Thread Smart is a microkernel based operating system on RT-Thread.
 
+config RT_USING_AMP
+    bool "Enable AMP(Asymmetric Multi-Processing)"
+    default n
+    if RT_USING_AMP
+        choice
+            prompt "Select the AMP role"
+            default RT_AMP_SLAVE
+
+            config RT_AMP_MASTER
+            bool "amp role MASTER"
+
+            config RT_AMP_SLAVE
+            bool "amp role SLAVE"
+        endchoice
+    endif
+
 config RT_USING_SMP
     bool "Enable SMP(Symmetric multiprocessing)"
     default n
@@ -50,7 +66,7 @@ config RT_USING_SMP
 config RT_CPUS_NR
     int "Number of CPUs"
     default 2
-    depends on RT_USING_SMP
+    depends on RT_USING_SMP || RT_USING_AMP
     help
         Number of CPUs in the system