[coreboot-gerrit] Patch merged into coreboot/master: agesawrapper: Fix endless loop on bettong

gerrit at coreboot.org gerrit at coreboot.org
Thu Mar 2 22:04:47 CET 2017


the following patch was just integrated into master:
commit b2bb6ad2a72a926796a7eaede06ef8acd556c472
Author: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
Date:   Tue Dec 20 10:08:45 2016 +0100

    agesawrapper: Fix endless loop on bettong
    
    AGESA AmdInitEarly() reconfigures the lapic timer in a way that
    conflicts with lapic/apic_timer.
    
    This results in an endless loop when printk() is called after
    AmdInitEarly() and before the apic_timer is initialized.
    
    This patch forces a reconfiguration of the timer after
    AmdInitEarly() is called.
    
    Codepath of the endless loop:
    
    printk()->
      (...)->
        uart_tx_byte->
          uart8250_mem_tx_byte->
            udelay()->
              start = lapic_read(LAPIC_TMCCT);
    	  	do {
    			value = lapic_read(LAPIC_TMCCT);
    		} while ((start - value) < ticks);
             [lapic_read returns the same value after AmdInitEarly()]
    
    Change-Id: I1a08789c89401b2bf6d11846ad7c376bfc68801b
    Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
    Reviewed-on: https://review.coreboot.org/17924
    Tested-by: build bot (Jenkins)
    Reviewed-by: Patrick Georgi <pgeorgi at google.com>
    Reviewed-by: Marshall Dawson <marshalldawson3rd at gmail.com>
    Reviewed-by: Paul Menzel <paulepanter at users.sourceforge.net>


See https://review.coreboot.org/17924 for details.

-gerrit



More information about the coreboot-gerrit mailing list