[Bug 223977] UBLDR network packets not aligned to DCACHE in ARMv7.

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Nov 29 22:22:59 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223977

            Bug ID: 223977
           Summary: UBLDR network packets not aligned to DCACHE in ARMv7.
           Product: Base System
           Version: 11.1-RELEASE
          Hardware: arm
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: arm
          Assignee: freebsd-arm at FreeBSD.org
          Reporter: parakleta at darkreality.org

In the file `sys/boot/uboot/lib/libuboot.h:47` it says:

#define PKTALIGN 32

Unfortunately this causes an error "CACHE: Misaligned operation at range [xxx,
xxx]" since this is not enough to aligned to the data cache in ARMv7 cpus (such
as the AM335x).  This value should be changed to reflect the setting in U-Boot
of `CONFIG_SYS_CACHELINE_SIZE` which is determined by `SYS_CACHE_SHIFT_X`
define in the U-Boot file `arch/arm/Kconfig`.

I have temporarily changed the line to:

#define PKTALIGN 64

This change may be sufficient given that the block of memory being aligned is
`ETHER_MAX_LEN` in size (so 1518 bytes) this only wastes ~2% storage.  This
will fail however for CPUs with a CACHELINE_SIZE of 128 (currently only listed
as the ThunderX and the Uniphier).

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-arm mailing list