source: rtems/c/src/lib/libbsp/sparc/leon2/Makefile.am @ 8d830fae

4.115
Last change on this file since 8d830fae was 2f6108f9, checked in by Sebastian Huber <sebastian.huber@…>, on 05/28/13 at 08:58:19

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: 5.5 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
11include_HEADERS += include/rasta.h
12include_HEADERS += include/cchip.h
13include_HEADERS += ../../sparc/shared/include/grspw.h
14include_HEADERS += ../../sparc/shared/include/grspw_pci.h
15include_HEADERS += ../../sparc/shared/include/grspw_rasta.h
16include_HEADERS += ../../sparc/shared/include/occan.h
17include_HEADERS += ../../sparc/shared/include/occan_pci.h
18include_HEADERS += ../../sparc/shared/include/grcan.h
19include_HEADERS += ../../sparc/shared/include/grcan_rasta.h
20include_HEADERS += ../../sparc/shared/include/apbuart.h
21include_HEADERS += ../../sparc/shared/include/apbuart_pci.h
22include_HEADERS += ../../sparc/shared/include/apbuart_rasta.h
23include_HEADERS += ../../sparc/shared/include/b1553brm.h
24include_HEADERS += ../../sparc/shared/include/b1553brm_pci.h
25include_HEADERS += ../../sparc/shared/include/b1553brm_rasta.h
26include_HEADERS += ../../sparc/shared/include/debug_defs.h
27include_HEADERS += ../../sparc/shared/include/pci.h
28
29nodist_include_HEADERS = include/bspopts.h
30nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
31DISTCLEANFILES = include/bspopts.h
32
33noinst_PROGRAMS =
34
35include_HEADERS += include/leon.h
36include_HEADERS += ../../shared/include/coverhd.h
37
38noinst_LIBRARIES = libbspstart.a
39libbspstart_a_SOURCES = ../../sparc/shared/start.S
40project_lib_DATA = start.$(OBJEXT)
41
42dist_project_lib_DATA += startup/linkcmds ../shared/startup/linkcmds.base
43
44noinst_LIBRARIES += libbsp.a
45libbsp_a_SOURCES =
46
47# startup
48libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
49    ../../shared/bsppost.c startup/bsppredriver.c \
50    startup/bspstart.c ../../sparc/shared/bsppretaskinghook.c \
51    ../../sparc/shared/bspgetworkarea.c ../../shared/bootcard.c \
52    ../../shared/sbrk.c startup/setvec.c startup/spurious.c startup/bspidle.c \
53    ../../shared/bspinit.c startup/bspdelay.c \
54    ../../sparc/shared/startup/early_malloc.c
55# ISR Handler
56libbsp_a_SOURCES += ../../sparc/shared/irq_asm.S
57# gnatsupp
58libbsp_a_SOURCES += gnatsupp/gnatsupp.c ../../sparc/shared/gnatcommon.c
59# console
60libbsp_a_SOURCES += console/console.c console/debugputs.c
61# clock
62libbsp_a_SOURCES += clock/ckinit.c
63libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
64# IRQ
65include_bsp_HEADERS = \
66    ../../shared/include/irq-generic.h \
67    ../../shared/include/irq-info.h \
68    include/bsp/irq.h
69libbsp_a_SOURCES += \
70    ../../sparc/shared/irq/irq-shared.c \
71    ../../shared/src/irq-default-handler.c \
72    ../../shared/src/irq-generic.c \
73    ../../shared/src/irq-info.c \
74    ../../shared/src/irq-legacy.c \
75    ../../shared/src/irq-server.c \
76    ../../shared/src/irq-shell.c
77
78# AMBA bus
79include_HEADERS += ../../sparc/shared/include/ambapp.h
80include_HEADERS += ../../sparc/shared/include/ambapp_ids.h
81include_HEADERS += ../../sparc/shared/include/grlib.h
82libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp.c
83libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_alloc.c
84libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_count.c
85libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_depth.c
86libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_find_by_idx.c
87libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_freq.c
88libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_parent.c
89libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_old.c
90libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_names.c
91libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_show.c
92# PCI
93libbsp_a_SOURCES += pci/pci.c ../../sparc/shared/pci/pcifinddevice.c
94# RASTA Kit
95libbsp_a_SOURCES += rasta/rasta.c
96# Companion Chip Kit
97libbsp_a_SOURCES += cchip/cchip.c
98# B1553BRM
99libbsp_a_SOURCES += ../../sparc/shared/1553/b1553brm.c \
100    ../../sparc/shared/1553/b1553brm_pci.c \
101    ../../sparc/shared/1553/b1553brm_rasta.c
102# CAN
103libbsp_a_SOURCES += ../../sparc/shared/can/occan.c \
104    ../../sparc/shared/can/occan_pci.c \
105    ../../sparc/shared/can/grcan.c \
106    ../../sparc/shared/can/grcan_rasta.c
107# SpaceWire
108libbsp_a_SOURCES += ../../sparc/shared/spw/grspw.c \
109    ../../sparc/shared/spw/grspw_pci.c ../../sparc/shared/spw/grspw_rasta.c
110# UART (RAW)
111libbsp_a_SOURCES += ../../sparc/shared/uart/apbuart.c \
112    ../../sparc/shared/uart/apbuart_pci.c \
113    ../../sparc/shared/uart/apbuart_rasta.c
114# I2CMST
115include_HEADERS += ../../sparc/shared/include/i2cmst.h
116libbsp_a_SOURCES += ../../sparc/shared/i2c/i2cmst.c
117
118# timer
119libbsp_a_SOURCES += timer/timer.c
120
121if HAS_SMP
122libbsp_a_SOURCES += ../../shared/smp/getcpuid.c ../../shared/smp/smp_stub.c
123endif
124
125if HAS_NETWORKING
126noinst_PROGRAMS += leon_smc91111.rel
127leon_smc91111_rel_SOURCES = leon_smc91111/leon_smc91111.c
128leon_smc91111_rel_CPPFLAGS = $(AM_CPPFLAGS)
129leon_smc91111_rel_CPPFLAGS += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
130leon_smc91111_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
131endif
132
133if HAS_NETWORKING
134noinst_PROGRAMS += leon_open_eth.rel
135leon_open_eth_rel_SOURCES = leon_open_eth/leon_open_eth.c
136leon_open_eth_rel_CPPFLAGS = $(AM_CPPFLAGS)
137leon_open_eth_rel_CPPFLAGS +=  -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
138leon_open_eth_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
139endif
140
141libbsp_a_LIBADD = \
142    ../../../libcpu/@RTEMS_CPU@/access.rel \
143    ../../../libcpu/@RTEMS_CPU@/cache.rel \
144    ../../../libcpu/@RTEMS_CPU@/reg_win.rel \
145    ../../../libcpu/@RTEMS_CPU@/syscall.rel
146
147if HAS_NETWORKING
148libbsp_a_LIBADD += leon_open_eth.rel
149libbsp_a_LIBADD += leon_smc91111.rel
150endif
151
152EXTRA_DIST = times
153
154include $(srcdir)/preinstall.am
155include $(top_srcdir)/../../../../automake/local.am
Note: See TracBrowser for help on using the repository browser.