Re: [PATCH 0/3] sparc: port to copy_thread_tls() and struct kernel_clone_args

From: Christian Brauner
Date: Sun May 17 2020 - 11:01:36 EST


On Tue, May 12, 2020 at 01:06:33PM -0700, David Miller wrote:
> From: Christian Brauner <christian.brauner@xxxxxxxxxx>
> Date: Tue, 12 May 2020 19:15:24 +0200
>
> > I've tested this series with qemu-system-sparc64 and a Debian Sid image
> > and it comes up no problem (Here's a little recording
> > https://asciinema.org/a/329510 ).
>
> Can you show how you put this environment together and also what
> compilation tools you used? Looks great.

Sorry for the delay. That mail somehow got lost in my inbox.

So in general, I used qemu-system-sparc64 which is available in Universe
with either Debian or Ubuntu and that's what I've been using as host
distro. So you need a

deb http://us.archive.ubuntu.com/ubuntu/ <release-name> universe
deb-src http://us.archive.ubuntu.com/ubuntu/ <release-name> universe
deb http://us.archive.ubuntu.com/ubuntu/ <release-name>-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ <release-name>-updates universe

int /etc/apt/sources.list

So after this, you should be able to install

apt install qemu-system-sparc

Now we need an image and believe it or not there's a guy who lives in
Berlin too who builds Debian images for all crazy architectures. You can
download them from:

https://cdimage.debian.org/cdimage/ports/

They're built quite frequently. Sometimes you get unlucky because a new
kernel won't boot anymore then going a couple of months back usually
helps. So for this experiment I downloaded:

https://cdimage.debian.org/cdimage/ports/9.0/sparc64/iso-cd/debian-9.0-sparc64-NETINST-1.iso

then I did:

cd .local/share/qemu
truncate -s 15GB sparc64.img

And then to _install_:

qemu-system-sparc64 \
-m 4096 \
-device virtio-blk-pci,bus=pciB,drive=hd \
-drive file=/home/brauner/Downloads/debian-9.0-sparc64-NETINST-1.iso,format=raw,if=ide,bus=1,unit=0,media=cdrom,readonly=on \
-drive file=/home/brauner/.local/share/qemu/sparc64.img,format=raw,if=none,id=hd \
-boot order=d \
-net nic \
-net user \
-nographic \

Then the Debian install will run after it finishes you can boot with:

qemu-system-sparc64 \
-name debian-unstable-sparc64 -machine sun4u,accel=tcg,usb=off -m 4096 \
-smp 1,sockets=1,cores=1,threads=1 \
-uuid ccd8b5c2-b8e4-4d5e-af19-9322cd8e55bf -rtc base=utc -no-reboot -no-shutdown \
-boot strict=on \
-drive file=/home/brauner/.local/share/qemu/sparc64.img,if=none,id=drive-ide0-0-1,format=raw,cache=none,aio=native \
-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-1,id=ide0-0-1 \
-msg timestamp=on -nographic

If the install isn't setting up the repos right and you can't install
stuff the correct url is:
http://ftp.ports.debian.org/debian-ports/
to put into sources.list

>
> > This is the sparc specific bit and _if_ you agree with the changes here
> > it'd be nice if I could get your review, and if technically correct,
> > your ack so I can fold this into a larger series and move on to the next
> > arch.
>
> With the delay slot instruction indentation fixed:
>
> Acked-by: David S. Miller <davem@xxxxxxxxxxxxx>

Thank you, Dave!
Christian