On Tue, Sep 20, 2016 at 1:02 PM Duncan Laurie <[email protected]> wrote:
> 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. > > I agree. We don't want mixed. Maybe a comment at the top of the file if it is an ACPI2.0 format. > The problem with auto-converting sources with the disassembly/assembly > trick is you lose all the comments. > > I don't know how many changes there are and how much could be partial automated. We need to understand the scale of the work involved and have a plan to integrate the changes. > The problem with doing it by hand is it very easy to mess something up. > > But that *should* be easy to check. The disassembly should match before and after. Marc > -duncan > > > On Tue, Sep 20, 2016 at 11:39 AM, Marc Jones <[email protected]> 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 <[email protected]> >> 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: [email protected] >>> https://www.coreboot.org/mailman/listinfo/coreboot >>> >> -- >> http://marcjonesconsulting.com >> >> -- >> coreboot mailing list: [email protected] >> https://www.coreboot.org/mailman/listinfo/coreboot >> > > -- http://marcjonesconsulting.com
-- coreboot mailing list: [email protected] https://www.coreboot.org/mailman/listinfo/coreboot

