Skip to contentSkip to conversation

imx23evk NAND support

DISCUSSION Paul B. Henson 2 participants 4 messages Jan 13, 2013 – Jan 15, 2013

lore
Share & tools
lore
#0 lore raw

I'm working with a freescale i.MX23EVK board prototyping a project that is going to need to boot from NAND. I'm trying to get barebox installed on the NAND chip on this board, with the next step being getting a linux kernel and filesystem on NAND as well.

I've compiled barebox from git as of today, and successfully booted it from SD and USB, but have been unable to get the NAND device recognized.

Booting from SD with the mci driver enabled:

devices:
`---- platform

     `---- stm_serial0
          `---- cs0
     `---- mem0
          `---- 0x00000000-0x01ffffff: /dev/ram0
     `---- mem1
          `---- 0x00000000-0xfffffffe: /dev/mem
     `---- mxs_mci0
          `---- mci0
`---- fs
     `---- ramfs0
     `---- devfs0

`---- global

drivers:
stm_serial
ramfs
devfs
mxs_nand
mci
mxs_mci
mem

Booting from SD without the mci driver:

devices:
`---- platform

     `---- stm_serial0
          `---- cs0
     `---- mem0
          `---- 0x00000000-0x01ffffff: /dev/ram0
     `---- mem1
          `---- 0x00000000-0xfffffffe: /dev/mem
     `---- mxs_mci0
`---- fs
     `---- ramfs0
     `---- devfs0

`---- global

drivers:
stm_serial
ramfs
devfs
mxs_nand
mem

In both cases, it seems to find the mci device, but not the nand device. (On a side note, running mci0.probe=1 with the mci driver enabled appears to completely lock up the board).

My understanding is that the SD card and the NAND chip cannot be used at the same time due to a pin conflict. Considering the possibility that perhaps the NAND cannot be accessed if booting from SD, I tried booting via USB, with the same result:

devices:
`---- platform

     `---- stm_serial0
          `---- cs0
     `---- mem0
          `---- 0x00000000-0x01ffffff: /dev/ram0
     `---- mem1
          `---- 0x00000000-0xfffffffe: /dev/mem
     `---- mxs_mci0
`---- fs
     `---- ramfs0
     `---- devfs0

`---- global

drivers:
stm_serial
ramfs
devfs
mxs_nand
mem

The SD card device is found, but not the nand device.

Am I missing something? Given its inclusion in barebox, I'm assuming *somebody* has gotten the i.mx23 NAND driver working :). Any assistance much appreciated, thanks.

I wonder why they didn't hook the SD interface up to SSP1 rather than SSP2 to avoid the NAND conflict. It looks like you can't use the SD device and the ethernet device simultaneously either :(.

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw
Quoted 2 lines · Paul B. Henson

My understanding is that the SD card and the NAND chip cannot be used at the same time due to a pin conflict.

Hmm, it seems what I read on this wasn't entirely correct. I ended up booting the BSP linux kernel and root file system off of SD, and it was able to access the NAND device while simultaneously using the SD device (as the root filesystem source) so there doesn't seem to be any inherent hardware limitation preventing bareboot from accessing it.

Just for fun, I tried to use the kobs-ng freescale tool from within the linux environment to burn the bareboot bootstream to NAND. However, after trying to boot, I receive the error code 0x80501003 from the ROM loader, which evidently indicates "The file signature or file version is incorrect". The exact same bootstream on an SD card boots fine, so I don't think there's anything wrong with it. I also tried to burn the BSP linux kernel bootstream, with the same result. (Side question, what's the difference in the bootstream files that contain "ivt" in the filename? I used the non-ivt versions on SD, I tried both on NAND with neither working).

The board came from the factory with a working kernel on NAND, so I know it can work. Given I'm using the freescale supplied linux environment and their nand bootstream burning tool you'd think it would be fairly straightforward…

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#2 lore raw

Hi Paul,

Quoted 10 lines · Paul B. Henson
Quoted 2 lines · Paul B. Henson

My understanding is that the SD card and the NAND chip cannot be used at the same time due to a pin conflict.

Hmm, it seems what I read on this wasn't entirely correct. I ended up booting the BSP linux kernel and root file system off of SD, and it was able to access the NAND device while simultaneously using the SD device (as the root filesystem source) so there doesn't seem to be any inherent hardware limitation preventing bareboot from accessing it.

Quoted 10 lines

Just for fun, I tried to use the kobs-ng freescale tool from within the linux environment to burn the bareboot bootstream to NAND. However, after trying to boot, I receive the error code 0x80501003 from the ROM loader, which evidently indicates "The file signature or file version is incorrect". The exact same bootstream on an SD card boots fine, so I don't think there's anything wrong with it. I also tried to burn the BSP linux kernel bootstream, with the same result. (Side question, what's the difference in the bootstream files that contain "ivt" in the filename? I used the non-ivt versions on SD, I tried both on NAND with neither working).

IIRC ivt/non-ivt is relevant for the i.MX28 firmware, not for i.MX23. On the other hand, for some i.MX23 based systems the encryption must be enabled for the bootstream, but with an empty key.

Hope it helps.
Juergen

Signature · 7 lines
Pengutronix e.K.                              | Juergen Beisert             |
Linux Solutions for Science and Industry      | http://www.pengutronix.de/  |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#3 lore raw
Quoted 2 lines · Juergen Beisert

IIRC ivt/non-ivt is relevant for the i.MX28 firmware, not for i.MX23.

Ah, okay. I actually have an mx28 eval board too, but started with the 23 and haven't looked at the 28 board yet. I'm using the freescale tool to generate the bootstream, which knows it's intended for an i.MX23, you'd think (or wish I suppose) it would be smart enough not to generate the ivt versions if they're not relevant for that architecture.

Quoted 2 lines

On the other hand, for some i.MX23 based systems the encryption must be enabled for the bootstream, but with an empty key.

The bootstream file seems to work fine from SD. I don't think it requires a different format for burning to NAND vs booting from SD, so I think I have a good file. The kobs-ng tool that burns the bootstream to NAND claims it is a valid image and that it is successfully burned, but then it just won't boot :(. I'd be interested in trying to burn it from barebox to see if that makes a difference, but a prerequisite for that is getting the NAND to work in barebox <sigh>.

It looks like the i.MX23/28 NAND support was ported from u-boot? u-boot doesn't actually support the i.MX23 board at the moment. There's somebody working on that, but they told me that the 23 and 28 NAND implementation is a bit different, and their current support for the 28 needs to be updated to work with the 23. Perhaps the barebox NAND driver only works with the 28 board as well? I'll give it a try on that board and see what happens.

Has anyone successfully accessed the NAND on an i.MX23 board with barebox?

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox