blob: 52bb651b443846e86e87dff6af1f65fba0468efe [file] [log] [blame]
/*
*
* Copyright (C) 2018 Khadas, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __KVIM3_H__
#define __KVIM3_H__
#include <asm/arch/cpu.h>
#define CONFIG_SYS_GENERIC_BOARD 1
#ifndef CONFIG_AML_MESON
#warning "include warning"
#endif
/*
* platform power init config
*/
#define CONFIG_PLATFORM_POWER_INIT
#define CONFIG_VCCK_INIT_VOLTAGE 800 // VCCK power up voltage
#define CONFIG_VDDEE_INIT_VOLTAGE 880 // VDDEE power up voltage
#define CONFIG_VDDEE_SLEEP_VOLTAGE 770 // VDDEE suspend voltage
/* config for khadas kbi */
#define CONFIG_KHADAS_KBI 1
#define CONFIG_KHADAS_CFGLOAD 1
#define CONFIG_KHADAS_SCRIPT 1
#define CONFIG_USID_FROM_ETH_MAC 1
#define CONFIG_POWER_FUSB302 1
#define CONFIG_TCA6408 1
#define CONFIG_CMDLINE_EDITING 1
#define CONFIG_AUTO_COMPLETE 1
#define CONFIG_CMD_ENV_EXISTS 1
#define CONFIG_CMD_FS_GENERIC 1
#define CONFIG_CMD_EXT4 1
#define CONFIG_EXT4_WRITE 1
#define CONFIG_CMD_EXT4_WRITE 1
#define CONFIG_MDUMP_COMPRESS 1
#define CONFIG_CMD_EXT2 1
#define CONFIG_CMD_PART 1
#define CONFIG_CMD_UNZIP 1
#define CONFIG_LZMA 1
//#define CONFIG_PHY_REALTEK 1
/* configs for CEC */
#define CONFIG_CEC_OSD_NAME "KVIM3"
#define CONFIG_CEC_WAKEUP
/*if use bt-wakeup,open it*/
#define CONFIG_BT_WAKEUP
/* SMP Definitinos */
#define CPU_RELEASE_ADDR secondary_boot_func
/* config saradc*/
#define CONFIG_CMD_SARADC 1
#define CONFIG_SARADC_CH 2
/* Bootloader Control Block function
That is used for recovery and the bootloader to talk to each other
*/
#define CONFIG_BOOTLOADER_CONTROL_BLOCK
#define CONFIG_CMD_BOOTCTOL_AVB
/* Serial config */
#define CONFIG_CONS_INDEX 2
#define CONFIG_BAUDRATE 115200
#define CONFIG_AML_MESON_SERIAL 1
#define CONFIG_SERIAL_MULTI 1
//Enable ir remote wake up for bl30
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL1 0xeb14ff00 //khadas ir --- power
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL2 0XBB44FB04 //amlogic tv ir --- ch+
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL3 0xF20DFE01 //amlogic tv ir --- ch-
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL4 0XBA45BD02 //amlogic small ir--- power
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL5 0xe51afb04
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL6 0xFFFFFFFF
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL7 0xFFFFFFFF
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL8 0xFFFFFFFF
#define CONFIG_IR_REMOTE_POWER_UP_KEY_VAL9 0xFFFFFFFF
/*config the default parameters for adc power key*/
#define CONFIG_ADC_POWER_KEY_CHAN 2 /*channel range: 0-7*/
#define CONFIG_ADC_POWER_KEY_VAL 0 /*sample value range: 0-1023*/
/* args/envs */
#define CONFIG_SYS_MAXARGS 64
#define CONFIG_EXTRA_ENV_SETTINGS \
"firstboot=1\0"\
"upgrade_step=0\0"\
"jtag=disable\0"\
"port_mode=0\0"\
"loadaddr=1080000\0"\
"loadsize=3f80000\0"\
"panel_type=lcd_1\0" \
"lcd_ctrl=0x00000000\0"\
"outputmode=panel\0" \
"hdmimode=1080p60hz\0" \
"nativeui=disable\0" \
"colorattribute=444,8bit\0"\
"cvbsmode=576cvbs\0" \
"display_width=1920\0" \
"display_height=1080\0" \
"display_bpp=16\0" \
"display_color_index=16\0" \
"display_layer=osd0\0" \
"display_color_fg=0xffff\0" \
"display_color_bg=0\0" \
"dtb_mem_addr=0x1000000\0" \
"fb_addr=0x3d800000\0" \
"fb_width=1920\0" \
"fb_height=1080\0" \
"frac_rate_policy=1\0" \
"hdr_policy=1\0" \
"hdmi_read_edid=1\0" \
"hdmichecksum=0x00000000\0" \
"dolby_status=0\0" \
"dolby_vision_on=0\0" \
"usb_burning=update 1000\0" \
"otg_device=1\0"\
"fdt_high=0x20000000\0"\
"try_auto_burn=update 700 750;\0"\
"sdcburncfg=aml_sdc_burn.ini\0"\
"sdc_burning=sdc_burn ${sdcburncfg}\0"\
"wipe_data=successful\0"\
"wipe_cache=successful\0"\
"EnableSelinux=permissive\0" \
"recovery_part=recovery\0"\
"recovery_offset=0\0"\
"cvbs_drv=0\0"\
"lock=10001000\0"\
"osd_reverse=0\0"\
"video_reverse=0\0"\
"active_slot=normal\0"\
"boot_part=zircon_a\0"\
"Irq_check_en=0\0"\
"spi_state=0\0"\
"fusb302_state=0\0"\
"factory_mac=0\0"\
"ext_ethernet=1\0"\
"reboot_mode_android=""normal""\0"\
"fs_type=""rootfstype=ramfs""\0"\
"initargs="\
"init=/init "\
"console=ttyS0,115200 "\
"no_console_suspend "\
"earlycon=aml-uart,0xff803000 "\
"ramoops.pstore_en=1 "\
"ramoops.record_size=0x8000 "\
"ramoops.console_size=0x4000 "\
"\0"\
"upgrade_check="\
"echo upgrade_step=${upgrade_step}; "\
"if itest ${upgrade_step} == 3; then "\
"echo upgrade_step ${upgrade_step}. Entering fastboot;"\
"run init_display; run storeargs; run update;"\
"else fi;"\
"\0"\
"storeargs="\
"setenv bootargs ${initargs} hdr_policy=${hdr_policy} hdr_priority=${hdr_priority} otg_device=${otg_device} reboot_mode_android=${reboot_mode_android} logo=${display_layer},loaded,${fb_addr} fb_width=${fb_width} fb_height=${fb_height} vout2=${outputmode2},enable vout=${outputmode},enable panel_type=${panel_type} lcd_ctrl=${lcd_ctrl} hdmitx=${cecconfig},${colorattribute} hdmimode=${hdmimode} nativeui=${nativeui} hdmichecksum=${hdmichecksum} dolby_vision_on=${dolby_vision_on} frac_rate_policy=${frac_rate_policy} hdmi_read_edid=${hdmi_read_edid} cvbsmode=${cvbsmode} osd_reverse=${osd_reverse} video_reverse=${video_reverse} irq_check_en=${Irq_check_en} androidboot.selinux=${EnableSelinux} androidboot.firstboot=${firstboot} jtag=${jtag} wol_enable=${wol_enable} spi_state=${spi_state} fusb302_state=${fusb302_state} hwver=${hwver} factory_mac=${factory_mac} lcd_exist=${lcd_exist} ext_board_exist=${ext_board_exist}; "\
"setenv bootargs ${bootargs} androidboot.hardware=amlogic androidboot.bootloader=${bootloader_version} androidboot.build.expect.baseband=N/A;"\
"run cmdline_keys;"\
"\0"\
"switch_bootmode="\
"get_rebootmode;"\
"if test ${reboot_mode} = factory_reset; then "\
"setenv reboot_mode_android ""normal"";"\
"run storeargs;"\
"run recovery_from_flash;"\
"else if test ${reboot_mode} = update; then "\
"setenv reboot_mode_android ""normal"";"\
"echo reboot_mode is update. Entering fastboot;"\
"run storeargs;"\
"run update;"\
"else if test ${reboot_mode} = quiescent; then "\
"setenv reboot_mode_android ""quiescent"";"\
"run storeargs;"\
"setenv bootargs ${bootargs} androidboot.quiescent=1;"\
"else if test ${reboot_mode} = recovery_quiescent; then "\
"setenv reboot_mode_android ""quiescent"";"\
"run storeargs;"\
"setenv bootargs ${bootargs} androidboot.quiescent=1;"\
"run recovery_from_flash;"\
"else if test ${reboot_mode} = cold_boot; then "\
"setenv reboot_mode_android ""normal"";"\
"run storeargs;"\
"else if test ${reboot_mode} = fastboot; then "\
"setenv reboot_mode_android ""normal"";"\
"run storeargs;"\
"echo reboot_mode is fastboot. Entering fastboot;"\
"fastboot;"\
"fi;fi;fi;fi;fi;fi;"\
"\0" \
"storeboot="\
"boot_cooling;"\
"run storeargs;"\
"zbi_boot ${loadaddr} ${loadsize} kernel;"\
"echo failed to boot kernel. Falling back to fastboot;"\
"fastboot;"\
"\0"\
"factory_reset_poweroff_protect="\
"echo wipe_data=${wipe_data}; echo wipe_cache=${wipe_cache};"\
"if test ${wipe_data} = failed; then "\
"run init_display; run storeargs;"\
"if mmcinfo; then "\
"run recovery_from_sdcard;"\
"fi;"\
"if usb start 0; then "\
"run recovery_from_udisk;"\
"fi;"\
"run recovery_from_flash;"\
"fi; "\
"if test ${wipe_cache} = failed; then "\
"run init_display; run storeargs;"\
"if mmcinfo; then "\
"run recovery_from_sdcard;"\
"fi;"\
"if usb start 0; then "\
"run recovery_from_udisk;"\
"fi;"\
"run recovery_from_flash;"\
"fi; \0" \
"update="\
"fastboot; "\
"\0"\
"recovery_from_sdcard="\
"if fatload mmc 0 ${loadaddr} aml_autoscript; then autoscr ${loadaddr}; fi;"\
"if fatload mmc 0 ${loadaddr} recovery.img; then "\
"if fatload mmc 0 ${dtb_mem_addr} dtb.img; then echo sd dtb.img loaded; fi;"\
"wipeisb; "\
"setenv bootargs ${bootargs} ${fs_type};"\
"bootm ${loadaddr};fi;"\
"\0"\
"recovery_from_udisk="\
"if fatload usb 0 ${loadaddr} aml_autoscript; then autoscr ${loadaddr}; fi;"\
"if fatload usb 0 ${loadaddr} recovery.img; then "\
"if fatload usb 0 ${dtb_mem_addr} dtb.img; then echo udisk dtb.img loaded; fi;"\
"wipeisb; "\
"setenv bootargs ${bootargs} ${fs_type};"\
"bootm ${loadaddr};fi;"\
"\0"\
"recovery_from_flash="\
"zbi_boot ${loadaddr} ${loadsize} recovery;"\
"echo failed to boot recovery. Falling back to fastboot;"\
"run storeargs; fastboot;"\
"\0"\
"init_display="\
"get_rebootmode;"\
"echo reboot_mode:::: ${reboot_mode};"\
"if test ${reboot_mode} = quiescent; then "\
"setenv reboot_mode_android ""quiescent"";"\
"run storeargs;"\
"setenv bootargs ${bootargs} androidboot.quiescent=1;"\
"osd open;osd clear;"\
"else if test ${reboot_mode} = recovery_quiescent; then "\
"setenv reboot_mode_android ""quiescent"";"\
"run storeargs;"\
"setenv bootargs ${bootargs} androidboot.quiescent=1;"\
"osd open;osd clear;"\
"else "\
"setenv reboot_mode_android ""normal"";"\
"if test ${lcd_exist} = 0; then "\
/* The u-boot display driver may set the hardware to an invalid state if the */\
/* display's preferred display mode is not supported by the driver. Thus, we */\
/* only perform the minimal required initialization steps here and do not */\
/* set up the video output module on system boot. */\
"hdmitx hpd;hdmitx get_preferred_mode;hdmitx get_parse_edid;"\
"else "\
"hdmitx hpd;hdmitx get_preferred_mode;hdmitx get_parse_edid;osd dual_logo;vpp hdrpkt;"\
"fi;"\
"fi;fi;"\
"\0"\
"hwver_check="\
"kbi hwver;"\
"\0"\
"wol_init="\
"if test ${ext_ethernet} = 0; then "\
"kbi powerstate;"\
"kbi trigger wol r;"\
"if test ${wol_enable} = 1; then "\
"kbi trigger wol w 1;"\
"fi;"\
"setenv bootargs ${bootargs} wol_enable=${wol_enable};"\
"if test ${power_state} = 1; then "\
"kbi poweroff;"\
"else "\
"kbi wolreset;"\
"fi;"\
"else "\
"setenv bootargs ${bootargs} wol_enable=0;"\
"fi;"\
"\0"\
"spi_check="\
"kbi factorytest;"\
"if test ${factorytest} = 1; then "\
"if sf probe; then "\
"setenv spi_state ""1"";"\
"fi;"\
"mmc dev 0;"\
"mmc dev 1;"\
"fi;"\
"\0"\
"display_config="\
"fdt addr ${dtb_mem_addr}; "\
"if test ${lcd_exist} = 0; then "\
"fdt set /lcd status disable;"\
"fdt set /backlight status disable;"\
"else "\
"if test ${nativeui} = enable; then "\
"setenv nativeui disable;"\
"fi;"\
"fi;"\
"\0"\
"port_mode_change="\
"fdt addr ${dtb_mem_addr}; "\
"kbi portmode r;"\
"if test ${port_mode} = 0; then "\
"fdt set /usb3phy@ffe09080 portnum <1>;"\
"fdt set /pcieA@fc000000 status disable;"\
"else "\
"fdt set /usb3phy@ffe09080 portnum <0>;"\
"fdt set /pcieA@fc000000 status okay;"\
"fi;"\
"\0"\
"ext_ethernet_change="\
"fdt addr ${dtb_mem_addr}; "\
"if test ${ext_ethernet} = 1; then "\
"fdt set /ethernet@ff3f0000 internal_phy <1>;"\
"fdt set /ethernet@ff3f0000 mc_val <0x4be04>;"\
"else "\
"fdt set /ethernet@ff3f0000 internal_phy <0>;"\
"fdt set /ethernet@ff3f0000 mc_val <0x1629>;"\
"fi;"\
"\0"\
"cmdline_keys="\
"kbi usid noprint;"\
"setenv bootargs ${bootargs} androidboot.serialno=${usid};"\
"setenv serial ${usid};"\
"kbi ethmac noprint;"\
"setenv bootargs ${bootargs} mac=${eth_mac} androidboot.mac=${eth_mac};"\
"\0"\
"bcb_cmd="\
"get_avb_mode;"\
"get_valid_slot;"\
"\0"\
"burn_mac="\
"kbi init;"\
"\0"\
"upgrade_key="\
"if gpio input GPIOAO_7; then "\
"echo detect upgrade key. Enetering fastboot;"\
"run storeargs;"\
"run update;"\
"fi;"\
"\0"\
"recovery_key="\
"kbi recovery_key;"\
"if test ${boot_mode} = recovery; then "\
"run recovery_from_flash;"\
"fi;"\
"\0"\
"irremote_update="\
"if irkey 2500000 0xe31cfb04 0xb748fb04; then "\
"echo read irkey ok!; " \
"if itest ${irkey_value} == 0xe31cfb04; then " \
"echo irkey value ${irkey_value}. Enetering fastboot;"\
"run update;" \
"else if itest ${irkey_value} == 0xb748fb04; then " \
"echo irkey value ${irkey_value}. Enetering fastboot;"\
"run update;\n" \
"fi;fi;" \
"fi;\0" \
#define CONFIG_PREBOOT \
"run factory_reset_poweroff_protect;"\
"run init_display;"\
"run display_config;"\
"run wol_init;"\
"run hwver_check;"\
"run spi_check;"\
"run upgrade_key;"\
"run switch_bootmode;"
#define CONFIG_BOOTCOMMAND "run storeboot"
/*
* logo image path: device/khadas/$(proj_name)/logo_img_files/
*
* dual logo config macro
* logo1: bootup.bmp/bootup_rotate.bmp (or find env "board_defined_bootup" first in uboot)
* logo2: bootup_rotate_secondary.bmp (for portrait screen)
*/
#define CONFIG_DUAL_LOGO \
"setenv outputmode 1080p60hz;setenv display_layer osd0;"\
"setenv fb_height 1080; setenv fb_width 1920;"\
"vout output $outputmode;osd open;osd clear;imgread pic logo bootup $loadaddr;bmp display $bootup_offset;bmp scale;"\
"setenv outputmode2 panel;setenv display_layer viu2_osd0;"\
"vout2 prepare panel;osd open;osd clear;imgread pic logo bootup_rotate_secondary $loadaddr;bmp display $bootup_rotate_secondary_offset;bmp scale;vout2 output panel;"\
"\0"\
/* for portrait panel, recovery always displays on panel */
#define CONFIG_RECOVERY_DUAL_LOGO \
"setenv outputmode panel;setenv display_layer osd0;"\
"setenv fb_height 1920; setenv fb_width 1080;"\
"vout output $outputmode;osd open;osd clear;imgread pic logo bootup_rotate $loadaddr;bmp display $bootup_rotate_offset;bmp scale;"\
"setenv outputmode2 1080p60hz;setenv display_layer viu2_osd0;"\
"vout2 prepare $outputmode2;vout2 output $outputmode2;osd open;osd clear;imgread pic logo bootup $loadaddr;bmp display $bootup_offset;bmp scale;"\
"\0"\
/* buffer rotate for portrait screen */
#define CONFIG_SINGLE_LOGO \
"setenv outputmode panel;setenv display_layer osd0;"\
"setenv fb_height 1920; setenv fb_width 1080;"\
"vout output panel;osd open;osd clear;imgread pic logo bootup_rotate $loadaddr;bmp display $bootup_rotate_offset;bmp scale;"\
"\0"\
//#define CONFIG_ENV_IS_NOWHERE 1
#define CONFIG_ENV_SIZE (64*1024)
#define CONFIG_FIT 1
#define CONFIG_OF_LIBFDT 1
#define CONFIG_ANDROID_BOOT_IMAGE 1
#define CONFIG_ANDROID_IMG 1
#define CONFIG_SYS_BOOTM_LEN (64<<20) /* Increase max gunzip size*/
/* cpu */
#define CONFIG_CPU_CLK 1200 //MHz. Range: 360-2000, should be multiple of 24
/* ATTENTION */
/* DDR configs move to board/amlogic/[board]/firmware/timing.c */
#define CONFIG_NR_DRAM_BANKS 1
/* ddr functions */
#define CONFIG_DDR_FULL_TEST 0 //0:disable, 1:enable. ddr full test
#define CONFIG_CMD_DDR_D2PLL 0 //0:disable, 1:enable. d2pll cmd
#define CONFIG_CMD_DDR_TEST 0 //0:disable, 1:enable. ddrtest cmd
#define CONFIG_DDR_LOW_POWER 0 //0:disable, 1:enable. ddr clk gate for lp
#define CONFIG_DDR_ZQ_PD 0 //0:disable, 1:enable. ddr zq power down
#define CONFIG_DDR_USE_EXT_VREF 0 //0:disable, 1:enable. ddr use external vref
#define CONFIG_DDR4_TIMING_TEST 0 //0:disable, 1:enable. ddr4 timing test function
#define CONFIG_DDR_PLL_BYPASS 0 //0:disable, 1:enable. ddr pll bypass function
#define CONFIG_DDR_NONSEC_SCRAMBLE 0 //0:disable, 1:enable. non-sec region scramble function
/* storage: emmc/nand/sd */
#define CONFIG_STORE_COMPATIBLE 1
#define CONFIG_ENV_OVERWRITE
#define CONFIG_CMD_SAVEENV
/* fixme, need fix*/
#if (defined(CONFIG_ENV_IS_IN_AMLNAND) || defined(CONFIG_ENV_IS_IN_MMC)) && defined(CONFIG_STORE_COMPATIBLE)
#error env in amlnand/mmc already be compatible;
#endif
/*
* storage
* |---------|---------|
* | |
* emmc<--Compatible-->nand
* |-------|-------|
* | |
* MTD<-Exclusive->NFTL
*/
/* axg only support slc nand */
/* swither for mtd nand which is for slc only. */
/* support for mtd */
#define CONFIG_AML_MTD 1
/* support for nftl */
//#define CONFIG_AML_NAND 1
#if defined(CONFIG_AML_NAND) && defined(CONFIG_AML_MTD)
#error CONFIG_AML_NAND/CONFIG_AML_MTD can not support at the sametime;
#endif
#ifdef CONFIG_AML_MTD
/* bootlaoder is construct by bl2 and fip
* when DISCRETE_BOOTLOADER is enabled, bl2 & fip
* will not be stored continuously, and nand layout
* would be bl2|rsv|fip|normal, but not
* bl2|fip|rsv|noraml anymore
*/
#define CONFIG_DISCRETE_BOOTLOADER
#ifdef CONFIG_DISCRETE_BOOTLOADER
#define CONFIG_TPL_SIZE_PER_COPY 0x200000
#define CONFIG_TPL_COPY_NUM 4
#define CONFIG_TPL_PART_NAME "tpl"
/* for bl2, restricted by romboot */
//SKT 1024 pages only support 4 block, so 4 copies
#define CONFIG_BL2_COPY_NUM 4
#endif /* CONFIG_DISCRETE_BOOTLOADER */
#define CONFIG_CMD_NAND 1
#define CONFIG_MTD_DEVICE y
/* mtd parts of ourown.*/
#define CONFIFG_AML_MTDPART 1
/* mtd parts by env default way.*/
/*
#define MTDIDS_NAME_STR "aml_nand.0"
#define MTDIDS_DEFAULT "nand1=" MTDIDS_NAME_STR
#define MTDPARTS_DEFAULT "mtdparts=" MTDIDS_NAME_STR ":" \
"3M@8192K(logo)," \
"10M(recovery)," \
"8M(kernel)," \
"40M(rootfs)," \
"-(data)"
*/
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#define CONFIG_RBTREE
#define CONFIG_CMD_NAND_TORTURE 1
#define CONFIG_CMD_MTDPARTS 1
#define CONFIG_MTD_PARTITIONS 1
#define CONFIG_SYS_MAX_NAND_DEVICE 2
#define CONFIG_SYS_NAND_BASE_LIST {0}
#endif
/* endof CONFIG_AML_MTD */
#define CONFIG_AML_SD_EMMC 1
#ifdef CONFIG_AML_SD_EMMC
#define CONFIG_GENERIC_MMC 1
#define CONFIG_CMD_MMC 1
#define CONFIG_CMD_GPT 1
#define CONFIG_SYS_MMC_ENV_DEV 1
#define CONFIG_EMMC_DDR52_EN 0
#define CONFIG_EMMC_DDR52_CLK 35000000
#endif
#define CONFIG_PARTITIONS 1
#define CONFIG_SYS_NO_FLASH 1
//#define CONFIG_AML_GPT
/* meson SPI */
#define CONFIG_AML_SPIFC
#if defined CONFIG_AML_SPIFC || defined CONFIG_AML_SPICC
#define CONFIG_OF_SPI
#define CONFIG_DM_SPI
#define CONFIG_CMD_SPI
#endif
/* SPI flash config */
#ifdef CONFIG_AML_SPIFC
#define CONFIG_SPI_FLASH
#define CONFIG_DM_SPI_FLASH
#define CONFIG_CMD_SF
/* SPI flash surpport list */
#define CONFIG_SPI_FLASH_ATMEL
#define CONFIG_SPI_FLASH_EON
#define CONFIG_SPI_FLASH_GIGADEVICE
#define CONFIG_SPI_FLASH_MACRONIX
#define CONFIG_SPI_FLASH_SPANSION
#define CONFIG_SPI_FLASH_STMICRO
#define CONFIG_SPI_FLASH_SST
#define CONFIG_SPI_FLASH_WINBOND
#define CONFIG_SPI_FRAM_RAMTRON
#define CONFIG_SPI_M95XXX
#define CONFIG_SPI_FLASH_ESMT
/* SPI nand flash support */
#define CONFIG_SPI_NAND
#define CONFIG_BL2_SIZE (64 * 1024)
#endif
#if defined CONFIG_AML_MTD || defined CONFIG_SPI_NAND
#define CONFIG_CMD_NAND 1
#define CONFIG_MTD_DEVICE y
#define CONFIG_RBTREE
#define CONFIG_CMD_NAND_TORTURE 1
#define CONFIG_CMD_MTDPARTS 1
#define CONFIG_MTD_PARTITIONS 1
#define CONFIG_SYS_MAX_NAND_DEVICE 2
#define CONFIG_SYS_NAND_BASE_LIST {0}
#endif
/* vpu */
#define CONFIG_AML_VPU 1
//#define CONFIG_VPU_CLK_LEVEL_DFT 7
/* DISPLAY & HDMITX */
#define CONFIG_AML_HDMITX20 1
#if defined(CONFIG_AML_HDMITX20)
#define CONFIG_AML_DOLBY 1
#endif
#define CONFIG_AML_CANVAS 1
#define CONFIG_AML_VOUT 1
#define CONFIG_AML_OSD 1
#define CONFIG_AML_MINUI 1
#define CONFIG_OSD_SCALE_ENABLE 1
#define CONFIG_CMD_BMP 1
#if defined(CONFIG_AML_VOUT)
#define CONFIG_AML_CVBS 1
#endif
#define CONFIG_AML_LCD 1
#define CONFIG_AML_LCD_TABLET 1
#define CONFIG_AML_LCD_EXTERN 1
/* USB
* Enable CONFIG_MUSB_HCD for Host functionalities MSC, keyboard
* Enable CONFIG_MUSB_UDD for Device functionalities.
*/
/* #define CONFIG_MUSB_UDC 1 */
#define CONFIG_CMD_USB 1
#if defined(CONFIG_CMD_USB)
#define CONFIG_GXL_XHCI_BASE 0xff500000
#define CONFIG_GXL_USB_PHY2_BASE 0xffe09000
#define CONFIG_GXL_USB_PHY3_BASE 0xffe09080
#define CONFIG_USB_PHY_20 0xff636000
#define CONFIG_USB_PHY_21 0xff63A000
#define CONFIG_USB_STORAGE 1
#define CONFIG_USB_XHCI 1
#define CONFIG_USB_XHCI_AMLOGIC_V2 1
#define CONFIG_USB_GPIO_PWR GPIOEE(GPIOA_6)
#define CONFIG_USB_GPIO_PWR_NAME "GPIOA_6"
//#define CONFIG_USB_XHCI_AMLOGIC_USB3_V2 1
#endif //#if defined(CONFIG_CMD_USB)
#define CONFIG_TXLX_USB 1
#define CONFIG_USB_DEVICE_V2 1
#define USB_PHY2_PLL_PARAMETER_1 0x09400414
#define USB_PHY2_PLL_PARAMETER_2 0x927e0000
#define USB_PHY2_PLL_PARAMETER_3 0xAC5F69E5
#define USB_G12x_PHY_PLL_SETTING_1 (0xfe18)
#define USB_G12x_PHY_PLL_SETTING_2 (0xfff)
#define USB_G12x_PHY_PLL_SETTING_3 (0x78000)
#define USB_G12x_PHY_PLL_SETTING_4 (0xe0004)
#define USB_G12x_PHY_PLL_SETTING_5 (0xe000c)
//UBOOT fastboot config
#define CONFIG_CMD_FASTBOOT 1
#define CONFIG_FASTBOOT_FLASH_MMC_DEV 1
#define CONFIG_FASTBOOT_FLASH 1
#define CONFIG_USB_GADGET 1
#define CONFIG_USBDOWNLOAD_GADGET 1
#define CONFIG_SYS_CACHELINE_SIZE 64
#define CONFIG_FASTBOOT_MAX_DOWN_SIZE CONFIG_USB_FASTBOOT_BUF_SIZE
#define CONFIG_DEVICE_PRODUCT "galilei"
//UBOOT Facotry usb/sdcard burning config
#define CONFIG_AML_FACTORY_BURN_LOCAL_UPGRADE 1 //support factory sdcard burning
#define CONFIG_POWER_KEY_NOT_SUPPORTED_FOR_BURN 1 //There isn't power-key for factory sdcard burning
#define CONFIG_SD_BURNING_SUPPORT_UI 1 //Displaying upgrading progress bar when sdcard/udisk burning
#define CONFIG_AML_SECURITY_KEY 1
#define CONFIG_UNIFY_KEY_MANAGE 1
/* net */
#define CONFIG_CMD_NET 1
#if defined(CONFIG_CMD_NET)
#define CONFIG_DESIGNWARE_ETH 1
#define CONFIG_PHYLIB 1
#define CONFIG_NET_MULTI 1
#define CONFIG_CMD_PING 1
#define CONFIG_CMD_DHCP 1
#define CONFIG_CMD_RARP 1
#define CONFIG_HOSTNAME arm_gxbb
// #define CONFIG_RANDOM_ETHADDR 1 /* use random eth addr, or default */
#define CONFIG_ETHADDR 00:15:18:01:81:31 /* Ethernet address */
#define CONFIG_IPADDR 10.18.9.97 /* Our ip address */
#define CONFIG_GATEWAYIP 10.18.9.1 /* Our getway ip address */
#define CONFIG_SERVERIP 10.18.9.113 /* Tftp server ip address */
#define CONFIG_NETMASK 255.255.255.0
#endif /* (CONFIG_CMD_NET) */
/* other devices */
/* I2C DM driver*/
//#define CONFIG_DM_I2C
#if defined(CONFIG_DM_I2C)
#define CONFIG_SYS_I2C_MESON 1
#else
#define CONFIG_SYS_I2C_AML 1
#define CONFIG_SYS_I2C_SPEED 400000
#endif
/* PWM DM driver*/
#define CONFIG_DM_PWM
#define CONFIG_PWM_MESON
#define CONFIG_EFUSE 1
/* commands */
#define CONFIG_CMD_CACHE 1
#define CONFIG_CMD_BOOTI 1
#define CONFIG_CMD_EFUSE 1
#define CONFIG_CMD_I2C 1
#define CONFIG_CMD_MEMORY 1
#define CONFIG_CMD_FAT 1
#define CONFIG_CMD_GPIO 1
#define CONFIG_CMD_RUN
#define CONFIG_CMD_REBOOT 1
#define CONFIG_CMD_ECHO 1
#define CONFIG_CMD_JTAG 1
#define CONFIG_CMD_AUTOSCRIPT 1
#define CONFIG_CMD_MISC 1
#define CONFIG_CMD_PLLTEST 1
/*file system*/
#define CONFIG_DOS_PARTITION 1
#define CONFIG_EFI_PARTITION 1
#define CONFIG_AML_PARTITION 1
#define CONFIG_MMC 1
#define CONFIG_FS_FAT 1
#define CONFIG_FS_EXT4 1
#define CONFIG_LZO 1
/* Cache Definitions */
//#define CONFIG_SYS_DCACHE_OFF
//#define CONFIG_SYS_ICACHE_OFF
/* other functions */
#define CONFIG_NEED_BL301 1
#define CONFIG_NEED_BL32 1
#define CONFIG_CMD_RSVMEM 1
#define CONFIG_FIP_IMG_SUPPORT 1
#define CONFIG_BOOTDELAY 1 //delay 1s
#define CONFIG_SYS_LONGHELP 1
#define CONFIG_CMD_MISC 1
#define CONFIG_CMD_ITEST 1
#define CONFIG_CMD_CPU_TEMP 1
#define CONFIG_SYS_MEM_TOP_HIDE 0x08000000 //hide 128MB for kernel reserve
#define CONFIG_CMD_LOADB 1
/* debug mode defines */
//#define CONFIG_DEBUG_MODE 1
#ifdef CONFIG_DEBUG_MODE
#define CONFIG_DDR_CLK_DEBUG 636
#define CONFIG_CPU_CLK_DEBUG 600
#endif
//support secure boot
#define CONFIG_AML_SECURE_UBOOT 1
#if defined(CONFIG_AML_SECURE_UBOOT)
//for SRAM size limitation just disable NAND
//as the socket board default has no NAND
//#undef CONFIG_AML_NAND
//unify build for generate encrypted bootloader "u-boot.bin.encrypt"
#define CONFIG_AML_CRYPTO_UBOOT 1
//unify build for generate encrypted kernel image
//SRC : "board/amlogic/(board)/boot.img"
//DST : "fip/boot.img.encrypt"
//#define CONFIG_AML_CRYPTO_IMG 1
#endif //CONFIG_AML_SECURE_UBOOT
#define CONFIG_SECURE_STORAGE 1
//build with uboot auto test
//#define CONFIG_AML_UBOOT_AUTO_TEST 1
//board customer ID
//#define CONFIG_CUSTOMER_ID (0x6472616F624C4D41)
#if defined(CONFIG_CUSTOMER_ID)
#undef CONFIG_AML_CUSTOMER_ID
#define CONFIG_AML_CUSTOMER_ID CONFIG_CUSTOMER_ID
#endif
/* Choose One of Ethernet Type */
#undef CONFIG_ETHERNET_NONE
#define CONFIG_HIGH_TEMP_COOL 90
#define CONFIG_EFI_LOADER 1
#define CONFIG_NETDEVICES 1
#define CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN 0
#define CONFIG_EFI_PLATFORM_LANG_CODES "en-US"
#define CONFIG_EFI_VAR_BUF_SIZE 16384
#define CONFIG_EFI_TCG2_PROTOCOL_MEASURE_DTB 0
#define CONFIG_TEXT_BASE CONFIG_SYS_TEXT_BASE
// Default value defined by upstream. Capsule feature is not used.
#define CONFIG_EFI_CAPSULE_MAX 15
// Stack size used by u-boot code. EFI loader code uses this to compute the
// memory range of u-boot code/services. In the context of UEFI, U-boot memory
// map is roughly like:
//
// ram top +----------+
// | u-boot |
// | malloc |
// | stack |
// ~ UEFI ~
// 0 +----------+
//
// The value needs to be a safe upper bound of the stack used. Otherwise u-boot
// code may clobber UEFI memory.
#define CONFIG_STACK_SIZE (64 * 1024 * 1024)
#define CONFIG_EFI_DEVICE_PATH_TO_TEXT 1
// #define SHA256_SUM_LEN 32
#define SHA384_SUM_LEN 48
#define SHA512_SUM_LEN 64
// Number of packets processed together for EFI_SIMPLE_NETWORK_PROTOCOL
#define ETH_PACKETS_BATCH_RECV 32
#endif