Booting custom I.MX233 board via BCB

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

Booting custom I.MX233 board via BCB

Jump to solution
2,534 Views
chrissmith
Contributor III

I've built my own prototype board with a factory imx233, which does not have the OTP bit HW_OCOTP_ROM0::SD_MBR_BOOT blown. It is a 128-QFP 5v only design, based on the reference schematics (rev C). To test this board, I have a small boot program that will flash an LED.

Currently my board does not show signs of life :smileycry: This could be because of several things:

1) I've made a hardware design error.

2) My BCB boot is incorrect.

All power rails seem to be within tolerance, and the crystal is oscillating at 24MHz.

I have an OLinuXino development board which does have the OTP bit HW_OCOTP_ROM0::SD_MBR_BOOT blown so that it boots from MBR.

Will the I.MX233 boot from BCB if the OTP bit is blown and there is no MBR on the SDCard? The OLinuXino has an LED on the same GPIO as my custom board, and it boots my test when there is an MBR present, but not BCB.

I've followed the BCB advice in this thread https://community.freescale.com/thread/311484

Is the size of the SDCard significant? I have tried creating the BCB in the last sector of a 2MB partition _and_ in the last sector of the physical card, which is 8GB. Which is correct?

Any advice?

Labels (1)
0 Kudos
1 Solution
1,474 Views
igorpadykov
NXP Employee
NXP Employee

Hi Chris,

please try attached example,

SD size is important since due to ROM bugs, customers choosing to use BCB boot

may be limited to smaller capacity (< 2GB cards).

View solution in original post

0 Kudos
8 Replies
1,475 Views
igorpadykov
NXP Employee
NXP Employee

Hi Chris,

please try attached example,

SD size is important since due to ROM bugs, customers choosing to use BCB boot

may be limited to smaller capacity (< 2GB cards).

0 Kudos
1,474 Views
chrissmith
Contributor III

Finally success with one prototype board!


I had to hand solder a UART debug header onto the RX_DUART and TX_DUART pins (with a magnifying glass), which reported 0x8020a007 and 0x8020a014 (depending on whether the SDCard was present or not) from one of my boards, nothing from the other which appears dead.

After further investigation, I noticed a tiny solder bridge between the outer pin of the sdcard socket and the case on the "live" board. After removing the bridge with a scalpel, the board boots using the BCB info provided by chipexpert and flashes the LED.

I clearly have prototype manufacturing quality issues.

Thanks for your help, I wouldn't have got BCB working at all without it.

0 Kudos
1,474 Views
chrissmith
Contributor III

I've followed the BCB info in the zip you uploaded, but am not seeing the device boot (2GB SDCard).

My next step is to try and debug via the SJTAG, which hopefully I have designed correctly in the schematic.

I've got a wiggle compatible JTAG that is sometimes a bit unreliable, and a USB JTAG on order and arriving in the next few days.

I will hook up the SJTAG interface and see if openocd detects the imx233.

Any advice on debugging the boot process?

0 Kudos
1,474 Views
chrissmith
Contributor III

Just had a read through the PDF in the zip, and I see that BCB cannot be used if the MBR OTP has been blown. So that answers that!

Now I need to find a low capacity SDCard....

0 Kudos
1,474 Views
chrissmith
Contributor III

Thanks for the zip. Will try that this weekend now I'm back from business travel.

Do we know whether an imx233 that has been OTP'd to boot from MBR will fall back to BCB if an MBR is not found?

0 Kudos
1,474 Views
jaydcarlson
Contributor III

Chris,

I don't have any experience with BCB or any bare metal development on the i.MX233. I always just put a Yocto MicroSD card in, close my eyes, and cross my fingers :-)

I'd be happy to look at your schematics and layout -- just post images/PDFs here. You may also want to start by plugging your i.MX233 board into your computer with the USB connection -- regardless of your fuse configuration, it should instantiate on the USB bus, and you should see it in Device Manager. If it gets that far, it means your power rails (minus the 2V5 DDR memory supply) is functioning properly, and the processor is executing code from its built-in bootloader. If it doesn't instantiate, you definitely have board issues.

One more tip: for bare-metal development, an SJTAG connection is invaluable for figuring out what the processor is doing. Olimex has a really, really cheap SJTAG-to-JTAG adapter that you can use with your favorite JTAG debug probe. I highly recommend having one around.

0 Kudos
1,474 Views
chrissmith
Contributor III

Tonight I hooked up my SJTAG adapter, and openOCD fails to scan the JTAG chain "JTAG scan chain interrogation failed: all zeros".

I wonder if I have a power issue? The rails seem to check out. :-(

I am at a loss as to what to look at next?

0 Kudos
1,474 Views
chrissmith
Contributor III

Hi Jay.

Attached is my imx board schematic.

One thing I did screw up was the reversal of the DRAM vss and vdd supplies. :-(

A mistake that crept in early when I created the DRAM symbol. This of course made it's way to the pcb layout.

However, I'm assuming this won't matter until I try to initialise the DRAM power, which is post-boot. As soon as I can verify the board will boot and have some tests running in OCRAM, I will fix the layout and get another PCB etched and populated.

Happy to upload the layout if you'd like.

Thanks!

Chris

0 Kudos