Lines Matching +full:mux +full:- +full:add +full:- +full:data

9  * the COPYING file in the top-level directory.
26 #include "hw/qdev-properties.h"
27 #include "system/block-backend.h"
30 #include "qemu/error-report.h"
33 #include "hw/qdev-clock.h"
37 .board_id = -1, /* device-tree-only board */
54 /* On 32-bit hosts, lower RAM to 1G because of the 2047 MB limit */
167 /* Quanta-Q71l hardware value */
208 /* Qualcomm DC-SCM hardware value */
226 * r2 = per-cpu go sign value in aspeed_write_smpboot()
250 arm_write_bootloader("aspeed.smpboot", as, info->smp_loader_start, in aspeed_write_smpboot()
260 /* info->smp_bootreg_addr */ in aspeed_reset_secondary()
263 cpu_set_pc(cs, info->smp_loader_start); in aspeed_reset_secondary()
297 * (0x0). Boots faster than execute-in-place.
302 AspeedSoCState *soc = bmc->soc; in aspeed_install_boot_rom()
305 memory_region_init_rom(&bmc->boot_rom, NULL, "aspeed.boot_rom", rom_size, in aspeed_install_boot_rom()
307 memory_region_add_subregion_overlap(&soc->spi_boot_container, 0, in aspeed_install_boot_rom()
308 &bmc->boot_rom, 1); in aspeed_install_boot_rom()
309 write_boot_rom(blk, sc->memmap[ASPEED_DEV_SPI_BOOT], in aspeed_install_boot_rom()
317 * using the -bios option. It loads the specified image into the vbootrom
324 AspeedSoCState *soc = bmc->soc; in aspeed_load_vbootrom()
333 ret = load_image_mr(filename, &soc->vbootrom); in aspeed_load_vbootrom()
358 qdev_realize_and_unref(dev, BUS(s->spi), &error_fatal); in aspeed_board_init_flashes()
378 * boot areas when booting from the flash device (or -kernel) in sdhci_attach_drive()
383 qdev_prop_set_uint64(card, "boot-partition-size", 1 * MiB); in sdhci_attach_drive()
384 qdev_prop_set_uint8(card, "boot-config", 0x1 << 3); in sdhci_attach_drive()
389 qdev_get_child_bus(DEVICE(sdhci), "sd-bus"), in sdhci_attach_drive()
396 AspeedSoCState *s = bmc->soc; in connect_serial_hds_to_uarts()
398 int uart_chosen = bmc->uart_chosen ? bmc->uart_chosen : amc->uart_default; in connect_serial_hds_to_uarts()
401 for (int i = 1, uart = sc->uarts_base; i < sc->uarts_num; uart++) { in connect_serial_hds_to_uarts()
419 bmc->soc = ASPEED_SOC(object_new(amc->soc_name)); in aspeed_machine_init()
420 object_property_add_child(OBJECT(machine), "soc", OBJECT(bmc->soc)); in aspeed_machine_init()
421 object_unref(OBJECT(bmc->soc)); in aspeed_machine_init()
422 sc = ASPEED_SOC_GET_CLASS(bmc->soc); in aspeed_machine_init()
428 object_property_set_uint(OBJECT(bmc->soc), "ram-size", machine->ram_size, in aspeed_machine_init()
431 for (i = 0; i < sc->macs_num; i++) { in aspeed_machine_init()
432 if ((amc->macs_mask & (1 << i)) && in aspeed_machine_init()
433 !qemu_configure_nic_device(DEVICE(&bmc->soc->ftgmac100[i]), in aspeed_machine_init()
439 object_property_set_int(OBJECT(bmc->soc), "hw-strap1", bmc->hw_strap1, in aspeed_machine_init()
441 object_property_set_int(OBJECT(bmc->soc), "hw-strap2", amc->hw_strap2, in aspeed_machine_init()
443 object_property_set_link(OBJECT(bmc->soc), "memory", in aspeed_machine_init()
445 object_property_set_link(OBJECT(bmc->soc), "dram", in aspeed_machine_init()
446 OBJECT(machine->ram), &error_abort); in aspeed_machine_init()
447 if (amc->sdhci_wp_inverted) { in aspeed_machine_init()
448 for (i = 0; i < bmc->soc->sdhci.num_slots; i++) { in aspeed_machine_init()
449 object_property_set_bool(OBJECT(&bmc->soc->sdhci.slots[i]), in aspeed_machine_init()
450 "wp-inverted", true, &error_abort); in aspeed_machine_init()
453 if (machine->kernel_filename) { in aspeed_machine_init()
455 * When booting with a -kernel command line there is no u-boot in aspeed_machine_init()
459 object_property_set_int(OBJECT(bmc->soc), "hw-prot-key", in aspeed_machine_init()
463 qdev_realize(DEVICE(bmc->soc), NULL, &error_abort); in aspeed_machine_init()
466 aspeed_board_init_flashes(&bmc->soc->fmc, in aspeed_machine_init()
467 bmc->fmc_model ? bmc->fmc_model : amc->fmc_model, in aspeed_machine_init()
468 amc->num_cs, 0); in aspeed_machine_init()
469 aspeed_board_init_flashes(&bmc->soc->spi[0], in aspeed_machine_init()
470 bmc->spi_model ? bmc->spi_model : amc->spi_model, in aspeed_machine_init()
471 1, amc->num_cs); in aspeed_machine_init()
472 aspeed_board_init_flashes(&bmc->soc->spi[1], in aspeed_machine_init()
473 amc->spi2_model, 1, amc->num_cs2); in aspeed_machine_init()
476 if (machine->kernel_filename && sc->num_cpus > 1) { in aspeed_machine_init()
477 /* With no u-boot we must set up a boot stub for the secondary CPU */ in aspeed_machine_init()
489 aspeed_board_binfo.ram_size = machine->ram_size; in aspeed_machine_init()
490 aspeed_board_binfo.loader_start = sc->memmap[ASPEED_DEV_SDRAM]; in aspeed_machine_init()
492 if (amc->i2c_init) { in aspeed_machine_init()
493 amc->i2c_init(bmc); in aspeed_machine_init()
496 for (i = 0; i < bmc->soc->sdhci.num_slots && defaults_enabled(); i++) { in aspeed_machine_init()
497 sdhci_attach_drive(&bmc->soc->sdhci.slots[i], in aspeed_machine_init()
501 boot_emmc = sc->boot_from_emmc(bmc->soc); in aspeed_machine_init()
503 if (bmc->soc->emmc.num_slots && defaults_enabled()) { in aspeed_machine_init()
504 emmc0 = drive_get(IF_SD, 0, bmc->soc->sdhci.num_slots); in aspeed_machine_init()
505 sdhci_attach_drive(&bmc->soc->emmc.slots[0], emmc0, true, boot_emmc); in aspeed_machine_init()
508 if (!bmc->mmio_exec) { in aspeed_machine_init()
509 DeviceState *dev = ssi_get_cs(bmc->soc->fmc.spi, 0); in aspeed_machine_init()
513 uint64_t rom_size = memory_region_size(&bmc->soc->spi_boot); in aspeed_machine_init()
520 if (amc->vbootrom) { in aspeed_machine_init()
521 bios_name = machine->firmware ?: VBOOTROM_FILE_NAME; in aspeed_machine_init()
530 AspeedSoCState *soc = bmc->soc; in palmetto_bmc_i2c_init()
538 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 0), "ds1338", 0x68); in palmetto_bmc_i2c_init()
540 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 0), 0x50, in palmetto_bmc_i2c_init()
543 /* add a TMP423 temperature sensor */ in palmetto_bmc_i2c_init()
544 dev = DEVICE(i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), in palmetto_bmc_i2c_init()
554 AspeedSoCState *soc = bmc->soc; in quanta_q71l_bmc_i2c_init()
557 * The quanta-q71l platform expects tmp75s which are compatible with in quanta_q71l_bmc_i2c_init()
560 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 1), "tmp105", 0x4c); in quanta_q71l_bmc_i2c_init()
561 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 1), "tmp105", 0x4e); in quanta_q71l_bmc_i2c_init()
562 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 1), "tmp105", 0x4f); in quanta_q71l_bmc_i2c_init()
564 /* TODO: i2c-1: Add baseboard FRU eeprom@54 24c64 */ in quanta_q71l_bmc_i2c_init()
565 /* TODO: i2c-1: Add Frontpanel FRU eeprom@57 24c64 */ in quanta_q71l_bmc_i2c_init()
566 /* TODO: Add Memory Riser i2c mux and eeproms. */ in quanta_q71l_bmc_i2c_init()
568 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "pca9546", 0x74); in quanta_q71l_bmc_i2c_init()
569 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "pca9548", 0x77); in quanta_q71l_bmc_i2c_init()
571 /* TODO: i2c-3: Add BIOS FRU eeprom@56 24c64 */ in quanta_q71l_bmc_i2c_init()
573 /* i2c-7 */ in quanta_q71l_bmc_i2c_init()
574 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), "pca9546", 0x70); in quanta_q71l_bmc_i2c_init()
575 /* - i2c@0: pmbus@59 */ in quanta_q71l_bmc_i2c_init()
576 /* - i2c@1: pmbus@58 */ in quanta_q71l_bmc_i2c_init()
577 /* - i2c@2: pmbus@58 */ in quanta_q71l_bmc_i2c_init()
578 /* - i2c@3: pmbus@59 */ in quanta_q71l_bmc_i2c_init()
580 /* TODO: i2c-7: Add PDB FRU eeprom@52 */ in quanta_q71l_bmc_i2c_init()
581 /* TODO: i2c-8: Add BMC FRU eeprom@50 */ in quanta_q71l_bmc_i2c_init()
586 AspeedSoCState *soc = bmc->soc; in ast2500_evb_i2c_init()
589 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 3), 0x50, in ast2500_evb_i2c_init()
593 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), in ast2500_evb_i2c_init()
599 AspeedSoCState *soc = bmc->soc; in ast2600_evb_i2c_init()
602 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 7), 0x50, in ast2600_evb_i2c_init()
606 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 8), in ast2600_evb_i2c_init()
612 AspeedSoCState *soc = bmc->soc; in yosemitev2_bmc_i2c_init()
614 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 4), 0x51, 128 * KiB); in yosemitev2_bmc_i2c_init()
615 at24c_eeprom_init_rom(aspeed_i2c_get_bus(&soc->i2c, 8), 0x51, 128 * KiB, in yosemitev2_bmc_i2c_init()
618 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "tmp421", 0x1f); in yosemitev2_bmc_i2c_init()
619 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "tmp421", 0x4e); in yosemitev2_bmc_i2c_init()
620 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "tmp421", 0x4f); in yosemitev2_bmc_i2c_init()
626 AspeedSoCState *soc = bmc->soc; in romulus_bmc_i2c_init()
632 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "ds1338", 0x32); in romulus_bmc_i2c_init()
637 AspeedSoCState *soc = bmc->soc; in tiogapass_bmc_i2c_init()
639 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 4), 0x54, 128 * KiB); in tiogapass_bmc_i2c_init()
640 at24c_eeprom_init_rom(aspeed_i2c_get_bus(&soc->i2c, 6), 0x54, 128 * KiB, in tiogapass_bmc_i2c_init()
643 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 8), "tmp421", 0x1f); in tiogapass_bmc_i2c_init()
644 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), "tmp421", 0x4f); in tiogapass_bmc_i2c_init()
645 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), "tmp421", 0x4e); in tiogapass_bmc_i2c_init()
650 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, bus_id), in create_pca9552()
656 return i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, bus_id), in create_pca9554()
662 AspeedSoCState *soc = bmc->soc; in sonorapass_bmc_i2c_init()
665 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "tmp105", 0x48); in sonorapass_bmc_i2c_init()
666 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "tmp105", 0x49); in sonorapass_bmc_i2c_init()
673 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 4), 0x54, in sonorapass_bmc_i2c_init()
681 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), "tmp105", 0x48); in sonorapass_bmc_i2c_init()
682 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), "tmp105", 0x49); in sonorapass_bmc_i2c_init()
687 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 8), 0x56, in sonorapass_bmc_i2c_init()
696 * - channel 3: in sonorapass_bmc_i2c_init()
697 * - tmm421 @ 0x4c in sonorapass_bmc_i2c_init()
698 * - tmp421 @ 0x4e in sonorapass_bmc_i2c_init()
699 * - tmp421 @ 0x4f in sonorapass_bmc_i2c_init()
712 {13, LED_COLOR_GREEN, "front-fault-4", GPIO_POLARITY_ACTIVE_LOW}, in witherspoon_bmc_i2c_init()
713 {14, LED_COLOR_GREEN, "front-power-3", GPIO_POLARITY_ACTIVE_LOW}, in witherspoon_bmc_i2c_init()
714 {15, LED_COLOR_GREEN, "front-id-5", GPIO_POLARITY_ACTIVE_LOW}, in witherspoon_bmc_i2c_init()
716 AspeedSoCState *soc = bmc->soc; in witherspoon_bmc_i2c_init()
725 aspeed_i2c_get_bus(&soc->i2c, 3), in witherspoon_bmc_i2c_init()
737 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in witherspoon_bmc_i2c_init()
739 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in witherspoon_bmc_i2c_init()
741 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "dps310", 0x76); in witherspoon_bmc_i2c_init()
743 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "max31785", 0x52); in witherspoon_bmc_i2c_init()
744 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), "tmp423", 0x4c); in witherspoon_bmc_i2c_init()
745 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), "ir35221", 0x70); in witherspoon_bmc_i2c_init()
746 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), "ir35221", 0x71); in witherspoon_bmc_i2c_init()
748 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), "tmp423", 0x4c); in witherspoon_bmc_i2c_init()
749 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), "ir35221", 0x70); in witherspoon_bmc_i2c_init()
750 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), "ir35221", 0x71); in witherspoon_bmc_i2c_init()
753 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), TYPE_TMP105, in witherspoon_bmc_i2c_init()
760 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "ds1338", 0x32); in witherspoon_bmc_i2c_init()
762 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 11), 0x51, in witherspoon_bmc_i2c_init()
767 aspeed_i2c_get_bus(&soc->i2c, 11), in witherspoon_bmc_i2c_init()
774 AspeedSoCState *soc = bmc->soc; in g220a_bmc_i2c_init()
777 dev = DEVICE(i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), in g220a_bmc_i2c_init()
783 dev = DEVICE(i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 12), in g220a_bmc_i2c_init()
789 dev = DEVICE(i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 13), in g220a_bmc_i2c_init()
804 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 4), 0x57, in g220a_bmc_i2c_init()
810 AspeedSoCState *soc = bmc->soc; in fp5280g2_bmc_i2c_init()
814 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 1), 0x50, 32768); in fp5280g2_bmc_i2c_init()
817 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), TYPE_TMP105, in fp5280g2_bmc_i2c_init()
819 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), TYPE_TMP105, in fp5280g2_bmc_i2c_init()
822 i2c_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), in fp5280g2_bmc_i2c_init()
829 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), "ds1338", 0x68); in fp5280g2_bmc_i2c_init()
837 AspeedSoCState *soc = bmc->soc; in rainier_bmc_i2c_init()
840 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 0), 0x51, 32 * KiB); in rainier_bmc_i2c_init()
844 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in rainier_bmc_i2c_init()
846 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in rainier_bmc_i2c_init()
848 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in rainier_bmc_i2c_init()
850 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 3), "ibm-cffps", in rainier_bmc_i2c_init()
854 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), TYPE_TMP105, in rainier_bmc_i2c_init()
856 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), TYPE_TMP105, in rainier_bmc_i2c_init()
858 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), TYPE_TMP105, in rainier_bmc_i2c_init()
860 i2c_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), in rainier_bmc_i2c_init()
867 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), TYPE_TMP105, in rainier_bmc_i2c_init()
869 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), TYPE_TMP105, in rainier_bmc_i2c_init()
873 i2c_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), in rainier_bmc_i2c_init()
878 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), TYPE_TMP105, in rainier_bmc_i2c_init()
880 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), TYPE_TMP105, in rainier_bmc_i2c_init()
882 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), TYPE_TMP105, in rainier_bmc_i2c_init()
884 i2c_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 6), in rainier_bmc_i2c_init()
897 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), "dps310", 0x76); in rainier_bmc_i2c_init()
898 /* Bus 7: TODO si7021-a20@20 */ in rainier_bmc_i2c_init()
899 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), TYPE_TMP105, in rainier_bmc_i2c_init()
901 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), "max31785", 0x52); in rainier_bmc_i2c_init()
902 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 7), 0x50, 64 * KiB); in rainier_bmc_i2c_init()
903 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 7), 0x51, 64 * KiB); in rainier_bmc_i2c_init()
905 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 8), TYPE_TMP105, in rainier_bmc_i2c_init()
907 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 8), TYPE_TMP105, in rainier_bmc_i2c_init()
909 at24c_eeprom_init_rom(aspeed_i2c_get_bus(&soc->i2c, 8), 0x50, in rainier_bmc_i2c_init()
911 at24c_eeprom_init_rom(aspeed_i2c_get_bus(&soc->i2c, 8), 0x51, in rainier_bmc_i2c_init()
919 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x42); in rainier_bmc_i2c_init()
920 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x43); in rainier_bmc_i2c_init()
921 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x44); in rainier_bmc_i2c_init()
922 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x72); in rainier_bmc_i2c_init()
923 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x73); in rainier_bmc_i2c_init()
924 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "ir35221", 0x74); in rainier_bmc_i2c_init()
925 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "tmp423", 0x4c); in rainier_bmc_i2c_init()
926 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "tmp423", 0x4d); in rainier_bmc_i2c_init()
927 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 9), 0x50, 128 * KiB); in rainier_bmc_i2c_init()
929 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x42); in rainier_bmc_i2c_init()
930 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x43); in rainier_bmc_i2c_init()
931 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x44); in rainier_bmc_i2c_init()
932 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x72); in rainier_bmc_i2c_init()
933 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x73); in rainier_bmc_i2c_init()
934 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "ir35221", 0x74); in rainier_bmc_i2c_init()
935 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "tmp423", 0x4c); in rainier_bmc_i2c_init()
936 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 10), "tmp423", 0x4d); in rainier_bmc_i2c_init()
937 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 10), 0x50, 128 * KiB); in rainier_bmc_i2c_init()
939 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), TYPE_TMP105, in rainier_bmc_i2c_init()
941 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), TYPE_TMP105, in rainier_bmc_i2c_init()
943 i2c_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), in rainier_bmc_i2c_init()
950 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 13), 0x50, 64 * KiB); in rainier_bmc_i2c_init()
953 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 14), 0x50, 64 * KiB); in rainier_bmc_i2c_init()
956 at24c_eeprom_init(aspeed_i2c_get_bus(&soc->i2c, 15), 0x50, 64 * KiB); in rainier_bmc_i2c_init()
963 I2CSlave *mux = i2c_slave_create_simple(bus, "pca9548", mux_addr); in get_pca9548_channels() local
965 channels[i] = pca954x_i2c_get_bus(mux, i); in get_pca9548_channels()
975 AspeedSoCState *soc = bmc->soc; in fuji_bmc_i2c_init()
979 i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); in fuji_bmc_i2c_init()
1060 /* Reference from v6.16-rc2 aspeed-bmc-facebook-catalina.dts */ in catalina_bmc_i2c_init()
1062 AspeedSoCState *soc = bmc->soc; in catalina_bmc_i2c_init()
1066 /* busses 0-15 are all used. */ in catalina_bmc_i2c_init()
1068 i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); in catalina_bmc_i2c_init()
1072 /* i2c-mux@71 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1075 /* i2c-mux@72 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1079 /* io_expander7 - pca9535@20 */ in catalina_bmc_i2c_init()
1085 /* i2c-mux@73 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1088 /* i2c-mux@75 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1091 /* i2c-mux@76 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1095 /* io_expander8 - pca9535@21 */ in catalina_bmc_i2c_init()
1101 /* i2c-mux@77 (PCA9546) on i2c0 */ in catalina_bmc_i2c_init()
1106 /* i2c-mux@70 (PCA9548) on i2c1 */ in catalina_bmc_i2c_init()
1109 /* ina238@41 - no model */ in catalina_bmc_i2c_init()
1110 /* ina238@42 - no model */ in catalina_bmc_i2c_init()
1111 /* ina238@44 - no model */ in catalina_bmc_i2c_init()
1113 /* ina238@41 - no model */ in catalina_bmc_i2c_init()
1114 /* ina238@43 - no model */ in catalina_bmc_i2c_init()
1116 /* ltc4287@42 - no model */ in catalina_bmc_i2c_init()
1117 /* ltc4287@43 - no model */ in catalina_bmc_i2c_init()
1126 /* io_expander5 - pca9554@27 */ in catalina_bmc_i2c_init()
1129 /* io_expander6 - pca9555@25 */ in catalina_bmc_i2c_init()
1138 /* temperature-sensor@4b - tmp75 */ in catalina_bmc_i2c_init()
1142 /* io_expander0 - pca9555@20 */ in catalina_bmc_i2c_init()
1144 /* io_expander0 - pca9555@21 */ in catalina_bmc_i2c_init()
1146 /* io_expander0 - pca9555@27 */ in catalina_bmc_i2c_init()
1154 /* i2c-mux@70 (PCA9548) on i2c5 */ in catalina_bmc_i2c_init()
1160 /* ina230@40 - no model */ in catalina_bmc_i2c_init()
1161 /* ina230@41 - no model */ in catalina_bmc_i2c_init()
1162 /* ina230@44 - no model */ in catalina_bmc_i2c_init()
1163 /* ina230@45 - no model */ in catalina_bmc_i2c_init()
1166 /* io_expander3 - pca9555@21 */ in catalina_bmc_i2c_init()
1168 /* rtc@6f - nct3018y */ in catalina_bmc_i2c_init()
1172 /* io_expander4 - pca9555@4f */ in catalina_bmc_i2c_init()
1174 /* temperature-sensor@4b - tpm75 */ in catalina_bmc_i2c_init()
1182 /* temperature-sensor@1f - tpm421 */ in catalina_bmc_i2c_init()
1188 /* ssif-bmc@10 - no model */ in catalina_bmc_i2c_init()
1205 /* io_expander9 - pca9555@10 */ in catalina_bmc_i2c_init()
1207 /* io_expander10 - pca9555@11 */ in catalina_bmc_i2c_init()
1209 /* io_expander11 - pca9555@12 */ in catalina_bmc_i2c_init()
1211 /* io_expander12 - pca9555@13 */ in catalina_bmc_i2c_init()
1213 /* io_expander13 - pca9555@14 */ in catalina_bmc_i2c_init()
1215 /* io_expander14 - pca9555@15 */ in catalina_bmc_i2c_init()
1219 /* temperature-sensor@1f - tmp421 */ in catalina_bmc_i2c_init()
1227 AspeedSoCState *soc = bmc->soc; in bletchley_bmc_i2c_init()
1233 i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); in bletchley_bmc_i2c_init()
1236 /* Bus 0 - 5 all have the same config. */ in bletchley_bmc_i2c_init()
1274 AspeedSoCState *soc = bmc->soc; in gb200nvl_bmc_i2c_init()
1281 i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); in gb200nvl_bmc_i2c_init()
1287 /* Mux I2c Expanders */ in gb200nvl_bmc_i2c_init()
1312 AspeedSoCState *soc = bmc->soc; in fby35_i2c_init()
1316 i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); in fby35_i2c_init()
1336 * TODO: There is a multi-master i2c connection to an AST1030 MiniBMC on in fby35_i2c_init()
1344 AspeedSoCState *soc = bmc->soc; in qcom_dc_scm_bmc_i2c_init()
1346 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 15), "tmp105", 0x4d); in qcom_dc_scm_bmc_i2c_init()
1351 AspeedSoCState *soc = bmc->soc; in qcom_dc_scm_firework_i2c_init()
1354 /* Create the generic DC-SCM hardware */ in qcom_dc_scm_firework_i2c_init()
1359 /* I2C7 CPUVR MUX */ in qcom_dc_scm_firework_i2c_init()
1360 cpuvr_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), in qcom_dc_scm_firework_i2c_init()
1368 therm_mux = i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 8), in qcom_dc_scm_firework_i2c_init()
1377 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "max31785", 0x52); in qcom_dc_scm_firework_i2c_init()
1378 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 9), "max31785", 0x54); in qcom_dc_scm_firework_i2c_init()
1383 return ASPEED_MACHINE(obj)->mmio_exec; in aspeed_get_mmio_exec()
1388 ASPEED_MACHINE(obj)->mmio_exec = value; in aspeed_set_mmio_exec()
1395 ASPEED_MACHINE(obj)->mmio_exec = false; in aspeed_machine_instance_init()
1396 ASPEED_MACHINE(obj)->hw_strap1 = amc->hw_strap1; in aspeed_machine_instance_init()
1402 return g_strdup(bmc->fmc_model); in aspeed_get_fmc_model()
1409 g_free(bmc->fmc_model); in aspeed_set_fmc_model()
1410 bmc->fmc_model = g_strdup(value); in aspeed_set_fmc_model()
1416 return g_strdup(bmc->spi_model); in aspeed_get_spi_model()
1423 g_free(bmc->spi_model); in aspeed_set_spi_model()
1424 bmc->spi_model = g_strdup(value); in aspeed_set_spi_model()
1431 int uart_chosen = bmc->uart_chosen ? bmc->uart_chosen : amc->uart_default; in aspeed_get_bmc_console()
1440 AspeedSoCClass *sc = ASPEED_SOC_CLASS(object_class_by_name(amc->soc_name)); in aspeed_set_bmc_console()
1452 error_setg(errp, "\"uart\" should be in range [%d - %d]", in aspeed_set_bmc_console()
1456 bmc->uart_chosen = val + ASPEED_DEV_UART0; in aspeed_set_bmc_console()
1461 object_class_property_add_bool(oc, "execute-in-place", in aspeed_machine_class_props_init()
1464 object_class_property_set_description(oc, "execute-in-place", in aspeed_machine_class_props_init()
1467 object_class_property_add_str(oc, "bmc-console", aspeed_get_bmc_console, in aspeed_machine_class_props_init()
1469 object_class_property_set_description(oc, "bmc-console", in aspeed_machine_class_props_init()
1472 object_class_property_add_str(oc, "fmc-model", aspeed_get_fmc_model, in aspeed_machine_class_props_init()
1474 object_class_property_set_description(oc, "fmc-model", in aspeed_machine_class_props_init()
1476 object_class_property_add_str(oc, "spi-model", aspeed_get_spi_model, in aspeed_machine_class_props_init()
1478 object_class_property_set_description(oc, "spi-model", in aspeed_machine_class_props_init()
1485 AspeedSoCClass *sc = ASPEED_SOC_CLASS(object_class_by_name(amc->soc_name)); in aspeed_machine_class_init_cpus_defaults()
1487 mc->default_cpus = sc->num_cpus; in aspeed_machine_class_init_cpus_defaults()
1488 mc->min_cpus = sc->num_cpus; in aspeed_machine_class_init_cpus_defaults()
1489 mc->max_cpus = sc->num_cpus; in aspeed_machine_class_init_cpus_defaults()
1490 mc->valid_cpu_types = sc->valid_cpu_types; in aspeed_machine_class_init_cpus_defaults()
1497 return !!(bmc->hw_strap1 & SCU_AST2600_HW_STRAP_BOOT_SRC_EMMC); in aspeed_machine_ast2600_get_boot_from_emmc()
1506 bmc->hw_strap1 |= SCU_AST2600_HW_STRAP_BOOT_SRC_EMMC; in aspeed_machine_ast2600_set_boot_from_emmc()
1508 bmc->hw_strap1 &= ~SCU_AST2600_HW_STRAP_BOOT_SRC_EMMC; in aspeed_machine_ast2600_set_boot_from_emmc()
1514 object_class_property_add_bool(oc, "boot-emmc", in aspeed_machine_ast2600_class_emmc_init()
1517 object_class_property_set_description(oc, "boot-emmc", in aspeed_machine_ast2600_class_emmc_init()
1521 static void aspeed_machine_class_init(ObjectClass *oc, const void *data) in aspeed_machine_class_init() argument
1526 mc->init = aspeed_machine_init; in aspeed_machine_class_init()
1527 mc->no_floppy = 1; in aspeed_machine_class_init()
1528 mc->no_cdrom = 1; in aspeed_machine_class_init()
1529 mc->no_parallel = 1; in aspeed_machine_class_init()
1530 mc->default_ram_id = "ram"; in aspeed_machine_class_init()
1531 amc->macs_mask = ASPEED_MAC0_ON; in aspeed_machine_class_init()
1532 amc->uart_default = ASPEED_DEV_UART5; in aspeed_machine_class_init()
1538 const void *data) in aspeed_machine_palmetto_class_init() argument
1543 mc->desc = "OpenPOWER Palmetto BMC (ARM926EJ-S)"; in aspeed_machine_palmetto_class_init()
1544 amc->soc_name = "ast2400-a1"; in aspeed_machine_palmetto_class_init()
1545 amc->hw_strap1 = PALMETTO_BMC_HW_STRAP1; in aspeed_machine_palmetto_class_init()
1546 amc->fmc_model = "n25q256a"; in aspeed_machine_palmetto_class_init()
1547 amc->spi_model = "mx25l25635f"; in aspeed_machine_palmetto_class_init()
1548 amc->num_cs = 1; in aspeed_machine_palmetto_class_init()
1549 amc->i2c_init = palmetto_bmc_i2c_init; in aspeed_machine_palmetto_class_init()
1550 mc->auto_create_sdcard = true; in aspeed_machine_palmetto_class_init()
1551 mc->default_ram_size = 256 * MiB; in aspeed_machine_palmetto_class_init()
1556 const void *data) in aspeed_machine_quanta_q71l_class_init() argument
1561 mc->desc = "Quanta-Q71l BMC (ARM926EJ-S)"; in aspeed_machine_quanta_q71l_class_init()
1562 amc->soc_name = "ast2400-a1"; in aspeed_machine_quanta_q71l_class_init()
1563 amc->hw_strap1 = QUANTA_Q71L_BMC_HW_STRAP1; in aspeed_machine_quanta_q71l_class_init()
1564 amc->fmc_model = "n25q256a"; in aspeed_machine_quanta_q71l_class_init()
1565 amc->spi_model = "mx25l25635e"; in aspeed_machine_quanta_q71l_class_init()
1566 amc->num_cs = 1; in aspeed_machine_quanta_q71l_class_init()
1567 amc->i2c_init = quanta_q71l_bmc_i2c_init; in aspeed_machine_quanta_q71l_class_init()
1568 mc->auto_create_sdcard = true; in aspeed_machine_quanta_q71l_class_init()
1569 mc->default_ram_size = 128 * MiB; in aspeed_machine_quanta_q71l_class_init()
1574 const void *data) in aspeed_machine_supermicrox11_bmc_class_init() argument
1579 mc->desc = "Supermicro X11 BMC (ARM926EJ-S)"; in aspeed_machine_supermicrox11_bmc_class_init()
1580 amc->soc_name = "ast2400-a1"; in aspeed_machine_supermicrox11_bmc_class_init()
1581 amc->hw_strap1 = SUPERMICROX11_BMC_HW_STRAP1; in aspeed_machine_supermicrox11_bmc_class_init()
1582 amc->fmc_model = "mx25l25635e"; in aspeed_machine_supermicrox11_bmc_class_init()
1583 amc->spi_model = "mx25l25635e"; in aspeed_machine_supermicrox11_bmc_class_init()
1584 amc->num_cs = 1; in aspeed_machine_supermicrox11_bmc_class_init()
1585 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON; in aspeed_machine_supermicrox11_bmc_class_init()
1586 amc->i2c_init = palmetto_bmc_i2c_init; in aspeed_machine_supermicrox11_bmc_class_init()
1587 mc->auto_create_sdcard = true; in aspeed_machine_supermicrox11_bmc_class_init()
1588 mc->default_ram_size = 256 * MiB; in aspeed_machine_supermicrox11_bmc_class_init()
1593 const void *data) in aspeed_machine_supermicro_x11spi_bmc_class_init() argument
1598 mc->desc = "Supermicro X11 SPI BMC (ARM1176)"; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1599 amc->soc_name = "ast2500-a1"; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1600 amc->hw_strap1 = SUPERMICRO_X11SPI_BMC_HW_STRAP1; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1601 amc->fmc_model = "mx25l25635e"; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1602 amc->spi_model = "mx25l25635e"; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1603 amc->num_cs = 1; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1604 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1605 amc->i2c_init = palmetto_bmc_i2c_init; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1606 mc->auto_create_sdcard = true; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1607 mc->default_ram_size = 512 * MiB; in aspeed_machine_supermicro_x11spi_bmc_class_init()
1612 const void *data) in aspeed_machine_ast2500_evb_class_init() argument
1617 mc->desc = "Aspeed AST2500 EVB (ARM1176)"; in aspeed_machine_ast2500_evb_class_init()
1618 amc->soc_name = "ast2500-a1"; in aspeed_machine_ast2500_evb_class_init()
1619 amc->hw_strap1 = AST2500_EVB_HW_STRAP1; in aspeed_machine_ast2500_evb_class_init()
1620 amc->fmc_model = "mx25l25635e"; in aspeed_machine_ast2500_evb_class_init()
1621 amc->spi_model = "mx25l25635f"; in aspeed_machine_ast2500_evb_class_init()
1622 amc->num_cs = 1; in aspeed_machine_ast2500_evb_class_init()
1623 amc->i2c_init = ast2500_evb_i2c_init; in aspeed_machine_ast2500_evb_class_init()
1624 mc->auto_create_sdcard = true; in aspeed_machine_ast2500_evb_class_init()
1625 mc->default_ram_size = 512 * MiB; in aspeed_machine_ast2500_evb_class_init()
1630 const void *data) in aspeed_machine_yosemitev2_class_init() argument
1635 mc->desc = "Facebook YosemiteV2 BMC (ARM1176)"; in aspeed_machine_yosemitev2_class_init()
1636 amc->soc_name = "ast2500-a1"; in aspeed_machine_yosemitev2_class_init()
1637 amc->hw_strap1 = AST2500_EVB_HW_STRAP1; in aspeed_machine_yosemitev2_class_init()
1638 amc->hw_strap2 = 0; in aspeed_machine_yosemitev2_class_init()
1639 amc->fmc_model = "n25q256a"; in aspeed_machine_yosemitev2_class_init()
1640 amc->spi_model = "mx25l25635e"; in aspeed_machine_yosemitev2_class_init()
1641 amc->num_cs = 2; in aspeed_machine_yosemitev2_class_init()
1642 amc->i2c_init = yosemitev2_bmc_i2c_init; in aspeed_machine_yosemitev2_class_init()
1643 mc->auto_create_sdcard = true; in aspeed_machine_yosemitev2_class_init()
1644 mc->default_ram_size = 512 * MiB; in aspeed_machine_yosemitev2_class_init()
1649 const void *data) in aspeed_machine_romulus_class_init() argument
1654 mc->desc = "OpenPOWER Romulus BMC (ARM1176)"; in aspeed_machine_romulus_class_init()
1655 amc->soc_name = "ast2500-a1"; in aspeed_machine_romulus_class_init()
1656 amc->hw_strap1 = ROMULUS_BMC_HW_STRAP1; in aspeed_machine_romulus_class_init()
1657 amc->fmc_model = "n25q256a"; in aspeed_machine_romulus_class_init()
1658 amc->spi_model = "mx66l1g45g"; in aspeed_machine_romulus_class_init()
1659 amc->num_cs = 2; in aspeed_machine_romulus_class_init()
1660 amc->i2c_init = romulus_bmc_i2c_init; in aspeed_machine_romulus_class_init()
1661 mc->auto_create_sdcard = true; in aspeed_machine_romulus_class_init()
1662 mc->default_ram_size = 512 * MiB; in aspeed_machine_romulus_class_init()
1667 const void *data) in aspeed_machine_tiogapass_class_init() argument
1672 mc->desc = "Facebook Tiogapass BMC (ARM1176)"; in aspeed_machine_tiogapass_class_init()
1673 amc->soc_name = "ast2500-a1"; in aspeed_machine_tiogapass_class_init()
1674 amc->hw_strap1 = AST2500_EVB_HW_STRAP1; in aspeed_machine_tiogapass_class_init()
1675 amc->hw_strap2 = 0; in aspeed_machine_tiogapass_class_init()
1676 amc->fmc_model = "n25q256a"; in aspeed_machine_tiogapass_class_init()
1677 amc->spi_model = "mx25l25635e"; in aspeed_machine_tiogapass_class_init()
1678 amc->num_cs = 2; in aspeed_machine_tiogapass_class_init()
1679 amc->i2c_init = tiogapass_bmc_i2c_init; in aspeed_machine_tiogapass_class_init()
1680 mc->auto_create_sdcard = true; in aspeed_machine_tiogapass_class_init()
1681 mc->default_ram_size = 1 * GiB; in aspeed_machine_tiogapass_class_init()
1686 const void *data) in aspeed_machine_sonorapass_class_init() argument
1691 mc->desc = "OCP SonoraPass BMC (ARM1176)"; in aspeed_machine_sonorapass_class_init()
1692 amc->soc_name = "ast2500-a1"; in aspeed_machine_sonorapass_class_init()
1693 amc->hw_strap1 = SONORAPASS_BMC_HW_STRAP1; in aspeed_machine_sonorapass_class_init()
1694 amc->fmc_model = "mx66l1g45g"; in aspeed_machine_sonorapass_class_init()
1695 amc->spi_model = "mx66l1g45g"; in aspeed_machine_sonorapass_class_init()
1696 amc->num_cs = 2; in aspeed_machine_sonorapass_class_init()
1697 amc->i2c_init = sonorapass_bmc_i2c_init; in aspeed_machine_sonorapass_class_init()
1698 mc->auto_create_sdcard = true; in aspeed_machine_sonorapass_class_init()
1699 mc->default_ram_size = 512 * MiB; in aspeed_machine_sonorapass_class_init()
1704 const void *data) in aspeed_machine_witherspoon_class_init() argument
1709 mc->desc = "OpenPOWER Witherspoon BMC (ARM1176)"; in aspeed_machine_witherspoon_class_init()
1710 amc->soc_name = "ast2500-a1"; in aspeed_machine_witherspoon_class_init()
1711 amc->hw_strap1 = WITHERSPOON_BMC_HW_STRAP1; in aspeed_machine_witherspoon_class_init()
1712 amc->fmc_model = "mx25l25635f"; in aspeed_machine_witherspoon_class_init()
1713 amc->spi_model = "mx66l1g45g"; in aspeed_machine_witherspoon_class_init()
1714 amc->num_cs = 2; in aspeed_machine_witherspoon_class_init()
1715 amc->i2c_init = witherspoon_bmc_i2c_init; in aspeed_machine_witherspoon_class_init()
1716 mc->auto_create_sdcard = true; in aspeed_machine_witherspoon_class_init()
1717 mc->default_ram_size = 512 * MiB; in aspeed_machine_witherspoon_class_init()
1722 const void *data) in aspeed_machine_ast2600_evb_class_init() argument
1727 mc->desc = "Aspeed AST2600 EVB (Cortex-A7)"; in aspeed_machine_ast2600_evb_class_init()
1728 amc->soc_name = "ast2600-a3"; in aspeed_machine_ast2600_evb_class_init()
1729 amc->hw_strap1 = AST2600_EVB_HW_STRAP1; in aspeed_machine_ast2600_evb_class_init()
1730 amc->hw_strap2 = AST2600_EVB_HW_STRAP2; in aspeed_machine_ast2600_evb_class_init()
1731 amc->fmc_model = "mx66u51235f"; in aspeed_machine_ast2600_evb_class_init()
1732 amc->spi_model = "mx66u51235f"; in aspeed_machine_ast2600_evb_class_init()
1733 amc->num_cs = 1; in aspeed_machine_ast2600_evb_class_init()
1734 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON | in aspeed_machine_ast2600_evb_class_init()
1736 amc->sdhci_wp_inverted = true; in aspeed_machine_ast2600_evb_class_init()
1737 amc->i2c_init = ast2600_evb_i2c_init; in aspeed_machine_ast2600_evb_class_init()
1738 mc->auto_create_sdcard = true; in aspeed_machine_ast2600_evb_class_init()
1739 mc->default_ram_size = 1 * GiB; in aspeed_machine_ast2600_evb_class_init()
1744 static void aspeed_machine_g220a_class_init(ObjectClass *oc, const void *data) in aspeed_machine_g220a_class_init() argument
1749 mc->desc = "Bytedance G220A BMC (ARM1176)"; in aspeed_machine_g220a_class_init()
1750 amc->soc_name = "ast2500-a1"; in aspeed_machine_g220a_class_init()
1751 amc->hw_strap1 = G220A_BMC_HW_STRAP1; in aspeed_machine_g220a_class_init()
1752 amc->fmc_model = "n25q512a"; in aspeed_machine_g220a_class_init()
1753 amc->spi_model = "mx25l25635e"; in aspeed_machine_g220a_class_init()
1754 amc->num_cs = 2; in aspeed_machine_g220a_class_init()
1755 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON; in aspeed_machine_g220a_class_init()
1756 amc->i2c_init = g220a_bmc_i2c_init; in aspeed_machine_g220a_class_init()
1757 mc->auto_create_sdcard = true; in aspeed_machine_g220a_class_init()
1758 mc->default_ram_size = 1024 * MiB; in aspeed_machine_g220a_class_init()
1763 const void *data) in aspeed_machine_fp5280g2_class_init() argument
1768 mc->desc = "Inspur FP5280G2 BMC (ARM1176)"; in aspeed_machine_fp5280g2_class_init()
1769 amc->soc_name = "ast2500-a1"; in aspeed_machine_fp5280g2_class_init()
1770 amc->hw_strap1 = FP5280G2_BMC_HW_STRAP1; in aspeed_machine_fp5280g2_class_init()
1771 amc->fmc_model = "n25q512a"; in aspeed_machine_fp5280g2_class_init()
1772 amc->spi_model = "mx25l25635e"; in aspeed_machine_fp5280g2_class_init()
1773 amc->num_cs = 2; in aspeed_machine_fp5280g2_class_init()
1774 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON; in aspeed_machine_fp5280g2_class_init()
1775 amc->i2c_init = fp5280g2_bmc_i2c_init; in aspeed_machine_fp5280g2_class_init()
1776 mc->auto_create_sdcard = true; in aspeed_machine_fp5280g2_class_init()
1777 mc->default_ram_size = 512 * MiB; in aspeed_machine_fp5280g2_class_init()
1781 static void aspeed_machine_rainier_class_init(ObjectClass *oc, const void *data) in aspeed_machine_rainier_class_init() argument
1786 mc->desc = "IBM Rainier BMC (Cortex-A7)"; in aspeed_machine_rainier_class_init()
1787 amc->soc_name = "ast2600-a3"; in aspeed_machine_rainier_class_init()
1788 amc->hw_strap1 = RAINIER_BMC_HW_STRAP1; in aspeed_machine_rainier_class_init()
1789 amc->hw_strap2 = RAINIER_BMC_HW_STRAP2; in aspeed_machine_rainier_class_init()
1790 amc->fmc_model = "mx66l1g45g"; in aspeed_machine_rainier_class_init()
1791 amc->spi_model = "mx66l1g45g"; in aspeed_machine_rainier_class_init()
1792 amc->num_cs = 2; in aspeed_machine_rainier_class_init()
1793 amc->macs_mask = ASPEED_MAC2_ON | ASPEED_MAC3_ON; in aspeed_machine_rainier_class_init()
1794 amc->i2c_init = rainier_bmc_i2c_init; in aspeed_machine_rainier_class_init()
1795 mc->auto_create_sdcard = true; in aspeed_machine_rainier_class_init()
1796 mc->default_ram_size = 1 * GiB; in aspeed_machine_rainier_class_init()
1803 static void aspeed_machine_fuji_class_init(ObjectClass *oc, const void *data) in aspeed_machine_fuji_class_init() argument
1808 mc->desc = "Facebook Fuji BMC (Cortex-A7)"; in aspeed_machine_fuji_class_init()
1809 amc->soc_name = "ast2600-a3"; in aspeed_machine_fuji_class_init()
1810 amc->hw_strap1 = FUJI_BMC_HW_STRAP1; in aspeed_machine_fuji_class_init()
1811 amc->hw_strap2 = FUJI_BMC_HW_STRAP2; in aspeed_machine_fuji_class_init()
1812 amc->fmc_model = "mx66l1g45g"; in aspeed_machine_fuji_class_init()
1813 amc->spi_model = "mx66l1g45g"; in aspeed_machine_fuji_class_init()
1814 amc->num_cs = 2; in aspeed_machine_fuji_class_init()
1815 amc->macs_mask = ASPEED_MAC3_ON; in aspeed_machine_fuji_class_init()
1816 amc->i2c_init = fuji_bmc_i2c_init; in aspeed_machine_fuji_class_init()
1817 amc->uart_default = ASPEED_DEV_UART1; in aspeed_machine_fuji_class_init()
1818 mc->auto_create_sdcard = true; in aspeed_machine_fuji_class_init()
1819 mc->default_ram_size = FUJI_BMC_RAM_SIZE; in aspeed_machine_fuji_class_init()
1826 const void *data) in aspeed_machine_bletchley_class_init() argument
1831 mc->desc = "Facebook Bletchley BMC (Cortex-A7)"; in aspeed_machine_bletchley_class_init()
1832 amc->soc_name = "ast2600-a3"; in aspeed_machine_bletchley_class_init()
1833 amc->hw_strap1 = BLETCHLEY_BMC_HW_STRAP1; in aspeed_machine_bletchley_class_init()
1834 amc->hw_strap2 = BLETCHLEY_BMC_HW_STRAP2; in aspeed_machine_bletchley_class_init()
1835 amc->fmc_model = "w25q01jvq"; in aspeed_machine_bletchley_class_init()
1836 amc->spi_model = NULL; in aspeed_machine_bletchley_class_init()
1837 amc->num_cs = 2; in aspeed_machine_bletchley_class_init()
1838 amc->macs_mask = ASPEED_MAC2_ON; in aspeed_machine_bletchley_class_init()
1839 amc->i2c_init = bletchley_bmc_i2c_init; in aspeed_machine_bletchley_class_init()
1840 mc->auto_create_sdcard = true; in aspeed_machine_bletchley_class_init()
1841 mc->default_ram_size = BLETCHLEY_BMC_RAM_SIZE; in aspeed_machine_bletchley_class_init()
1846 const void *data) in aspeed_machine_catalina_class_init() argument
1851 mc->desc = "Facebook Catalina BMC (Cortex-A7)"; in aspeed_machine_catalina_class_init()
1852 amc->soc_name = "ast2600-a3"; in aspeed_machine_catalina_class_init()
1853 amc->hw_strap1 = CATALINA_BMC_HW_STRAP1; in aspeed_machine_catalina_class_init()
1854 amc->hw_strap2 = CATALINA_BMC_HW_STRAP2; in aspeed_machine_catalina_class_init()
1855 amc->fmc_model = "w25q01jvq"; in aspeed_machine_catalina_class_init()
1856 amc->spi_model = NULL; in aspeed_machine_catalina_class_init()
1857 amc->num_cs = 2; in aspeed_machine_catalina_class_init()
1858 amc->macs_mask = ASPEED_MAC2_ON; in aspeed_machine_catalina_class_init()
1859 amc->i2c_init = catalina_bmc_i2c_init; in aspeed_machine_catalina_class_init()
1860 mc->auto_create_sdcard = true; in aspeed_machine_catalina_class_init()
1861 mc->default_ram_size = CATALINA_BMC_RAM_SIZE; in aspeed_machine_catalina_class_init()
1869 const void *data) in aspeed_machine_gb200nvl_class_init() argument
1874 mc->desc = "Nvidia GB200NVL BMC (Cortex-A7)"; in aspeed_machine_gb200nvl_class_init()
1875 amc->soc_name = "ast2600-a3"; in aspeed_machine_gb200nvl_class_init()
1876 amc->hw_strap1 = GB200NVL_BMC_HW_STRAP1; in aspeed_machine_gb200nvl_class_init()
1877 amc->hw_strap2 = GB200NVL_BMC_HW_STRAP2; in aspeed_machine_gb200nvl_class_init()
1878 amc->fmc_model = "mx66u51235f"; in aspeed_machine_gb200nvl_class_init()
1879 amc->spi_model = "mx66u51235f"; in aspeed_machine_gb200nvl_class_init()
1880 amc->num_cs = 2; in aspeed_machine_gb200nvl_class_init()
1882 amc->spi2_model = "mx66u51235f"; in aspeed_machine_gb200nvl_class_init()
1883 amc->num_cs2 = 1; in aspeed_machine_gb200nvl_class_init()
1884 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON; in aspeed_machine_gb200nvl_class_init()
1885 amc->i2c_init = gb200nvl_bmc_i2c_init; in aspeed_machine_gb200nvl_class_init()
1886 mc->default_ram_size = GB200NVL_BMC_RAM_SIZE; in aspeed_machine_gb200nvl_class_init()
1894 AspeedGPIOState *gpio = &bmc->soc->gpio; in fby35_reset()
1898 /* Board ID: 7 (Class-1, 4 slots) */ in fby35_reset()
1910 /* Slot 12v power pins, normal polarity. (True means powered-on) */ in fby35_reset()
1917 static void aspeed_machine_fby35_class_init(ObjectClass *oc, const void *data) in aspeed_machine_fby35_class_init() argument
1922 mc->desc = "Facebook fby35 BMC (Cortex-A7)"; in aspeed_machine_fby35_class_init()
1923 mc->reset = fby35_reset; in aspeed_machine_fby35_class_init()
1924 amc->fmc_model = "mx66l1g45g"; in aspeed_machine_fby35_class_init()
1925 amc->num_cs = 2; in aspeed_machine_fby35_class_init()
1926 amc->macs_mask = ASPEED_MAC3_ON; in aspeed_machine_fby35_class_init()
1927 amc->i2c_init = fby35_i2c_init; in aspeed_machine_fby35_class_init()
1928 mc->auto_create_sdcard = true; in aspeed_machine_fby35_class_init()
1930 mc->default_ram_size = FUJI_BMC_RAM_SIZE; in aspeed_machine_fby35_class_init()
1947 bmc->soc = ASPEED_SOC(object_new(amc->soc_name)); in aspeed_minibmc_machine_init()
1948 object_property_add_child(OBJECT(machine), "soc", OBJECT(bmc->soc)); in aspeed_minibmc_machine_init()
1949 object_unref(OBJECT(bmc->soc)); in aspeed_minibmc_machine_init()
1950 qdev_connect_clock_in(DEVICE(bmc->soc), "sysclk", sysclk); in aspeed_minibmc_machine_init()
1952 object_property_set_link(OBJECT(bmc->soc), "memory", in aspeed_minibmc_machine_init()
1955 qdev_realize(DEVICE(bmc->soc), NULL, &error_abort); in aspeed_minibmc_machine_init()
1958 aspeed_board_init_flashes(&bmc->soc->fmc, in aspeed_minibmc_machine_init()
1959 bmc->fmc_model ? bmc->fmc_model : amc->fmc_model, in aspeed_minibmc_machine_init()
1960 amc->num_cs, in aspeed_minibmc_machine_init()
1963 aspeed_board_init_flashes(&bmc->soc->spi[0], in aspeed_minibmc_machine_init()
1964 bmc->spi_model ? bmc->spi_model : amc->spi_model, in aspeed_minibmc_machine_init()
1965 amc->num_cs, amc->num_cs); in aspeed_minibmc_machine_init()
1967 aspeed_board_init_flashes(&bmc->soc->spi[1], in aspeed_minibmc_machine_init()
1968 bmc->spi_model ? bmc->spi_model : amc->spi_model, in aspeed_minibmc_machine_init()
1969 amc->num_cs, (amc->num_cs * 2)); in aspeed_minibmc_machine_init()
1972 if (amc->i2c_init) { in aspeed_minibmc_machine_init()
1973 amc->i2c_init(bmc); in aspeed_minibmc_machine_init()
1977 machine->kernel_filename, in aspeed_minibmc_machine_init()
1984 AspeedSoCState *soc = bmc->soc; in ast1030_evb_i2c_init()
1988 smbus_eeprom_init_one(aspeed_i2c_get_bus(&soc->i2c, 0), 0x50, eeprom_buf); in ast1030_evb_i2c_init()
1991 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 1), "tmp105", 0x4d); in ast1030_evb_i2c_init()
1995 const void *data) in aspeed_minibmc_machine_ast1030_evb_class_init() argument
2000 mc->desc = "Aspeed AST1030 MiniBMC (Cortex-M4)"; in aspeed_minibmc_machine_ast1030_evb_class_init()
2001 amc->soc_name = "ast1030-a1"; in aspeed_minibmc_machine_ast1030_evb_class_init()
2002 amc->hw_strap1 = 0; in aspeed_minibmc_machine_ast1030_evb_class_init()
2003 amc->hw_strap2 = 0; in aspeed_minibmc_machine_ast1030_evb_class_init()
2004 mc->init = aspeed_minibmc_machine_init; in aspeed_minibmc_machine_ast1030_evb_class_init()
2005 amc->i2c_init = ast1030_evb_i2c_init; in aspeed_minibmc_machine_ast1030_evb_class_init()
2006 mc->default_ram_size = 0; in aspeed_minibmc_machine_ast1030_evb_class_init()
2007 amc->fmc_model = "w25q80bl"; in aspeed_minibmc_machine_ast1030_evb_class_init()
2008 amc->spi_model = "w25q256"; in aspeed_minibmc_machine_ast1030_evb_class_init()
2009 amc->num_cs = 2; in aspeed_minibmc_machine_ast1030_evb_class_init()
2010 amc->macs_mask = 0; in aspeed_minibmc_machine_ast1030_evb_class_init()
2017 AspeedSoCState *soc = bmc->soc; in ast2700_evb_i2c_init()
2020 i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 0), in ast2700_evb_i2c_init()
2025 const void *data) in aspeed_machine_ast2700a0_evb_class_init() argument
2030 mc->alias = "ast2700-evb"; in aspeed_machine_ast2700a0_evb_class_init()
2031 mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)"; in aspeed_machine_ast2700a0_evb_class_init()
2032 amc->soc_name = "ast2700-a0"; in aspeed_machine_ast2700a0_evb_class_init()
2033 amc->hw_strap1 = AST2700_EVB_HW_STRAP1; in aspeed_machine_ast2700a0_evb_class_init()
2034 amc->hw_strap2 = AST2700_EVB_HW_STRAP2; in aspeed_machine_ast2700a0_evb_class_init()
2035 amc->fmc_model = "w25q01jvq"; in aspeed_machine_ast2700a0_evb_class_init()
2036 amc->spi_model = "w25q512jv"; in aspeed_machine_ast2700a0_evb_class_init()
2037 amc->num_cs = 2; in aspeed_machine_ast2700a0_evb_class_init()
2038 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON; in aspeed_machine_ast2700a0_evb_class_init()
2039 amc->uart_default = ASPEED_DEV_UART12; in aspeed_machine_ast2700a0_evb_class_init()
2040 amc->i2c_init = ast2700_evb_i2c_init; in aspeed_machine_ast2700a0_evb_class_init()
2041 amc->vbootrom = true; in aspeed_machine_ast2700a0_evb_class_init()
2042 mc->auto_create_sdcard = true; in aspeed_machine_ast2700a0_evb_class_init()
2043 mc->default_ram_size = 1 * GiB; in aspeed_machine_ast2700a0_evb_class_init()
2048 const void *data) in aspeed_machine_ast2700a1_evb_class_init() argument
2053 mc->desc = "Aspeed AST2700 A1 EVB (Cortex-A35)"; in aspeed_machine_ast2700a1_evb_class_init()
2054 amc->soc_name = "ast2700-a1"; in aspeed_machine_ast2700a1_evb_class_init()
2055 amc->hw_strap1 = AST2700_EVB_HW_STRAP1; in aspeed_machine_ast2700a1_evb_class_init()
2056 amc->hw_strap2 = AST2700_EVB_HW_STRAP2; in aspeed_machine_ast2700a1_evb_class_init()
2057 amc->fmc_model = "w25q01jvq"; in aspeed_machine_ast2700a1_evb_class_init()
2058 amc->spi_model = "w25q512jv"; in aspeed_machine_ast2700a1_evb_class_init()
2059 amc->num_cs = 2; in aspeed_machine_ast2700a1_evb_class_init()
2060 amc->macs_mask = ASPEED_MAC0_ON | ASPEED_MAC1_ON | ASPEED_MAC2_ON; in aspeed_machine_ast2700a1_evb_class_init()
2061 amc->uart_default = ASPEED_DEV_UART12; in aspeed_machine_ast2700a1_evb_class_init()
2062 amc->i2c_init = ast2700_evb_i2c_init; in aspeed_machine_ast2700a1_evb_class_init()
2063 amc->vbootrom = true; in aspeed_machine_ast2700a1_evb_class_init()
2064 mc->auto_create_sdcard = true; in aspeed_machine_ast2700a1_evb_class_init()
2065 mc->default_ram_size = 1 * GiB; in aspeed_machine_ast2700a1_evb_class_init()
2071 const void *data) in aspeed_machine_qcom_dc_scm_v1_class_init() argument
2076 mc->desc = "Qualcomm DC-SCM V1 BMC (Cortex A7)"; in aspeed_machine_qcom_dc_scm_v1_class_init()
2077 amc->soc_name = "ast2600-a3"; in aspeed_machine_qcom_dc_scm_v1_class_init()
2078 amc->hw_strap1 = QCOM_DC_SCM_V1_BMC_HW_STRAP1; in aspeed_machine_qcom_dc_scm_v1_class_init()
2079 amc->hw_strap2 = QCOM_DC_SCM_V1_BMC_HW_STRAP2; in aspeed_machine_qcom_dc_scm_v1_class_init()
2080 amc->fmc_model = "n25q512a"; in aspeed_machine_qcom_dc_scm_v1_class_init()
2081 amc->spi_model = "n25q512a"; in aspeed_machine_qcom_dc_scm_v1_class_init()
2082 amc->num_cs = 2; in aspeed_machine_qcom_dc_scm_v1_class_init()
2083 amc->macs_mask = ASPEED_MAC2_ON | ASPEED_MAC3_ON; in aspeed_machine_qcom_dc_scm_v1_class_init()
2084 amc->i2c_init = qcom_dc_scm_bmc_i2c_init; in aspeed_machine_qcom_dc_scm_v1_class_init()
2085 mc->auto_create_sdcard = true; in aspeed_machine_qcom_dc_scm_v1_class_init()
2086 mc->default_ram_size = 1 * GiB; in aspeed_machine_qcom_dc_scm_v1_class_init()
2091 const void *data) in aspeed_machine_qcom_firework_class_init() argument
2096 mc->desc = "Qualcomm DC-SCM V1/Firework BMC (Cortex A7)"; in aspeed_machine_qcom_firework_class_init()
2097 amc->soc_name = "ast2600-a3"; in aspeed_machine_qcom_firework_class_init()
2098 amc->hw_strap1 = QCOM_DC_SCM_V1_BMC_HW_STRAP1; in aspeed_machine_qcom_firework_class_init()
2099 amc->hw_strap2 = QCOM_DC_SCM_V1_BMC_HW_STRAP2; in aspeed_machine_qcom_firework_class_init()
2100 amc->fmc_model = "n25q512a"; in aspeed_machine_qcom_firework_class_init()
2101 amc->spi_model = "n25q512a"; in aspeed_machine_qcom_firework_class_init()
2102 amc->num_cs = 2; in aspeed_machine_qcom_firework_class_init()
2103 amc->macs_mask = ASPEED_MAC2_ON | ASPEED_MAC3_ON; in aspeed_machine_qcom_firework_class_init()
2104 amc->i2c_init = qcom_dc_scm_firework_i2c_init; in aspeed_machine_qcom_firework_class_init()
2105 mc->auto_create_sdcard = true; in aspeed_machine_qcom_firework_class_init()
2106 mc->default_ram_size = 1 * GiB; in aspeed_machine_qcom_firework_class_init()
2112 .name = MACHINE_TYPE_NAME("palmetto-bmc"),
2116 .name = MACHINE_TYPE_NAME("supermicrox11-bmc"),
2120 .name = MACHINE_TYPE_NAME("supermicro-x11spi-bmc"),
2124 .name = MACHINE_TYPE_NAME("ast2500-evb"),
2128 .name = MACHINE_TYPE_NAME("romulus-bmc"),
2132 .name = MACHINE_TYPE_NAME("sonorapass-bmc"),
2136 .name = MACHINE_TYPE_NAME("witherspoon-bmc"),
2140 .name = MACHINE_TYPE_NAME("ast2600-evb"),
2144 .name = MACHINE_TYPE_NAME("yosemitev2-bmc"),
2148 .name = MACHINE_TYPE_NAME("tiogapass-bmc"),
2152 .name = MACHINE_TYPE_NAME("g220a-bmc"),
2156 .name = MACHINE_TYPE_NAME("qcom-dc-scm-v1-bmc"),
2160 .name = MACHINE_TYPE_NAME("qcom-firework-bmc"),
2164 .name = MACHINE_TYPE_NAME("fp5280g2-bmc"),
2168 .name = MACHINE_TYPE_NAME("quanta-q71l-bmc"),
2172 .name = MACHINE_TYPE_NAME("rainier-bmc"),
2176 .name = MACHINE_TYPE_NAME("fuji-bmc"),
2180 .name = MACHINE_TYPE_NAME("bletchley-bmc"),
2184 .name = MACHINE_TYPE_NAME("gb200nvl-bmc"),
2188 .name = MACHINE_TYPE_NAME("catalina-bmc"),
2192 .name = MACHINE_TYPE_NAME("fby35-bmc"),
2193 .parent = MACHINE_TYPE_NAME("ast2600-evb"),
2196 .name = MACHINE_TYPE_NAME("ast1030-evb"),
2201 .name = MACHINE_TYPE_NAME("ast2700a0-evb"),
2205 .name = MACHINE_TYPE_NAME("ast2700a1-evb"),