-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
172 lines (143 loc) · 5.24 KB
/
Makefile
File metadata and controls
172 lines (143 loc) · 5.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
MYPLATFORM=bbmini
#NUMBER_SWITCHES
#Platform dependent SPI parameters
#SPI_FREQ
#SPI_SWAP
#SPI_BPW
#SPI_BPW_MSG
#NR_CFG_BLOCKS
ifeq ($(MYPLATFORM), imx)
# i.MX
NUMBER_SWITCHES ?= 1
SPI_FREQ ?= 25000000
SPI_SWAP ?= 0
SPI_BPW ?= 32
SPI_BPW_MSG ?= "(t.len << 3)"
NR_CFG_BLOCKS ?= 6
MYTOOLCHAIN=arm-linux-gnueabi-
MYARCHITECTURE=arm
MYCOMPILER=arm-linux-gnueabi-gcc-4.7
KERNELDIR ?= /home/marco/Documents/linux_automotive/linux_avb
else ifeq ($(MYPLATFORM), evb)
# S32V234-EVB
NUMBER_SWITCHES ?= 2
SPI_FREQ ?= 12000000
SPI_SWAP ?= 1
SPI_BPW ?= 16
SPI_BPW_MSG ?= 16
NR_CFG_BLOCKS ?= 1
MYTOOLCHAIN=aarch64-linux-gnu-
MYARCHITECTURE=arm64
MYCOMPILER=aarch64-linux-gnu-gcc
KERNELDIR ?= ~/work/linux
else ifeq ($(MYPLATFORM), bbmini)
# S32V234 BlueBox Mini
NUMBER_SWITCHES ?= 3
SPI_FREQ ?= 12000000
SPI_SWAP ?= 1
SPI_BPW ?= 16
SPI_BPW_MSG ?= 16
NR_CFG_BLOCKS ?= 1
MYTOOLCHAIN=aarch64-linux-gnu-
MYARCHITECTURE=arm64
MYCOMPILER=aarch64-linux-gnu-gcc
KERNELDIR ?= /home/marco/Documents/yocto_auto_linux_bsp15.0/build_s32v234bbmini_release/tmp/work/s32v234bbmini-fsl-linux/linux-s32v2xx/4.1.26-r0/git
else ifeq ($(MYPLATFORM), campp)
# CAMPPS32V2
NUMBER_SWITCHES ?= 2
SPI_FREQ ?= 12000000
SPI_SWAP ?= 1
SPI_BPW ?= 16
SPI_BPW_MSG ?= 16
NR_CFG_BLOCKS ?= 1
MYTOOLCHAIN=aarch64-linux-gnu-
MYARCHITECTURE=arm64
MYCOMPILER=aarch64-linux-gnu-gcc
else ifneq (, $(filter $(MYPLATFORM), gplat rdb))
# S32G-PROCEVB-S plus S32GRV-PLATEVB or S32G-VNP-RDB
NUMBER_SWITCHES ?= 1
SPI_FREQ ?= 12000000
SPI_SWAP ?= 1
SPI_BPW ?= 16
SPI_BPW_MSG ?= 16
NR_CFG_BLOCKS ?= 1
MYTOOLCHAIN=aarch64-linux-gnu-
MYARCHITECTURE=arm64
MYCOMPILER=aarch64-linux-gnu-gcc
DISABLE_SWITCHDEV = 1
DISABLE_HOST_NETDEV = 1
else
$(error Unsupported platform specified!)
endif
FIRMWARE_DIR="tools/firmware_generation"
.PHONY: all modules clean firmware firmware_clean
all: modules firmware
modules:
$(MAKE) ARCH=$(MYARCHITECTURE) CROSS_COMPILE=$(MYTOOLCHAIN) CC=$(MYCOMPILER) -C $(KERNELDIR) M=`pwd` modules
clean: firmware_clean
$(MAKE) ARCH=$(MYARCHITECTURE) CROSS_COMPILE=$(MYTOOLCHAIN) CC=$(MYCOMPILER) -C $(KERNELDIR) M=`pwd` $@
modules_install: firmware_install
$(eval KERNEL_VERSION := $(shell cat $(KERNELDIR)/include/config/kernel.release))
install -D sja1105pqrs.ko $(INSTALL_DIR)/lib/modules/$(KERNEL_VERSION)/kernel/drivers/spi/sja1105pqrs.ko
firmware:
$(MAKE) -C $(FIRMWARE_DIR) BOARD=$(MYPLATFORM) NR_SWITCHES=$(NUMBER_SWITCHES)
firmware_install:
@mkdir -p $(INSTALL_DIR)/lib/firmware/
@$(foreach SWITCH, $(shell seq 1 $(NUMBER_SWITCHES) ), \
install -D $(FIRMWARE_DIR)/sja1105p_$(SWITCH)-$(NUMBER_SWITCHES)_cfg.bin \
$(INSTALL_DIR)/lib/firmware/;)
firmware_clean:
$(MAKE) -C $(FIRMWARE_DIR) clean
obj-m += sja1105pqrs.o
#include and src paths
APP_SRC_PATH = app/src
APP_INC_PATH = $(src)/app/inc
INT_SRC_PATH = platform_integration/src
INT_INC_PATH = $(src)/platform_integration/inc
INDEP_SRC_PATH = platform_independent/src
INDEP_INC_PATH = $(src)/platform_independent/inc
INDEP_LL_SRC_PATH = platform_independent/src/low_level_driver
INDEP_LL_INC_PATH = $(src)/platform_independent/inc/low_level_driver
SWDEV_SRC_PATH = switchdev/src
SWDEV_INC_PATH = $(src)/switchdev/inc
PLATFORM_DEPENDENT = -D SJA1105P_N_SWITCHES=$(NUMBER_SWITCHES)
PLATFORM_DEPENDENT += -D SPI_FREQUENCY=$(SPI_FREQ) -D SPI_SWITCH_WORDS=$(SPI_SWAP) -D SPI_BITS_PER_WORD=$(SPI_BPW) -D SPI_BITS_PER_WORD_MSG=$(SPI_BPW_MSG) -D SPI_CFG_BLOCKS=$(NR_CFG_BLOCKS)
ifdef DISABLE_SWITCHDEV
PLATFORM_DEPENDENT += -D DISABLE_SWITCHDEV
endif
ifdef DISABLE_HOST_NETDEV
PLATFORM_DEPENDENT += -D DISABLE_HOST_NETDEV
endif
EXTRA_CFLAGS+= -I$(KERNELDIR)/include/linux -I$(INDEP_INC_PATH) -I$(INDEP_LL_INC_PATH) -I$(INT_INC_PATH) -I$(APP_INC_PATH) -I$(SWDEV_INC_PATH) -I$(src) $(PLATFORM_DEPENDENT)
#Top level
sja1105pqrs-y := sja1105p_init.o
#platform integration
sja1105pqrs-y += $(INT_SRC_PATH)/sja1105p_spi_linux.o
#apps
sja1105pqrs-y += $(APP_SRC_PATH)/sja1105p_cfg_file.o
sja1105pqrs-y += $(APP_SRC_PATH)/sja1105p_debugfs.o
sja1105pqrs-y += $(APP_SRC_PATH)/sja1105p_general_status.o
sja1105pqrs-y += $(APP_SRC_PATH)/sja1105p_hal_export.o
#platform independent
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_config.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_cbs.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_mgmtRoutes.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_ptp.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_vlan.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_ethIf.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_portConfig.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_utils.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_addressResolutionTable.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_configStream.o
sja1105pqrs-y += $(INDEP_SRC_PATH)/NXP_SJA1105P_diagnostics.o
#low level driver
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_auxiliaryConfigurationUnit.o
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_clockGenerationUnit.o
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_resetGenerationUnit.o
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_sgmii.o
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_spi.o
sja1105pqrs-y += $(INDEP_LL_SRC_PATH)/NXP_SJA1105P_switchCore.o
#switchdev
ifndef DISABLE_SWITCHDEV
sja1105pqrs-y += $(SWDEV_SRC_PATH)/sja1105p_switchdev.o
endif