Re: [U-Boot] [PATCH v3 02/20] bitops: Fix GENMASK definition for Sandbox
On 31/01/19 6:11 AM, Simon Glass wrote: > On Mon, 28 Jan 2019 at 22:49, Vignesh R wrote: >> >> In arch/sandbox/include/asm/types.h we have >> Therefore for 32 bit Sandbox build BITS_PER_LONG turns out to be 32 as >> CONFIG_PHYS64 is not set >> >> This messes up the current logic of GENMASK macro due to mismatch b/w >> size of unsigned long (64 bit) and that of BITS_PER_LONG. >> Fix this by using CONFIG_SANDBOX_BITS_PER_LONG which is set to 64/32 >> based on the host machine on which its being compiled. >> >> Without this patch: >> GENMASK(14,0) => 0x7fff >> After this patch: >> GENMASK(14,0) => 0x7fff >> >> Signed-off-by: Vignesh R >> --- >> include/linux/bitops.h | 5 + >> 1 file changed, 5 insertions(+) > > Reviewed-by: Simon Glass > I realised this patch is already merged to u-boot-dm when I posted it as an RFC. Please ignore. Thanks! -- Regards Vignesh ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v3 02/20] bitops: Fix GENMASK definition for Sandbox
On Mon, 28 Jan 2019 at 22:49, Vignesh R wrote: > > In arch/sandbox/include/asm/types.h we have > Therefore for 32 bit Sandbox build BITS_PER_LONG turns out to be 32 as > CONFIG_PHYS64 is not set > > This messes up the current logic of GENMASK macro due to mismatch b/w > size of unsigned long (64 bit) and that of BITS_PER_LONG. > Fix this by using CONFIG_SANDBOX_BITS_PER_LONG which is set to 64/32 > based on the host machine on which its being compiled. > > Without this patch: > GENMASK(14,0) => 0x7fff > After this patch: > GENMASK(14,0) => 0x7fff > > Signed-off-by: Vignesh R > --- > include/linux/bitops.h | 5 + > 1 file changed, 5 insertions(+) Reviewed-by: Simon Glass ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH v3 02/20] bitops: Fix GENMASK definition for Sandbox
In arch/sandbox/include/asm/types.h we have Therefore for 32 bit Sandbox build BITS_PER_LONG turns out to be 32 as CONFIG_PHYS64 is not set This messes up the current logic of GENMASK macro due to mismatch b/w size of unsigned long (64 bit) and that of BITS_PER_LONG. Fix this by using CONFIG_SANDBOX_BITS_PER_LONG which is set to 64/32 based on the host machine on which its being compiled. Without this patch: GENMASK(14,0) => 0x7fff After this patch: GENMASK(14,0) => 0x7fff Signed-off-by: Vignesh R --- include/linux/bitops.h | 5 + 1 file changed, 5 insertions(+) diff --git a/include/linux/bitops.h b/include/linux/bitops.h index a47f6d17bb5f..259df43fb00f 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -21,8 +21,13 @@ * position @h. For example * GENMASK_ULL(39, 21) gives us the 64bit vector 0x00e0. */ +#ifdef CONFIG_SANDBOX +#define GENMASK(h, l) \ + (((~0UL) << (l)) & (~0UL >> (CONFIG_SANDBOX_BITS_PER_LONG - 1 - (h +#else #define GENMASK(h, l) \ (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h +#endif #define GENMASK_ULL(h, l) \ (((~0ULL) << (l)) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h -- 2.20.1 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot