1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 
5 #include "amp_boot.h"
6 
7 static amp_boot_cmd_t g_amp_boot_cmd[] = {
8     [AMP_BOOT_CMD_EXIT] = {
9         "cmd_exit"
10     },
11     [AMP_BOOT_CMD_QUERY_IMEI] = {
12         "cmd_query_imei"
13     },
14     [AMP_BOOT_CMD_QUERY_SEC] = {
15         "cmd_query_sec"
16     },
17     [AMP_BOOT_CMD_FLASH_SEC] = {
18         "cmd_flash_sec"
19     },
20     [AMP_BOOT_CMD_FLASH_JS] = {
21         "cmd_flash_js"
22     },
23     [AMP_BOOT_CMD_FLASH_KV] = {
24         "cmd_flash_kv"
25     }
26 };
27 
amp_boot_get_cmd(int timeout_ms)28 int amp_boot_get_cmd(int timeout_ms)
29 {
30     int32_t cmd_id    = 0;
31     int32_t recv_len  = 0;
32     char cmd_buff[32] = {0};
33 
34     recv_len = amp_boot_uart_recv_line(cmd_buff, 32, timeout_ms);
35     if (recv_len <= 0) {
36         return AMP_BOOT_CMD_NULL;
37     }
38     for (cmd_id = 0; cmd_id < AMP_BOOT_CMD_MAX; cmd_id++) {
39         if(recv_len != strlen(g_amp_boot_cmd[cmd_id].cmd_str)) {
40             continue;
41         }
42         if (strncmp(cmd_buff, g_amp_boot_cmd[cmd_id].cmd_str, recv_len) == 0) {
43             return cmd_id;
44         }
45     }
46     return AMP_BOOT_CMD_ERROR;
47 }
48 
amp_boot_cmd_begin(int cmd)49 void amp_boot_cmd_begin(int cmd)
50 {
51     amp_boot_uart_send_str(">>>>");
52     amp_boot_uart_send_str(g_amp_boot_cmd[cmd].cmd_str);
53 }
54 
amp_boot_cmd_end(int cmd)55 void amp_boot_cmd_end(int cmd)
56 {
57     amp_boot_uart_send_str("<<<<");
58     amp_boot_uart_send_str(g_amp_boot_cmd[cmd].cmd_str);
59 }