blob: 62fb29b301f494180e177688e186cd3411586f84 [file] [log] [blame]
/*
* board/amlogic/configs/g12a_estelle_bx.h
*
* Copyright (C) 2015 Amlogic, 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 __G12A_S905D2_ESTELLE_BX_V1_H__
#define __G12A_S905D2_ESTELLE_BX_V1_H__
#include <asm/arch/cpu.h>
#define CONFIG_SYS_GENERIC_BOARD 1
#ifndef CONFIG_AML_MESON
#warning "include warning"
#endif
#define CONFIG_ABR_WEAR_LEVELING
#define CONFIG_ZIRCON_BOOT_IMAGE
#define CONFIG_ZIRCON_VBOOT
#define CONFIG_LIBAVB
#define CONFIG_USE_ROLLBACK_IN_FUSE
#define CONFIG_WDT
#define CONFIG_USB_GADGET
#define CONFIG_CMD_FASTBOOT
#define CONFIG_SYS_CACHELINE_SIZE 64
#define CONFIG_FASTBOOT_FLASH_NAND_DEV
#define CONFIG_FASTBOOT_FLASH
#define CONFIG_DEVICE_PRODUCT "Google Home Hub"
/* Timeout of 0 will only check any buffered keys, but will then continue
immediately. This turns out to be sufficient for us, since a user can hit
the fastboot key any time prior to this during boot and we'll still see it
when flushing the buffer. */
#define CONFIG_FORCE_FASTBOOT_TIMEOUT_MS 0
#define CONFIG_G_DNL_MANUFACTURER "Google"
#define CONFIG_G_DNL_VENDOR_NUM 0x18d1
#define CONFIG_G_DNL_PRODUCT_NUM 0x4ee0
/* DRAM Layout
* 0x00000000 -----------------------------------------
* RSV (16 MiB) (Usable by kernel)
* 0x01000000 -----------------------------------------
* Device Tree (512 KiB) (Unused)
* 0x01080000 -----------------------------------------
* Default Kernel Location (63.5 MiB)
* 0x05000000 -----------------------------------------
* BL31/32 Reserved (35 MiB)
* 0x07300000 -----------------------------------------
* LastKmsg (Unused)
* 0x07400000 -----------------------------------------
* Fastboot Buffer Location (512 MiB)
* 0x27400000 -----------------------------------------
* Unused (512 MiB)
* 0x47400000 -----------------------------------------
* U-Boot Code + Stack + Heap (268 MiB)
* 0x58000000 -----------------------------------------
* RSV (128 MiB)
* - board cfg file?
* 0x5f7fe000 - 0x5f800000 (8 KiB)
* - NVRAM region
* 0x5f800000 - 0x60000000 (8 MiB)
* - marked as reserved to zircon
* 0x60000000 -----------------------------------------
*/
#define CONFIG_DEFAULT_KERNEL_ADDR 0x01080000
#define CONFIG_DEFAULT_KERNEL_SIZE 0x03f80000
#define CONFIG_USB_FASTBOOT_BUF_ADDR 0x07400000
#define CONFIG_USB_FASTBOOT_BUF_SIZE 0x20000000
/*
* platform power init config
*/
#define CONFIG_PLATFORM_POWER_INIT
#define CONFIG_VCCK_INIT_VOLTAGE 800 // VCCK power up voltage
#define CONFIG_VDDEE_INIT_VOLTAGE 840 // VDDEE power up voltage
#define CONFIG_VDDEE_SLEEP_VOLTAGE 731 // VDDEE suspend voltage
/* SMP Definitinos */
#define CPU_RELEASE_ADDR secondary_boot_func
/* Bootloader Control Block function
That is used for recovery and the bootloader to talk to each other
*/
#define CONFIG_BOOTLOADER_CONTROL_BLOCK
/* 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 0xef10fe01 //amlogic tv 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 0xFFFFFFFF
#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 \
"loadaddr="__stringify(CONFIG_DEFAULT_KERNEL_ADDR)"\0" \
"loadsize="__stringify(CONFIG_DEFAULT_KERNEL_SIZE)"\0" \
"outputmode=panel\0" \
"hdmimode=1080p60hz\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=0x5f800000\0" \
"fb_width=608\0" \
"fb_height=1024\0" \
"usb_burning=update 1000\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=enforcing\0" \
"storeargs=" \
"get_rebootmode;" \
"setenv bootargs " \
"logo=${display_layer},loaded,${fb_addr} " \
"vout=${outputmode},enable " \
"panel_type=${panel_type} " \
"test_mode=${test_mode} " \
"androidboot.reboot_mode=${reboot_mode} " \
"ramoops.mem_address=0x20000000 ramoops.mem_size=0x100000 ramoops.record_size=0x8000 ramoops.console_size=0x8000 " \
"hw_id=${hw_id};" \
"setenv bootargs ${bootargs} " \
"androidboot.hardware="__stringify(BOARD_NAME)";" \
"\0" \
"switch_bootmode=" \
"get_rebootmode;" \
"if test ${reboot_mode} = factory_reset; then " \
"run recovery_from_flash;" \
"else if test ${reboot_mode} = update; then " \
"run update;" \
"else if test ${reboot_mode} = cold_boot; then " \
/* "run try_auto_burn;" */ \
"else if test ${reboot_mode} = fastboot; then " \
"fastboot;" \
"fi;fi;fi;fi;" \
"\0" \
"storeboot=" \
/* zvb_load_and_boot doesn't return on success */ \
"zvb_load_and_boot kernel ${loadaddr} ${loadsize};" \
"run update;" \
"\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 get_hw_id;" \
"run storeargs;" \
"run recovery_from_flash;" \
"fi;" \
"if test ${wipe_cache} = failed; then " \
"run init_display;" \
"run get_hw_id;" \
"run storeargs;" \
"run recovery_from_flash;" \
"fi;" \
"\0" \
"update=" \
"run usb_burning;" \
"run recovery_from_flash;" \
"\0" \
/* load and boot an image from 'recovery' partition to restore the device. */ \
"recovery_from_flash=" \
"zvb_load_and_boot recovery ${loadaddr} ${loadsize};" \
"\0" \
"reset_ddic=" \
"gpio clear GPIOH_6" \
"\0" \
"detect_panel=" \
"if gpio input GPIOH_5; then " \
"setenv panel_type lcd_3;" \
"else " \
"setenv panel_type lcd_4;" \
"fi;" \
"\0" \
"start_backlight=" \
"if ubifsload 0x8000000 bl_calibration.txt; then " \
"configure_backlight 0x8000000;" \
"else " \
"configure_backlight;" \
"fi;" \
"\0"\
"init_display=" \
"run reset_ddic;" \
"check_fdr_for_backlight_brightness;" \
"run detect_panel;" \
"osd open;" \
"osd clear;" \
"osd setcolor 0x5b0d5b0d;" \
"ubi part factory;" \
"ubifsmount ubi0:factory;" \
/* do this sequentially so we could reuse the address and do
* not need to know the size of the images */ \
"mw 0x8000000 0 1;" \
"ubifsload 0x8000000 logo.bmp;" \
"bmp display 0x8000000;" \
"mw 0x8000000 0 1;" \
"ubifsload 0x8000000 corner_BL.bmp;" \
"bmp display 0x8000000 0 1008;" \
"mw 0x8000000 0 1;" \
"ubifsload 0x8000000 corner_BR.bmp;" \
"bmp display 0x8000000 592 1008;" \
"mw 0x8000000 0 1;" \
"ubifsload 0x8000000 corner_TL.bmp;" \
"bmp display 0x8000000 0 0;" \
"mw 0x8000000 0 1;" \
"ubifsload 0x8000000 corner_TR.bmp;" \
"bmp display 0x8000000 592 0;" \
"bmp scale;" \
"vout output ${outputmode};" \
"run start_backlight;" \
"ubifsumount;" \
"\0" \
"get_hw_id=" \
"get_estelle_hw_id;" \
"\0" \
"upgrade_key=" \
"setenv boot_external_image 0;" \
"if gpio input GPIOZ_6; then " \
"echo detect VOL_DN pressed;" \
"run recovery_from_flash;" \
"else " \
"if gpio input GPIOZ_5; then " \
"echo detect VOL_UP pressed;" \
"if gpio input GPIOZ_2; then " \
"echo MUTE not engaged, starting fastboot;" \
"fastboot;" \
"else " \
"echo MUTE engaged, skipping fastboot;" \
"fi;" \
"else " \
"echo upgrade key not pressed;" \
"fi;" \
"fi;" \
"if force_fastboot_mode; then " \
"echo fastboot mode was requested;" \
"fastboot;" \
"fi;" \
"\0" \
#define CONFIG_PREBOOT \
"run factory_reset_poweroff_protect;" \
"run init_display;" \
"run get_hw_id;" \
"run storeargs;" \
"run upgrade_key;" \
"run switch_bootmode;"
#define CONFIG_BOOTCOMMAND "run storeboot;"
#define CONFIG_ENV_IS_NOWHERE 1
#define CONFIG_SHORT_RSV 1
#define RESERVED_BLOCK_NUM 8
#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
/* 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
#define CONFIG_NOT_SKIP_BAD_BLOCK 1
/* support nand fts*/
#define CONFIG_NAND_FTS 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 */
#define CONFIG_BL2_COPY_NUM 8
#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
#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_CANVAS 1 // required for showing the logo during uboot
#define CONFIG_AML_VOUT 1
#define CONFIG_AML_OSD 1
#define CONFIG_OSD_SCALE_ENABLE 1
#define CONFIG_CMD_BMP 1
#define CONFIG_AML_LCD 1
#define CONFIG_AML_LCD_TABLET 1
#define CONFIG_AML_LCD_EXTERN 1
#define CONFIG_AML_LCD_EXTERN_MIPI_TV070WSM 1
#define CONFIG_AML_LCD_EXTERN_MIPI_P070ACB 1
#define CONFIG_AML_LCD_EXTERN_MIPI_TV070WSM_FT 1
#define CONFIG_AML_LCD_EXTERN_MIPI_P070ACB_FT 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(GPIOH_6)
#define CONFIG_USB_GPIO_PWR_NAME "GPIOH_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 0xAC5F49E5
//UBOOT Facotry usb/sdcard burning config
#ifndef CONFIG_AML_DISABLE_UPDATE_MODE
#define CONFIG_AML_V2_FACTORY_BURN 1 //support facotry usb burning
#endif
#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
/* other devices */
#define CONFIG_EFUSE 1
#define CONFIG_SYS_I2C_AML 1
#define CONFIG_SYS_I2C_AML_HAS_MASK 1
#define CONFIG_SYS_I2C_SPEED 400000
#define CONFIG_I2C_MULTI_BUS 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_FACTORY_BOOT 1
#define CONFIG_CMD_ECHO 1
#define CONFIG_CMD_AUTOSCRIPT 1
#define CONFIG_CMD_MISC 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_FIP_IMG_SUPPORT 1
#define CONFIG_BOOTDELAY -2 // autoboot with no delay and not check for abort
#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
//#define CONFIG_MULTI_DTB 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
// Check size of boot image before load. See doc:
// https://docs.google.com/document/d/1YrW2yBzCbMrQfBR2n56aUPZPg_0waxveOH-E0NU07OM/edit?usp=sharing
#define CONFIG_IMG_SECURE_CHECK_SZ 0x3f00000
//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
#endif