blob: 2146824c49f92e09088f9b1c569bef11e3acdcd2 [file] [log] [blame] [edit]
function(define_ice40_board)
set(options)
set(oneValueArgs BOARD DEVICE PACKAGE PROG_TOOL PROG_CMD)
set(multiValueArgs)
cmake_parse_arguments(
DEFINE_ICE40_BOARD
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN}
)
define_board(
BOARD ${DEFINE_ICE40_BOARD_BOARD}
DEVICE ${DEFINE_ICE40_BOARD_DEVICE}
PACKAGE ${DEFINE_ICE40_BOARD_PACKAGE}
PROG_TOOL ${DEFINE_ICE40_BOARD_PROG_TOOL}
PROG_CMD ${DEFINE_ICE40_BOARD_PROG_PROG_CMD}
)
get_target_property_required(PACKAGE_PINMAP ${DEFINE_ICE40_BOARD_DEVICE} ${DEFINE_ICE40_BOARD_PACKAGE}_PINMAP)
set_target_properties(
${DEFINE_ICE40_BOARD_BOARD}
PROPERTIES
PINMAP ${PACKAGE_PINMAP}
)
endfunction()
# Lattice iCEstick
# http://www.latticesemi.com/icestick
# ---------------------------------------------
define_ice40_board(
BOARD icestick
DEVICE hx1k
PACKAGE tq144
)
# Lattice iCEblink40-LP1K Evaluation Kit
# **HX** version is different!
# ---------------------------------------------
define_ice40_board(
BOARD iceblink40-lp1k
DEVICE lp1k
PACKAGE qn84
)
if (NOT LIGHT_BUILD)
# iCE40-HX8K Breakout Board Evaluation Kit
# iCE40-HX8K-CT256
# ---------------------------------------------
define_ice40_board(
BOARD hx8k-b-evn
DEVICE hx8k
PACKAGE ct256
)
# DPControl icevision board
# iCE40UP5K-SG48
# ---------------------------------------------
define_ice40_board(
BOARD icevision
DEVICE up5k
PACKAGE sg48
)
get_target_property_required(TINYFPGAB env TINYFPGAB)
# TinyFPGA B2
# iCE40-LP8K-CM81
# ---------------------------------------------
define_ice40_board(
BOARD tinyfpga-b2
DEVICE lp8k
PACKAGE cm81
PROG_CMD "${TINYFPGAB} --program \${OUT_BIN}"
)
get_target_property_required(TINYPROG env TINYPROG)
# TinyFPGA BX
# iCE40-LP8K-CM81
# ---------------------------------------------
define_ice40_board(
BOARD tinyfpga-bx
DEVICE lp8k
PACKAGE cm81
PROG_CMD "${TINYPROG} -p \${OUT_BIN}"
)
endif (NOT LIGHT_BUILD)