CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS and bcm2835_defconfig

Will Deacon will.deacon at arm.com
Wed Mar 12 07:33:47 EDT 2014


Hi guys,

On Wed, Mar 12, 2014 at 04:35:24AM +0000, Stephen Warren wrote:
> On 03/10/2014 03:21 PM, Vince Weaver wrote:
> > I buit the current
> > 	git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi.git
> > kernel on a Raspberry Pi.
> > 
> > I used 
> > 	make bcm2835_defconfig
> > 	make zImage
> > but the results zImage hung at boot.
> > 
> > It turned out that for some reason 
> > 	CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
> > and
> > 	CONFIG_ARCH_USE_BUILTIN_BSWAP=y
> 
> Hmm. I thought that ARMv6 didn't have efficient unaligned accesses, but
> I suppose it must; ARM selects HAVE_EFFICIENT_UNALIGNED_ACCESS for
> v6/v6k/v7. BUILTIN_BSWAP seems innocuous. Can you verify which of those
> two options actually causes problems for you?

So just to confirm: enabling those options in the kernel you are compiling
results in an image that you can't boot? We're not talking about the host
kernel here.

I just took the tree you mentioned above, merged together 3.14-rc6,
for-3.15/soc and for-3.15/dt. Using the defconfig (+ appended dtb options)
and cross-compiling with a dated linaro toolchain, it booted fine on my rpi:

  Uncompressing Linux... done, booting the kernel.
  [    0.000000] Booting Linux on physical CPU 0x0
  [    0.000000] Initializing cgroup subsys cpuset
  [    0.000000] Initializing cgroup subsys cpu
  [    0.000000] Initializing cgroup subsys cpuacct
  [    0.000000] Linux version 3.14.0-rc6+ (will at tiny-lites) (gcc version 4.8.2 20130603 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2013.06 - Linaro GCC 2013.06) ) #8 Wed Mar 12 10:51:44 GMT 2014
  [    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
  [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
  [    0.000000] Machine model: Raspberry Pi Model B
  [    0.000000] bootconsole [earlycon0] enabled
  [    0.000000] Memory policy: Data cache writeback
  [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 97536
  [...]

Which compiler are you using?

Will



More information about the linux-arm-kernel mailing list