acpigen: Add option for reserved bits in Field
Add an option for unused/reserved bits in a Field definition, allowing for declarations that do not start at bit 0: Field (UART, AnyAcc, NoLock, Preserve) { , 7, /* RESERVED */ BITF, /* Used bit */ } These just use byte 0 instead of a name. Change-Id: I86b54685dbdebacb0834173857c9341ea9fa9a46 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46254 Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
committed by
Duncan Laurie
parent
cf5d58328f
commit
095bbf969d
@@ -505,6 +505,12 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
|
||||
acpigen_write_field_length(size);
|
||||
}
|
||||
|
||||
static void acpigen_write_field_reserved(uint32_t size)
|
||||
{
|
||||
acpigen_emit_byte(0);
|
||||
acpigen_write_field_length(size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Generate ACPI AML code for Field
|
||||
* Arg0: region name
|
||||
@@ -515,6 +521,7 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
|
||||
* struct fieldlist l[] = {
|
||||
* FIELDLIST_OFFSET(0x84),
|
||||
* FIELDLIST_NAMESTR("PMCS", 2),
|
||||
* FIELDLIST_RESERVED(6),
|
||||
* };
|
||||
* acpigen_write_field("UART", l, ARRAY_SIZE(l), FIELD_ANYACC | FIELD_NOLOCK |
|
||||
* FIELD_PRESERVE);
|
||||
@@ -522,7 +529,8 @@ static void acpigen_write_field_name(const char *name, uint32_t size)
|
||||
* Field (UART, AnyAcc, NoLock, Preserve)
|
||||
* {
|
||||
* Offset (0x84),
|
||||
* PMCS, 2
|
||||
* PMCS, 2,
|
||||
* , 6,
|
||||
* }
|
||||
*/
|
||||
void acpigen_write_field(const char *name, const struct fieldlist *l, size_t count,
|
||||
@@ -546,6 +554,10 @@ void acpigen_write_field(const char *name, const struct fieldlist *l, size_t cou
|
||||
acpigen_write_field_name(l[i].name, l[i].bits);
|
||||
current_bit_pos += l[i].bits;
|
||||
break;
|
||||
case RESERVED:
|
||||
acpigen_write_field_reserved(l[i].bits);
|
||||
current_bit_pos += l[i].bits;
|
||||
break;
|
||||
case OFFSET:
|
||||
acpigen_write_field_offset(l[i].bits, current_bit_pos);
|
||||
current_bit_pos = l[i].bits;
|
||||
|
Reference in New Issue
Block a user