static int get_device_boot_flag(void) { int ret=0; if (1) {//nand and emmc //try eMMC init device_boot_flag = EMMC_BOOT_FLAG; ret = emmc_init(); if (!ret) { printf("XXXXXXX======enter EMMC boot======XXXXXX\n"); return 0; } printf("EMMC init failed\n"); #if defined(CONFIG_AML_NAND) //try nand first device_boot_flag = NAND_BOOT_FLAG; ret = amlnf_init(0x5); if (!ret) { printf("XXXXXXX======enter NAND boot======XXXXXX\n"); return 0; } printf("NAND init failed\n"); #endif //CONFIG_AML_NAND } printf("device_boot_flag=%d\n",device_boot_flag); return -1; }
int board_init(void) { //Please keep CONFIG_AML_V2_FACTORY_BURN at first place of board_init #ifdef CONFIG_AML_V2_FACTORY_BURN aml_try_factory_usb_burning(0, gd->bd); #endif// #ifdef CONFIG_AML_V2_FACTORY_BURN /*for LED*/ //clear pinmux clrbits_le32(AO_RTI_PIN_MUX_REG, ((1<<3)|(1<<4))); clrbits_le32(AO_RTI_PIN_MUX_REG2, ((1<<1)|(1<<31))); //set output mode clrbits_le32(P_AO_GPIO_O_EN_N, (1<<13)); //set output 1 setbits_le32(P_AO_GPIO_O_EN_N, (1<<29)); /*Power on GPIOAO_2 for VCC_5V*/ clrbits_le32(P_AO_GPIO_O_EN_N, ((1<<2)|(1<<18))); #ifdef CONFIG_USB_DWC_OTG_HCD board_usb_init(&g_usb_config_gx_skt_a,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_gx_skt_b,BOARD_USB_MODE_HOST); board_usb_init(&g_usb_config_gx_skt_h,BOARD_USB_MODE_CHARGER); #endif /*CONFIG_USB_DWC_OTG_HCD*/ canvas_init(); #ifdef CONFIG_AML_HDMITX20 hdmi_tx_set_hdmi_5v(); hdmi_tx_init(); #endif #ifdef CONFIG_AML_NAND extern int amlnf_init(unsigned char flag); amlnf_init(0); #endif return 0; }