ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/uboot/common/cmd_asr_flag.c b/marvell/uboot/common/cmd_asr_flag.c
new file mode 100644
index 0000000..0ab492b
--- /dev/null
+++ b/marvell/uboot/common/cmd_asr_flag.c
@@ -0,0 +1,77 @@
+#include <common.h>

+#include <command.h>

+#include <asr_flag.h>

+

+//#define CMD_ASR_FLAG_CFG_PROD

+

+int do_asr_flag (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])

+{

+	u32 len;

+	int i;

+	u32 *ptr;

+	struct asr_firmware_flag *p_asr_flag = get_asr_flag();

+

+	if (strcmp (argv[1], "ota") == 0) {

+		p_asr_flag->upgrade_flag = 1;

+		p_asr_flag->upgrade_method = simple_strtoul(argv[2], NULL, 10);

+		p_asr_flag->fbf_flash_address = simple_strtoul(argv[3], NULL, 16);

+		p_asr_flag->fbf_file_size = simple_strtoul(argv[4], NULL, 16);

+		if (p_asr_flag->upgrade_method == 4 /*dfota/sdfota*/) {

+			p_asr_flag->dfota_n_of_images = 0xFFFFFFFF;

+			p_asr_flag->dfota_need_copy_only = 0;

+			p_asr_flag->dfota_conpy_len = 0;

+			memset(&p_asr_flag->SDfotaInfo, 0, sizeof(SDfotaState));

+			printf("dfota or sdfota triggered\n");

+		} else {

+			printf("fota triggered\n");

+		}

+		asr_flag_update();

+		return 0;

+	} 

+

+	if (strcmp (argv[1], "nocp") == 0) {

+		p_asr_flag->nocp[0] = 0x50434F4E;

+		p_asr_flag->nocp[1] = simple_strtoul(argv[2], NULL, 10);

+		printf("set nocp mode as %d\n", p_asr_flag->nocp[1]);

+		asr_flag_update();

+		return 0;

+	} 

+

+	if (strcmp (argv[1], "dump") == 0) {

+		len = (sizeof(struct asr_firmware_flag)) >> 2;

+		ptr = (u32 *)p_asr_flag;

+		printf("ASR Flag dump:\n");

+		for (i = 0; i < len; i++) {

+			printf("0x%08x ", ptr[i]);

+			if((i + 1)%4 == 0)

+				printf("\n");

+		}

+		printf("\n");

+		return 0;

+	}

+

+#ifdef CMD_ASR_FLAG_CFG_PROD

+	if(strcmp (argv[1], "prod") == 0) {

+		p_asr_flag->production_mode_flag = simple_strtoul(argv[2], NULL, 10);

+		printf("set production mode as %d\n", p_asr_flag->production_mode_flag);

+		printf("need to reboot to take affect\n");

+		asr_flag_update();

+		return 0;

+	}

+#endif

+

+	printf("run 'help asr_flag' to check usage\n");

+

+	return 0;

+}

+

+U_BOOT_CMD(

+	asr_flag,	5,	1,	do_asr_flag,

+	"ASR flag modify command",

+	"ota <method> <fbf_addr> <fbf_len> - trigger an OTA process\n"

+	"asr_flag nocp <mode> - configure nocp mode\n"

+	#ifdef CMD_ASR_FLAG_CFG_PROD

+	"asr_flag prod <mode> - configure production mode\n"

+	#endif

+	"asr_flag dump - dump asr flag content\n"

+);
\ No newline at end of file