iMX6 Sabre Boot Related Questions

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

iMX6 Sabre Boot Related Questions

Jump to solution
2,408 Views
atillametetured
Contributor V


Greetings

I have two simple questions regarding the boot configuration pins of iMX6 and overall boot operation of the device.

First question is; If I do not insert boot config switches or resistors except for the BOOT_MODE[1:0] pins, by using the serial downloader to install u-Boot, is it possible to fully configure the boot process of iMX6. My idea is to get the u-Boot in iMX6 using BOOT_MODE pins in Serial Downloader mode (USB_OTG), get the u-Boot in and then program the eFUSES. In such a way, I am willing to reduce the number of components required for the boot process. I know it is handy to have switches but it increases the board size.

Second question is; Sabre has resistor arrays and dip switches on all boot config pins possible. Silly question but yet still, this doesnt mean such an architecture makes these pins useless right? The 4K7 resistors are inserted so that EIM signals can be removed from the boot config signals by removing these resistors and operate as usual. And when you need to configure the boot insert the resistors and remove the eim signals from whatever they are connected to in normal functionality. (An example is EIM_DA8 being connected to DISP0_RST_B over a 0 ohm resistor and also connected to BT_CFG2_0 over a 4.7K resistor)

Best Regards,

Mete

Labels (2)
0 Kudos
1 Solution
979 Views
art
NXP Employee
NXP Employee

Not exactly. The pin functionality settings (so-called IOMUX settings) go to their default values during hardware reset. So, following your example, at second reset the pin operates as boot configuration signal during the reset sequence, when reset sequence completes the pin goes to its default functionality that is GPIO input, then you can again configure it for say HDMI functionality in software by writing appropriate values to the registers of the IOMUX module.

Refer to the Table 4-1 of the chip's Reference Manual document for the information on possible pin functionality settings.

And, regarding my previous post, I was wrong regarding the I2C pin functionality. Actually, it is possible to use this pin as I2C together with boot configuration signal only using more complicated boot configuration network circuit that includes tri-state buffers on the boot configuration pins that go to HiZ when the reset signal is released.

Best Regards,

Artur

View solution in original post

0 Kudos
8 Replies
979 Views
art
NXP Employee
NXP Employee

1. Yes, it is possible to blow the OTP e-fuses in the way you describe. Moreover, there is the Manufacturing Tool (MFGtool) software that simplifies this process during mass production (look at Tools -> Manufacturing Tools, all related documentation is included into the packages):

http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/i.mx-applications-process...?

2. No, the boot configuration pins do not become useless for their regular use. This boot configuration resistors and DIP switches network is designed especially to provide the operation of these pins as boot configuration signals at power-on reset and regular use of these signals after power-on reset sequence completion. Actually, until the power-on reset sequence is complete, these pins behave as HiZ GPIO inputs, so, the external boot configuration network allows to provide a stable logic level, High (DIP switch is close) ot Low (DIP switch is open), during this period. After that, when power-on reset is complete, these signals can be used for their regular purposes on the processor side of the 4.7kOhm resistors.


Have a great day,
Artur

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

979 Views
atillametetured
Contributor V

Hello Artur,

Thanks for your valuable answer. Just to clear few things up, I wish to give an example.

EIM_EB2 signal is connected to BT_CFG4_6 over a 4.7K resistor. BT_CFG4_6 is connected to ground over a 10K resistor. There is also a 100K ohm Pull up at EIM_EB2 port which I assume is deactivated during power on reset procedure so EIM_EB2 is pulled low by these two series resistors which overrides the eFUSE and boots the device BT_CFG4_6 = LOW and enables the EEPROM recovery. After the power on reset is complete, the pull up at EIM_EB2 is active and I2C_SCL (this pin's regular purpose) is pulled up by the 100K ohm internal PU resistor. Now the I2C_SCL can be set low/high for I2C operation by the port for the I2C clock.

This reminds me of the question. When EIM_EB2 is pulled high for its normal I2C Clock operation, there is a path to ground over the pull-up and series resistors (10k+4.7k) which should result in a current flow to ground. Is this okay for the processor? Doesn't this in any way affect the operation of the I2C clock line? I am sorry if this is not a reasonable question.

Best Regards,

Mete

0 Kudos
979 Views
art
NXP Employee
NXP Employee

First, the default out-of-reset function of the EIM_EB2 pin is GPIO input.

Then, it can be configured for various functions, such as GPIO output, EIM_EB2_B, ECSPI1_SS0, IPU2_CSI1_DATA19, HDMI_TX_DDC_SCL. 14.7kOhm pulldown of the boot configuration resistors is relatively small load to affect the operation of these functions.

Regarding using this pin as I2C2_SCL, the situation is as follows. It's not possible to use internal 100kOHm pull-up as I2C bus pullup since its value is too big, so, an external I2C pullups must be used anyway. So, using relatively small (e.g. 1kOhm) external pullup makes it OK to use this pin as I2C SCL.

Best Regards,

Artur

979 Views
atillametetured
Contributor V

Hello Artur,

So chip is shipped. It is getting powered on for the first time. During power on reset the pin will function as a boot config pin. When the reset is complete it is a GPIO input. I configure it for another functionality (say HDMI), and reset it again. At the second reset, it acts as boot config pin and after the reset it functions as an HDMI_TX_DDC_SCL as configured. Right?

Regards,

Mete

0 Kudos
980 Views
art
NXP Employee
NXP Employee

Not exactly. The pin functionality settings (so-called IOMUX settings) go to their default values during hardware reset. So, following your example, at second reset the pin operates as boot configuration signal during the reset sequence, when reset sequence completes the pin goes to its default functionality that is GPIO input, then you can again configure it for say HDMI functionality in software by writing appropriate values to the registers of the IOMUX module.

Refer to the Table 4-1 of the chip's Reference Manual document for the information on possible pin functionality settings.

And, regarding my previous post, I was wrong regarding the I2C pin functionality. Actually, it is possible to use this pin as I2C together with boot configuration signal only using more complicated boot configuration network circuit that includes tri-state buffers on the boot configuration pins that go to HiZ when the reset signal is released.

Best Regards,

Artur

0 Kudos
979 Views
aravinthkumarja
Senior Contributor II

Hi atillameteturedi

Answer for your 1st Question:

     which memory device have uboot, that device mode boot settings you have to set as permanently. While booting, in uboot have download mode by using this mode you can download other images into your memory device, then you can boot.

In uboot you can use tftp also to download the image.

Regards,

Aravinth

0 Kudos
979 Views
atillametetured
Contributor V

Hello Aravinth,

Reference manul states that when BOOT_MODE[1:0] = 01, it is set to serial downloader. Using the serial downloader, I can download the uBoot to boot into the device. What I want to do is, by using switches, set the BOOT_MODE[1:0]=01 first so I can get the uBoot in and set the eFUSES using uBoot. After setting the eFUSES, I change the BOOT_MODE[1:0] to 00 so I can boot from fuses the next time.

You said you have to set boot settings permanently. What do you mean by this? Do you mean setting the fuses or boot mode pins? Is there anything wrong with the setup I explained in the first paragraph?

Regards,

Mete

0 Kudos
979 Views
aravinthkumarja
Senior Contributor II

Hi atillameteturedi

What i meant was, Once you put uboot in eFUSES then you change the boot settings  into 00 mode permanently. Again no need to change the boot settings. That was i meant.

Regards,

Aravinth