pru: Rework command processing so that most of it is done on pru0
Change the command dispatch and response generation so that most of the work is done on pru0 instead of pru1. This allows more code to fit into the limited space on pru1. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -6,28 +6,27 @@ CROSS_PREFIX=pru-
|
||||
dirs-y += src/pru src/generic
|
||||
dirs-y += lib/pru_rpmsg
|
||||
|
||||
CFLAGS += -Os -mmcu=am335x.pru1
|
||||
CFLAGS += -minrt -mmcu=am335x.pru1
|
||||
CFLAGS += -Ilib/pru_rpmsg/include -Ilib/pru_rpmsg/include/am335x
|
||||
|
||||
CFLAGS_klipper.elf := $(filter-out -mmcu=%, $(CFLAGS))
|
||||
CFLAGS_klipper.elf += -Wl,-r -nostdlib -Wl,-T,src/pru/pru.lds
|
||||
CFLAGS_pru0.elf := $(filter-out -mmcu=%, $(CFLAGS)) -minrt -mmcu=am335x.pru0
|
||||
CFLAGS_pru1.elf := $(CFLAGS) -minrt
|
||||
CFLAGS_pru0.elf := $(filter-out -mmcu=%, $(CFLAGS)) -mmcu=am335x.pru0
|
||||
CFLAGS_pru1.elf := $(CFLAGS)
|
||||
|
||||
# Add source files
|
||||
src-y := $(filter-out debugcmds.c, $(src-y))
|
||||
src-y += pru/main.c pru/gpio.c
|
||||
src-y += generic/crc16_ccitt.c generic/timer_irq.c
|
||||
src-y += pru/main.c pru/gpio.c generic/timer_irq.c
|
||||
|
||||
pru0-y := pru/pru0.c
|
||||
pru0-y := pru/pru0.c generic/crc16_ccitt.c command.c
|
||||
pru0-y += ../lib/pru_rpmsg/pru_rpmsg.c ../lib/pru_rpmsg/pru_virtqueue.c
|
||||
|
||||
# Build the additional PRU0 binary
|
||||
# Build the PRU binaries
|
||||
target-y += $(OUT)pru0.elf $(OUT)pru1.elf
|
||||
|
||||
$(OUT)pru0.elf: $(patsubst %.c, $(OUT)src/%.o,$(pru0-y))
|
||||
@echo " Linking $@"
|
||||
$(Q)$(CC) $(CFLAGS_pru0.elf) $^ -o $@
|
||||
$(Q)$(CC) $(CFLAGS_klipper.elf) $^ -o $(OUT)pru0.o
|
||||
$(Q)$(CC) $(CFLAGS_pru0.elf) $(OUT)pru0.o -o $@
|
||||
|
||||
$(OUT)pru1.elf: $(OUT)klipper.elf
|
||||
@echo " Linking $@"
|
||||
|
||||
Reference in New Issue
Block a user