[Question] Use mr25h40 in a custom DSDT ACPI table

Flavio Suligoi f.suligoi at asem.it
Thu Feb 14 03:34:52 EST 2019


Hi all,

I work on a custom x86 board. In this board I have to manage an MRAM chip mr25h40 (on the SPI bus).
I want to modify the DSDT ACPI table in the BIOS.
Unfortunately, the mr25h40 is not Jedec compatible, so, in my DSDT, if I use the classic:

{"compatible", "jedec,spi-nor"} 

the device drivers mtd and m25p80 are loaded, but obviously the MRAM is not initialized:

    Device (NVR0) {
        Name (_HID, "PRP0001")
        Name (_DDN, "Everspin MR25H40 MRAM")
        Name (_CRS, ResourceTemplate () {
                SpiSerialBus (
                        0,                      // Chip select
                        PolarityLow,            // Chip select is active low
                        FourWireMode,           // Full duplex
                        8,                      // Bits per word is 8 (byte)
                        ControllerInitiated,    // Don't care
                        10000000,               // 10 MHz
                        ClockPolarityLow,       // SPI mode 0 ClockPolarityLow
                        ClockPhaseFirst,        // SPI mode 0 ClockPhaseFirst
                        "\\_SB.SPI1",           // SPI host controller
                        0                       // Must be 0
                )
        })
        Name (_DSD, Package () {
                ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
                Package () {
                        Package () {"compatible", "jedec,spi-nor"},
                }
        })
  }



Instead if I try to use:

Package () {"compatible", "mr25h40"}

obviously it doesn't work, because "mr25h40" is not in the m25p_of_table.
Does anyone have any ideas?

Thanks and best regards,

Flavio Suligoi



















                  


More information about the Kernelnewbies mailing list