How to determine the reset reason?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to determine the reset reason?

ソリューションへジャンプ
2,375件の閲覧回数
ufechner
Contributor I

Hello,

How can I determine the reset reason of an i.mx6 dual processor using a custom hardware?

I found the following code in uboot:

static char *get_reset_cause(void)
{
	u32 cause;
	struct src *src_regs = (struct src *)SRC_BASE_ADDR;

	cause = readl(&src_regs->srsr);
	reset_cause = cause;

	switch (cause) {
	case 0x00001:
	case 0x00011:
		return "POR";
	case 0x00004:
		return "CSU";
	case 0x00008:
		return "IPP USER";
	case 0x00010:
		return "WDOG";
	case 0x00020:
		return "JTAG HIGH-Z";
	case 0x00040:
		return "JTAG SW";
	case 0x00080:
		return "WDOG3";
	case 0x00100:
		return "TEMPSENSE";
	case 0x10000:
		return "WARM BOOT";
	default:
		return "unknown reset";
	}
}

But which register is accessed? Is this register documented in any data sheet? Is it accessible also from Linux? What is the meaning of "CSU", "IPP_USER", "JTAG HIGH-Z", "JTAG SW" and "WDOG3"?

 

ラベル(1)
0 件の賞賛
返信
1 解決策
2,367件の閲覧回数
albe_merciai
Contributor I
Address: 20D_8000h base + 8h offset = 20D_8008h
 
 
pag: 5039 - 5040 60.7.3 SRC Reset Status Register (SRC_SRSR)

元の投稿で解決策を見る

1 返信
2,368件の閲覧回数
albe_merciai
Contributor I
Address: 20D_8000h base + 8h offset = 20D_8008h
 
 
pag: 5039 - 5040 60.7.3 SRC Reset Status Register (SRC_SRSR)