bcm2835_peripherals.c (76462405809d29bab65a3699686998ba124ab942) bcm2835_peripherals.c (54a5ba13a9ffe7d25fc649b0fa9f8314734c8ccc)
1/*
2 * Raspberry Pi emulation (c) 2012 Gregory Estrade
3 * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous
4 *
5 * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft
6 * Written by Andrew Baumann
7 *
8 * This code is licensed under the GNU GPLv2 and later.

--- 72 unchanged lines hidden (view full) ---

81 "board-rev", &error_abort);
82 qdev_set_parent_bus(DEVICE(&s->property), sysbus_get_default());
83
84 object_property_add_const_link(OBJECT(&s->property), "fb",
85 OBJECT(&s->fb), &error_abort);
86 object_property_add_const_link(OBJECT(&s->property), "dma-mr",
87 OBJECT(&s->gpu_bus_mr), &error_abort);
88
1/*
2 * Raspberry Pi emulation (c) 2012 Gregory Estrade
3 * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous
4 *
5 * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft
6 * Written by Andrew Baumann
7 *
8 * This code is licensed under the GNU GPLv2 and later.

--- 72 unchanged lines hidden (view full) ---

81 "board-rev", &error_abort);
82 qdev_set_parent_bus(DEVICE(&s->property), sysbus_get_default());
83
84 object_property_add_const_link(OBJECT(&s->property), "fb",
85 OBJECT(&s->fb), &error_abort);
86 object_property_add_const_link(OBJECT(&s->property), "dma-mr",
87 OBJECT(&s->gpu_bus_mr), &error_abort);
88
89 /* Random Number Generator */
90 object_initialize(&s->rng, sizeof(s->rng), TYPE_BCM2835_RNG);
91 object_property_add_child(obj, "rng", OBJECT(&s->rng), NULL);
92 qdev_set_parent_bus(DEVICE(&s->rng), sysbus_get_default());
93
89 /* Extended Mass Media Controller */
90 object_initialize(&s->sdhci, sizeof(s->sdhci), TYPE_SYSBUS_SDHCI);
91 object_property_add_child(obj, "sdhci", OBJECT(&s->sdhci), NULL);
92 qdev_set_parent_bus(DEVICE(&s->sdhci), sysbus_get_default());
93
94 /* DMA Channels */
95 object_initialize(&s->dma, sizeof(s->dma), TYPE_BCM2835_DMA);
96 object_property_add_child(obj, "dma", OBJECT(&s->dma), NULL);

--- 124 unchanged lines hidden (view full) ---

221 }
222
223 memory_region_add_subregion(&s->mbox_mr,
224 MBOX_CHAN_PROPERTY << MBOX_AS_CHAN_SHIFT,
225 sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->property), 0));
226 sysbus_connect_irq(SYS_BUS_DEVICE(&s->property), 0,
227 qdev_get_gpio_in(DEVICE(&s->mboxes), MBOX_CHAN_PROPERTY));
228
94 /* Extended Mass Media Controller */
95 object_initialize(&s->sdhci, sizeof(s->sdhci), TYPE_SYSBUS_SDHCI);
96 object_property_add_child(obj, "sdhci", OBJECT(&s->sdhci), NULL);
97 qdev_set_parent_bus(DEVICE(&s->sdhci), sysbus_get_default());
98
99 /* DMA Channels */
100 object_initialize(&s->dma, sizeof(s->dma), TYPE_BCM2835_DMA);
101 object_property_add_child(obj, "dma", OBJECT(&s->dma), NULL);

--- 124 unchanged lines hidden (view full) ---

226 }
227
228 memory_region_add_subregion(&s->mbox_mr,
229 MBOX_CHAN_PROPERTY << MBOX_AS_CHAN_SHIFT,
230 sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->property), 0));
231 sysbus_connect_irq(SYS_BUS_DEVICE(&s->property), 0,
232 qdev_get_gpio_in(DEVICE(&s->mboxes), MBOX_CHAN_PROPERTY));
233
234 /* Random Number Generator */
235 object_property_set_bool(OBJECT(&s->rng), true, "realized", &err);
236 if (err) {
237 error_propagate(errp, err);
238 return;
239 }
240
241 memory_region_add_subregion(&s->peri_mr, RNG_OFFSET,
242 sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->rng), 0));
243
229 /* Extended Mass Media Controller */
230 object_property_set_int(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capareg",
231 &err);
232 if (err) {
233 error_propagate(errp, err);
234 return;
235 }
236

--- 66 unchanged lines hidden ---
244 /* Extended Mass Media Controller */
245 object_property_set_int(OBJECT(&s->sdhci), BCM2835_SDHC_CAPAREG, "capareg",
246 &err);
247 if (err) {
248 error_propagate(errp, err);
249 return;
250 }
251

--- 66 unchanged lines hidden ---