默认的公版参考设计有两种供电方式,5V和12V供电。BootLoader中代码默认是5v供电的配置。
在5V供电配置下,GPIOH_8拉高关闭VCC 5v(给USB和HDMI的电源),拉低打开5V。
在12V供电设计下,GPIOH_8拉低关闭VCC 5v(给USB和HDMI的电源),拉高打开5V。
所以我们的板子烧录公版默认的软件,USB,HDMI 没电。需要将GPIOH_8倒换过来。
改动如下:
bootloader\uboot-repo\bl33\board\amlogic\g12a_u212_v1\firmware\scp_task\pwr_ctrl.c
static void power_off_at_24M(unsigned int suspend_from)
{
/*set gpioH_8 high to power off vcc 5v*/
writel(readl(PREG_PAD_GPIO3_EN_N) | (1 << 8), PREG_PAD_GPIO3_EN_N);
writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);
/*set test_n low to power off vcck*/
writel(readl(AO_GPIO_O) & (~(1 << 31)), AO_GPIO_O);
writel(readl(AO_GPIO_O_EN_N) & (~(1 << 31)), AO_GPIO_O_EN_N);
writel(readl(AO_RTI_PIN_MUX_REG1) & (~(0xf << 28)), AO_RTI_PIN_MUX_REG1);
/*step down ee voltage*/
set_vddee_voltage(CONFIG_VDDEE_SLEEP_VOLTAGE);
}
static void power_on_at_24M(unsigned int suspend_from)
{
/*step up ee voltage*/
set_vddee_voltage(CONFIG_VDDEE_INIT_VOLTAGE);
/*set test_n low to power on vcck*/
writel(readl(AO_GPIO_O) | (1 << 31), AO_GPIO_O);
writel(readl(AO_GPIO_O_EN_N) & (~(1 << 31)), AO_GPIO_O_EN_N);
writel(readl(AO_RTI_PIN_MUX_REG1) & (~(0xf << 28)), AO_RTI_PIN_MUX_REG1);
_udelay(100);
/*set gpioH_8 low to power on vcc 5v*/
writel(readl(PREG_PAD_GPIO3_EN_N) & (~(1 << 8)), PREG_PAD_GPIO3_EN_N);
writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);
_udelay(10000);
}
\bl33\board\amlogic\g12a_u212_v1\g12a_u212_v1.c
int board_init(void)
{
//Please keep CONFIG_AML_V2_FACTORY_BURN at first place of board_init
//As NOT NEED other board init If USB BOOT MODE
#ifdef CONFIG_AML_V2_FACTORY_BURN
if ((0x1b8ec003 != readl(P_PREG_STICKY_REG2)) && (0x1b8ec004 != readl(P_PREG_STICKY_REG2))) {
aml_try_factory_usb_burning(0, gd->bd);
}
#endif// #ifdef CONFIG_AML_V2_FACTORY_BURN
//set GPIOH_8 high to enable vcc 5v
writel(readl(PREG_PAD_GPIO3_EN_N) | (1 << 8), PREG_PAD_GPIO3_EN_N);
writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);
#ifdef CONFIG_USB_XHCI_AMLOGIC_V2
board_usb_pll_disable(&g_usb_config_GXL_skt);
board_usb_init(&g_usb_config_GXL_skt,BOARD_USB_MODE_HOST);
#endif /*CONFIG_USB_XHCI_AMLOGIC*/
#if 0
aml_pwm_cal_init(0);
#endif//
#ifdef CONFIG_AML_NAND
extern int amlnf_init(unsigned char flag);
amlnf_init(0);
然后命令行下,使用TF卡烧录Uboot(不能使用USB升级,因为这种情况下,USB,HDMI都没有电无法工作):
sdc_update bootloader u-boot.bin