[U-Boot] [PATCH v2 0/8] arm: Tidy up early init

Michal Simek monstr at monstr.eu
Thu Sep 3 13:13:33 CEST 2015


Hi Simon,

On 09/02/2015 04:48 AM, Simon Glass wrote:
> Hi Mchal,
> 
> On 1 September 2015 at 03:10, Michal Simek <monstr at monstr.eu> wrote:
>> Hi Simon,
>>
>> On 08/28/2015 10:50 PM, Simon Glass wrote:
>>> This series collects the previous RFT patches I sent out.
>>>
>>> https://patchwork.ozlabs.org/patch/508167/
>>> https://patchwork.ozlabs.org/patch/508168/
>>>
>>> It turns out that I originally sent a version of these in April:
>>>
>>> https://patchwork.ozlabs.org/patch/461687/
>>> https://patchwork.ozlabs.org/patch/461690/
>>>
>>> so this series mirrors that one and includes the Zynq patches from that
>>> series.
>>>
>>> I hope these can sneak in to this release so that I don't forget them
>>> again!
>>>
>>> I have tested this on a few ARM platforms: Zynq Zybo, Beaglebone Black,
>>> pcduino3 (sunxi), Jetson-TK1 (tegra).
>>>
>>> Changes in v2:
>>> - Put this into common/init/ and just Makefiles accordingly
>>> - Add comments as to why this is needed, deal with arch-specific memset()
>>>
>>> Simon Glass (8):
>>>   Move board_init_f_mem() into a common location
>>>   board_init_f_mem(): Don't require memset()
>>>   board_init_f_mem(): Don't create an unused early malloc() area
>>>   arm: Switch aarch64 to using generic global_data setup
>>>   arm: Switch 32-bit ARM to using generic global_data setup
>>>   microblaze: Add a TODO to call board_init_f_mem()
>>>   zynq: Move SPL console init out of board_init_f()
>>>   Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>>
>>>  arch/arm/lib/crt0.S                | 28 +++---------------
>>>  arch/arm/lib/crt0_64.S             | 15 ++--------
>>>  arch/arm/mach-zynq/spl.c           |  2 +-
>>>  arch/microblaze/cpu/start.S        |  2 ++
>>>  common/Makefile                    |  1 +
>>>  common/board_f.c                   | 29 ------------------
>>>  common/init/Makefile               |  7 +++++
>>>  common/init/board_init.c           | 60 ++++++++++++++++++++++++++++++++++++++
>>>  configs/zynq_microzed_defconfig    |  1 -
>>>  configs/zynq_zc702_defconfig       |  1 -
>>>  configs/zynq_zc706_defconfig       |  1 -
>>>  configs/zynq_zc70x_defconfig       |  1 -
>>>  configs/zynq_zc770_xm010_defconfig |  1 -
>>>  configs/zynq_zc770_xm011_defconfig |  1 -
>>>  configs/zynq_zc770_xm012_defconfig |  1 -
>>>  configs/zynq_zc770_xm013_defconfig |  1 -
>>>  configs/zynq_zed_defconfig         |  1 -
>>>  configs/zynq_zybo_defconfig        |  1 -
>>>  scripts/Makefile.spl               |  1 +
>>>  19 files changed, 79 insertions(+), 76 deletions(-)
>>>  create mode 100644 common/init/Makefile
>>>  create mode 100644 common/init/board_init.c
>>>
>>
>> I am getting compilation warning about USE_MEMCPY which should be
>> resolved too.
>>
>>
>> [u-boot]$ ./tools/buildman/buildman -b xnext/serial2 zynq_zc702 -sSed
>> boards.cfg is up to date. Nothing to do.
>> Summary of 9 commits for 1 boards (1 thread, 8 jobs per thread)
>> 01: Merge branch 'master' of http://git.denx.de/u-boot-sunxi
>> 02: Move board_init_f_mem() into a common location
>> 03: board_init_f_mem(): Don't require memset()
>>        arm:  +   zynq_zc702
>> + #define USE_MEMCPY
>> + ^
>> +In file included from ../include/common.h:1064:0,
>> +                 from ../common/init/board_init.c:10:
>> +../include/malloc.h:355:0: note: this is the location of the previous
>> definition
>> + #define USE_MEMCPY 1
>> w+../common/init/board_init.c:21:0: warning: "USE_MEMCPY" redefined
>> [enabled by default]
>> 04: board_init_f_mem(): Don't create an unused early malloc() area
>> 05: arm: Switch aarch64 to using generic global_data setup
>> 06: arm: Switch 32-bit ARM to using generic global_data setup
>>        arm: (for 1/1 boards)  all +28.0  spl/u-boot-spl:all +28.0
>> spl/u-boot-spl:text +28.0  text +28.0
>>             zynq_zc702     :  all +28  spl/u-boot-spl:all +28
>> spl/u-boot-spl:text +28  text +28
>> 07: microblaze: Add a TODO to call board_init_f_mem()
>> 08: zynq: Move SPL console init out of board_init_f()
>>        arm: (for 1/1 boards)  spl/u-boot-spl:all +8.0
>> spl/u-boot-spl:text +8.0
>>             zynq_zc702     :  spl/u-boot-spl:all +8  spl/u-boot-spl:text +8
>> 09: Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot"
>>        arm: (for 1/1 boards)  all +257.0  rodata +37.0
>> spl/u-boot-spl:all +180.0  spl/u-boot-spl:text +180.0  text +220.0
>>             zynq_zc702     :  all +257  rodata +37  spl/u-boot-spl:all
>> +180  spl/u-boot-spl:text +180  text +220
> 
> Yes, unfortunately I found that later and also I found a conflict with
> the malloc change also:
> 
> http://patchwork.ozlabs.org/patch/512147/
> 
> Once we figure out zynqmp I can resend it.

Here is the branch with ZynqMP changes for DM.

http://git.denx.de/?p=u-boot/u-boot-microblaze.git;a=shortlog;h=refs/heads/serial-dm

I have added comments to commits.
The most problematic part for ZynqMP is that you have reverted
"fdt: Fix fdtdec_get_addr_size() for 64-bit"
(sha1: 5b34436035fc862b5e8d0d2c3eab74ba36f1a7f4) which is able to handle
address-cells = 2, size-cells = 1 case which ZynqMP is using.

Anyway you should be able to run u-boot on qemu.
Here is the log I am getting.

[qemu]$ ./aarch64-softmmu/qemu-system-aarch64 -M xlnx-ep108 -display
none -kernel /mnt/disk/u-boot/u-boot.elf -m 8000000 -nographic -serial
mon:stdio
qemu-system-aarch64: WARNING: RAM size 7a120000000 above max supported,
reduced to 80000000


U-Boot 2015.10-rc2-00326-g13bbf74f7d63 (Sep 03 2015 - 13:11:47 +0200)
Xilinx ZynqMP

I2C:   ready
DRAM:  1 GiB
Enabling Caches...
EL Level:	EL1
MMC:   zynq_sdhci: 0
Using default environment

In:    serial at ff000000
Out:   serial at ff000000
Err:   serial at ff000000
Invalid Boot Mode:0x0
SCSI:  AHCI 0000.0000 1 slots 1 ports ? Gbps 0x0 impl SATA mode
flags:
scanning bus for devices...
Found 0 device(s).
Net:   Gem.ff0b0000
Warning: Gem.ff0b0000 (eth0) using random MAC address - 8e:46:f3:b5:70:eb

Hit any key to stop autoboot:  0
ZynqMP> QEMU: Terminated
[qemu]$


Please let me know if you need any input on this.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150903/520caf24/attachment.sig>


More information about the U-Boot mailing list