Example #1
0
static void display_feedback(enum boot_action image)
{
//	uint16_t *image_start;
//	uint16_t *image_end;

	lcd_bl_set_brightness(150);
 	lcd_console_setpos(53, 25);
	lcd_console_setcolor(CONSOLE_COLOR_CYAN, CONSOLE_COLOR_BLACK);

	switch(image) {

	case BOOT_EMMC_NORMAL:
		lcd_puts(" (INT) LOADING BOOT ...     ");
		break;

	case BOOT_EMMC_RECOVERY:
		lcd_puts(" (INT) LOADING RECOVERY ... ");
		break;

	case BOOT_EMMC_ALTBOOT:
		lcd_puts(" (INT) LOADING ALTBOOT ...  ");
		break;

	case BOOT_SD_RECOVERY:
		lcd_puts(" (SDC) LOADING RECOVERY ...  ");
		break;

	case BOOT_SD_CM7:
		lcd_puts(" (SDC) LOADING CM7 ...       ");
		break;

	case BOOT_SD_CM9:
		lcd_puts(" (SDC) LOADING CM9 ...       ");
		break;

	case BOOT_SD_ALTBOOT1:
		lcd_puts(" (SDC) LOADING ALTBOOT1 ...  ");
		break;

	case BOOT_SD_ALTBOOT2:
		lcd_puts(" (SDC) LOADING ALTBOOT2 ...  ");
		break;

	case BOOT_SD_ALTBOOT3:
		lcd_puts(" (SDC) LOADING ALTBOOT3 ...  ");
		break;

	case BOOT_FASTBOOT:
		lcd_puts(" FASTBOOT HAS STARTED, PRESS POWER TO CANCEL ");
		break;
	default:
		lcd_puts(" LOADING ... ");
		break;
	}

	//lcd_display_image(image_start, image_end);
}
Example #2
0
static void display_feedback(enum boot_action image)
{
//	uint16_t *image_start;
//	uint16_t *image_end;

	lcd_bl_set_brightness(140);
 	lcd_console_setpos(54, 25);
	lcd_console_setcolor(CONSOLE_COLOR_CYAN, CONSOLE_COLOR_BLACK);

	switch(image) {

	case BOOT_EMMC_NORMAL:
		lcd_puts("    Loading (EMMC)...");
		break;
	case BOOT_SD_RECOVERY:
		lcd_puts("Loading Recovery from SD...");
		break;
	case BOOT_SD_ALTBOOT:
		lcd_puts(" Loading AltBoot from SD...");
		break;
	case BOOT_SD_NORMAL:
		lcd_puts("     Loading (SD)...");
		break;
	case BOOT_EMMC_RECOVERY:
		lcd_puts("Loading Recovery from EMMC...");
		break;
	case BOOT_EMMC_ALTBOOT:
		lcd_puts(" Loading AltBoot from EMMC...");
		break;
	case BOOT_FASTBOOT:
	 	lcd_console_setpos(54, 13);
		lcd_puts(" - fastboot has started, press POWER to cancel -");
		break;
	default:
		lcd_puts("        Loading...");
		break;
	}

	//lcd_display_image(image_start, image_end);
}
static void display_image(enum image_t image, uint16_t soc)
{
	uint16_t *image_start;
	uint16_t *image_end;

	if (soc < SOC_THRESH_DISPLAY_MIN) {
		lcd_disable();
		lcd_is_on = 0;
		return;
	}

	switch(image) {
	case IMAGE_CHARGE_NEEDED:
		image_start = (uint16_t *) _binary_connect_charge_rle_start;
		image_end = (uint16_t *) _binary_connect_charge_rle_end;
		break;
	case IMAGE_CHARGING:
		image_start = (uint16_t *) _binary_lowbatt_charge_rle_start;
		image_end = (uint16_t *) _binary_lowbatt_charge_rle_end;
		break;
	case IMAGE_BOOT:
	default:
		image_start = (uint16_t *) _binary_o_nookcolor_logo_large_rle_start;
		image_end = (uint16_t *) _binary_o_nookcolor_logo_large_rle_end;
		break;
	}

	if (!lcd_is_on) {
		spi_init();
		lcd_enable();
		lcd_is_on = 1;
	}

	if (image == IMAGE_BOOT) {
		lcd_bl_set_brightness(255);
	}

	lcd_display_image(image_start, image_end);
}
Example #4
0
int determine_boot_type(void)
{
	DECLARE_GLOBAL_DATA_PTR;
	uint8_t charging;
	uint16_t batt_lvl;
	extern uint16_t check_charging(uint8_t* enabling);
	unsigned long bootcount = bootcount_load();
	char s [5];

	setenv("bootlimit", stringify(ACCLAIM_BOOTLIMIT));
	setenv("altbootcmd", "mmcinit 1; booti mmc1 recovery");
	batt_lvl = check_charging(&charging);
	lcd_console_init();
	// give subtle indicator if uboot is booting from emmc or sd

	if(charging)
		lcd_bl_set_brightness(35); //batt very low, let it charge
	lcd_console_setpos(0, 1); //indent slightly
	lcd_console_setcolor(CONSOLE_COLOR_GRAY, CONSOLE_COLOR_BLACK);
	if (running_from_sd()) {
		lcd_puts("SD");
		} else {
		lcd_puts("EMMC"); }
	sprintf(s, " %u", bootcount);
	lcd_puts(s);
	extern const char* board_rev_string(unsigned long btype);
	lcd_console_setpos(1, 1);
	lcd_printf("board rev: %s | %s", board_rev_string(gd->bd->bi_board_revision), (get_sdram_size() == SZ_512M?"512MB/8GB":"1GB/16GB"));
	lcd_console_setpos(2, 1);
	lcd_console_setcolor((batt_lvl < 30?(batt_lvl <= 10?CONSOLE_COLOR_RED:CONSOLE_COLOR_ORANGE):CONSOLE_COLOR_GREEN), CONSOLE_COLOR_BLACK);
	lcd_printf("batt level: %d\n charging %s", batt_lvl, (charging?"ENABLED":"DISABLED"));


	int action = get_boot_action();

	while(1){
		if(charging)
			lcd_bl_set_brightness(35); //batt very low, let it charge
		else
			lcd_bl_set_brightness(100); //batt very low, let it charge
		switch(action) {
		case BOOT_SD_NORMAL:
			setenv ("bootcmd", "setenv setbootargs setenv bootargs ${sdbootargs}; run setbootargs; mmcinit 0; fatload mmc 0:1 0x81000000 boot.img; booti 0x81000000");
			setenv ("altbootcmd", "run bootcmd"); // for sd boot altbootcmd is the same as bootcmd
			display_feedback(BOOT_SD_NORMAL);
			return 0;

        case BOOT_SD_RECOVERY:
            setenv ("bootcmd", "setenv setbootargs setenv bootargs ${sdbootargs}; run setbootargs; mmcinit 0; fatload mmc 0:1 0x81000000 recovery.img; booti 0x81000000");
            setenv ("altbootcmd", "run bootcmd"); // for sd boot altbootcmd is the same as bootcmd
			display_feedback(BOOT_SD_RECOVERY);
            return 0;

		case BOOT_SD_ALTBOOT:
			setenv ("bootcmd", "setenv setbootargs setenv bootargs ${sdbootargs}; run setbootargs; mmcinit 0; fatload mmc 0:1 0x81000000 altboot.img; booti 0x81000000");
			setenv ("altbootcmd", "run bootcmd"); // for sd boot altbootcmd is the same as bootcmd
			display_feedback(BOOT_SD_ALTBOOT);
			return 0;

	        //actually, boot from boot+512K -- thanks bauwks!
		case BOOT_EMMC_NORMAL:
			setenv("bootcmd", "mmcinit 1; booti mmc1 boot 0x80000");
			display_feedback(BOOT_EMMC_NORMAL);
			return 0;

		//actually, boot from recovery+512K -- thanks bauwks!
		case BOOT_EMMC_RECOVERY:
			setenv("bootcmd", "mmcinit 1; booti mmc1 recovery 0x80000");
			display_feedback(BOOT_EMMC_RECOVERY);
			return 0;

		case BOOT_EMMC_ALTBOOT:  // no 512K offset, this is just a file.
			setenv ("bootcmd", "setenv setbootargs setenv bootargs ${emmcbootargs}; run setbootargs; mmcinit 1; fatload mmc 1:5 0x81000000 altboot.img; booti 0x81000000");
			setenv ("altbootcmd", "run bootcmd"); // for emmc altboot altbootcmd is the same as bootcmd
			display_feedback(BOOT_EMMC_ALTBOOT);
			return 0;

		case BOOT_FASTBOOT:
			display_feedback(BOOT_FASTBOOT);
            run_command("fastboot", 0);
			break;
		case INVALID:
		default:
			printf("Aborting boot!\n");
			return 1;
		}
		action = do_menu();
	}
}