
* The algorithm was conceived by Samuel Holland.Īsm volatile("mrs %0, cntpct_el0" : "=r" (cntpct)) * single read, so does not have any significant overhead. * This occasionally discards valid values, but will catch all erroneous * all 0 or all 1, then discard this value and read again. * The workaround is to check whether the lower 11 bits of the counter are * Backwards jumps might be interpreted all roll-overs and be treated as * to all 0's or all 1's, leading to jumps forwards or backwards. * This erratum sometimes flips the lower 11 bits of the counter value My hope is this information being in one place is helpful. Very useful.īut first, here are some of the U-Boot gotchas the community solved but not yet in mainline U-Boot as of v2021.04. With U-Boot, it is possible to chain load iPXE to boot bare-metal hardware over HTTP(S).
#ALLWINNER A64 LAPTOP CODE#
U-Boot is a ubiquitous ARM64 bootloader, and this experience has let me dive deep into the C++ code and make helpful modifications.
#ALLWINNER A64 LAPTOP SOFTWARE#
Goal: Locate in one place all the hardware and software gotchas I’ve encountered from compiling and running the U-Boot bootloader to fixing timing issues in a cluster computer of Allwinner A64 SoCs in order to help others and remember myself.
