diff options
author | Nathaniel Graff <nathaniel.graff@sifive.com> | 2019-03-07 09:29:05 -0800 |
---|---|---|
committer | Nathaniel Graff <nathaniel.graff@sifive.com> | 2019-03-07 09:29:05 -0800 |
commit | d9c3fba928162e7a89349f8b160eb479ad41cbea (patch) | |
tree | 258c5e97139d68ccb4a760d7ca0fffa231bf392c /software/smp | |
parent | f695df295da82c8ef801906ad8b00b0e8afa7502 (diff) |
Remove legacy examples
Signed-off-by: Nathaniel Graff <nathaniel.graff@sifive.com>
Diffstat (limited to 'software/smp')
-rw-r--r-- | software/smp/Makefile | 6 | ||||
-rw-r--r-- | software/smp/atomic.h | 29 | ||||
-rw-r--r-- | software/smp/smp.c | 40 |
3 files changed, 0 insertions, 75 deletions
diff --git a/software/smp/Makefile b/software/smp/Makefile deleted file mode 100644 index 4131ffc..0000000 --- a/software/smp/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -TARGET = smp -C_SRCS += smp.c -CFLAGS += -O2 -fno-builtin-printf -DENABLE_SMP - -BSP_BASE = ../../bsp -include $(BSP_BASE)/env/common.mk diff --git a/software/smp/atomic.h b/software/smp/atomic.h deleted file mode 100644 index 074c6a2..0000000 --- a/software/smp/atomic.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef SIFIVE_ATOMIC_H -#define SIFIVE_ATOMIC_H - -#define ATOMIC_INIT(x) \ - { \ - .counter = (x), \ - } - -typedef struct { - int counter; -} atomic_t; - -static inline int atomic_xchg(atomic_t *v, int n) -{ - register int c; - - __asm__ __volatile__ ( - "amoswap.w.aqrl %0, %2, %1" - : "=r" (c), "+A" (v->counter) - : "r" (n)); - return c; -} - -static inline void mb(void) -{ - __asm__ __volatile__ ("fence"); -} - -#endif diff --git a/software/smp/smp.c b/software/smp/smp.c deleted file mode 100644 index 36c9db9..0000000 --- a/software/smp/smp.c +++ /dev/null @@ -1,40 +0,0 @@ -#include <stdio.h> -#include <unistd.h> -#include "atomic.h" -void write_hex(int, unsigned long); - -atomic_t tty_lock = ATOMIC_INIT(0); - -void get_lock(atomic_t *lock) -{ - while (atomic_xchg(lock, 1) == 1); - mb(); -} - -void put_lock(atomic_t *lock) -{ - mb(); - atomic_xchg(lock, 0); -} - -int secondary_main(int hartid) -{ - volatile int counter; - - while (1) { - get_lock(&tty_lock); - write(1, "hello world from hart ", 22); - char s[] = {'0', '\n', '\0'}; - s[0] += hartid; - write(1, s, 2); - put_lock(&tty_lock); - - for (counter = 0; counter < 10000 + 100*hartid; ++counter) - mb(); - } -} - -int main() -{ - return secondary_main(0); -} |