[U-Boot] socfpga 2016.05, CV socdk Rev E1, SPL and u-boot fail when booting from QSPI

Sylvain Lesne lesne at alse-fr.com
Mon Jun 27 11:38:51 CEST 2016


Hi!

On 06/27/2016 11:10 AM, Christian Didriksson wrote:
> Hi,
> 
>> On 06/23/2016 06:31 PM, Sylvain Lesne wrote:
>>> On 06/23/2016 06:14 PM, Marek Vasut wrote:
>>>> On 06/23/2016 05:58 PM, Sylvain Lesne wrote:
>>>>> Hi Marek, Christian,
>>>>
>>>> Hi,
>>>>
>>>>> On 06/23/2016 03:07 PM, Marek Vasut wrote:
>>>>>> On 06/22/2016 06:37 PM, Christian Didriksson wrote:
>>>>>>> Hi Marek,
>>>>>>
>>>>>> Hi!
>>>>>>
>>>>>>> [..]
>>>>>>>
>>>>>>> I skipped booting from QSPI and started all over with a vanilla
>>>>> 2016.05 and built the u-boot-with-spl.sfp. Put it on an SD-card and
>>> booted:
>>>>>>>
>>>>>>> U-Boot SPL 2016.05-gbb88b7b-dirty (Jun 22 2016 - 14:53:14)
>>>>>>> drivers/ddr/altera/sequencer.c: Preparing to start memory
>>>>>>> calibration
>>>>>>> drivers/ddr/altera/sequencer.c: CALIBRATION PASSED
>>>>>>> drivers/ddr/altera/sequencer.c: Calibration complete Trying to
>>>>>>> boot from MMC1
>>>>>>>
>>>>>>> This printout is repeated forever.
>>>>>>>
>>>>>>> I then connected DS5 via the USB-Blaster cable and single stepped
>>>>> through the SPL and after a while, down in mmc_init, I loose
>>>>> connection to the target and when I interrupt it the PC is here:
>>>>>>
>>>>>> mmc_init causes data abort ? That is _weird_ .
>>>>>>
>>>>>>> #ifdef CONFIG_SPL_BUILD
>>>>>>>
>>>>>>> 	.align	5
>>>>>>> undefined_instruction:
>>>>>>> software_interrupt:
>>>>>>> prefetch_abort:
>>>>>>> data_abort:
>>>>>>> not_used:
>>>>>>> irq:
>>>>>>> fiq:
>>>>>>>
>>>>>>> 1:
>>>>>>> 	bl	1b			/*
>> hang and never return */
>>>>>>>
>>>>>>> #else	/* !CONFIG_SPL_BUILD */
>>>>>>>
>>>>>>> I will send you my binary for test on your Rev c board if you can
>>>>> find the time.
>>>>>>>
>>>>>>> I also tested the binary you sent me last week and it behaves
>>>>> identically regarding the printouts and reboot.
>>>>>>
>>>>>> Works on my rev C1:
>>>>>>
>>>>>> U-Boot SPL 2016.05-gbb88b7b-dirty (Jun 22 2016 - 14:53:14)
>>>>>> drivers/ddr/altera/sequencer.c: Preparing to start memory
>>>>>> calibration
>>>>>> drivers/ddr/altera/sequencer.c: CALIBRATION PASSED
>>>>>> drivers/ddr/altera/sequencer.c: Calibration complete Trying to boot
>>>>>> from MMC1
>>>>>>
>>>>>>
>>>>>> U-Boot 2016.05-gbb88b7b-dirty (Jun 22 2016 - 14:53:14 +0200)
>>>>>>
>>>>>> CPU:   Altera SoCFPGA Platform
>>>>>> FPGA:  Altera Cyclone V, SE/A6 or SX/C6 or ST/D6, version 0x0
>>>>>> BOOT:  SD/MMC External Transceiver (1.8V)
>>>>>>        Watchdog enabled
>>>>>> I2C:   ready
>>>>>> DRAM:  1 GiB
>>>>>> MMC:   dwmmc0 at ff704000: 0
>>>>>> In:    serial
>>>>>> Out:   serial
>>>>>> Err:   serial
>>>>>> Model: Altera SOCFPGA Cyclone V SoC Development Kit
>>>>>> Net:   eth0: ethernet at ff702000
>>>>>> Hit any key to stop autoboot:  0
>>>>>> =>
>>>>>> =>
>>>>>> =>
>>>>>> => ver
>>>>>>
>>>>>> U-Boot 2016.05-gbb88b7b-dirty (Jun 22 2016 - 14:53:14 +0200)
>>>>>> arm-cortexa9_neon-linux-uclibcgnueabihf-gcc (crosstool-NG
>>>>>> crosstool-ng-1.22.0-129-ga41b269) 5.3.0 GNU ld (crosstool-NG
>>>>>> crosstool-ng-1.22.0-129-ga41b269) 2.26.20160125
>>>>>>
>>>>>>
>>>>>
>>>>> I think this might be related to something we discussed last month
>>>>> (starting from [1])!
>>>>>
>>>>> Am I right to assume that:
>>>>> - Marek, you have the A2 partition starting at the sector 2048 of
>>>>> the SD card? (I think that this is the partitioning of the reference
>>>>> designs)
>>>>> - Christian, your SD card partitioning is different?
>>>>>
>>>>> The 2016.05 socfpga SPL loads U-Boot from a fixed offset on the SD
>>>>> card, and this could explain why you both have a different behavior
>>>>> if you have different offsets for your partitions!
>>>>
>>>> Oh right, thanks for reminding me that your patch broke booting of
>>>> all SoCFPGA boards which boot from SD card and I had to locally revert it.
>>>> I will send a patch which fixes that now. Would you be able to send a
>>>> fixed patch ?
>>>
>>> Ack, I'm sorry about that! That was obviously not my goal.
>>> (I see that you just sent a patch to change the partition from 3 to 1,
>>> and I agree that this is reasonable)
>>>
>>>>
>>>>> So, Christian, you could try to move your A2 partition (which
>>>>> contains u-boot-with-spl.sfp ) to the offset that the SPL expects, ie:
>>>>>
>>>>> ----------8<-------------------8<---------------
>>>>> $ sudo fdisk -l /dev/sdc
>>>>>
>>>>> Disk /dev/sdc: 7969 MB, 7969177600 bytes
>>>>> 246 heads, 62 sectors/track, 1020 cylinders, total 15564800 sectors
>>>>> Units = sectors of 1 * 512 = 512 bytes Sector size
>>>>> (logical/physical): 512 bytes / 512 bytes I/O size
>>>>> (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
>>>>>
>>>>> Device Boot Start End Blocks Id System
>>>>> /dev/sdc1 2000000 3000000 500000+ b W95 FAT32
>>>>> /dev/sdc2 14000 1999999 993000 83 Linux
>>>>> /dev/sdc3 2048 4096 1024+ a2 Unknown
>>>>
>>>> The A2 partition should be partition 1, please do not use this
>>>> crippled layout by placing the bootloader partition at the end of
>>>> boot media. I don't know who invented that, but that's a design disaster.
>>>
>>> I don't know either, but the official reference designs from Altera
>>> still use this layout by default! (I agree that this is kind of
>>> backwards)
>>>
>>>>
>>>>> Partition table entries are not in disk order
>>>>> ----------8<-------------------8<---------------
>>>>>
>>>>> Or else, if you'd rather keep your SD layout, Marek accepted a patch
>>>>> that will be in v2016.07 (I think) to enable loading U-Boot from an
>>>>> offset starting at the beginning of a partition (the third one by
>>>>> default): [2]
>>>>
>>>> I will be reverting that one, sorry.
>>>
>>> Again, I'm sorry for the trouble.
>>
>> No problem, it's fixed and I hope I managed to nip the problem in the bud.
>>
> I have tried to apply the changes you have suggested, but I end up with the 
> "undefined reference to 'sprintf' error" when I try to build 2016.05.

Did you also enable CONFIG_USE_TINY_PRINTF? If yes, please try to apply
the following commits as well:

http://git.denx.de/?p=u-boot.git;a=commit;h=5c411d88be8df5f6a8a1ea0c961f7c35ba82c064
http://git.denx.de/?p=u-boot.git;a=commit;h=abeb272d22217481c214495818c3ceabad57b9c0
http://git.denx.de/?p=u-boot.git;a=commit;h=3191d8408053674c1b9bb79a82e3973add48830c

Best regards,
Sylvain


More information about the U-Boot mailing list