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:
Chipset | Driver | |
---|---|---|
1 & 2 | RT5370 | RT5370STA |
1 & 2 | RT5370 | RT5572STA |
3 | RT7601 | MT7601USTA |
4 | RT8188 | 8188EU |
5 | RTL8192cu | 8192CU |
6 | AR9271 | ar9271.fw |
7 | R8712 | 8712U |
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:
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!
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
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!
-----------------------------------------------------------------------------------------------------------------------
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?