Commit 72465e1e authored by Guenter Roeck's avatar Guenter Roeck Committed by Peter Maydell
Browse files

hw/arm/fsl-imx7: Instantiate various unimplemented devices



Instantiating PWM, CAN, CAAM, and OCOTP devices is necessary to avoid
crashes when booting mainline Linux.

Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Message-id: 20200517162135.110364-8-linux@roeck-us.net
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent 5671e960
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -459,6 +459,30 @@ static void fsl_imx7_realize(DeviceState *dev, Error **errp)
     */
    create_unimplemented_device("sdma", FSL_IMX7_SDMA_ADDR, FSL_IMX7_SDMA_SIZE);

    /*
     * CAAM
     */
    create_unimplemented_device("caam", FSL_IMX7_CAAM_ADDR, FSL_IMX7_CAAM_SIZE);

    /*
     * PWM
     */
    create_unimplemented_device("pwm1", FSL_IMX7_PWM1_ADDR, FSL_IMX7_PWMn_SIZE);
    create_unimplemented_device("pwm2", FSL_IMX7_PWM2_ADDR, FSL_IMX7_PWMn_SIZE);
    create_unimplemented_device("pwm3", FSL_IMX7_PWM3_ADDR, FSL_IMX7_PWMn_SIZE);
    create_unimplemented_device("pwm4", FSL_IMX7_PWM4_ADDR, FSL_IMX7_PWMn_SIZE);

    /*
     * CAN
     */
    create_unimplemented_device("can1", FSL_IMX7_CAN1_ADDR, FSL_IMX7_CANn_SIZE);
    create_unimplemented_device("can2", FSL_IMX7_CAN2_ADDR, FSL_IMX7_CANn_SIZE);

    /*
     * OCOTP
     */
    create_unimplemented_device("ocotp", FSL_IMX7_OCOTP_ADDR,
                                FSL_IMX7_OCOTP_SIZE);

    object_property_set_bool(OBJECT(&s->gpr), true, "realized",
                             &error_abort);
+16 −0
Original line number Diff line number Diff line
@@ -113,6 +113,9 @@ enum FslIMX7MemoryMap {
    FSL_IMX7_IOMUXC_GPR_ADDR      = 0x30340000,
    FSL_IMX7_IOMUXCn_SIZE         = 0x1000,

    FSL_IMX7_OCOTP_ADDR           = 0x30350000,
    FSL_IMX7_OCOTP_SIZE           = 0x10000,

    FSL_IMX7_ANALOG_ADDR          = 0x30360000,
    FSL_IMX7_SNVS_ADDR            = 0x30370000,
    FSL_IMX7_CCM_ADDR             = 0x30380000,
@@ -124,11 +127,24 @@ enum FslIMX7MemoryMap {
    FSL_IMX7_ADC2_ADDR            = 0x30620000,
    FSL_IMX7_ADCn_SIZE            = 0x1000,

    FSL_IMX7_PWM1_ADDR            = 0x30660000,
    FSL_IMX7_PWM2_ADDR            = 0x30670000,
    FSL_IMX7_PWM3_ADDR            = 0x30680000,
    FSL_IMX7_PWM4_ADDR            = 0x30690000,
    FSL_IMX7_PWMn_SIZE            = 0x10000,

    FSL_IMX7_PCIE_PHY_ADDR        = 0x306D0000,
    FSL_IMX7_PCIE_PHY_SIZE        = 0x10000,

    FSL_IMX7_GPC_ADDR             = 0x303A0000,

    FSL_IMX7_CAAM_ADDR            = 0x30900000,
    FSL_IMX7_CAAM_SIZE            = 0x40000,

    FSL_IMX7_CAN1_ADDR            = 0x30A00000,
    FSL_IMX7_CAN2_ADDR            = 0x30A10000,
    FSL_IMX7_CANn_SIZE            = 0x10000,

    FSL_IMX7_I2C1_ADDR            = 0x30A20000,
    FSL_IMX7_I2C2_ADDR            = 0x30A30000,
    FSL_IMX7_I2C3_ADDR            = 0x30A40000,