Here is a brief context that might help you. I am referring hw/arm/versatilepb.c
The ARM PrimeCell UART (PL011) device created as follows dev = qdev_create(NULL, "pl011"); s = SYS_BUS_DEVICE(dev); qdev_prop_set_chr(dev, "chardev", chr); qdev_init_nofail(dev); sysbus_mmio_map(s, 0, addr); sysbus_connect_irq(s, 0, irq); Whereas the PL031 RTC device is created as /* Add PL031 Real Time Clock. */ sysbus_create_simple("pl031", 0x101e8000, pic[10]); What is the difference between these two devices creation? How do I know which method to use while creating an object? Thanks & Regards, Pratik On Tue, Jul 14, 2020 at 9:39 PM Pratik Parvati <prat...@vayavyalabs.com> wrote: > Hi Support team, > > Can someone please guide me to understand the difference between > *sysbus_create_simple > *and *qdev_create*?. > > I understand that these two methods are used to create a new device. But, > when to use these functions is not clear to me. > > Regards, > Pratik >