一种片上系统的修复方法、修复装置、电子设备及存储介质与流程

文档序号:37928352发布日期:2024-05-11 00:07阅读:11来源:国知局
一种片上系统的修复方法、修复装置、电子设备及存储介质与流程

本技术涉及片上系统安全启动,具体涉及一种片上系统的修复方法、修复装置、电子设备及存储介质。


背景技术:

1、bootrom(boot read-only memory,存放片上系统启动程序的只读存储器),其容量很小,固化在soc(system-on-chip,系统级芯片,又称为片上系统)内部的一小块norflash(一种非易失闪存)存储单元上。bootrom的代码块在soc片内负责引导片上系统的第一阶段启动,如果这块代码出现问题,可能直接导致片上系统流片(试生产)失败,或大规模生产时造成大量的不良品。

2、例如,bootrom中的代码会配置大量寄存器,寄存器配置值的合理性直接影响到片上系统能否正常启动,一旦bootrom中寄存器配置值错误,往往需要花费较大的代价通过eco(engineering change order,工程变更指令)甚至重新流片来修改bootrom中的代码。当前针对bootrom异常的修复方法主要是通过新增检测电路、修复电路等,但实际作用有限。

3、因此,对于片上系统流片后无法预知的bootrom异常问题,目前尚未有较好的解决方案。


技术实现思路

1、为了解决现有的片上系统启动异常问题,本技术提供一种片上系统的修复方法、修复装置、电子设备及存储介质。

2、第一方面,本发明实施例提供一种片上系统的修复方法,所述片上系统包含多个电路模块,所述方法包括:在启动所述片上系统的过程中,初始化所述多个电路模块中的至少一个电路模块;响应于所述至少一个电路模块启动异常,判断是否需要修改所述至少一个电路模块的寄存器配置信息;在需要修改所述至少一个电路模块的寄存器配置信息的情况下,将所述至少一个电路模块的寄存器配置更新信息以efuse格式写到efuse中,并复位所述片上系统。

3、在一种具体的实施方案中,在复位所述片上系统之后,所述方法还包括:读取所述efuse中所述至少一个电路模块的寄存器配置更新信息;根据所述至少一个电路模块的寄存器配置更新信息,对所述至少一个电路模块的寄存器配置信息进行修改;重新初始化所述至少一个电路模块。

4、在一种具体的实施方案中,所述配置更新信息包括所述至少一个电路模块的寄存器的地址参数和配置参数;所述根据所述至少一个电路模块的寄存器配置更新信息,对所述至少一个电路模块的寄存器配置信息进行修改,包括:根据所述至少一个电路模块的寄存器的地址参数,将所述至少一个电路模块的寄存器的配置参数写入所述至少一个电路模块的寄存器的地址中。

5、在一种具体的实施方案中,所述配置更新信息还包括配置标识,所述配置标识用于确定是否需要对所述至少一个电路模块的寄存器的配置信息进行修改;在读取所述efuse中所述至少一个电路模块的寄存器配置更新信息之后,所述方法还包括:根据所述至少一个电路模块的寄存器配置更新信息的配置标识,确定是否需要对所述至少一个电路模块的寄存器配置信息进行修改。

6、在一种具体的实施方案中,所述地址参数为所述至少一个电路模块的寄存器的实际地址,或所述地址参数为所述至少一个电路模块的寄存器的基地址、偏移地址。

7、在一种具体的实施方案中,所述配置更新信息还包括地址模式;若所述地址模式为基于实际地址的配置模式,则所述读取所述efuse中所述至少一个电路模块的寄存器配置更新信息,包括:从所述efuse中读取所述至少一个电路模块的寄存器的实际地址和配置参数;若所述地址模式为基于基地址的配置模式,则所述读取所述efuse中所述至少一个电路模块的寄存器配置更新信息,包括:从所述efuse中读取所述至少一个电路模块的寄存器的基地址、偏移地址与配置参数,并根据所述至少一个电路模块的寄存器的基地址、偏移地址,确定所述至少一个电路模块的寄存器的实际地址。

8、在一种具体的实施方案中,在将所述至少一个电路模块的寄存器配置更新信息以efuse格式写到efuse中之后,所述方法还包括:在所述片上系统中存储用于读取所述efuse中所述至少一个电路模块的寄存器配置更新信息的执行代码。

9、第二方面,本发明的实施例还提供一种片上系统的修复装置,所述片上系统的修复装置,包括:初始化单元,用于在启动所述片上系统的过程中,初始化所述片上系统的多个电路模块中的至少一个电路模块;判断单元,用于响应于所述至少一个电路模块启动异常,判断是否需要修改所述至少一个电路模块的寄存器配置信息;写入单元,用于在需要修改所述至少一个电路模块的寄存器配置信息的情况下,将所述至少一个电路模块的寄存器配置更新信息以efuse格式写到efuse中,并复位所述片上系统。

10、在一种具体的实施方案中,所述的装置还包括:读取单元,用于读取所述efuse中所述至少一个电路模块的寄存器配置更新信息;修改单元,用于根据所述至少一个电路模块的寄存器配置更新信息,对所述至少一个电路模块的寄存器配置信息进行修改;重新初始化单元,用于重新初始化所述至少一个电路模块。

11、在一种具体的实施方案中,所述配置更新信息包括所述至少一个电路模块的寄存器的地址参数和配置参数;所述修改单元具体用于:根据所述至少一个电路模块的寄存器的地址参数,将所述至少一个电路模块的寄存器的配置参数写入所述至少一个电路模块的寄存器的地址中。

12、在一种具体的实施方案中,所述配置更新信息还包括配置标识,所述配置标识用于确定是否需要对所述至少一个电路模块的寄存器的配置信息进行修改;所述装置还包括配置标识判别单元,用于在读取所述efuse中所述至少一个电路模块的寄存器配置更新信息之后,根据所述至少一个电路模块的寄存器配置更新信息的配置标识,确定是否需要对所述至少一个电路模块的寄存器配置信息进行修改。

13、在一种具体的实施方案中,所述地址参数为所述至少一个电路模块的寄存器的实际地址,或所述地址参数为所述至少一个电路模块的寄存器的基地址、偏移地址。

14、在一种具体的实施方案中,所述配置更新信息还包括地址模式;所述读取单元包括:第一读取模块,用于若所述地址模式为基于实际地址的配置模式,则从所述efuse中读取所述至少一个电路模块的寄存器的实际地址和配置参数;第二读取模块,用于若所述地址模式为基于基地址的配置模式,则从所述efuse中读取所述至少一个电路模块的寄存器的基地址、偏移地址与配置参数,并根据所述至少一个电路模块的寄存器的基地址、偏移地址,确定所述至少一个电路模块的寄存器的实际地址。

15、在一种具体的实施方案中,所述的装置还包括执行代码存储单元,用于将所述至少一个电路模块的寄存器配置更新信息以efuse格式写到efuse中之后,在所述片上系统中存储用于读取所述efuse中所述至少一个电路模块的寄存器配置更新信息的执行代码。

16、第三方面,本发明的实施例还提供一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种片上系统的修复方法。

17、第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种片上系统的修复方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1