diff options
author | Daniel Bertalan <dani@danielbertalan.dev> | 2023-04-25 10:34:31 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2023-05-02 15:47:40 +0100 |
commit | f802ff1e281eac50f2b4b177b180be97e80da21f (patch) | |
tree | d151200340eb288858c655ffd0a573ba9ce1e88c /hw/arm/bcm2835_peripherals.c | |
parent | 471896381ae895b1c4c2afe1eff2ce13d85e6c2c (diff) | |
download | qemu-f802ff1e281eac50f2b4b177b180be97e80da21f.zip qemu-f802ff1e281eac50f2b4b177b180be97e80da21f.tar.gz qemu-f802ff1e281eac50f2b4b177b180be97e80da21f.tar.bz2 |
hw/arm/bcm2835_property: Implement "get command line" message
This query copies the kernel command line into the message buffer. It
was previously stubbed out to return empty, this commit makes it reflect
the arguments specified with `-append`.
I observed the following peculiarities on my Pi 3B+:
- If the buffer is shorter than the string, the response header gives
the full length, but no data is actually copied.
- No NUL terminator is added: even if the buffer is long enough to fit
one, the buffer's original contents are preserved past the string's
end.
- The VC firmware adds the following extra parameters beside the
user-supplied ones (via /boot/cmdline.txt): `video`, `vc_mem.mem_base`
and `vc_mem.mem_size`. This is currently not implemented in qemu.
Signed-off-by: Daniel Bertalan <dani@danielbertalan.dev>
Message-id: 20230425103250.56653-1-dani@danielbertalan.dev
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: added comment about NUL and short-buffer behaviour]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm/bcm2835_peripherals.c')
-rw-r--r-- | hw/arm/bcm2835_peripherals.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 3c2a416..0233038 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -90,6 +90,8 @@ static void bcm2835_peripherals_init(Object *obj) TYPE_BCM2835_PROPERTY); object_property_add_alias(obj, "board-rev", OBJECT(&s->property), "board-rev"); + object_property_add_alias(obj, "command-line", OBJECT(&s->property), + "command-line"); object_property_add_const_link(OBJECT(&s->property), "fb", OBJECT(&s->fb)); |