搜索

430

主题

515

帖子

2118

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2118
QQ
发表于 2020-9-17 20:43:36 4633 浏览 0 回复

MT6580/MT6739如何在同一个image实现单双卡兼容?


[DESCRIPTION]
有些时候为了应对不同市场的需求做了不同的硬件设计,但是又希望使用同一套软件镜像自动适应。
此FAQ即是解决单双卡兼容的问题,即同一包软件根据不同的硬件ID自动套用单卡或者双卡的设定。
  

[SOLUTION]
首先前提条件是硬件上做了可以区分不同设计的方案,常规的做法有:

    透过GPIO电平的方式区分,1个GPIO有3种状态,高,低,悬空,2个GPIO就可以区分出9种不同的硬件。
    透过ADC读取不同的电压值,更换不同的分压电阻就可以设定任意多种不同的硬件设计。

区分出不同的硬件版本后可以实现并调用下面的函数来设定支援SIM卡的数量。
  1. int set_ro_boot_sim_count(void * fdt, unsigned int sim_count) {
  2.      int nodeoffset;
  3.      char value[2];
  4.      nodeoffset = fdt_path_offset(fdt, "/firmware/android");
  5.      if(nodeoffset < 0) {
  6.          printf("ERROR: Can not find /firmware/android device tree node!\n");
  7.          return -1;
  8.      }
  9.      if(sim_count > 2 && sim_count <= 0) {
  10.          printf("ERROR: can not support %d sim.\n", sim_count);
  11.          return -2;
  12.      }
  13.      snprintf(value, 1, "%d", sim_count);
  14.      fdt_setprop_string(fdt, nodeoffset, "opt_sim_count", value);
  15.      // the below code is for the version newer than Android O. E.g. P version
  16.      if(sim_count == 1) {
  17.          fdt_setprop_string(fdt, nodeoffset, "product.hardware.sku", "ss");
  18.      } else if(sim_count == 2) {
  19.          fdt_setprop_string(fdt, nodeoffset, "product.hardware.sku", "dsds");
  20.      }
  21.      // end of P version
  22.      return 0;
  23. }

  24. 调用的方法可以参考如下的代码,第6行。

  25.      extern int *target_fdt_firmware(void *fdt, char *serialno)__attribute__((weak));
  26.      if (target_fdt_firmware) {
  27.          target_fdt_firmware(fdt, sn_buf);
  28.      }

  29.      set_ro_boot_sim_count(fdt, 2);

  30.      /* This depends on target_fdt_firmware, must after target_fdt_firmware */
  31.      extern int update_md_opt_to_fdt_firmware(void *fdt)__attribute__((weak));
  32.      if (update_md_opt_to_fdt_firmware) {
  33.          update_md_opt_to_fdt_firmware(fdt);
  34.      }
复制代码



目前仅支持 android O 之後的版本。
手机微信同号:13682654092
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表