Thanks Alex, I will check it out. Have you look at below issue which I mention in my previous email?
>>> *>> qemu-system-arm: Unknown device 'soc' for default sysbusAborted >>> (core>> dumped)** >>> >> On Thu, 19 Mar 2020 at 20:09, Alex Bennée <alex.ben...@linaro.org> wrote: > > Priyamvad Acharya <priyamvad.agni...@gmail.com> writes: > > > 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 would look at hw/misc/unimp.c as a useful template for implementing a > new device. Many boards instantiate the unimp devices for areas of SoC's > that are not yet implemented ;-) > > > > > 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 sysbusAborted (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 sysbusAborted (core > >> dumped)* > >> > > > > test.s,test.ld,startup.S,Makefile,des_demo.c are files required for bare > >> metal program > >> > > > > References: > > > > > https://devkail.wordpress.com/2014/12/16/emulation-of-des-encryption-device-in-qemu/ > > > > Thanks, > > Priyamvad > > > > On Thu, 19 Mar 2020 at 01:19, John Snow <js...@redhat.com> wrote: > > > >> > >> > >> On 3/18/20 7:09 AM, Peter Maydell wrote: > >> > On Wed, 18 Mar 2020 at 09:55, Priyamvad Acharya > >> > <priyamvad.agni...@gmail.com> 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. > >> > >> --js > >> > >> > > > -- > Alex Bennée >