| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| # |
| # Original Author: The Chromium OS Authors <chromium-os-dev@chromium.org> |
| # Purpose: Install Tegra BCT files for firmware construction. |
| # |
| |
| # @ECLASS-VARIABLE: TEGRA_BCT_SDRAM_CONFIG |
| # @DESCRIPTION: |
| # SDRAM memory timing configuration file to install |
| : ${TEGRA_BCT_SDRAM_CONFIG:=} |
| |
| # @ECLASS-VARIABLE: TEGRA_BCT_FLASH_CONFIG |
| # @DESCRIPTION: |
| # Flash memory configuration file to install |
| : ${TEGRA_BCT_FLASH_CONFIG:=} |
| |
| # @ECLASS-VARIABLE: TEGRA_BCT_ODM_DATA_CONFIG |
| # @DESCRIPTION: |
| # (Optional) ODM DATA value for specified board. ODM DATA specifies |
| # different configurations like memory and debug UART. |
| : ${TEGRA_BCT_ODM_DATA_CONFIG:=} |
| |
| # @ECLASS-VARIABLE: TEGRA_BCT_CHIP_FAMILY |
| # @DESCRIPTION: |
| # Family of Tegra chip (determines BCT configuration) |
| : ${TEGRA_BCT_CHIP_FAMILY:=t25} |
| |
| # Check for EAPI 2+ |
| case "${EAPI:-0}" in |
| 2|3|4|5|6) ;; |
| *) die "unsupported EAPI (${EAPI}) in eclass (${ECLASS})" ;; |
| esac |
| |
| tegra-bct_src_configure() { |
| local sdram_file=${FILESDIR}/${TEGRA_BCT_SDRAM_CONFIG} |
| local flash_file=${FILESDIR}/${TEGRA_BCT_FLASH_CONFIG} |
| local odmdata_file=${FILESDIR}/${TEGRA_BCT_ODM_DATA_CONFIG} |
| |
| if [ -z "${TEGRA_BCT_SDRAM_CONFIG}" ]; then |
| die "No SDRAM configuration file selected." |
| fi |
| |
| if [ -z "${TEGRA_BCT_FLASH_CONFIG}" ]; then |
| die "No flash configuration file selected." |
| fi |
| |
| if [ -z "${TEGRA_BCT_CHIP_FAMILY}" ]; then |
| die "No chip family selected." |
| fi |
| |
| einfo "Using sdram config file: ${sdram_file}" |
| einfo "Using flash config file: ${flash_file}" |
| einfo "Using chip family : ${TEGRA_BCT_CHIP_FAMILY}" |
| |
| cat ${flash_file} > board.cfg || |
| die "Failed to read flash config file." |
| |
| cat ${sdram_file} >> board.cfg || |
| die "Failed to read SDRAM config file." |
| |
| # TEGRA_BCT_ODM_DATA_CONFIG is optional, Only use it if set. |
| if [ ! -z "${TEGRA_BCT_ODM_DATA_CONFIG}" ]; then |
| einfo "Using odmdata : ${TEGRA_BCT_ODM_DATA_CONFIG}" |
| cat ${odmdata_file} >> board.cfg || |
| die "Failed to read ODMDATA config file." |
| fi |
| } |
| |
| tegra-bct_src_compile() { |
| local chip_family="-${TEGRA_BCT_CHIP_FAMILY}" |
| cbootimage -gbct $chip_family board.cfg board.bct || |
| die "Failed to generate BCT." |
| } |
| |
| tegra-bct_src_install() { |
| local sdram_file=${FILESDIR}/${TEGRA_BCT_SDRAM_CONFIG} |
| local flash_file=${FILESDIR}/${TEGRA_BCT_FLASH_CONFIG} |
| local odmdata_file=${FILESDIR}/${TEGRA_BCT_ODM_DATA_CONFIG} |
| |
| insinto /firmware/bct |
| |
| doins "${sdram_file}" |
| doins "${flash_file}" |
| |
| # TEGRA_BCT_ODM_DATA_CONFIG is optional, Only use it if set. |
| if [ ! -z "${TEGRA_BCT_ODM_DATA_CONFIG}" ]; then |
| doins "${odmdata_file}" |
| fi |
| |
| if [ "$(basename ${sdram_file})" != "sdram.cfg" ]; then |
| dosym "$(basename ${sdram_file})" /firmware/bct/sdram.cfg |
| fi |
| |
| if [ "$(basename ${flash_file})" != "flash.cfg" ]; then |
| dosym "$(basename ${flash_file})" /firmware/bct/flash.cfg |
| fi |
| |
| doins board.cfg |
| doins board.bct |
| } |
| |
| EXPORT_FUNCTIONS src_configure src_compile src_install |