Boundary Scan on OMAP35x
From Texas Instruments Embedded Processors Wiki
Contents |
Procedure for gaining access to boundary scan
A special sequence is needed to put the OMAP35x/AM37xx/DM37xx into boundary scan mode.
- Start out with sys_nrespwron and jtag_ntrst asserted to put the device into a known state.
- Drive EMU[1:0]=11b (the pins should already have pullups on them).
- De-assert sys_nrespwron.
- De-assert jtag_ntrst.
- Setup ICEPICK
- IR = 000111b
- DR = 10001001b
- ICEPICK Connect
- IR = 011111b
- DR = 10001001b
- Access granted to boundary scan register (BSR) cells for 1149.1 standard instructions.
IDCODE
There is an IDCODE register in the OMAP35x, but it does not appear in the BSDL file.
IDCODE
- Instruction Value : 000100b
- IDCODE Value (ES3.1) : 00001011011110101110000000101111b (0x4B7AE02F)
The IDCODE value is dependent upon the silicon revision. It follows the IDCODE values shown in table 1 of this article.
Other instructions not in BSDL
clamp
- IR = 011101b
highz
- IR = 011110b
Special cells: SD/MMC1 pads can be configured as 1.8V or 3.0V
The SD/MMC1 pads are special I/O cells in that they can be configured for 1.8V or 3.0V operation. There are special registers associated with this capability as discussed in the article Additional Configuration for GPIO120-129 on OMAP35x. These additional registers need to be configured in order for boundary scan to be usable. These registers are not configurable from the boundary scan interface so additional steps are needed in order to scan these pins.
- First and foremost make sure that the SD/MMC1 power rail is being supplied with power (1.8V or 3.0V).
- Before entering boundary scan, i.e. while in emulation mode, one must run code on the ARM to setup these registers:
- Set CONTROL_PADCONF_MMC1_DATn registers to safe mode.
- CONTROL_PADCONF_MMC1_DAT0[15:0] 0x4800 2148 (mmc1_dat0)
- Set mux mode bits (0-2) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT0[31:16] 0x4800 2148 (mmc1_dat1)
- Set mux mode bits (16-18) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT2[15:0] 0x4800 214C (mmc1_dat2)
- Set mux mode bits (0-2) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT2[31:16] 0x4800 214C (mmc1_dat3)
- Set mux mode bits (16-18) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT4[15:0] 0x4800 2150 (mmc1_dat4)
- Set mux mode bits (0-2) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT4[31:16] 0x4800 2150 (mmc1_dat5)
- Set mux mode bits (16-18) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT6[15:0] 0x4800 2154 (mmc1_dat6)
- Set mux mode bits (0-2) to 111 for safe mode
- CONTROL_PADCONF_MMC1_DAT6[31:16] 0x4800 2154 (mmc1_dat7)
- Set mux mode bits (16-18) to 111 for safe mode
- Set CONTROL_PBIAS_LITE register (0x4800 2520) bits 0 & 8, MMC1_VDDS and SIM_VDDS voltage levels respectively, to 1.8V(default) or 3.0V.
- Note: Boot mode can impact above register settings.
- Set CONTROL_PADCONF_MMC1_DATn registers to safe mode.
- Now enter boundary scan mode, though don't reset the device or else these registers will be changed back to their default values.
