From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Helge Deller <deller@gmx.de>, deller@kernel.org, qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [PATCH 2/2] hw/hppa: Fix booting Linux kernel with initrd
Date: Wed, 8 Oct 2025 16:33:06 +0200 [thread overview]
Message-ID: <f2628aaa-5bea-45be-b0ca-7d0aa5384f2a@linaro.org> (raw)
In-Reply-To: <e11fbe55-2768-4acd-9ec3-37eb0ae14d7a@gmx.de>
On 8/10/25 15:49, Helge Deller wrote:
> Hi Philippe,
>
> On 10/8/25 15:43, Philippe Mathieu-Daudé wrote:
>> On 22/1/25 19:09, deller@kernel.org wrote:
>>> From: Helge Deller <deller@gmx.de>
>>>
>>> Commit 20f7b890173b ("hw/hppa: Reset vCPUs calling resettable_reset()")
>>> broke booting the Linux kernel with initrd which may have been provided
>>> on the command line. The problem is, that the mentioned commit zeroes
>>> out initial registers which were preset with addresses for the Linux
>>> kernel and initrd.
>>>
>>> Fix it by adding proper variables which are set shortly before starting
>>> the firmware.
>>>
>>> Signed-off-by: Helge Deller <deller@gmx.de>
>>> Fixes: 20f7b890173b ("hw/hppa: Reset vCPUs calling resettable_reset()")
>>> Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
>>> ---
>>> hw/hppa/machine.c | 48 +++++++++++++++++++----------------------------
>>> target/hppa/cpu.h | 4 ++++
>>> 2 files changed, 23 insertions(+), 29 deletions(-)
>>>
>>> diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
>>> index 4bcc66cd6f..0dd1908214 100644
>>> --- a/hw/hppa/machine.c
>>> +++ b/hw/hppa/machine.c
>>> @@ -356,7 +356,6 @@ static void
>>> machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
>>> uint64_t kernel_entry = 0, kernel_low, kernel_high;
>>> MemoryRegion *addr_space = get_system_memory();
>>> MemoryRegion *rom_region;
>>> - unsigned int smp_cpus = machine->smp.cpus;
>>> SysBusDevice *s;
>>> /* SCSI disk setup. */
>>> @@ -482,8 +481,8 @@ static void
>>> machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
>>> kernel_low, kernel_high, kernel_entry, size /
>>> KiB);
>>> if (kernel_cmdline) {
>>> - cpu[0]->env.gr[24] = 0x4000;
>>> - pstrcpy_targphys("cmdline", cpu[0]->env.gr[24],
>>> + cpu[0]->env.cmdline_or_bootorder = 0x4000;
>>> + pstrcpy_targphys("cmdline", cpu[0]-
>>> >env.cmdline_or_bootorder,
>>> TARGET_PAGE_SIZE, kernel_cmdline);
>>
>> I am a bit confused, here @cmdline_or_bootorder contains the physical
>> address of the kernel command line, ...
> ...
>>> kernel_entry = machine->boot_config.has_menu ? machine-
>>> >boot_config.menu : 0;
>>> - cpu[0]->env.gr[24] = machine->boot_config.order[0];
>>> + cpu[0]->env.cmdline_or_bootorder = machine-
>>> >boot_config.order[0];
>>
>> ... but here a char ('c' or 'd'). Both seems different things.
>> Is that expected?
> Yes. That's why this variable is called "cmdline" or "bootorder".
> If kernel and cmdline is given, the bios does not need to follow any
> bootorder
> (which means: boot kernel from C or D).
> If no kernel/cmdline, this parameter tells the firmare to load bootloader
> from c (harddisc) or d (cdrom).
Ah, now I get the variable name... cmdline is used as hwaddr, and
bootorder as plain char. OK!
prev parent reply other threads:[~2025-10-08 14:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-22 18:09 [PATCH 0/2] hppa updates deller
2025-01-22 18:09 ` [PATCH 1/2] hw/hppa: Support up to 256 GiB RAM on 64-bit machines deller
2025-01-24 17:49 ` Richard Henderson
2025-01-24 17:52 ` Philippe Mathieu-Daudé
2025-01-24 18:18 ` Helge Deller
2025-01-22 18:09 ` [PATCH 2/2] hw/hppa: Fix booting Linux kernel with initrd deller
2025-01-24 17:49 ` Richard Henderson
2025-10-08 13:43 ` Philippe Mathieu-Daudé
2025-10-08 13:49 ` Helge Deller
2025-10-08 14:33 ` Philippe Mathieu-Daudé [this message]
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=f2628aaa-5bea-45be-b0ca-7d0aa5384f2a@linaro.org \
--to=philmd@linaro.org \
--cc=deller@gmx.de \
--cc=deller@kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).