mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 00:51:29 +00:00
While in CCD, cr50 can be used to flash the AP and EC through USB. This change adds an endpoint that can be used to read, erase, and write to the AP and EC spi rom. Currently CCD is not enabled on cr50, so usb_spi access has to be enabled manually through the cr50 console. BUG=chrome-os-partner:50701 BRANCH=none TEST=manual On EC console run 'flash_tristate true' On cr50 console run 'usb_spi enable' Use 'flashrom -p raiden_debug_spi:target=EC' and 'flashrom -p raiden_debug_spi:target=AP' to interact with the AP and EC flash CQ-DEPEND=CL:342144 Change-Id: I9c31dab252a8bfbc498eaf64ac5c2f53ec9dde30 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/342511
131 lines
4.0 KiB
Makefile
131 lines
4.0 KiB
Makefile
# -*- makefile -*-
|
|
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
#
|
|
|
|
SIGNED_IMAGES = 1
|
|
|
|
CORE:=cortex-m
|
|
CFLAGS_CPU+=-march=armv7-m -mcpu=cortex-m3
|
|
|
|
# Extract the hardware version we are building against
|
|
ver_defs := GC___MAJOR_REV__ GC___MINOR_REV__
|
|
bld_defs := GC_SWDP_BUILD_DATE_DEFAULT GC_SWDP_BUILD_TIME_DEFAULT
|
|
ver_params := $(shell echo "$(ver_defs) $(bld_defs)" | $(CPP) $(CPPFLAGS) -P \
|
|
-imacros chip/g/hw_regdefs.h | sed -e "s/__REV\([A-Z]\)__/\1/")
|
|
ver_str := $(shell printf "%s%s %d_%d" $(ver_params))
|
|
CPPFLAGS+= -DGC_REVISION="$(ver_str)"
|
|
|
|
ifeq ($(CONFIG_DCRYPTO),y)
|
|
INCLUDE_ROOT := $(abspath ./include)
|
|
CRYPTOCLIB := $(realpath ../../third_party/cryptoc)
|
|
CPPFLAGS += -I$(abspath .)
|
|
CPPFLAGS += -I$(abspath ./builtin)
|
|
CPPFLAGS += -I$(abspath ./chip/$(CHIP))
|
|
CPPFLAGS += -I$(INCLUDE_ROOT)
|
|
CPPFLAGS += -I$(CRYPTOCLIB)/include
|
|
endif
|
|
|
|
# Required chip modules
|
|
chip-y=clock.o gpio.o hwtimer.o jtag.o system.o
|
|
ifeq ($(CONFIG_POLLING_UART),y)
|
|
chip-y += polling_uart.o
|
|
else
|
|
chip-y += uart.o
|
|
chip-y += uartn.o
|
|
endif
|
|
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/aes.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/bn.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/hmac.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/hkdf.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/p256.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/p256_ec.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/p256_ecies.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/rsa.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/sha1.o
|
|
chip-$(CONFIG_DCRYPTO)+= dcrypto/sha256.o
|
|
|
|
chip-$(CONFIG_SPI_MASTER)+=spi_master.o
|
|
|
|
chip-y+= jitter.o
|
|
chip-y+= pmu.o
|
|
chip-y+= trng.o
|
|
chip-$(CONFIG_USB_FW_UPDATE)+= usb_upgrade.o
|
|
chip-$(CONFIG_NON_HC_FW_UPDATE)+= upgrade_fw.o
|
|
chip-$(CONFIG_SPS)+= sps.o
|
|
chip-$(CONFIG_TPM_SPS)+=sps_tpm.o
|
|
chip-$(CONFIG_WATCHDOG)+=watchdog.o
|
|
|
|
chip-$(CONFIG_USB)+=usb.o usb_endpoints.o
|
|
chip-$(CONFIG_USB_CONSOLE)+=usb_console.o
|
|
chip-$(CONFIG_USB_HID)+=usb_hid.o
|
|
chip-$(CONFIG_USB_BLOB)+=blob.o
|
|
chip-$(CONFIG_USB_SPI)+=usb_spi.o
|
|
chip-$(CONFIG_RDD)+=rdd.o
|
|
chip-$(CONFIG_RBOX)+=rbox.o
|
|
chip-$(CONFIG_STREAM_USB)+=usb-stream.o
|
|
chip-$(CONFIG_STREAM_USART)+=usart.o
|
|
|
|
chip-$(CONFIG_LOW_POWER_IDLE)+=idle.o
|
|
|
|
chip-$(CONFIG_FLASH)+=flash.o
|
|
dirs-y += chip/g/dcrypto
|
|
|
|
ifneq ($(CONFIG_CUSTOMIZED_RO),)
|
|
custom-ro_objs-y = chip/g/clock.o
|
|
custom-ro_objs-y += chip/g/dcrypto/sha256.o
|
|
custom-ro_objs-y += chip/g/loader/key_ladder.o
|
|
custom-ro_objs-y += chip/g/loader/launch.o
|
|
custom-ro_objs-y += chip/g/loader/main.o
|
|
custom-ro_objs-y += chip/g/loader/rom_flash.o
|
|
custom-ro_objs-y += chip/g/loader/setup.o
|
|
custom-ro_objs-y += chip/g/loader/verify.o
|
|
custom-ro_objs-y += chip/g/pmu.o
|
|
custom-ro_objs-y += chip/g/system.o
|
|
custom-ro_objs-y += chip/g/trng.o
|
|
custom-ro_objs-y += chip/g/uart.o
|
|
custom-ro_objs-y += chip/g/uartn.o
|
|
custom-ro_objs-y += common/printf.o
|
|
custom-ro_objs-y += common/util.o
|
|
custom-ro_objs-y += core/cortex-m/init.o
|
|
custom-ro_objs-y += core/cortex-m/panic.o
|
|
dirs-y += chip/g/dcrypto
|
|
dirs-y += chip/g/loader
|
|
endif
|
|
|
|
$(out)/RO/ec.RO.flat: $(out)/util/signer
|
|
$(out)/RW/ec.RW.flat: $(out)/util/signer
|
|
|
|
%.hex: %.flat
|
|
|
|
ifneq ($(CONFIG_RW_B),)
|
|
$(out)/$(PROJECT).obj: $(out)/RW/ec.RW_B.flat
|
|
$(out)/RW/ec.RW_B.flat: $(out)/util/signer
|
|
endif
|
|
|
|
CR50_RO_KEY ?= rom-testkey-A.pem
|
|
|
|
# This file is included twice by the Makefile, once to determine the CHIP info
|
|
# # and then again after defining all the CONFIG_ and HAS_TASK variables. We use
|
|
# # a guard so that recipe definitions and variable extensions only happen the
|
|
# # second time.
|
|
ifeq ($(CHIP_MK_INCLUDED_ONCE),)
|
|
CHIP_MK_INCLUDED_ONCE=1
|
|
else
|
|
|
|
ifeq ($(CONFIG_DCRYPTO),y)
|
|
$(out)/RW/ec.RW.elf $(out)/RW/ec.RW_B.elf: LDFLAGS_EXTRA += -L$(out)/cryptoc \
|
|
-lcryptoc
|
|
$(out)/RW/ec.RW.elf $(out)/RW/ec.RW_B.elf: $(out)/cryptoc/libcryptoc.a
|
|
|
|
# Force the external build each time, so it can look for changed sources.
|
|
.PHONY: $(out)/cryptoc/libcryptoc.a
|
|
$(out)/cryptoc/libcryptoc.a:
|
|
$(MAKE) obj=$(realpath $(out))/cryptoc SUPPORT_UNALIGNED=1 \
|
|
-C $(CRYPTOCLIB)
|
|
endif # end CONFIG_DCRYPTO
|
|
|
|
endif # CHIP_MK_INCLUDED_ONCE is nonempty
|