[meta-xilinx] [PATCH 5/7] Update recipes for Xilinx v2017.3 release
nathan at nathanrossi.com
Wed Oct 18 08:17:16 PDT 2017
On 13 October 2017 at 22:57, Nathan Rossi <nathan at nathanrossi.com> wrote:
> On 13 October 2017 at 03:59, Manjukumar Harthikote Matha
> <MANJUKUM at xilinx.com> wrote:
>>> -----Original Message-----
>>> From: Nathan Rossi [mailto:nathan at nathanrossi.com]
>>> Sent: Tuesday, October 10, 2017 11:51 PM
>>> To: Manjukumar Harthikote Matha <MANJUKUM at xilinx.com>
>>> Cc: Alistair Francis <alistair23 at gmail.com>; meta-xilinx at yoctoproject.org
>>> Subject: Re: [meta-xilinx] [PATCH 5/7] Update recipes for Xilinx v2017.3 release
>>> On 11 October 2017 at 09:05, Manjukumar Harthikote Matha
>>> <MANJUKUM at xilinx.com> wrote:
>>> > Hi Nathan,
>>> >> -----Original Message-----
>>> >> From: meta-xilinx-bounces at yoctoproject.org [mailto:meta-xilinx-
>>> >> bounces at yoctoproject.org] On Behalf Of Alistair Francis
>>> >> Sent: Tuesday, October 10, 2017 3:13 PM
>>> >> To: Nathan Rossi <nathan at nathanrossi.com>
>>> >> Cc: meta-xilinx at yoctoproject.org
>>> >> Subject: Re: [meta-xilinx] [PATCH 5/7] Update recipes for Xilinx
>>> >> v2017.3 release
>>> >> On Sat, Oct 7, 2017 at 2:57 AM, Nathan Rossi <nathan at nathanrossi.com> wrote:
>>> >> > Update the arm-trusted-firmware, pmu-firmware, u-boot-xlnx,
>>> >> > linux-xlnx, qemu-xilinx and qemu-devicetrees recipes for to the 'xilinx-v2017.3'
>>> >> > release tags.
>>> >> >
>>> >> > Drop/update existing patches where applicable.
>>> >> >
>>> >> > Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
>>> >> Reviewed-by: Alistair Francis <alistair.francis at xilinx.com>
>>> >> Thanks,
>>> >> Alistair
>>> >> > ---
>>> > <.....>
>>> >> > diff --git
>>> >> > a/recipes-bsp/u-boot/u-boot-xlnx/v2017.1/arm-zynqmp-xilinx_zynqmp.h
>>> >> > -Au
>>> >> > to-boot-in-JTAG-if-imag.patch
>>> >> > b/recipes-bsp/u-boot/u-boot-xlnx/v2017.3/arm-zynqmp-xilinx_zynqmp.h
>>> >> > -Au
>>> >> > to-boot-in-JTAG-if-imag.patch
>>> >> > similarity index 100%
>>> >> > rename from
>>> >> > recipes-bsp/u-boot/u-boot-xlnx/v2017.1/arm-zynqmp-xilinx_zynqmp.h-A
>>> >> > uto -boot-in-JTAG-if-imag.patch rename to
>>> >> > recipes-bsp/u-boot/u-boot-xlnx/v2017.3/arm-zynqmp-xilinx_zynqmp.h-A
>>> >> > uto -boot-in-JTAG-if-imag.patch diff --git
>>> > meta-xilinx should not be a holding ground for non upstreamable patches.
>>> > Implementation has to be from kernel-fitimage.bbclass inclusion.
>>> > Please don't add this in meta-xilinx
>>> This is not adding it, just moving the existing patch to apply to the newer u-boot
>> Agreed, we are porting a non-upstreamable patch regardless.
>>> It does however need to go though.
>> I completely disagree, it's not an option to proceed. I cannot accept this path.
> I'm not sure what you mean exactly, there are a few non-upstreamable
> patches in meta-xilinx. Some of them were contributed by you.
> This patch even though it is primarily just a BSP/runqemu config patch
> is also an outlier in that it has an implementation that was generic
> enough to be considered for upstream inclusion.
> If it is just a case of having the Upstream-Status field updated to
> represent this from Denied to "Inappropriate [runqemu bsp config]", I
> can update the patch.
>> But I have not had a chance to sort that out yet,
>>> the biggest problem with using fit is that it would need to embed the rootfs (which is
>>> passed at runqemu time). Which means that using a disk interface is a better way to
>>> go, but since qemu boots u-boot instead of a kernel directly it is not so straight
>>> forward to pass the root= param to the kernel.
>> We could also look into kernel-fitimage.bbclass to introduce the fit to resolve.
> For reference simply changing to fitimage only moves the goal post,
> since a patch would still need to be made to u-boot, and there is no
> guarantee that it would be accepted upstream.
> I had been looking at setting it up so that for zcu102 runqemu boots
> from a full disk image, which was essentially the same as a image that
> would be booted on the board itself. This would avoid any qemu/runqemu
> specific changes and would help validate board boot flows with
> runqemu. However I have not looked into the details, so there might be
> issues with that approach too.
So I had a better look at this, there are some issues to fix but
otherwise this works nicely booting from a SD disk image. I've added
the boot log below. Going to hold off doing anything further on this
until I get opinions on the idea/implementation.
I have pushed the WIP changes here:
There are however two changes that need to be made to oe-core to have
this build/boot work correctly:
1. is a bit of a hack, but QEMU rounds down the image size for SD
cards to match the advertise-able size. Essentially the block device
needs to be a multiple of 256K. This change handles that by setting up
the sparse image file to be padded to the boundary.
2. just ignores "vmtypes" overrides if the QB_ROOTFS_OPT is set, this
change seems sane to upstream.
diff --git a/scripts/lib/wic/plugins/imager/direct.py
index 60317eed22..e54d6f7364 100644
@@ -444,6 +444,12 @@ class PartitionedImage():
self.min_size *= self.sector_size
+ logger.debug("Disk size was minimum %d bytes", self.min_size)
+ min_size_boundary = self.min_size % (256 * 1024)
+ if min_size_boundary != 0:
+ logger.debug("Disk size was not on boundary, over by %d
+ self.min_size += (256 * 1024) - min_size_boundary
def _create_partition(self, device, parttype, fstype, start, size):
""" Create a partition on an image described by the 'device'
diff --git a/scripts/runqemu b/scripts/runqemu
index df76270904..e7a3da1f4e 100755
@@ -1007,7 +1007,8 @@ class BaseConfig(object):
self.rootfs_options = '-initrd %s' % self.rootfs
vm_drive = ''
- if self.fstype in self.vmtypes:
+ # Only apply vmtype rules if a custom rootfs_opt was not set
+ if self.fstype in self.vmtypes and not(qb_rootfs_opt):
if self.fstype == 'iso':
vm_drive = '-drive file=%s,if=virtio,media=cdrom'
== Boot log ==
PMU Firmware 2017.3 Oct 18 2017 17:20:41
<debug_uart> Debug uart enabled
U-Boot SPL 2017.01 (Oct 18 2017 - 21:51:59)
EL Level: EL3
Trying to boot from MMC1
NOTICE: ATF running on XCZUUNKN/QEMU v1/RTL0.0 at 0xfffea000, with PMU firmware
NOTICE: BL31: Secure code at 0x0
NOTICE: BL31: Non secure code at 0x8000000
NOTICE: BL31: v1.3(release):f9b244beaa
NOTICE: BL31: Built : 17:35:00, Oct 18 2017
U-Boot 2017.01 (Oct 18 2017 - 21:51:59 +1000) Xilinx ZynqMP ZCU102 rev1.0
DRAM: 4 GiB
EL Level: EL2
Chip ID: xczuunkn
MMC: sdhci at ff170000: 0 (SD)
** Unable to read "uboot.env" from mmc0:1 **
Using default environment
In: serial at ff000000
Out: serial at ff000000
Err: serial at ff000000
Net: ZYNQ GEM: ff0e0000, phyaddr c, interface rgmii-id
I2C EEPROM MAC address read failed
Warning: ethernet at ff0e0000 (eth0) using random MAC address - fe:40:e7:4e:c5:37
eth0: ethernet at ff0e0000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Device: sdhci at ff170000
Manufacturer ID: aa
Tran Speed: 25000000
Rd Block Len: 512
SD version 1.0
High Capacity: No
Capacity: 37.8 MiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
498 bytes read in 7 ms (69.3 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Running uenvcmd ...
13238784 bytes read in 2223 ms (5.7 MiB/s)
37381 bytes read in 17 ms (2.1 MiB/s)
## Flattened Device Tree blob at 04000000
Booting using the fdt blob at 0x4000000
Loading Device Tree to 000000000fff3000, end 000000000ffff204 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 1034240
[ 0.000000] Kernel command line: earlycon clk_ignore_unused
rootfstype=ext4 root=/dev/mmcblk0p2 rw rootwait
[ 9.107357] xilinx-drm xilinx_drm: fb0: frame buffer device
[ 9.113044] mmc0: new SD card at address 4567
[ 9.120224] mmcblk0: mmc0:4567 QEMU! 37.8 MiB
[ 9.132279] mmcblk0: p1 p2
[ 9.139120] [drm] Initialized xilinx_drm 1.0.0 20130509 on minor 0
[ 9.147389] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 9.153627] rtc_zynqmp ffa60000.rtc: setting system clock to
2106-02-07 06:28:15 UTC (4294967295)
[ 9.156156] clk: Not disabling unused clocks
[ 9.157958] ALSA device list:
[ 9.158230] #0: DisplayPort monitor
[ 9.208373] EXT4-fs (mmcblk0p2): mounted filesystem with ordered
data mode. Opts: (null)
[ 9.209312] VFS: Mounted root (ext4 filesystem) on device 179:2.
root at zcu102-zynqmp:~# mount
/dev/root on / type ext4 (rw,relatime,data=ordered)
More information about the meta-xilinx