nspierbundel / amlogic-common

amlogic common 3.0.50
Other
3 stars 5 forks source link

Enabel JTAG on MX CPU? #5

Open vDorst opened 11 years ago

vDorst commented 11 years ago

I would like to enable the JTAG controller on the MX.

M3: It is simple, place a pull-up resistor 4.7k to VCCIO and SPI_D/NAND_ALE/SPI_NOR_D_A If the box has a SPI chip. Solder the resistor between pin 8 (VCCIO) and pin 6 (SPI_D) and power it up.

I am able to talk with my MyGica A11 with M3 cpu via JTAG.

MX: ??? Same idea but which of the SPI/NAND/BOOT pins have to be pull-up on start-up?

waschmi commented 11 years ago

https://github.com/waschmi/documentation.git

1.png to 17.png are relevant to your interest.

vDorst commented 11 years ago

I am aware of the Quick Reference Manual. But the needed info is not in the QRM. I am looking for the boot options.

The boot options tells which line you have to pull-up/down to enable/disable some features. For the M3 I found some schematic with the boot options. For the MX I did not found anything yet.

waschmi commented 11 years ago

I don't really understand the problem then, sorry. Would a Diagram showing a MX implementation be helpful in this case? TM-7043 schematics are findable. update: is this it (picture)?

dat

vDorst commented 11 years ago

Yes it is, But JTAG option is not specified.

See picture below an example of the boot options for M1. They describe how to enable JTAG. Also M3 has a similar idea with a different signal name.

boot options m1

waschmi commented 11 years ago

ok. I have no expirence with jtag. sorry if I'm wrong. Looking at the schematic I would assume the nand controller is part of the MX soc and the NAND Flash Controller Configuration and Status Registers are mapped into the processor memory. The addresses are offsets from the base address of the chip select to which the NAND Flash controller is attached. update: wouldn't 'Toggle Mode' imply the debug option?

vDorst commented 11 years ago

The nand pins has a double role. On start-up the NAND pins are used for boot settings to enable/disable some functions or boot order. After that the NAND controller will take over these pins. This saves pins and cost.

I am looking for document"AML8726-MX Power-On Configurations User Guide". In this document it describes what I wanted to know. Too bad you have to sign a NDA before you get this document.

waschmi commented 11 years ago

This picture is probably not of any help either, I assume. jtag

vDorst commented 11 years ago

No sorry, I know the pinout of my JTAG connection. By toggling the GPIO in linux and using the QRM to lookup the gpio signal name.

stormrev commented 11 years ago

Hi René, should you come up with a working JTAG configuration for the M6 could you pls post instructions?

thanks

vDorst commented 11 years ago

If I know how it works I try to make a wiki page for it. But upcoming month my time is limited. Vacation and Scouts camp.

waschmi commented 11 years ago

Thinking about it, wouldn't the u-boot source code show you a lot about starting up the board? I just looked at it an found it quite interesting. http://openlinux.amlogic.com:8000/download/GPL_code_release/2013-04-24/uboot-next-2013-04-24-git-b0851b5f9e.tar.gz

waschmi commented 11 years ago

/* //setbits_le32(0xda004000,(1<<0)); //TEST_N enable: This bit should be set to 1 as soon as possible during the Boot process to prevent board changes from placing the chip into a production test mode

//Default to open ARM JTAG for M6 only

if defined(CONFIG_M6) || defined(CONFIG_M6TV)

#define AML_M6_JTAG_ENABLE
#define AML_M6_JTAG_SET_ARM
//for M6 only. And it will cause M3 fail to boot up.
//TEST_N enable: This bit should be set to 1 as soon as possible during the 
//Boot process to prevent board changes from placing the chip into a production test mode
setbits_le32(0xda004000,(1<<0));

// set bit [12..14] to 1 in AO_RTI_STATUS_REG0
// This disables boot device fall back feature in MX Rev-D
// This still enables bootloader to detect which boot device
// is selected during boot time. 
switch(readl(0xc8100000))
{
case 0x6b730001:
case 0x6b730002: writel(readl(0xc8100000) |(0x70<<8),0xc8100000);break;
}

endif

ifdef AML_M6_JTAG_ENABLE

#ifdef AML_M6_JTAG_SET_ARM
    //A9 JTAG enable
    writel(0x80000510,0xda004004);
    //TDO enable
    writel(0x4000,0xc8100014);
#elif AML_M6_JTAG_SET_ARC
    //ARC JTAG enable
    writel(0x80051001,0xda004004);
    //ARC bug fix disable
    writel((readl(0xc8100040)|1<<24),0xc8100040);
#endif  //AML_M6_JTAG_SET_ARM
//Watchdog disable
writel(0,0xc1109900);
//asm volatile ("wfi");

endif //AML_M6_JTAG_ENABLE"}

*/

vDorst commented 11 years ago

To enable the JTAG, you have to pull-up BOOT_12.

An idea is to enable the JTAG in the kernel at start-up.

frankviana commented 10 years ago

Hi,

I bought this receiver: http://www.aliexpress.com/item/2013-Free-Shipping-DVB-S2-Android-4-0-TV-BOX-Google-TV-Box-IPTV-reciever-hd/1046658225.html and I installed wrong firmware and now I don't have CWM and appear only blue led. I tried several kind of recover by SD card (hddcopyraw, sdcardmaker, etc) no sucess...

How to unbrick? Any JTAG? I bought a USB to TTL but I don't know how to use to recovery.

My receiver uses AMLogic 8726-M3 and this is the motherboard:

http://s30.postimg.org/txztwrfwx/placa_iptv28.jpg placa iptv28

Thanks