[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] docs/system: document an example vexpress-a15 invocation
From: |
Alex Bennée |
Subject: |
Re: [PATCH] docs/system: document an example vexpress-a15 invocation |
Date: |
Mon, 01 Feb 2021 20:08:59 +0000 |
User-agent: |
mu4e 1.5.7; emacs 28.0.50 |
Peter Maydell <peter.maydell@linaro.org> writes:
> On Thu, 28 Jan 2021 at 18:53, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> The wiki and the web are curiously absent of the right runes to boot a
>> vexpress model so I had to work from first principles to work it out.
>> Use the more modern -drive notation so alternative backends can be
>> used (unlike the hardwired -sd mode).
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> Cc: Anders Roxell <anders.roxell@linaro.org>
>> ---
>> docs/system/arm/vexpress.rst | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/docs/system/arm/vexpress.rst b/docs/system/arm/vexpress.rst
>> index 7f1bcbef07..30b1823b95 100644
>> --- a/docs/system/arm/vexpress.rst
>> +++ b/docs/system/arm/vexpress.rst
>> @@ -58,3 +58,29 @@ Other differences between the hardware and the QEMU model:
>> ``vexpress-a15``, and have IRQs from 40 upwards. If a dtb is
>> provided on the command line then QEMU will edit it to include
>> suitable entries describing these transports for the guest.
>> +
>> +Booting a Linux kernel
>> +----------------------
>> +
>> +Building a current Linux kernel with ``multi_v7_defconfig`` should be
>> +enough to get something running.
>> +
>> +.. code-block:: bash
>> +
>> + $ export ARCH=arm
>> + $ export CROSS_COMPILE=arm-linux-gnueabihf-
>> + $ make multi_v7_defconfig
>> + $ make
>
> We probably shouldn't be recommending in-tree kernel builds, or
> polluting the user's environment with random variables. Try:
>
> $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
> multi_v7_defconfig
> $ make O=builddir ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>
>> +By default you will want to boot your rootfs of the sdcard interface.
>
> "off"
>
>> +Your rootfs will need to be padded to the right size. With a suitable
>> +DTB you could also add devices to the virtio-mmio bus.
>> +
>> +.. code-block:: bash
>> +
>> + $ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
>> + -machine type=vexpress-a15 -serial mon:stdio \
>> + -drive if=sd,driver=file,filename=armel-rootfs.ext4 \
>> + -kernel zImage \
>> + -dtb vexpress-v2p-ca15-tc1.dtb \
>> + -append "console=ttyAMA0 root=/dev/mmcblk0 ro"
>
> thanks
> -- PMM
Booting a Linux kernel
----------------------
Building a current Linux kernel with ``multi_v7_defconfig`` should be
enough to get something running. Nowadays an out-of-tree build is
recommended (and also useful if you build a lot of different targets).
$SRC points at root of the linux source tree.
.. code-block:: bash
$ mkdir build; cd build
$ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
multi_v7_defconfig
$ make O=$(pwd) -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
By default you will want to boot your rootfs off the sdcard interface.
Your rootfs will need to be padded to the right size. With a suitable
DTB you could also add devices to the virtio-mmio bus.
.. code-block:: bash
$ qemu-system-arm -cpu cortex-a15 -smp 4 -m 4096 \
-machine type=vexpress-a15 -serial mon:stdio \
-drive if=sd,driver=file,filename=armel-rootfs.ext4 \
-kernel zImage \
-dtb vexpress-v2p-ca15-tc1.dtb \
-append "console=ttyAMA0 root=/dev/mmcblk0 ro"
--
Alex Bennée