source: rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am @ 2f6108f9

4.115
Last change on this file since 2f6108f9 was 2f6108f9, checked in by Sebastian Huber <sebastian.huber@…>, on May 28, 2013 at 8:58:19 AM

smp: Simplify SMP initialization sequence

Delete bsp_smp_wait_for(). Other parts of the system work without
timeout, e.g. the spinlocks. Using a timeout here does not make the
system more robust.

Delete bsp_smp_cpu_state and replace it with Per_CPU_State. The
Per_CPU_State follows the Score naming conventions. Add
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to
change and observe states.

Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer.

Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive()
functions provided by the CPU port. Use these functions in
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state().

Add prototype for _SMP_Send_message().

Delete RTEMS_BSP_SMP_FIRST_TASK message. The first context switch is
now performed in rtems_smp_secondary_cpu_initialize(). Issuing the
first context switch in the context of the inter-processor interrupt is
not possible on systems with a modern interrupt controller. Such an
interrupt controler usually requires a handshake protocol with interrupt
acknowledge and end of interrupt signals. A direct context switch in an
interrupt handler circumvents the interrupt processing epilogue and may
leave the system in an inconsistent state.

Release lock in rtems_smp_process_interrupt() even if no message was
delivered. This prevents deadlock of the system.

Simplify and format _SMP_Send_message(),
_SMP_Request_other_cores_to_perform_first_context_switch(),
_SMP_Request_other_cores_to_dispatch() and
_SMP_Request_other_cores_to_shutdown().

  • Property mode set to 100644
File size: 2.8 KB
Line 
1ACLOCAL_AMFLAGS = -I ../../../../aclocal
2
3include $(top_srcdir)/../../../../automake/compile.am
4
5include_bspdir = $(includedir)/bsp
6
7dist_project_lib_DATA = bsp_specs
8
9include_HEADERS = include/bsp.h
10include_HEADERS += include/tm27.h
11
12nodist_include_HEADERS = include/bspopts.h
13nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
14DISTCLEANFILES = include/bspopts.h
15
16noinst_PROGRAMS =
17
18include_HEADERS += include/erc32.h
19include_HEADERS += ../../shared/include/coverhd.h
20
21noinst_LIBRARIES = libbspstart.a
22libbspstart_a_SOURCES = ../../sparc/shared/start.S
23project_lib_DATA = start.$(OBJEXT)
24
25dist_project_lib_DATA += startup/linkcmds ../shared/startup/linkcmds.base
26
27noinst_LIBRARIES += libbsp.a
28libbsp_a_SOURCES =
29
30# startup
31libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
32    startup/bsppredriver.c ../../sparc/shared/bspgetworkarea.c \
33    ../../sparc/shared/bsppretaskinghook.c ../../shared/bsppost.c \
34    ../../shared/bspstart.c ../../shared/bootcard.c ../../shared/bspinit.c \
35    ../../shared/sbrk.c startup/setvec.c startup/spurious.c \
36    startup/erc32mec.c startup/boardinit.S startup/bspidle.c \
37    startup/bspdelay.c ../../sparc/shared/startup/early_malloc.c
38# ISR Handler
39libbsp_a_SOURCES += ../../sparc/shared/irq_asm.S
40# gnatsupp
41libbsp_a_SOURCES += gnatsupp/gnatsupp.c ../../sparc/shared/gnatcommon.c
42# console
43libbsp_a_SOURCES += console/erc32_console.c ../../shared/console.c \
44    ../../shared/console_select.c  ../../shared/console_control.c \
45    ../../shared/console_read.c ../../shared/console_write.c
46# debugio
47libbsp_a_SOURCES += console/debugputs.c
48# clock
49libbsp_a_SOURCES += clock/ckinit.c
50libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
51# timer
52libbsp_a_SOURCES += timer/timer.c
53
54# IRQ
55include_bsp_HEADERS = \
56    ../../shared/include/irq-generic.h \
57    ../../shared/include/irq-info.h \
58    include/bsp/irq.h
59libbsp_a_SOURCES += \
60    ../../sparc/shared/irq/irq-shared.c \
61    ../../shared/src/irq-default-handler.c \
62    ../../shared/src/irq-generic.c \
63    ../../shared/src/irq-info.c \
64    ../../shared/src/irq-legacy.c \
65    ../../shared/src/irq-server.c \
66    ../../shared/src/irq-shell.c
67
68if HAS_SMP
69libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
70endif
71
72if HAS_NETWORKING
73erc32sonic_CPPFLAGS = -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
74noinst_PROGRAMS += erc32sonic.rel
75erc32sonic_rel_SOURCES = erc32sonic/erc32sonic.c
76erc32sonic_rel_CPPFLAGS = $(AM_CPPFLAGS) $(erc32sonic_CPPFLAGS)
77erc32sonic_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
78endif
79
80libbsp_a_LIBADD  = \
81    ../../../libcpu/@RTEMS_CPU@/access.rel \
82    ../../../libcpu/@RTEMS_CPU@/cache.rel \
83    ../../../libcpu/@RTEMS_CPU@/reg_win.rel \
84    ../../../libcpu/@RTEMS_CPU@/syscall.rel
85if HAS_NETWORKING
86libbsp_a_LIBADD += erc32sonic.rel
87endif
88
89EXTRA_DIST = times
90
91include $(srcdir)/preinstall.am
92include $(top_srcdir)/../../../../automake/local.am
Note: See TracBrowser for help on using the repository browser.