imx6ull: random crashes when setting REFTOP_SELFBIASOFF

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6ull: random crashes when setting REFTOP_SELFBIASOFF

1,140 Views
cniedermaier
Contributor III

On my custom board based on imx6ull, which has the IMX_THERMAL driver enabled in U-Boot and Linux. We see on Linux boot random crashes (random means not on every boot, also not even the same crash dump/reason in linux). My first suggestion was instable RAM, but RAM seems stable.

 

After some investigations it turned out, that setting the REFTOP_SELFBIASOFF (misspelled in the code: REFTOP_SELBIASOFF) bit in the linux thermal driver seems the problem.

 

I saw that the kernel driver does not check first if REFTOP_VBGUP

is set and added this, but this did not helped.

 

U-Boot does this check here:

  soc.c\mx6\mach-imx\arm\arch - uboot-imx - i.MX U-Boot Line 383

 

More investigations into this problem and we found how U-Boot handles this bit:

 

U-Boot: Sets this bit in  arch_cpu_init()

U-Boot: Sets this bit in IMX_THERMAL driver

U-Boot: Clears this bit in IMX_THERMAL driver

  

If we now remove the clearing of this bit in U-Boot in the thermal driver, we also see no crashes anymore in Linux (more than 12000 power on/off cycles)

 

My questions are now:

 - Does anyone know more about this bit REFTOP_SELFBIASOFF than is described in the RM?

   Or know somebody, who could know it?

 

- What effect has this bit? May it leads in more power consumption?

 

- Is the IMX_TERMAL driver in the U-Boot allowed to reset the bit in this way/context?

 

Thanks in advance!

Labels (2)
0 Kudos
Reply
3 Replies

1,023 Views
Yuri
NXP Employee
NXP Employee

Hello,

  You may look at the i.MX6 Platform SDK (although it is not support i.MX 6UL

directly):

field REFTOP_SELFBIASOFF[3]:
 
  Control bit to disable the self-bias circuit in the analog bandgap. The self-bias circuit is used
  by the bandgap during startup. This bit should be set after the bandgap has stabilized and is
  necessary for best noise performance of analog blocks using the outputs of the bandgap. Not
  related to oscillator. Value should be returned to zero before removing vddhigh_in or asserting
  bit 0 of this register (REFTOP_PWD) to assure proper restart of the circuit.

files:

regsxtalosc24.h

pmu_driver.cpp

GitHub - flit/imx6_platform_sdk: Bare metal SDK for i.MX6 Q/D/DL/S/SL 


Have a great day,
Yuri

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.

0 Kudos
Reply

1,023 Views
cniedermaier
Contributor III

Hello,

Thanks for the answer, but unfortunately it does not bring me any further insight.

Is it allowed to switch off the bit REFTOP_SELFBIASOFF during operation like the IMX_THERMAL driver does in U-Boot?

For me the i.MX6ULL is a back box and I can't see what happens inside. But it is just that switching this bit off and on again often leads to instability of the CPU...

0 Kudos
Reply

1,023 Views
Yuri
NXP Employee
NXP Employee

Hello,

   Customers can use the bit REFTOP_SELFBIASOFF as they need.

General recommendation is that the bit should  be set in early uboot. And needs to be cleared

when the system is going into STOP mode and will be set again on resume.

ENGR00327364-2 ARM:imx6x: Ensure that the bandgap self-bias circuit is disabled after boot. (516bf00... 

Regards,

Yuri.

0 Kudos
Reply