Skip to content
  • Siarhei Siamashka's avatar
    sunxi: Increase SPL header size to 64 bytes to avoid code corruption · b19236fd
    Siarhei Siamashka authored
    
    
    The current SPL header, created by the 'mksunxiboot' tool, has size
    32 bytes. But the code in the boot ROM stores the information about
    the boot media at the offset 0x28 before passing control to the SPL.
    For example, when booting from the SD card, the magic number written
    by the boot ROM is 0. And when booting from the SPI flash, the magic
    number is 3. NAND and eMMC probably have their own special magic
    numbers too.
    
    Currently the corrupted byte is a part of one of the instructions in
    the reset vectors table:
    
        b     reset
        ldr   pc, _undefined_instruction
        ldr   pc, _software_interrupt      <- Corruption happens here
        ldr   pc, _prefetch_abort
        ldr   pc, _data_abort
        ldr   pc, _not_used
        ldr   pc, _irq
        ldr   pc, _fiq
    
    In practice this does not cause any visible problems, but it's still
    better to fix it. As a bonus, the reported boot media type can be
    later used in the 'spl_boot_device' function, but this is out of
    the scope of this patch.
    
    Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
    Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    b19236fd