From: Stafford Horne <shorne@gmail.com>
To: Rob Landley <rob@landley.net>
Cc: linux-openrisc@vger.kernel.org, Jonas Bonn <jonas@southpole.se>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Subject: Re: Adding or1k support to mkroot.
Date: Thu, 14 Dec 2023 19:50:43 +0000 [thread overview]
Message-ID: <ZXtck05MRrk2e675@antec> (raw)
In-Reply-To: <79b2561e-3167-9758-8196-f2470aec06f7@landley.net>
Hi Rob,
It's been a while :)
On Tue, Dec 12, 2023 at 04:16:15AM -0600, Rob Landley wrote:
> Toybox has a tiny system builder in it, a ~300 line bash script that builds
> Linux for a dozen targets (using musl-cross-make toolchains) and boots the
> result to a shell prompt under QEMU:
>
> https://github.com/landley/toybox/blob/master/mkroot/mkroot.sh
> https://landley.net/bin/mkroot/latest/
>
> And since musl and qemu both support openrisc (and I need an or1k toolchain
> anyway for my orange pi 3b's power controller firmware, at least according to
> u-boot's board/sunxi/README.sunxi64), I thought I'd try to make that target work.
Great.
> I built an or1k musl+gcc toolchain with my wrapper script around Rich Felker's
> musl-cross-make project by adding "or1k::" to the TARGETS list in
> https://github.com/landley/toybox/blob/master/scripts/mcm-buildall.sh#L34 and
> that seems to have worked-ish. (Well, the kernel headers didn't install because
> I have to add or1k->openrisc to musl-cross-make's TARGET_ARCH_MANGLED in
> litecross/Makefile, but eh, close enough for the moment.)
>
> With the resulting toolchain, I can build an or1ksim_defconfig kernel (using
> v6.6 source) that "qemu-system-or1k -nographic -kernel vmlinux" gives boot
> messages for! Woo! (And then panics because no init, but that's standard for
> board bringup.)
>
> Some immediately obvious problems are:
>
> 1) qemu's -append is ignored, the "Kernel command line: earlycon" is hardwired
> into the device tree.
>
> 2) Nothing I do seems to get qemu to exit instead of hanging,
> CONFIG_PANIC_TIMEOUT=1 makes it _try_ to reboot but adding the CONFIG_POWER
> symbols from arch/openrisc/configs/virt_defconfig doesn't seem to affect qemu,
> and none of the other targets mention power. (If I can't exit the emulator at
> the end then https://github.com/landley/toybox/blob/master/mkroot/testroot.sh
> can't report success for the architecture.)
I use the virt_defconfig for my testing.
> 3) If I feed qemu-system-or1k an -initrd the same kernel does NOT give me boot
> messages, it just hangs.
Maybe earlycon is not working?
This are my qemu arguments:
qemu-system-or1k -cpu or1200 -machine virt \
-no-reboot -kernel /home/shorne/work/linux/vmlinux \
-device virtio-net-pci,netdev=user \
-netdev user,id=user,net=10.9.0.1/24,host=10.9.0.100,hostfwd=tcp::2222-:22 \
-serial mon:stdio -nographic -device virtio-blk-device,drive=d0 \
-drive file=/home/shorne/work/openrisc/or1k-utils/buildroot/output/qemu-fs-or1k.qcow2,id=d0,if=none,format=qcow2 \
-gdb tcp::10001 \
-accel tcg,thread=multi \
-smp cpus=4 -m 768 \
-append rootwait \
-append boot=/dev/vda2
With this and the virt kernel and qemu virt machine I am able to shut down the
machine is setup with poweroff and reboot hardware (syscon-poweroff) from
SiFive MMIO.
If I remove the `-drive` argument I do get boot messages.
> Well, SORT OF. If I feed -initrd 2 megabytes copied from /dev/null by dd, I get
> boot messages. If I go "true | gz > blah.gz" to create the smallest (20 byte) gz
> file and feed it that, no boot messages. Feed it System.map: boot messages. Feed
> it vmlinux: no boot messages.
I use a root image I created with buildroot. But you should be able to get boot
messages before initrd is picked up. I am not sure why your invalid initrd's
are able to create boot messages or not.
Do you have a valid initrd that maybe I can try out? I recently use qcow2
images to build, but I did used to use initrd images and it did work fine.
> Any idea what's going on here? That last one's kind of a blocker...
Have you tried to debug where it's getting hung up? Gdb remote debug should
be working for or1k.
-Stafford
next prev parent reply other threads:[~2023-12-14 19:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-12 10:16 Adding or1k support to mkroot Rob Landley
2023-12-14 19:50 ` Stafford Horne [this message]
2023-12-15 13:33 ` Rob Landley
2023-12-16 9:44 ` Stafford Horne
2023-12-16 13:00 ` Rob Landley
2023-12-17 9:05 ` Stafford Horne
2023-12-19 11:19 ` Rob Landley
2023-12-21 8:22 ` Rob Landley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZXtck05MRrk2e675@antec \
--to=shorne@gmail.com \
--cc=jonas@southpole.se \
--cc=linux-openrisc@vger.kernel.org \
--cc=rob@landley.net \
--cc=stefan.kristiansson@saunalahti.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.