diff options
author | Patrick Rudolph <siro@das-labor.org> | 2017-04-28 16:34:26 +0200 |
---|---|---|
committer | Patrick Rudolph <siro@das-labor.org> | 2018-01-31 08:36:42 +0000 |
commit | 6be6df00144402cdc5ace0489d7255186609537c (patch) | |
tree | 019426c1469c3c084d56b2ff7ce0d806a073f436 /src/include | |
parent | a8733e381d587e51266275f3b96aec2059a3e03c (diff) |
arch/x86/acpigen: Add generator for _ROM
Generate ACPI AML code for _ROM method.
This function takes as input ROM data and ROM length.
Arguments passed into _DSM method:
Arg0 = Offset in Bytes
Arg1 = Bytes to return
Example:
acpigen_write_rom(0xdeadbeef, 0x10000)
AML code generated would look like:
Method (_ROM, 2, NotSerialized) // _ROM: Read-Only Memory
{
OperationRegion (ROMS, SystemMemory, 0xdeadbeef, 0x00010000)
Field (ROMS, AnyAcc, NoLock, Preserve)
{
Offset (0x00),
RBF0, 524288
}
Local0 = Arg0
Local1 = Arg1
If (Local1 > 0x1000)
{
Local1 = 0x1000
}
If (Local0 > 0x00010000)
{
Return (Buffer (Local1)
{
0x00
})
}
If (Local0 > 0x0f000)
{
Local2 = 0x10000 - Local0
If (Local1 > Local2)
{
Local1 = Local2
}
}
Name (ROM1, Buffer (Local1)
{
0x00
})
Local1 *= 0x08
Local0 *= 0x08
CreateField (RBF0, Local0, Local1, TMPB)
ROM1 = TMPB /* \_SB_.PCI0.GFX0._ROM.TMPB */
Return (ROM1) /* \_SB_.PCI0.GFX0._ROM.ROM1 */
}
Change-Id: Ie118b15257295b7133c8e585c0fd5218249dec8d
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/20547
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'src/include')
0 files changed, 0 insertions, 0 deletions