Other Parts Discussed in Thread:OMAP-L138
现在同一块电路板一个用c6748非加密板,一个用加密板,非加密板可正常引导,加密板却引导不了,都是同一个.out文件,只是非加密版用AISgen for d800k008 生成bin文件,引导用UART Boot host,一个用SecureHexAIS_OMAP-L138生成bin文件,引导用GenericSecureUartHost,为什么?下面是非加密版配置文件和引导结果:
Boot Mode=UART0
Boot Speed=115200
Flash Width=0
Flash Timing=3ffffffc
Configure Peripheral=True
Configure PLL0=True
Configure SDRAM=False
Configure PLL1=False
Configure DDR2=False
Configure LPSC=False
Configure Pinmux=False
Enable CRC=False
Specify Entrypoint=False
Enable Sequential Read=False
Use 4.5 Clock Divider=False
Use DDR2 Direct Clock=False
Use mDDR=True
ROM ID=3
Device Type=1
Input Clock Speed=24
Clock Type=0
PLL0 Pre Divider=1
PLL0 Multiplier=25
PLL0 Post Divider=2
PLL0 Div1=1
PLL0 Div3=3
PLL0 Div7=6
PLL1 Multiplier=20
PLL1 Post Divider=2
PLL1 Div1=1
PLL1 Div2=2
PLL1 Div3=3
Entrypoint=0
SDRAM SDBCR=0
SDRAM SDTMR=0
SDRAM SDRSRPDEXIT=0
SDRAM SDRCR=0
DDR2 PHY=0
DDR2 SDCR=0
DDR2 SDCR2=0
DDR2 SDTIMR=0
DDR2 SDTIMR2=0
DDR2 SDRCR=0
LPSC0 Enable=
LPSC0 Disable=
LPSC0 SyncRst=
LPSC1 Enable=
LPSC1 Disable=
LPSC1 SyncRst=
Pinmux=
(AIS Parse): Waiting for BOOTME… (power on or reset target now)
(AIS Parse): BOOTME received!
(AIS Parse): Performing Start-Word Sync…
(AIS Parse): Performing Ping Opcode Sync…
(AIS Parse): Processing command 0: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Processing command 1: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 124512-Byte section to address 0x11800000.
(AIS Parse): Processing command 2: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 1760-Byte section to address 0x1183D6F0.
(AIS Parse): Processing command 3: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 388-Byte section to address 0x1183E1D0.
(AIS Parse): Processing command 4: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 512-Byte section to address 0x1183E400.
(AIS Parse): Processing command 5: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 48772-Byte section to address 0x80000000.
(AIS Parse): Processing command 6: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 128-Byte section to address 0x80010000.
(AIS Parse): Processing command 7: 0x58535906.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Performing jump and close…
(AIS Parse): AIS complete. Jump to address 0x80010000.
(AIS Parse): Waiting for DONE…
(AIS Parse): Boot completed successfully.
(Serial Port): Closing COM15.
加密版:
; General settings that can be overwritten in the host code
; that calls the AISGen library.
[General]
; Can be 8 or 16 – used in emifa
busWidth=16
; SPIMASTER,I2CMASTER,EMIFA,NAND,EMAC,UART,PCI,HPI,USB,MMC_SD,VLYNQ,RAW
BootMode=UART
; 8,16,24 – used for SPI,I2C
;AddrWidth=8
; NO_CRC,SECTION_CRC,SINGLE_CRC
crcCheckType=NO_CRC
; TRUE/ON or FALSE/OFF
seqReadEn=ON
; Specify the symbol name for the boot finalize function
;FinalFxnSymbolName=none
; Security settings (keys, options, list of sections to encrypt, etc.)
[Security]
; Security Type: GENERIC, CUSTOM, NONE
securityType=GENERIC
; Boot Exit Type: NONSECURE, SECUREWITHSK, SECURENOSK
; NONSECURE = Device switches from secure type to non-secure type, jumping to loaded code; (no secure kernel since no longer secure device).
; SECUREWITHSK = Device remains as secure type, secure kernel is loaded, allowing run-time
; security context switching.
bootExitType = NONSECURE
; Option to include in the generated key header the flag to force the JTAG off
;genericJTAGForceOff=FALSE
; Encrypt section list (ALL or comma-separated list of section names)
;encryptSections=ALL
; CEK used for AES encryption of data – must be string of 32 hexadecimal characters
encryptionKey=4A7E1F56AE545D487C452388A65B0C05
; Debug key
;keyEncryptionKey=0B94A91D33E597097F6C426F8F016872
; SHA Algorithm Selection
;genericSHASelection = SHA256
; Binary file containing secure key header for generic device
;genKeyHeaderFileName=key_hdr_sha256_enc.bin
; This section allows setting the PLL0 system clock with a
; specified multiplier and divider as shown. The clock source
; can also be chosen for internal or external.
; |——24|——16|——-8|——-0|
; PLL0CFG0: | CLKMODE| PLLM | PREDIV | POSTDIV|
; PLL0CFG1: | RSVD | PLLDIV1| PLLDIV3| PLLDIV7|
;[PLL0CONFIG]
;PLL0CFG0 = 0x00130001
;PLL0CFG1 = 0x00000104
; This section allows setting up the PLL1. Usually this will; take place as part of the EMIF3a DDR setup. The format of
; the input args is as follows:
; |——24|——16|——-8|——-0|
; PLL1CFG0: | PLLM| POSTDIV| PLLDIV1| PLLDIV2|
; PLL1CFG1: | RSVD | PLLDIV3|
;[PLL1CONFIG]
;PLL1CFG0 = 0x00000000
;PLL1CFG1 = 0x00000000
; This section lets us configure the peripheral interface
; of the current booting peripheral (I2C, SPI, or UART).
; Use with caution. The format of the PERIPHCLKCFG field; is as follows:
; SPI: |——24|——16|——-8|——-0|
; | RSVD |PRESCALE|
;
; I2C: |——24|——16|——-8|——-0|
; | RSVD |PRESCALE| CLKL | CLKH |
;
; UART: |——24|——16|——-8|——-0|
; | RSVD | OSR | DLH | DLL |
;[PERIPHCLKCFG]
;PERIPHCLKCFG = 0x00000000
; This section allow setting the MPU1 or MPU2. If the; rangenum is out of the allowed range then all the ranges
; (including the fixed range) take the start, end, and; protection values.
; |——24|——16|———-8|———-0|
; MPUSELECT: | RSVD | mpuNum | rangeNum |
; STARTADDR: | startAddr |
; ENDADDR: | endAddr |
; MPPAVALUE: | mppaValue |
;[MPUCONFIG]
MPUSELECT = 0x000001FF
STARTADDR = 0x00000000
ENDADDR = 0xFFFFFFFF
MPPAVALUE = 0xFFFFFFFF
; This section can be used to configure the PLL1 and the EMIF3a registers
; for starting the DDR2 interface.; See PLL1CONFIG section for the format of the PLL1CFG fields.
; |——24|——16|——-8|——-0|
; PLL1CFG0: | PLL1CFG |
; PLL1CFG1: | PLL1CFG |
; DDRPHYC1R: | DDRPHYC1R |
; SDCR: | SDCR |
; SDTIMR: | SDTIMR |
; SDTIMR2: | SDTIMR2 |
; SDRCR: | SDRCR |
; CLK2XSRC: | CLK2XSRC |
[EMIF3DDR]
PLL1CFG0 = 0x15010001
PLL1CFG1 = 0x00000002
DDRPHYC1R = 0x000000C4
SDCR = 0x0A034622
SDTIMR = 0x184929C8
SDTIMR2 = 0xB80FC700
SDRCR = 0x00000406
CLK2XSRC = 0x00000000
; This section allow setting the MPU1 or MPU2. If the; rangenum is out of the allowed range then all the ranges
; (including the fixed range) take the start, end, and; protection values.
; |——24|——16|———-8|———-0|
; MPUSELECT: | RSVD | mpuNum | rangeNum |
; STARTADDR: | startAddr |
; ENDADDR: | endAddr |
; MPPAVALUE: | mppaValue |
;
; This MPU control must happen after the DDR init or else the
; MPU control has no effect
[MPUCONFIG]
MPUSELECT = 0x000002FF
STARTADDR = 0x00000000
ENDADDR = 0xFFFFFFFF
MPPAVALUE = 0xFFFFFFFF
; This section can be used to configure the EMIFA to use; CS0 as an SDRAM interface. The fields required to do this
; are given below.
; |——24|——16|——-8|——-0|
; SDBCR: | SDBCR |
; SDTIMR: | SDTIMR |
; SDRSRPDEXIT: | SDRSRPDEXIT |
; SDRCR: | SDRCR |
; DIV4p5_CLK_ENABLE: | DIV4p5_CLK_ENABLE |
;[EMIF25SDRAM]
;SDBCR = 0x00004421
;SDTIMR = 0x42215810
;SDRSRPDEXIT = 0x00000009
;SDRCR = 0x00000410
;DIV4p5_CLK_ENABLE = 0x00000001
; This section can be used to configure the async chip selects
; of the EMIFA (CS2-CS5). The fields required to do this
; are given below.
; |——24|——16|——-8|——-0|
; A1CR: | A1CR |
; A2CR: | A2CR |
; A3CR: | A3CR |
; A4CR: | A4CR |
; NANDFCR: | NANDFCR |
;[EMIF25ASYNC]
;A1CR = 0x00000000
;A2CR = 0x00000000
;A3CR = 0x00000000
;A4CR = 0x00000000
;NANDFCR = 0x00000000
; This section should be used in place of PLL0CONFIG when
; the I2C, SPI, or UART modes are being used. This ensures that; the system PLL and the peripheral's clocks are changed together.
; See PLL0CONFIG section for the format of the PLL0CFG fields.
; See PERIPHCLKCFG section for the format of the CLKCFG field.
; |——24|——16|——-8|——-0|
; PLL0CFG0: | PLL0CFG |
; PLL0CFG1: | PLL0CFG |
; PERIPHCLKCFG: | CLKCFG |
[PLLANDCLOCKCONFIG]
PLL0CFG0 = 0x00180001
PLL0CFG1 = 0x00000205
PERIPHCLKCFG = 0x00000051
; This section should be used to setup the power state of modules
; of the two PSCs. This section can be included multiple times to
; allow the configuration of any or all of the device modules.
; |——24|——16|——-8|——-0|
; LPSCCFG: | PSCNUM | MODULE | PD | STATE |
;[PSCCONFIG]
;LPSCCFG = 0x01030003
; This section allows setting of a single PINMUX register.
; This section can be included multiple times to allow setting
; as many PINMUX registers as needed.
; |——24|——16|——-8|——-0|
; REGNUM: | regNum |
; MASK: | mask |
; VALUE: | value |
;[PINMUX]
;REGNUM = 5
;MASK = 0x00FF0000
;VALUE = 0x00880000
; No Params required – simply include this section for the fast boot function to be called
;[FASTBOOT]
; This section allows configuration of one the systme IOPUs.
; The iopuNum field must be valid (0-5) and then mppaStart
; and mppaend fields allow setting a range of mppa MMRs to the; same supplied mppa value.
; IOPUSELECT: | RSVD | iopuNum| mppaStart | mppaEnd |
; MPPAVALUE: | mppaValue |
[IOPUCONFIG]
IOPUSELECT = 0x000000FF
MPPAVALUE = 0xFFFFFFFF
[IOPUCONFIG]
IOPUSELECT = 0x000100FF
MPPAVALUE = 0xFFFFFFFF
[IOPUCONFIG]
IOPUSELECT = 0x000200FF
MPPAVALUE = 0xFFFFFFFF
[IOPUCONFIG]
IOPUSELECT = 0x000300FF
MPPAVALUE = 0xFFFFFFFF
[IOPUCONFIG]
IOPUSELECT = 0x000600FF
MPPAVALUE = 0xFFFFFFFF
; This section allow setting the MPU1 or MPU2. If the; rangenum is out of the allowed range then all the ranges
; (including the fixed range) take the start, end, and; protection values.
; |——24|——16|———-8|———-0|
; MPUSELECT: | RSVD | mpuNum | rangeNum |
; STARTADDR: | startAddr |
; ENDADDR: | endAddr |
; MPPAVALUE: | mppaValue |
;[MPUCONFIG]
;MPUSELECT = 0x000001FF
;STARTADDR = 0x00000000
;ENDADDR = 0x00000000
;MPPAVALUE = 0xFFFFFFFF
; This function allows the user to selectively open up the
; the debug TAPs of the device. Since the function is not
; executed until the signature is checked, it does not; pose a security issue.
; |——24|——16|———-8|———-0|
; TAPSCFG: | RSVD | tapscfg |
[TAPSCONFIG]
TAPSCFG = 0x0000FFFF
(AIS Parse): Read magic word 0x41504954.
(AIS Parse): Waiting for BOOTME… (power on or reset target now)
(AIS Parse): BOOTME received!
(AIS Parse): Performing Start-Word Sync…
(AIS Parse): Performing Ping Opcode Sync…
(AIS Parse): Processing command 0: 0x58535920.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Secure key loading, entering secure mode.
(AIS Parse): Processing command 1: 0x58535923.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Setting boot exit mode…
(AIS Parse): Set exit mode to 0x00000000.
(AIS Parse): Processing command 2: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 3: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 4: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 5: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 6: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 7: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 8: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 9: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 10: 0x5853590D.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Executing function…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): Processing command 11: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 124512-Byte section to address 0x11800000.
(AIS Parse): Processing command 12: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 1760-Byte section to address 0x1183D6F0.
(AIS Parse): Processing command 13: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 388-Byte section to address 0x1183E1D0.
(AIS Parse): Processing command 14: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 512-Byte section to address 0x1183E400.
(AIS Parse): Processing command 15: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 48772-Byte section to address 0x80000000.
(AIS Parse): Processing command 16: 0x58535901.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Loading section…
(AIS Parse): Loaded 128-Byte section to address 0x80010000.
(AIS Parse): Processing command 17: 0x58535906.
(AIS Parse): Performing Opcode Sync…
(AIS Parse): Performing jump and close…
(AIS Parse): Secure mode; sending signature.
(AIS Parse): AIS complete. Jump to address 0x80010000.
(AIS Parse): Waiting for DONE…
一直是Waiting for DONE…,是加密版的ini文件有问题吗
Tony Tang:
你试试这个ini文件。你是就打算用加密版的芯片,还是只是因为买错了,要解开JTAG来用一下而已?TI不建议用户在加密版权的芯片做开发调查试,这样比较麻烦。
,
dsp china:
是供应商发错了,发了加密版,结果用JTAG写入不了程序,并且用原先生成的非加密ASI bin文件应该也用不了,这个加密版的芯片也是必须要加密才能用,用你这个ini文件,里面需要key_hdr_sha256_enc.bin,这个key_hdr_sha256_enc.bin文件是在哪里呢,现在生成不了AIS bin文件,注释掉genKeyHeaderFileName=key_hdr_sha256_enc.bin后可以生成AIS bin文件,但是引导不了
,
Tony Tang:
突然想起来一件事,你的.out是DSP的还是ARM的,加密版的芯片是先从DSP启动,也就是说要dsp的.out文件。试试先~~~
另外我建议你找你的供应商商量一下,看能不能换货,毕竟这不是你最终要用的芯片。
我手头也没有加密版本的开发板,很多问题只能看文档来回答,没条件测试。
,
dsp china:
.out是DSP程序,以前用的是tms320c6748BZWT,这次供应商发的是tms320c6748BZWT E,由于没注意都贴片到板子上了,由于解不密,无法连接JTAG,写入不了程序。
,
Tony Tang:
http://www.deyisupport.com/cfs-file.ashx/__key/communityserver-discussions-components-files/32/8562.dsp_5F00_sectononsec.bin
你试试这个文件看能不能下载,把JTAG unlock。
这种unlock都是一次有效的,断电后又lock了,如果只是想试试这个功能可以。
,
dsp china:
能引导:
(Serial Port): Opening COM15 at 115200 baud…(AIS Parse): Read magic word 0x41504954.(AIS Parse): Waiting for BOOTME… (power on or reset target now)(AIS Parse): BOOTME received!(AIS Parse): Performing Start-Word Sync…(AIS Parse): Performing Ping Opcode Sync…(AIS Parse): Processing command 0: 0x58535920.(AIS Parse): Performing Opcode Sync…(AIS Parse): Secure key loading, entering secure mode.(AIS Parse): Processing command 1: 0x58535923.(AIS Parse): Performing Opcode Sync…(AIS Parse): Setting boot exit mode…(AIS Parse): Set exit mode to 0x00000000.(AIS Parse): Processing command 2: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 3: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 4: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 5: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 6: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 7: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 8: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 9: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 10: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 11: 0x5853590D.(AIS Parse): Performing Opcode Sync…(AIS Parse): Executing function…(AIS Parse): Secure mode; sending signature.(AIS Parse): Processing command 12: 0x58535921.(AIS Parse): Performing Opcode Sync…(AIS Parse): Loading encoded section…(AIS Parse): Loaded 864-Byte section to address 0x00831000.(AIS Parse): Processing command 13: 0x58535921.(AIS Parse): Performing Opcode Sync…(AIS Parse): Loading encoded section…(AIS Parse): Loaded 84-Byte section to address 0x00831360.(AIS Parse): Processing command 14: 0x58535906.(AIS Parse): Performing Opcode Sync…(AIS Parse): Performing jump and close…(AIS Parse): Secure mode; sending signature.(AIS Parse): AIS complete. Jump to address 0x00831260.(AIS Parse): Waiting for DONE…(AIS Parse): Boot completed successfully.(Serial Port): Closing COM15.
请问你生成这个bin文件的 ini 文件是怎样的,.out文件是怎样的,有代码吗,我解锁后可以连上仿真器,但是装入NANDWriter_DSP.out程序后还是写入不了我原先程序非加密的bin,也无法调试,执行不了go main
,
dsp china:
我现在的目的就是能够通过JTAG运行NANDWriter_DSP.out,写入我以前的程序,并且断电后可以从NAND FLASH正常运行,请问我该怎么做
,
dsp china:
如何联系你呢,深圳有你们的工程师能解决下吗
,
Tony Tang:
按说unlock 后就可以当做普通芯片使用了,这时可以用普通的nand writer把加密版的bin写进去。
通过JTAG访问其它寄存器正常吗?
有加gel 文件初始化DDR, PLL等吗?
你可以通过你的供应商找到TI的支持。
,
dsp china:
通过8562.dsp_sectononsec.bin引导解锁后可以连接JTAG,但是点connect后(我现在用的是CCS3.3),不能很快连上,过了几分钟,提示:The GEL callback "OnTargetConnect()" for the target "OMAPL138_TIXDS560/C6400PLUS_0" is still processing.The function could contain an inifinite loop.Do you wish to pause the processing of this function and continues?点击是之后可以连上JTAG,可以在内存地址:0x11700000找到d800k008,cpu 可以reset ,也可以装入NANDWriter_DSP.out,但是一点go main并不能到main(),而是直接运行,但是运行后也没有任何提示,这是为什么?
在IDE上的GEL菜单上点了相应的菜单项,结果如下: Memory Map Setup Complete. ——————————————— PLL0 init done for Core:300MHz, EMIFA:100MHz Enabling Experimenter PSCs… Enabling Full EVM PSCs… PSC Enable Complete. ———————————————之后cpu reset,再装入NANDWriter_DSP.out后点go main依旧直接运行,也一直没有提示。总结下我的问题:如何通过JTAG调试加密版TMS320c6748BZWT E和烧写NAND FLASH程序?分解如下1、非加密版的cfg文件可否有工具转换成加密版的ini文件,或者加密版是否也有跟非加密版AISgen for D800K008一样的GUI程序可以方便生成AIS bin文件2、为什么我同一个.out文件非加密方式生成的bin文件用UART BOOT HOST可以正常引导,而加密版生成的bin文件用SECURE UART BOOT HOST却引导不了3、key_hdr_sha256_enc.bin文件是如何生成的?是否可以不用或不需要自己生成?4、通过UART引导解锁JTAG,连接时为何会出这样的提示,如何解决: The GEL callback "OnTargetConnect()" for the target "OMAPL138_TIXDS560/C6400PLUS_0" is still processing. The function could contain an inifinite loop. Do you wish to pause the processing of this function and continues?5、连上JTAG后怎样能go main,然后一步一步运行,断电后不用UART引导解锁也能连上JTAG,并能调试。6、连上JTAG烧写NAND FLASH,可否通过NANDWriter_DSP.out写入以前通过AISgen for D800K008生成的bin文件,写入以后能否正常引导运行,或是 通过NANDWriter_DSP.out写入用SecureHexAIS_OMAP-L138生的bin文件后,ROM内的bootloader会自动解密bin文件然后加载到指定内存中吗?
,
ganwen huang:
dsp china:
你好!你所提到的这些问题也是我们现在面临的,现在解决了吗?能否分享下解决方法,我的邮箱hgw683@163.com,谢谢!
,
GC:
你好,我现在也在调试加密版的芯片,用你提供的这个文件确实可以解密调试,请问这个文件生成所需的 .ini 文件是怎样的?另外,.ini 文件中有个key_hdr_sha256_enc.bin,这个文件是怎么产生的?
,
Tony Tang:
key_hdr_sha256_enc.bin在这里只是为了测试,不需要这个文件。
,
GC:
你好,感谢你的解答!我现在可以解锁调试芯片。下一步要把程序烧写到NAND里,然后通过NAND启动,请问该怎么操作呢?使用GenericSecureUartHost.exe工具可以通过串口把程序烧写进NAND里面吗?
,
Tony Tang:
#1. 用通用的NANDwriter工程在解锁状态下把加密后的文件写进去就行了。
#2. 这里要注意个问题,用.ini配置加密后的文件的header里的CEK是明文,在更新用KEK加密CEK后的header到NAND时,不能只写header这几个word,要把整个1Kbyte都更新,否则会ECC出错的。
,
GC:
您好,请教一下,用KEK加密CEK时需要调用ROM里的函数,我该怎么调用呢?参考OMAPL138_C6748_Generic_Security_Users_Guide_v1.0.2.pdf文档中,在我自己的工程中添加了:sk_cwrap.asm 和 sk_cwrap.h。但是工程编译不通过,我该如何解决呢?谢谢!
,
GC:
Dear Tony Tang,请教一下,如何调用加密版C6748 ROM里的函数?谢谢!
,
Tony Tang:
这几个函数是在你的asm文件里通过宏定义的,在C里直接认不出来,所以需要在main里做一个extern申明,表示在外部定义了,你试试。
我看其实这个名字没啥用,好像都是通过callNum来区分的。
,
GC:
Dear Tony Tang,问题我已经解决了,把程序的输出选择为coff 格式就可以编译通过了。
不过我对加密版C6748的安全性有些疑问,我已经重新发帖了,标题是:“加密版C6748代码安全性问题”,期待您的解答,谢谢!
http://www.deyisupport.com/question_answer/dsp_arm/c6000_dsp/f/32/t/114554.aspx
,
Tony Tang:
哦,对,elf与coff对汇编符号的区别是elf不需要在函数名前加下划线_
,
user3726176:
Tony Tang
请问那个您上传的那个解锁JTAG的bin文件是怎么生成的呢?
,
Tony Tang:
kai zhao1
请参考下面链接的说明:
http://processors.wiki.ti.com/index.php/Basic_Secure_Boot_for_OMAP-L138_C6748
,
风雨潇潇姿容姣姣:
老师,您好!我也遇到您这种情况,我这边是开发用的非加密芯片,结果采购贴片用的是加密,现在无法通过DEBUG来连接并下载。您这边方便详细解释一下通过8562.dsp_sectononsec.bin引导解锁后可以连接JTAG这一步吗?我的联系方式QQ:294132382。如有打扰,敬请谅解!