Custom HW based on imx28 unable to boot from linux-3.14 (yocto)

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

Custom HW based on imx28 unable to boot from linux-3.14 (yocto)

1,427 Views
xavigarcía
Contributor I

Hi people,

I have been working on a i.MX28 EVK development board, i needed to achieve to set an Access Point with the board and I had some dongles to do it:

usb.jpg

     ChipsetDriver
1 & 2RT5370RT5370STA
1 & 2RT5370RT5572STA
3RT7601MT7601USTA
4RT81888188EU
5RTL8192cu8192CU
6AR9271ar9271.fw
7R87128712U

Finally after trying a lot of combinations (several drivers, kernels, ltib.. yocto..) I got the Access Point.

I was only able to have it working with the WN722N dongle, AR9271 chipset, in linux-2.6.35 it gets the ar9271.fw which doesn't work with hostapd, in linux-3.14 fslc compiled with yocto it gets the htc-9271.fw and hostapd has no problems to set the Access Point.

I wasn't able to do the same with the other dongles neither with linux 2.6.35.

The next step was seeing how the SO worked in our custom hardware based on i.mx28. The main differences are:

- Instead of the SSP0 bus of 8bits for the SD used in iMX28 board the custom HW uses 4 bits for the microSD.

- The custom HW doesn't uses battery.

Impossible to boot... 0x8020A014 error --> ERROR_DDI_SD_MMC_DEVICE_NOT_SUPPORTED

I know that have to change "something" in the boot, but i don't know what and how, I tried to change the boot argument "setenv mmcdev 1" but neither this way, same problem.

These are the partitions of the card:

Captura de pantalla de 2014-07-29 11_17_41.png

Maybe need to change something on the partitions?

So in this point I am, need to boot the system on the custom HW and if is possible, have more of the others dongles working, but this seems to be impossible...

This is the second time I post something here, the last time i had no help, hope this time it change!

Labels (3)
0 Kudos
2 Replies

640 Views
igorpadykov
NXP Employee
NXP Employee

Hi Xavi

for dongles I suggest to work with tech support of dongle vendors,

since they may have to update dongle firmware. Regarding boot on

custom board, if you "don't know what and how", I would highly recommend

to start with Freescale BSPs and probably OBDS (and debugging with jtag if

possible).

L2.6.35_1.1.0_ER_SOURCE : i.MX28 Linux 2.6.35 Source Code

IMX_OBDS

In particular you need to blow some fuses, please look at Table 12-3. General ROM Bits

i.MX28 RM. You can check fuses on i.MX28 EVK with jtag and OBDS (stmp_otp.c test)

and blow custom board with similar settings.

When you don't have the SD card plugged into the slot (SSP Interface), the debug UART port

comes up with an error code 0x8020a014 which corresponds to "ERROR_DDI_SD_MMC_DEVICE_

NOT_SUPPORTED".

Blow the HW_OCOTP_ROM7 ENABLE_SSP_12MA_DRIVE bit

(to avoid TKT131240 SSP0/1-SD/MMC/eMMC Boot: SSP_SCK polarity setup issue in ROM)

Check fuse SD_POWER_GATE, when CARD_DETECT

goes low due to card insertion, i.MX28 firmware will drive SD_POWER_GATE low to connect

VDDIO_3V3 to VDDIO_SD. Remember to add 10K pull-up resistor on both SSP0_CMD and

SSP1_CMD.

If "HW doesn't uses battery" :

below steps is used to  configure the VDD5V power source as DCDC, instead of battery:

1. Generate the bootlet source code:

./ltib –p boot_stream.spec -m prep // generate bootlet source code

2. In imx-bootlets-src-10.12.01/power_prep/power_prep.c:

#define NO_DCDC_BATT_SOURCE // enable VDD 5V only

3. Rebuild the bootlet code:

./ltib -p boot_stream.spec -f //build bootlet code

Since wifi dongles may consume large current, you should check if i.MX28 PMU and

board is able to provide it.

Best regards

chip

-----------------------------------------------------------------------------------------------------------------------

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

-----------------------------------------------------------------------------------------------------------------------

640 Views
xavigarcía
Contributor I

The problem is that I work with Yocto, so I can't change boot_stream with ltib, another problem is that I'm working on linux-3.14 (linux-fslc) and the documentation that I find on your link is for linux-2.6...

I have the OS working properly on the Freescale board, but it can't boot from microsd on the custom board.

What I need to change on the boot in order to make it run?

Where do i have to blow the HW_OCOTP_ROM7 ENABLE_SSP_12MA_DRIVE bit?

0 Kudos