diff --git a/Makefile b/Makefile index 2043f9a..23c7570 100644 --- a/Makefile +++ b/Makefile @@ -25,33 +25,35 @@ all: $(BUILD)/ec.rom # Include common source COMMON_DIR=src/common -SRC=$(wildcard $(COMMON_DIR)/*.c) INCLUDE=$(wildcard $(COMMON_DIR)/include/common/*.h) $(COMMON_DIR)/common.mk CFLAGS=-I$(COMMON_DIR)/include -D__FIRMWARE_VERSION__=$(VERSION) include $(COMMON_DIR)/common.mk +SRC += $(foreach src, $(common-y), $(COMMON_DIR)/$(src)) # Include the board's source BOARD_DIR=src/board/$(BOARD) -SRC+=$(wildcard $(BOARD_DIR)/*.c) INCLUDE+=$(wildcard $(BOARD_DIR)/include/board/*.h) $(BOARD_DIR)/board.mk CFLAGS+=-I$(BOARD_DIR)/include -D__BOARD__=$(BOARD) include $(BOARD_DIR)/board.mk +SRC += $(foreach src, $(board-y), $(BOARD_DIR)/$(src)) +SRC += $(foreach src, $(board-common-y), $(SYSTEM76_COMMON_DIR)/$(src)) +SRC += $(foreach src, $(keyboard-y), $(KEYBOARD_DIR)/$(src)) # The board will define the embedded controller # Include the embedded controller's source EC_DIR=src/ec/$(EC) -SRC+=$(wildcard $(EC_DIR)/*.c) INCLUDE+=$(wildcard $(EC_DIR)/include/ec/*.h) $(EC_DIR)/ec.mk CFLAGS+=-I$(EC_DIR)/include -D__EC__=$(EC_VARIANT) -D$(EC_VARIANT) include $(EC_DIR)/ec.mk +SRC += $(foreach src, $(ec-y), $(EC_DIR)/$(src)) # The EC will define the architecture # Include the architecture's source ARCH_DIR=src/arch/$(ARCH) -SRC+=$(wildcard $(ARCH_DIR)/*.c) INCLUDE+=$(wildcard $(ARCH_DIR)/include/arch/*.h) $(ARCH_DIR)/arch.mk CFLAGS+=-I$(ARCH_DIR)/include -D__ARCH__=$(ARCH) include $(ARCH_DIR)/arch.mk +SRC += $(foreach src, $(arch-y), $(ARCH_DIR)/$(src)) include $(ARCH_DIR)/toolchain.mk diff --git a/src/arch/8051/arch.mk b/src/arch/8051/arch.mk index e69de29..3d55406 100644 --- a/src/arch/8051/arch.mk +++ b/src/arch/8051/arch.mk @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-3.0-only + +arch-y += arch.c +arch-y += delay.c +arch-y += time.c diff --git a/src/arch/avr/arch.mk b/src/arch/avr/arch.mk index e69de29..a8c9948 100644 --- a/src/arch/avr/arch.mk +++ b/src/arch/avr/arch.mk @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-3.0-only + +arch-y += gpio.c +arch-y += i2c.c +arch-y += i2c_slave.c +arch-y += uart.c diff --git a/src/board/arduino/mega2560/board.mk b/src/board/arduino/mega2560/board.mk index d869795..32c56df 100644 --- a/src/board/arduino/mega2560/board.mk +++ b/src/board/arduino/mega2560/board.mk @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += battery.c +board-y += i2c.c +board-y += main.c +board-y += parallel.c + EC=atmega EC_VARIANT=atmega2560 diff --git a/src/board/arduino/micro/board.mk b/src/board/arduino/micro/board.mk index 2715587..a55db3f 100644 --- a/src/board/arduino/micro/board.mk +++ b/src/board/arduino/micro/board.mk @@ -1,5 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += main.c + EC=atmega EC_VARIANT=atmega32u4 diff --git a/src/board/arduino/uno/board.mk b/src/board/arduino/uno/board.mk index 810b713..98a6dae 100644 --- a/src/board/arduino/uno/board.mk +++ b/src/board/arduino/uno/board.mk @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += battery.c +board-y += i2c.c +board-y += main.c +board-y += parallel.c + EC=atmega EC_VARIANT=atmega328p diff --git a/src/board/system76/addw1/board.mk b/src/board/system76/addw1/board.mk index b85427a..15e9287 100644 --- a/src/board/system76/addw1/board.mk +++ b/src/board/system76/addw1/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it8587e diff --git a/src/board/system76/addw2/board.mk b/src/board/system76/addw2/board.mk index df55d8e..e5cb595 100644 --- a/src/board/system76/addw2/board.mk +++ b/src/board/system76/addw2/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/bonw14/board.mk b/src/board/system76/bonw14/board.mk index 13f5801..9873c6d 100644 --- a/src/board/system76/bonw14/board.mk +++ b/src/board/system76/bonw14/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index 4a62c67..12c6b47 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -1,5 +1,31 @@ # SPDX-License-Identifier: GPL-3.0-only +board-common-y += acpi.c +board-common-y += battery.c +board-common-y += config.c +board-common-y += dgpu.c +board-common-y += ecpm.c +board-common-y += espi.c +board-common-y += fan.c +board-common-y += gctrl.c +board-common-y += kbc.c +board-common-y += kbled.c +board-common-y += kbscan.c +board-common-y += keymap.c +board-common-y += lid.c +board-common-y += main.c +board-common-y += parallel.c +board-common-y += peci.c +board-common-y += pmc.c +board-common-y += pnp.c +board-common-y += power.c +board-common-y += ps2.c +board-common-y += pwm.c +board-common-y += scratch.c +board-common-y += smbus.c +board-common-y += smfi.c +board-common-y += stdio.c + # Set log level # 0 - NONE # 1 - ERROR @@ -20,7 +46,6 @@ PROGRAMMER=$(wildcard /dev/serial/by-id/usb-Arduino*) # Include system76 common source SYSTEM76_COMMON_DIR=src/board/system76/common -SRC+=$(wildcard $(SYSTEM76_COMMON_DIR)/*.c) INCLUDE+=$(wildcard $(SYSTEM76_COMMON_DIR)/include/board/*.h) $(SYSTEM76_COMMON_DIR)/common.mk CFLAGS+=-I$(SYSTEM76_COMMON_DIR)/include @@ -34,7 +59,7 @@ CFLAGS+=\ # Add charger CHARGER?=bq24780s -SRC+=$(SYSTEM76_COMMON_DIR)/charger/$(CHARGER).c +board-common-y += charger/$(CHARGER).c # Add keyboard ifndef KEYBOARD @@ -45,13 +70,14 @@ include $(KEYBOARD_DIR)/keyboard.mk # Add kbled KBLED?=none -SRC+=$(SYSTEM76_COMMON_DIR)/kbled/$(KBLED).c +board-common-y += kbled/$(KBLED).c # Add scratch ROM include $(SYSTEM76_COMMON_DIR)/scratch/scratch.mk # Add scratch ROM for flash access include $(SYSTEM76_COMMON_DIR)/flash/flash.mk +board-common-y += flash/wrapper.c console_internal: cargo build --manifest-path tool/Cargo.toml --release diff --git a/src/board/system76/common/flash/flash.mk b/src/board/system76/common/flash/flash.mk index 238f246..3a4e660 100644 --- a/src/board/system76/common/flash/flash.mk +++ b/src/board/system76/common/flash/flash.mk @@ -1,5 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later +flash-y += main.c + # Set flash ROM parameters FLASH_OFFSET=2048 FLASH_SIZE=1024 @@ -12,9 +14,9 @@ FLASH_CFLAGS=$(CFLAGS) # Include flash source. FLASH_DIR=$(SYSTEM76_COMMON_DIR)/flash # Note: main.c *must* be first to ensure that flash_start is at the correct address -FLASH_SRC=$(FLASH_DIR)/main.c FLASH_INCLUDE+=$(wildcard $(FLASH_DIR)/include/flash/*.h) $(FLASH_DIR)/flash.mk FLASH_CFLAGS+=-I$(FLASH_DIR)/include -D__FLASH__ +FLASH_SRC += $(foreach src, $(flash-y), $(FLASH_DIR)/$(src)) FLASH_BUILD=$(BUILD)/flash FLASH_OBJ=$(sort $(patsubst src/%.c,$(FLASH_BUILD)/%.rel,$(FLASH_SRC))) @@ -52,4 +54,3 @@ $(FLASH_OBJ): $(FLASH_BUILD)/%.rel: src/%.c $(FLASH_INCLUDE) CFLAGS+=-I$(BUILD)/include LDFLAGS+=-Wl -g_flash_entry=$(FLASH_OFFSET) INCLUDE+=$(BUILD)/include/flash.h -SRC+=$(FLASH_DIR)/wrapper.c diff --git a/src/board/system76/common/scratch/scratch.mk b/src/board/system76/common/scratch/scratch.mk index 142ea0c..bd8cc50 100644 --- a/src/board/system76/common/scratch/scratch.mk +++ b/src/board/system76/common/scratch/scratch.mk @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-3.0-only +scratch-y += main.c +scratch-y += stdio.c +# TODO: Use relative path; generates different binary +SCRATCH_SRC += $(SYSTEM76_COMMON_DIR)/smfi.c + # Set scratch ROM parameters SCRATCH_OFFSET=1024 SCRATCH_SIZE=1024 @@ -9,15 +14,11 @@ CFLAGS+=-DSCRATCH_OFFSET=$(SCRATCH_OFFSET) -DSCRATCH_SIZE=$(SCRATCH_SIZE) SCRATCH_INCLUDE=$(INCLUDE) SCRATCH_CFLAGS=$(CFLAGS) -#Include scratch source +# Include scratch source SCRATCH_DIR=$(SYSTEM76_COMMON_DIR)/scratch -SCRATCH_SRC=$(wildcard $(SCRATCH_DIR)/*.c) SCRATCH_INCLUDE+=$(wildcard $(SCRATCH_DIR)/include/scratch/*.h) $(SCRATCH_DIR)/scratch.mk SCRATCH_CFLAGS+=-I$(SCRATCH_DIR)/include -D__SCRATCH__ - -# Add minimal source from other directories -SCRATCH_SRC+=\ - $(SYSTEM76_COMMON_DIR)/smfi.c +SCRATCH_SRC += $(foreach src, $(scratch-y), $(SCRATCH_DIR)/$(src)) SCRATCH_BUILD=$(BUILD)/scratch SCRATCH_OBJ=$(sort $(patsubst src/%.c,$(SCRATCH_BUILD)/%.rel,$(SCRATCH_SRC))) diff --git a/src/board/system76/darp5/board.mk b/src/board/system76/darp5/board.mk index d7a9393..6a83799 100644 --- a/src/board/system76/darp5/board.mk +++ b/src/board/system76/darp5/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it8587e diff --git a/src/board/system76/darp7/board.mk b/src/board/system76/darp7/board.mk index 18ae352..e2180e1 100644 --- a/src/board/system76/darp7/board.mk +++ b/src/board/system76/darp7/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/darp8/board.mk b/src/board/system76/darp8/board.mk index c93a160..1b19bbc 100644 --- a/src/board/system76/darp8/board.mk +++ b/src/board/system76/darp8/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/galp3-c/board.mk b/src/board/system76/galp3-c/board.mk index ee1c6ba..cf9bc94 100644 --- a/src/board/system76/galp3-c/board.mk +++ b/src/board/system76/galp3-c/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it8587e diff --git a/src/board/system76/galp5/board.mk b/src/board/system76/galp5/board.mk index ad1b1de..5fc2623 100644 --- a/src/board/system76/galp5/board.mk +++ b/src/board/system76/galp5/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/galp6/board.mk b/src/board/system76/galp6/board.mk index 7d8096a..1ff1318 100644 --- a/src/board/system76/galp6/board.mk +++ b/src/board/system76/galp6/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/gaze15/board.mk b/src/board/system76/gaze15/board.mk index b35aef0..18ebb7b 100644 --- a/src/board/system76/gaze15/board.mk +++ b/src/board/system76/gaze15/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/gaze16-3050/board.mk b/src/board/system76/gaze16-3050/board.mk index bf283c8..d0028a0 100644 --- a/src/board/system76/gaze16-3050/board.mk +++ b/src/board/system76/gaze16-3050/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/gaze16-3060/board.mk b/src/board/system76/gaze16-3060/board.mk index cf7592b..406620e 100644 --- a/src/board/system76/gaze16-3060/board.mk +++ b/src/board/system76/gaze16-3060/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/gaze17-3050/board.mk b/src/board/system76/gaze17-3050/board.mk index 53186b1..1e90add 100644 --- a/src/board/system76/gaze17-3050/board.mk +++ b/src/board/system76/gaze17-3050/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/gaze17-3060/board.mk b/src/board/system76/gaze17-3060/board.mk index 7bf138c..0de8278 100644 --- a/src/board/system76/gaze17-3060/board.mk +++ b/src/board/system76/gaze17-3060/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/lemp10/board.mk b/src/board/system76/lemp10/board.mk index 664c7bc..612fba8 100644 --- a/src/board/system76/lemp10/board.mk +++ b/src/board/system76/lemp10/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/lemp11/board.mk b/src/board/system76/lemp11/board.mk index cbc0559..7fd4134 100644 --- a/src/board/system76/lemp11/board.mk +++ b/src/board/system76/lemp11/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/lemp9/board.mk b/src/board/system76/lemp9/board.mk index 7b5a70d..0d6c5c7 100644 --- a/src/board/system76/lemp9/board.mk +++ b/src/board/system76/lemp9/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/oryp5/board.mk b/src/board/system76/oryp5/board.mk index f791bf5..36c0d45 100644 --- a/src/board/system76/oryp5/board.mk +++ b/src/board/system76/oryp5/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it8587e diff --git a/src/board/system76/oryp6/board.mk b/src/board/system76/oryp6/board.mk index d829008..e5508c4 100644 --- a/src/board/system76/oryp6/board.mk +++ b/src/board/system76/oryp6/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/oryp7/board.mk b/src/board/system76/oryp7/board.mk index d829008..e5508c4 100644 --- a/src/board/system76/oryp7/board.mk +++ b/src/board/system76/oryp7/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/oryp8/board.mk b/src/board/system76/oryp8/board.mk index 1073f9a..a5d9239 100644 --- a/src/board/system76/oryp8/board.mk +++ b/src/board/system76/oryp8/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/board/system76/oryp9/board.mk b/src/board/system76/oryp9/board.mk index 992b10f..c0301b0 100644 --- a/src/board/system76/oryp9/board.mk +++ b/src/board/system76/oryp9/board.mk @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-3.0-only +board-y += board.c +board-y += gpio.c + EC=ite EC_VARIANT=it5570e diff --git a/src/common/common.mk b/src/common/common.mk index e69de29..1b8ee63 100644 --- a/src/common/common.mk +++ b/src/common/common.mk @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-3.0-only + +common-y += i2c.c +common-y += keymap.c +common-y += version.c diff --git a/src/ec/ite/ec.mk b/src/ec/ite/ec.mk index bb9ccb6..8eb07ca 100644 --- a/src/ec/ite/ec.mk +++ b/src/ec/ite/ec.mk @@ -1,5 +1,14 @@ # SPDX-License-Identifier: GPL-3.0-only +ec-y += ec.c +ec-y += espi.c +ec-y += gpio.c +ec-y += i2c.c +ec-y += kbc.c +ec-y += pmc.c +ec-y += ps2.c +ec-y += signature.c + ifeq ($(EC_VARIANT), it8587e) # SRAM is 4096 bytes, but SRAM at address 2048 is used for scratch ROM SRAM_SIZE=2048 diff --git a/src/keyboard/system76/14in_83/keyboard.mk b/src/keyboard/system76/14in_83/keyboard.mk index 2706f41..f88ca5b 100644 --- a/src/keyboard/system76/14in_83/keyboard.mk +++ b/src/keyboard/system76/14in_83/keyboard.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only -# Include keyboard source KEYMAP?=default -SRC+=$(KEYBOARD_DIR)/keymap/$(KEYMAP).c +keyboard-y += keymap/$(KEYMAP).c + INCLUDE+=$(wildcard $(KEYBOARD_DIR)/include/board/*.h) $(KEYBOARD_DIR)/keyboard.mk CFLAGS+=-I$(KEYBOARD_DIR)/include diff --git a/src/keyboard/system76/14in_86/keyboard.mk b/src/keyboard/system76/14in_86/keyboard.mk index 2706f41..f88ca5b 100644 --- a/src/keyboard/system76/14in_86/keyboard.mk +++ b/src/keyboard/system76/14in_86/keyboard.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only -# Include keyboard source KEYMAP?=default -SRC+=$(KEYBOARD_DIR)/keymap/$(KEYMAP).c +keyboard-y += keymap/$(KEYMAP).c + INCLUDE+=$(wildcard $(KEYBOARD_DIR)/include/board/*.h) $(KEYBOARD_DIR)/keyboard.mk CFLAGS+=-I$(KEYBOARD_DIR)/include diff --git a/src/keyboard/system76/15in_102/keyboard.mk b/src/keyboard/system76/15in_102/keyboard.mk index 2706f41..f88ca5b 100644 --- a/src/keyboard/system76/15in_102/keyboard.mk +++ b/src/keyboard/system76/15in_102/keyboard.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only -# Include keyboard source KEYMAP?=default -SRC+=$(KEYBOARD_DIR)/keymap/$(KEYMAP).c +keyboard-y += keymap/$(KEYMAP).c + INCLUDE+=$(wildcard $(KEYBOARD_DIR)/include/board/*.h) $(KEYBOARD_DIR)/keyboard.mk CFLAGS+=-I$(KEYBOARD_DIR)/include diff --git a/src/keyboard/system76/15in_102_nkey/keyboard.mk b/src/keyboard/system76/15in_102_nkey/keyboard.mk index 2706f41..f88ca5b 100644 --- a/src/keyboard/system76/15in_102_nkey/keyboard.mk +++ b/src/keyboard/system76/15in_102_nkey/keyboard.mk @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-3.0-only -# Include keyboard source KEYMAP?=default -SRC+=$(KEYBOARD_DIR)/keymap/$(KEYMAP).c +keyboard-y += keymap/$(KEYMAP).c + INCLUDE+=$(wildcard $(KEYBOARD_DIR)/include/board/*.h) $(KEYBOARD_DIR)/keyboard.mk CFLAGS+=-I$(KEYBOARD_DIR)/include