This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

加密版c6748串口引导问题

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文件有问题吗

  • 你试试这个ini文件。你是就打算用加密版的芯片,还是只是因为买错了,要解开JTAG来用一下而已?TI不建议用户在加密版权的芯片做开发调查试,这样比较麻烦。

    OMAP-L138_generic_secure.ini
  • 是供应商发错了,发了加密版,结果用JTAG写入不了程序,并且用原先生成的非加密ASI bin文件应该也用不了,这个加密版的芯片也是必须要加密才能用,用你这个ini文件,里面需要key_hdr_sha256_enc.bin,这个key_hdr_sha256_enc.bin文件是在哪里呢,现在生成不了AIS bin文件,注释掉genKeyHeaderFileName=key_hdr_sha256_enc.bin后可以生成AIS bin文件,但是引导不了

  • 突然想起来一件事,你的.out是DSP的还是ARM的,加密版的芯片是先从DSP启动,也就是说要dsp的.out文件。试试先~~~

    另外我建议你找你的供应商商量一下,看能不能换货,毕竟这不是你最终要用的芯片。

    我手头也没有加密版本的开发板,很多问题只能看文档来回答,没条件测试。

  • .out是DSP程序,以前用的是tms320c6748BZWT,这次供应商发的是tms320c6748BZWT E,由于没注意都贴片到板子上了,由于解不密,无法连接JTAG,写入不了程序。

  • 你试试这个文件看能不能下载,把JTAG unlock。

    这种unlock都是一次有效的,断电后又lock了,如果只是想试试这个功能可以。

  • 能引导:

    (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

  • 我现在的目的就是能够通过JTAG运行NANDWriter_DSP.out,写入我以前的程序,并且断电后可以从NAND FLASH正常运行,请问我该怎么做

  • 如何联系你呢,深圳有你们的工程师能解决下吗

  • 按说unlock 后就可以当做普通芯片使用了,这时可以用普通的nand writer把加密版的bin写进去。

    通过JTAG访问其它寄存器正常吗?

    有加gel 文件初始化DDR, PLL等吗?

    你可以通过你的供应商找到TI的支持。

  • 通过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文件然后加载到指定内存中吗?

  • dsp china:

            你好!你所提到的这些问题也是我们现在面临的,现在解决了吗?能否分享下解决方法,我的邮箱hgw683@163.com,谢谢!

  • 你好,我现在也在调试加密版的芯片,用你提供的这个文件确实可以解密调试,请问这个文件生成所需的 .ini 文件是怎样的?另外,.ini 文件中有个key_hdr_sha256_enc.bin,这个文件是怎么产生的?

  • key_hdr_sha256_enc.bin在这里只是为了测试,不需要这个文件。

  • 你好,感谢你的解答!我现在可以解锁调试芯片。下一步要把程序烧写到NAND里,然后通过NAND启动,请问该怎么操作呢?使用GenericSecureUartHost.exe工具可以通过串口把程序烧写进NAND里面吗?

  • #1. 用通用的NANDwriter工程在解锁状态下把加密后的文件写进去就行了。

    #2. 这里要注意个问题,用.ini配置加密后的文件的header里的CEK是明文,在更新用KEK加密CEK后的header到NAND时,不能只写header这几个word,要把整个1Kbyte都更新,否则会ECC出错的。

  • 您好,请教一下,用KEK加密CEK时需要调用ROM里的函数,我该怎么调用呢?参考OMAPL138_C6748_Generic_Security_Users_Guide_v1.0.2.pdf文档中,在我自己的工程中添加了:sk_cwrap.asm 和 sk_cwrap.h。但是工程编译不通过,我该如何解决呢?谢谢!

    test_c4748_e.rar
  • Dear  ,请教一下,如何调用加密版C6748 ROM里的函数?谢谢!

  • 这几个函数是在你的asm文件里通过宏定义的,在C里直接认不出来,所以需要在main里做一个extern申明,表示在外部定义了,你试试。

    我看其实这个名字没啥用,好像都是通过callNum来区分的。

  • Dear Tony Tang,问题我已经解决了,把程序的输出选择为coff 格式就可以编译通过了。

    不过我对加密版C6748的安全性有些疑问,我已经重新发帖了,标题是:“加密版C6748代码安全性问题”,期待您的解答,谢谢!

    http://www.deyisupport.com/question_answer/dsp_arm/c6000_dsp/f/32/t/114554.aspx

  • 哦,对,elf与coff对汇编符号的区别是elf不需要在函数名前加下划线_

  • Tony Tang  

         请问那个您上传的那个解锁JTAG的bin文件是怎么生成的呢?

  • kai zhao1 

    请参考下面链接的说明:

    http://processors.wiki.ti.com/index.php/Basic_Secure_Boot_for_OMAP-L138_C6748

  • 老师,您好!我也遇到您这种情况,我这边是开发用的非加密芯片,结果采购贴片用的是加密,现在无法通过DEBUG来连接并下载。您这边方便详细解释一下通过8562.dsp_sectononsec.bin引导解锁后可以连接JTAG这一步吗?我的联系方式QQ:294132382。如有打扰,敬请谅解!