Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Marek Vasut's avatar
    221a49d5
    ARM: Fix overflow in MMU setup · 221a49d5
    Marek Vasut authored
    
    The patch fixes a corner case where adding size to DRAM start resulted
    in a value (1 << 32), which in turn overflew the u32 computation, which
    resulted in 0 and it therefore prevented correct setup of the MMU tables.
    
    The addition of DRAM bank start and it's size can end up right at the end
    of the address space in the special case of a machine with enough memory.
    To prevent this overflow, shift the start and size separately and add them
    only after they were shifted.
    
    Hopefully, we only have systems in tree which have DRAM size aligned to
    1MiB boundary. If not, this patch would break such systems. On the other
    hand, such system would be broken by design anyway.
    
    Signed-off-by: default avatarMarek Vasut <marex@denx.de>
    Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
    221a49d5
    History
    ARM: Fix overflow in MMU setup
    Marek Vasut authored
    
    The patch fixes a corner case where adding size to DRAM start resulted
    in a value (1 << 32), which in turn overflew the u32 computation, which
    resulted in 0 and it therefore prevented correct setup of the MMU tables.
    
    The addition of DRAM bank start and it's size can end up right at the end
    of the address space in the special case of a machine with enough memory.
    To prevent this overflow, shift the start and size separately and add them
    only after they were shifted.
    
    Hopefully, we only have systems in tree which have DRAM size aligned to
    1MiB boundary. If not, this patch would break such systems. On the other
    hand, such system would be broken by design anyway.
    
    Signed-off-by: default avatarMarek Vasut <marex@denx.de>
    Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>