[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Qemu API documentation

From: Priyamvad Acharya
Subject: Re: Qemu API documentation
Date: Thu, 19 Mar 2020 19:46:58 +0530

Thanks John and Peter for guiding me, but still it will be hard to understand from source code for a newbie.

I basically want to implement a trivial device for arm architecture which basically contains register for read/write operation with a program.So what are the references?

I am providing pointers about my device which I am trying to implement:
 - I am implementing a device which will be attached to versatilepb board, that board has ARM926 CPU.
- My device name is "soc" , whose description is in qemu/hw/misc/soc.c file attached below.
- I have written below line to make my device available to qemu in qemu/hw/misc/Makefile.objs.
$ common-obj-$(CONFIG_SOC) += soc.o 
- I added following lines in qemu/hw/arm/versatilepb.c to attach my device to board.
    #define DES_BASEADDR        0x101f5000
    soc=qdev_create(NULL, "soc");// +
    qdev_init_nofail(soc);// +
    sysbus_mmio_map(SYS_BUS_DEVICE(soc), 0, DES_BASEADDR);// +
- Run below commands to build my device
$ make distclean
$ make -j8 -C build

- Run below command to run a bare metal program on device.
$ ./qemu-system-arm -M versatilepb -nographic -kernel /lhome/priyamvad/debian_qemu_arm32/c_application/DES/des_demo.elf

-I get following output in terminal shown below
[priyamvad@predator arm-softmmu]$ ./qemu-system-arm -M versatilepb -nographic -kernel /lhome/priyamvad/debian_qemu_arm32/c_application/DES/des_demo.elf
qemu-system-arm: Unknown device 'soc' for default sysbus
Aborted (core dumped)

-Here des_demo.elf is our bare metal program executable for arm(926ej-s) processor.

So how to resolve below issue to run executable
[priyamvad@predator arm-softmmu]$ ./qemu-system-arm -M versatilepb -nographic -kernel /lhome/priyamvad/debian_qemu_arm32/c_application/DES/des_demo.elf
qemu-system-arm: Unknown device 'soc' for default sysbus
Aborted (core dumped)

test.s,test.ld,startup.S,Makefile,des_demo.c are files required for bare metal program



On Thu, 19 Mar 2020 at 01:19, John Snow <address@hidden> wrote:

On 3/18/20 7:09 AM, Peter Maydell wrote:
> On Wed, 18 Mar 2020 at 09:55, Priyamvad Acharya
> <address@hidden> wrote:
>> Hello developer community,
>> I am working on implementing a custom device in Qemu, so to implement it I need documentation of functions which are used to emulate a hardware model in Qemu.
>> What are the references to get it ?
> QEMU has very little documentation of its internals;
> the usual practice is to figure things out by
> reading the source code. What we do have is in
> docs/devel. There are also often documentation comments
> for specific functions in the include files where
> those functions are declared, which form the API
> documentation for them.

^ Unfortunately true. One thing you can do is try to pick an existing
device that's close to yours -- some donor PCI, USB etc device and start
using that as a reference.

If you can share (broad) details of what device you are trying to
implement, we might be able to point you to relevant examples to use as
a reference.


Attachment: soc.c
Description: Text Data

Attachment: test.s
Description: Binary data

Attachment: Makefile
Description: Binary data

Attachment: startup.S
Description: Binary data

Attachment: test.ld
Description: Binary data

Attachment: des_demo.c
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]