[coreboot] FYI: ACPI ASL 2.0

Duncan Laurie dlaurie at chromium.org
Tue Sep 20 21:02:03 CEST 2016


So far I've been asking people in ACPI patches to not introduce ASL 2.0
syntax into existing ASL code as it can be confusing if the two are mixed.
So we should either convert everything or at least only use ASL 2.0 syntax
in new files.

The problem with auto-converting sources with the disassembly/assembly
trick is you lose all the comments.

The problem with doing it by hand is it very easy to mess something up.

-duncan


On Tue, Sep 20, 2016 at 11:39 AM, Marc Jones <marcj303 at gmail.com> wrote:

> Hi Rudolf,
>
> I'm for this change. I don't think it would be too invasive and should be
> easy to test with the compiler.
>
> Marc
>
>
> On Mon, Sep 19, 2016 at 2:49 PM Rudolf Marek <r.marek at assembler.cz> wrote:
>
>> Hi all,
>>
>> Just FYI [1], maybe you already know.
>>
>> There is an alternate syntax available for ACPI ASL sources.
>> It just converts Polish notation  of ASL to something less geeky like C
>> operators. It says that the tool to convert the sources is in development
>> (to
>> ratain comments). I think it would make ACPI more readable if coreboot
>> would
>> switch to ASL 2.0. Note that the change is only on syntax side! Latest
>> ACPICA
>> iasl already decompiles to this syntax by default!
>>
>> Example before:
>>
>>       Method (SRDY, 0, Serialized)
>>         {
>>                 Store (200, Local0)     // Timeout 200ms
>>                 While (Local0) {
>>                         If (And(HSTS, 0x40)) {          // IN_USE?
>>                                 Sleep(1)                // Wait 1ms
>>                                 Decrement(Local0)       // timeout--
>>                                 If (LEqual(Local0, 0)) {
>>                                         Return (1)
>>                                 }
>>                         } Else {
>>                                 Store (0, Local0)       // We're ready
>>                         }
>>                 }
>>
>>                 Store (4000, Local0)    // Timeout 200ms (50us * 4000)
>>                 While (Local0) {
>>                         If (And (HSTS, 0x01)) {         // Host Busy?
>>                                 Stall(50)               // Wait 50us
>>                                 Decrement(Local0)       // timeout--
>>                                 If (LEqual(Local0, 0)) {
>>                                         KILL()
>>                                 }
>>                         } Else {
>>                                 Return (0)              // Success
>>                         }
>>                 }
>>
>>                 Return (1)              // Failure
>>         }
>>
>>
>> After:
>>
>>         Method (SRDY, 0, Serialized)
>>         {
>>             Local0 = 0xC8
>>             While (Local0)
>>             {
>>                 If (HSTS & 0x40)
>>                 {
>>                     Sleep (0x01)
>>                     Local0--
>>                     If (Local0 == 0x00)
>>                     {
>>                         Return (0x01)
>>                     }
>>                 }
>>                 Else
>>                 {
>>                     Local0 = 0x00
>>                 }
>>             }
>>
>>             Local0 = 0x0FA0
>>             While (Local0)
>>             {
>>                 If (HSTS & 0x01)
>>                 {
>>                     Stall (0x32)
>>                     Local0--
>>                     If (Local0 == 0x00)
>>                     {
>>                         KILL ()
>>                     }
>>                 }
>>                 Else
>>                 {
>>                     Return (0x00)
>>                 }
>>             }
>>
>>             Return (0x01)
>>         }
>>
>>
>> Thanks
>> Rudolf
>>
>>
>> [1] https://acpica.org/sites/acpica/files/ASL2.0Overview.pdf
>>
>>
>> --
>> coreboot mailing list: coreboot at coreboot.org
>> https://www.coreboot.org/mailman/listinfo/coreboot
>>
> --
> http://marcjonesconsulting.com
>
> --
> coreboot mailing list: coreboot at coreboot.org
> https://www.coreboot.org/mailman/listinfo/coreboot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20160920/87bc1859/attachment.html>


More information about the coreboot mailing list