Comment 10 for bug 1364748

Revision history for this message
Alex Hung (alexhung) wrote :

From the error messages itself, it seems that BIOS did not perform boundary check when it tries to refer to a memory address. As a result, Field [TBF3] is out-of-boundary. The disassemabled code is as below:

                    OperationRegion (ATRP, SystemMemory, \ATRB, 0x00010000)
                    Field (ATRP, AnyAcc, Lock, Preserve)
                    {
                        IDX0, 262144,
                        IDX1, 262144
                    }

                    Method (_ROM, 2, Serialized) // _ROM: Read-Only Memory
                    {
                        If (LGreaterEqual (Arg0, 0x8000))
                        {
                            Return (GETB (Subtract (Arg0, 0x8000), Arg1, IDX1))
                        }

                        If (LGreater (Add (Arg0, Arg1), 0x8000))
                        {
                            Subtract (0x8000, Arg0, Local0)
                            Subtract (Arg1, Local0, Local1)
                            Store (GETB (Arg0, Local0, IDX0), Local3)
                            Store (GETB (0x00, Local1, IDX1), Local4)
                            Concatenate (Local3, Local4, Local5)
                            Return (Local5)
                        }

                        Return (GETB (Arg0, Arg1, IDX0))
                    }

                    Method (GETB, 3, Serialized)
                    {
                        Multiply (Arg0, 0x08, Local0)
                        Multiply (Arg1, 0x08, Local1)
                        CreateField (Arg2, Local0, Local1, TBF3)
                        Return (TBF3)
                    }

As I am not able to do a BIOS update (I have the system but not its battery that is required for BIOS update), I am not able to confirm whether new BIOS fixes this problem.