On 13 October 2017 at 22:57, Nathan Rossi <[email protected]> wrote: > On 13 October 2017 at 03:59, Manjukumar Harthikote Matha > <[email protected]> wrote: >> >> >>> -----Original Message----- >>> From: Nathan Rossi [mailto:[email protected]] >>> Sent: Tuesday, October 10, 2017 11:51 PM >>> To: Manjukumar Harthikote Matha <[email protected]> >>> Cc: Alistair Francis <[email protected]>; [email protected] >>> Subject: Re: [meta-xilinx] [PATCH 5/7] Update recipes for Xilinx v2017.3 >>> release >>> >>> On 11 October 2017 at 09:05, Manjukumar Harthikote Matha >>> <[email protected]> wrote: >>> > Hi Nathan, >>> > >>> >> -----Original Message----- >>> >> From: [email protected] [mailto:meta-xilinx- >>> >> [email protected]] On Behalf Of Alistair Francis >>> >> Sent: Tuesday, October 10, 2017 3:13 PM >>> >> To: Nathan Rossi <[email protected]> >>> >> Cc: [email protected] >>> >> 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 <[email protected]> >>> >> 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 <[email protected]> >>> >> >>> >> Reviewed-by: Alistair Francis <[email protected]> >>> >> >>> >> 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 >>> recipe. >>> >> >> 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: https://github.com/nathanrossi/meta-xilinx/commit/2df8e3b6131d4909814cfa565041d7dcc203f65a 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 b/scripts/lib/wic/plugins/imager/direct.py index 60317eed22..e54d6f7364 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py @@ -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 bytes", min_size_boundary) + 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' object. """ diff --git a/scripts/runqemu b/scripts/runqemu index df76270904..e7a3da1f4e 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -1007,7 +1007,8 @@ class BaseConfig(object): self.rootfs_options = '-initrd %s' % self.rootfs else: 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' % self.rootfs elif self.get('QB_DRIVE_TYPE'): Regards, Nathan == 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 reading u-boot.bin reading atf-uboot.ub reading atf-uboot.ub 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 PMUFW: v0.3 U-Boot 2017.01 (Oct 18 2017 - 21:51:59 +1000) Xilinx ZynqMP ZCU102 rev1.0 I2C: ready DRAM: 4 GiB EL Level: EL2 Chip ID: xczuunkn MMC: sdhci@ff170000: 0 (SD) reading uboot.env ** Unable to read "uboot.env" from mmc0:1 ** Using default environment In: serial@ff000000 Out: serial@ff000000 Err: serial@ff000000 Bootmode: SD_MODE Net: ZYNQ GEM: ff0e0000, phyaddr c, interface rgmii-id I2C EEPROM MAC address read failed Warning: ethernet@ff0e0000 (eth0) using random MAC address - fe:40:e7:4e:c5:37 eth0: ethernet@ff0e0000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Device: sdhci@ff170000 Manufacturer ID: aa OEM: 5859 Name: QEMU! 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 reading uEnv.txt 498 bytes read in 7 ms (69.3 KiB/s) Loaded environment from uEnv.txt Importing environment from SD ... Running uenvcmd ... reading Image 13238784 bytes read in 2223 ms (5.7 MiB/s) reading Image-zynqmp-zcu102-rev1.0.dtb 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@zcu102-zynqmp:~# mount /dev/root on / type ext4 (rw,relatime,data=ordered) -- _______________________________________________ meta-xilinx mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-xilinx
