[coreboot] FYI: ACPI ASL 2.0

Marc Jones marcj303 at gmail.com
Tue Sep 20 20:39:07 CEST 2016


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20160920/06a51e4b/attachment.html>


More information about the coreboot mailing list