[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/3] Initial support for Power


  • To: Shawn Anastasio <shawn@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Wed, 7 Jun 2023 19:07:48 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vldaK20ltYy9hgaPKrVmj2hkVjXD0XLuGfzjcC48qMk=; b=dk6QXTdqfhhOPQ2MNYb491LosY5QfC1ChHQ/HN+iG7TeC2Zv5+7si7Wi9Isn2wg7bSeFNL7pknr4nOqTN8lG9XTFNn1v3aIXHA2ybjv747XnaMT+7j/u06F6YgQ3Vm0IU2cujHSLZ9is2+rtzsBaXS6KLvY9/8TC759wedbmGImua+MtkLrSfazoED7X0vTINTrkpZFn+/8sbdE5ySgriFhE5aIHs0+adr3BlK/UIV+TcPyoK2YjWWDLwYc4Cud5pfxUiNXH58bvhRFufrdxk9x/z1b7neyt1Led4J2dBHi7blQKnjK73qjz2gOUw/rLRz60FuHcYCyYfvyl2QeTFQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T8uIS1YoGC9qxbavbVfEvtrXXtcS6OJB1KMXqOoQDMEgBT2Dg1T1ALxQQdr8E3MUFhlCO3aaBxIUjAGwqU/0TIjBkjyHJ4plvfhtdZi2kjh66H9tdSS857PcaZF6g32sgcvxxqO35Tkm3J+MoR+6ksGa01zyzVWvLuDt/jo0IG0l9Dse3tfWT/Din/AJGf1dGPaJegGARZxtTxP0PxQQ6hq11r8VIJyp7962bT+d6Z9gKkqy/wBkEpmInZrmVoPCCcwoc2fCbQuOy0YbJhWHHw81NEk57xdH+vi9eHK1MxxdNoqkDblvlhgAnS6wBMMH2SJ2r+19S5EFLm1WOqVbPw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: tpearson@xxxxxxxxxxxxxxxxxxxxx, George Dunlap <george.dunlap@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Wed, 07 Jun 2023 18:08:27 +0000
  • Ironport-data: A9a23:8Oeft65fRBS2FS4+AI7A1AxRtL/GchMFZxGqfqrLsTDasY5as4F+v mBMCm/QbveOZDT8KNkiaoni908G7cOEzoM1TlBprSE3Hi5G8cbLO4+Ufxz6V8+wwm8vb2o8t plDNYOQRCwQZiWBzvt4GuG59RGQ7YnRGvynTraCYnsrLeNdYH9JoQp5nOIkiZJfj9G8Agec0 fv/uMSaM1K+s9JOGjt8B5mr9lU35JwehBtC5gZlPa4T4weE/5UoJMl3yZ+ZfiOQrrZ8RoZWd 86bpJml82XQ+QsaC9/Nut4XpWVTH9Y+lSDX4pZnc/DKbipq/0Te4Y5iXBYoUm9Fii3hojxE4 I4lWapc6+seFvakdOw1C3G0GszlVEFM0OevzXOX6aR/w6BaGpdFLjoH4EweZOUlFuhL7W5m+ 8YmCWEXQ0G/nt2V/bSqe/h925sjM5y+VG8fkikIITDxK98DGMqGb4CUoNhS0XE3m9xEGuvYa 4wBcz1zYR/cYhpJfFAKFJY5m+TujX76G9FagAvN+exrvC6OnUooj+aF3Nn9I7RmQe18mEqCq 32A1GP+GhwAb/SUyCaf82LqjejK9c/+cNtLTOLgra4z3jV/wEQRMwQvDHzgnMKfpVCOd49dF FYlqgMH+P1aGEuDC4OVsweDiGWEtwEac9NWGvYm4RrLy628yxaUAC0IQyBMbPQitdQqXno62 1mRhdTrCDdz9rqPRhq16q+ZpCmpPi49N2YaeSgeQA0K4t/urZsyiB2JRdFmeIa3hNDoHTD7w xiRsTMzwb4UiKYj1bi//F3BqyKhoN7OVAFdzh7MQmuv4wd9ZYikT4+l817W6bBHNonxZkaFl GgJnY6Z9u9mMH2WvCmEQeFIELT34f+AaWfYmQQ2QMdn8Cmx8Xm+e4wW+Ct5OEpiLscDf3nuf VPXvgRSopRUORNGcJNKXm54MOxypYCIKDgvfqu8ggZmCnSpSDK6wQ==
  • Ironport-hdrordr: A9a23:glxx+q6et7Qn0Wn6rgPXwAzXdLJyesId70hD6qkQc3Fom62j5q WTdZEgvyMc5wx/ZJhNo7690cq7MBHhHPxOgbX5VI3KNGXbUQOTR72KhrGSoAEIdReeygZcv5 0QCZSXCrfLfCVHZRCR2njFLz4iquP3j5xBnY3lvhNQpZkBUdAZ0+9+YDzrdXFedU19KrcSMo GT3cZDryrIQwVtUizqbkN1OdQqvrfw5evbXSI=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 07/06/2023 4:06 pm, Shawn Anastasio wrote:
> Hello all,
>
> This patch series adds support for building a minimal image
> (head.o-only) for Power ISA 2.07B+ (POWER8+) systems. The first patch
> boots to an infinite loop and the second adds early serial console
> support on pseries VMs, with bare metal support planned next.
>
> Since Xen previously had support for a much older version of the ISA in
> version 3.2.3, we were able to carry over some headers and support
> routines from that version. Unlike that initial port though, this effort
> focuses solely on POWER8+ CPUs that are capable of running in Little
> Endian mode.
>
> With an appropriate powerpc64le-linux-gnu cross-toolchain, the minimal
> image can be built with:
>
> $ make XEN_TARGET_ARCH=ppc64 -C xen openpower_defconfig
> $ make XEN_TARGET_ARCH=ppc64 SUBSYSTEMS=xen -C xen TARGET=ppc64/head.o
>
> The resulting head.o can then be booted in a standard QEMU/pseries VM:
>
> $ qemu-system-ppc64 -M pseries-5.2 -m 256M -kernel xen/ppc64/head.o \
>       -vga none -serial mon:stdio -nographic
>
> Thanks,
> Shawn
>
> Shawn Anastasio (3):
>   xen: Add files needed for minimal Power build
>   xen/ppc: Implement early serial printk on PaPR/pseries
>   maintainers: Add PPC64 maintainer

Oh wow - this is a surprise, but certainly a good one.

We've recently done just a similar exercise with RISCV64, starting with
getting cross-compilation and a basic smoke test into our CI.

We use gitlab CI, and one example is
https://gitlab.com/xen-project/xen/-/pipelines/889871648 ; (search for
riscv64 in amongst all the x86 and ARM).

The configuration is all in tree, in the automation/ directory. 
Relevant files to copy/tweak are:

automation/build/archlinux/current-riscv64.dockerfile (x86 cross compile
container)
automation/scripts/qemu-smoke-riscv64.sh (smoke test script)
automation/gitlab-ci/{build,test}.yaml (wire the jobs up)

The smoke test looks on stdout for "All set up" which can be any string
put out via earlyprintk.

If you look around in the Xen tree at bb62c25e3e5c and take the makefile
override's in particular, you should be able to get `make -C xen build`
work without any magic TARGET= overrides, and without most of the
headers you've added in patch 1.  The trick is to have a head.S which
doesn't include any files (except the config.h it gets implicitly).

We're still trying to do some re-arranging to the common / arch split to
remove unnecessary boilerplate.  Having a set of PPC headers too will
make it easier to spot the rough edges in the current boundary.



Looking to the future, where could XenProject get some real hardware to
put into our CI systems?  We'd want to do that in due course.

I see you've nominated yourself as maintainer, which is of course fine. 
How much time do you have to put towards this?  It is some part of a
full time job, or just your own free time?

Do you have any suggested reading for those of us who are invariably
going to need to learn some of the CPU/platform/architecture details,
but aren't really PPC-literate right now?

Thanks, and welcome.

~Andrew



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.