rt-thread/bsp/phytium/libraries/SConscript

309 lines
11 KiB
Python

import os
from building import *
objs = []
cwd = GetCurrentDir()
PORT_DRV_DIR = cwd + '/drivers'
DRIVERS_EXAMPLE_DIR = cwd + '/drivers_example'
PHYTIUM_SDK_DIR = cwd + '/phytium_standalone_sdk'
SYSTEM_EXAMPLE_DIR = cwd + '/system_example'
COMMON_DIR = cwd + '/common'
# common source
src = Glob(PHYTIUM_SDK_DIR+'/common/fassert.c')
path = [PHYTIUM_SDK_DIR + '/common/']
src += Glob(COMMON_DIR+'/*.c')
path += [COMMON_DIR ]
# arch port
path += [PHYTIUM_SDK_DIR + '/arch/armv8/gcc']
if GetDepend(['TARGET_ARMV8_AARCH32']):
src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch32/gcc/fcpu_asm.S')
path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch32']
elif GetDepend(['TARGET_ARMV8_AARCH64']):
src += Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/fsmcc.c') + Glob(PHYTIUM_SDK_DIR+'/arch/armv8/aarch64/gcc/fcpu_asm.S')
path += [PHYTIUM_SDK_DIR + '/arch/armv8/aarch64']
# soc & soc_port
src += Glob(PHYTIUM_SDK_DIR+'/soc/common/fcpu_info.c')
path += [PHYTIUM_SDK_DIR + '/soc/common']
if GetDepend(['TARGET_PE2204']):
src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2204/*.c')
path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2204']
if GetDepend(['TARGET_PE2202']):
src += Glob(cwd+'/port/soc_port/pe220x/*.c') + Glob(cwd+'/port/soc_port/pe220x/pe2202/*.c')
path += [PHYTIUM_SDK_DIR + '/soc/pe220x'] + [PHYTIUM_SDK_DIR + '/soc/pe220x/pe2202']
if GetDepend(['TARGET_PD2408']):
src += Glob(cwd+'/port/soc_port/pd2408/*.c')
path += [PHYTIUM_SDK_DIR + '/soc/pd2408']
# board port
if GetDepend(['E2000D_DEMO_BOARD']):
path += cwd + '/fboard_port/e2000d_demo'
if GetDepend(['E2000Q_DEMO_BOARD']):
path += cwd + '/fboard_port/e2000q_demo'
if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
path += cwd + '/fboard_port/firefly'
if GetDepend(['BSP_USING_SDCARD_FATFS']):
if GetDepend(['E2000D_DEMO_BOARD']):
src += Glob(cwd + '/port/fboard_port/e2000d_demo/mnt_sdcard.c')
if GetDepend(['E2000Q_DEMO_BOARD']):
src += Glob(cwd + '/port/fboard_port/e2000q_demo/mnt_sdcard.c')
if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
src += Glob(cwd + '/port/fboard_port/firefly/mnt_sdcard.c')
if GetDepend(['PD2408_TEST_A_BOARD']):
src += Glob(cwd + '/port/fboard_port/pd2408_test_a/mnt_sdcard.c')
else:
src += Glob(cwd + '/port/fboard_port/mnt_ramdisk.c')
# driver
path += [PORT_DRV_DIR]
## spim
if GetDepend(['BSP_USING_SPI']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim/*.c') + Glob(PORT_DRV_DIR+'/drv_spi.c')
path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim']
## spim msg
if GetDepend(['BSP_USING_SPI_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/spi/fspim_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_spi_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/spi/fspim_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg']
## serial
if GetDepend(['BSP_USING_UART']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c') + Glob(PORT_DRV_DIR+'/drv_usart.c')
path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011']
## serial_v2
if GetDepend(['BSP_USING_UART_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fpl011/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/drivers/serial/fserial_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_usart_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/serial/fpl011']
path += [PHYTIUM_SDK_DIR + '/drivers/serial/fserial_v2_0'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
## can
if GetDepend(['BSP_USING_CAN']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/can/fcan/*.c') + Glob(PORT_DRV_DIR+'/drv_can.c')
path += [PHYTIUM_SDK_DIR + '/drivers/can/fcan/']
## qspi
if GetDepend(['BSP_USING_QSPI']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/qspi/fqspi/*.c') + Glob(PORT_DRV_DIR+'/drv_qspi.c')
path += [PHYTIUM_SDK_DIR + '/drivers/qspi/fqspi/']
## eth
if GetDepend(['BSP_USING_ETH']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac.c')
path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/'] + [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac/phy/']
## eth_v2
if GetDepend(['BSP_USING_ETH_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/eth/fxmac_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_xmac_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/eth/fxmac_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg']
## sdif
if GetDepend(['BSP_USING_SDIF']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif.c')
path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif/']
## sdif_msg
if GetDepend(['BSP_USING_SDIF_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/mmc/fsdif_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_sdif_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/mmc/fsdif_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
## gpio
if GetDepend(['BSP_USING_GPIO']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/pin/fgpio/*.c') + Glob(PORT_DRV_DIR+'/drv_gpio.c')
path += [PHYTIUM_SDK_DIR + '/drivers/pin/fgpio/']
if GetDepend(['TARGET_PE220X']):
src += Glob(PHYTIUM_SDK_DIR+'/soc/pe220x/fgpio_table.c')
if GetDepend(['TARGET_PD2408']):
src += Glob(PHYTIUM_SDK_DIR+'/soc/pd2408/fgpio_table.c')
## i2s
if GetDepend(['BSP_USING_I2S']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fi2s/*.c') \
+ Glob(PHYTIUM_SDK_DIR+'/drivers/dma/fddma/*.c') \
+ Glob(PORT_DRV_DIR+'/drv_i2s.c')
path += [PHYTIUM_SDK_DIR + '/drivers/i2s/fi2s/'] \
+ [PHYTIUM_SDK_DIR + '/drivers/dma/fddma/']
## i2s
if GetDepend(['BSP_USING_I2S_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2s/fi2s_v2/*.c') \
+ Glob(PHYTIUM_SDK_DIR+'/drivers/dma/fddma/*.c') \
+ Glob(PORT_DRV_DIR+'/drv_i2s_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/i2s/fi2s_v2/'] \
+ [PHYTIUM_SDK_DIR + '/drivers/dma/fddma/']
## pwm
if GetDepend(['BSP_USING_ES8336']):
src += Glob(PORT_DRV_DIR+'/drv_es8336.c')
## pwm
if GetDepend(['BSP_USING_PWM']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/pwm/fpwm/*.c') + Glob(PORT_DRV_DIR+'/drv_pwm.c')
path += [PHYTIUM_SDK_DIR + '/drivers/pwm/fpwm/']
## i2c
if GetDepend(['BSP_USING_I2C']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c.c')
path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c/']
## i2c msg
if GetDepend(['BSP_USING_I2C_MSG']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/i2c/fi2c_v2_0/*.c') + Glob(PORT_DRV_DIR+'/drv_i2c_msg.c')
path += [PHYTIUM_SDK_DIR + '/drivers/i2c/fi2c_v2_0/'] + [PHYTIUM_SDK_DIR + '/drivers/msg/']
# fdriver dc
if GetDepend(['BSP_USING_DC']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/media/fdcdp/*.c') + Glob(PORT_DRV_DIR+'/drv_dc.c')
path += [PHYTIUM_SDK_DIR + '/drivers/media/fdcdp/']
## iopad
if GetDepend(['BSP_USING_IOPAD']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/iomux/fiopad/*.c')
path += [PHYTIUM_SDK_DIR + '/drivers/iomux/fiopad/']
## mio
if GetDepend(['I2C_USE_MIO']):
src += Glob(PHYTIUM_SDK_DIR+'/drivers/mio/fmio/*.c')
path += [PHYTIUM_SDK_DIR + '/drivers/mio/fmio/']
## drivers_example
if GetDepend(['BSP_USING_DRIVERS_EXAMPLE']):
src += Glob(DRIVERS_EXAMPLE_DIR+'/*.c')
path += [DRIVERS_EXAMPLE_DIR]
## board
if GetDepend(['E2000D_DEMO_BOARD']):
src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fio_mux.c')
path += [PHYTIUM_SDK_DIR + '/board/e2000d_demo/']
if GetDepend(['BSP_USING_SDIF_LAYER']):
src += Glob(PHYTIUM_SDK_DIR+'/board/e2000d_demo/fsdif_timing.c')
if GetDepend(['E2000Q_DEMO_BOARD']):
src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fio_mux.c')
path += [PHYTIUM_SDK_DIR + '/board/e2000q_demo/']
if GetDepend(['BSP_USING_SDIF_LAYER']):
src += Glob(PHYTIUM_SDK_DIR+'/board/e2000q_demo/fsdif_timing.c')
if GetDepend(['PD2408_TEST_A_BOARD']):
src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fio_mux.c')
path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_a/']
if GetDepend(['BSP_USING_SDIF_LAYER']):
src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_a/fsdif_timing.c')
if GetDepend(['PD2408_TEST_B_BOARD']):
src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fio_mux.c')
path += [PHYTIUM_SDK_DIR + '/board/pd2408_test_b/']
if GetDepend(['BSP_USING_SDIF_LAYER']):
src += Glob(PHYTIUM_SDK_DIR+'/board/pd2408_test_b/fsdif_timing.c')
if GetDepend(['PHYTIUMPI_FIREFLY_BOARD']):
src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fio_mux.c')
path += [PHYTIUM_SDK_DIR + '/board/phytiumpi_firefly/']
if GetDepend(['BSP_USING_SDIF_LAYER']):
src += Glob(PHYTIUM_SDK_DIR+'/board/phytiumpi_firefly/fsdif_timing.c')
## third-party
if GetDepend(['USE_OPENAMP']):
## libmetal
src += Glob(PHYTIUM_SDK_DIR+'/third-party/libmetal/metal/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/libmetal/metal/system/generic/*.c')
## libmetal port
src += Glob(cwd + '/port/libmetal_port/*.c')
path += [PHYTIUM_SDK_DIR + '/third-party/libmetal/']
path += [PHYTIUM_SDK_DIR + '/third-party/libmetal/compiler/gcc/']
path += [PHYTIUM_SDK_DIR + '/third-party/libmetal/processor/aarch64/']
path += [cwd + '/port/libmetal_port/']
## openamp
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/include']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/include/openamp']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/rpmsg']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/remoteproc']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/ports']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/service/rpmsg/rpc']
path += [PHYTIUM_SDK_DIR + '/third-party/openamp/lib/virtio']
# openamp port
src += Glob(cwd + '/port/openamp_port/machine/phytium/*.c')
src += Glob(cwd + '/port/openamp_port/system/generic/machine/phytium/*.c')
path += [cwd + '/port/openamp_port/include']
path += [cwd + '/port/openamp_port/machine/phytium']
path += [cwd + '/port/openamp_port/system/generic/machine/phytium']
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/rpmsg/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/version.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/proxy/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/remoteproc/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/virtio/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/services/rpmsg/rpc/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/lib/utils/*.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/ports/load_fw.c')
src += Glob(PHYTIUM_SDK_DIR+'/third-party/openamp/ports/mem_image_store.c')
# system_example
if GetDepend(['BSP_USING_SYSTEM_EXAMPLE']):
if GetDepend(['BSP_USING_OPENAMP_EXAMPLE']):
src += Glob(SYSTEM_EXAMPLE_DIR+'/openamp/*.c')
path += [SYSTEM_EXAMPLE_DIR+'/openamp/']
LIBS = []
LIBPATH = []
## fdriver port
src += Glob(cwd+'/port/fdriver_port/*.c')
path += [cwd + '/port/fdriver_port']
## fboard port
path += [cwd + '/port/fboard_port']
## lwip port
src += Glob(cwd+'/port/lwip_port/*.c')
path += [cwd + '/port/lwip_port']
## cherryusb port
src += Glob(cwd + '/port/cherryusb_port/*.c')
# phytium ports rt-thread examples
PORT_DRV_DIR = cwd + '/examples'
src += Glob(PORT_DRV_DIR + '/*.c')
# sdkcomfig.h
path += [cwd]
# add group
ASFLAGS = ''
group = DefineGroup('FT_DRIVER', src, depend=[
''],LIBS = LIBS,LIBPATH=LIBPATH, CPPPATH=path, ASFLAGS = ASFLAGS)
Return('group')