On 06/07/2012 06:58 PM, shawn wrote: > On Tue, 2012-06-05 at 20:22 -0500, Rob Landley wrote: >> On 06/02/2012 11:39 AM, Shawn Landden wrote: >>> This was already fixed once in this file, which until now, provided >>> conflicting information. >> >> Acked-by: Rob Landley <rob@xxxxxxxxxxx> >> >> (Sorry for the delay, had to dig up an arm system to test it and 3.4 >> broke the versatile board. Had to peel back three unrelated bug to >> bisect the _two_ broken commits responsible....) >> >> Rob > > source is arch/arm/mm/alignment.c where it makes note of the move I build linux system images that boot under qemu (with native development tools so I can compile and test stuff in the emulator). http://landley.net/aboriginal/bin The problem is the 3.4 kernel broke arm on the versatile board, first because commit c334bc150524f833 added a NEEDS_RANDOM_HEADER_FILE configuration option that it didn't stick on the versatile board (even though it needs it). They replaced it with stub code to HIDE the fact that a file needed it, and the result was I had a nonfunctional scsi driver. Then commit 4d5fc58dbe34 deleted all the headers they thought were unused (so adding the NEEDS_RANDOM_HEADER_FILE thing to the versatile board in kconfig became a build break because the header it tried to include had been deleted). The fix patch I cobbled together is attached, it just took me a while to track it down because during the bisect I hit an unrelated serial bug, that zapped console output so I couldn't see if it was mounting root or not. And then trying to bisect _that_ I hit an unrelated pci build break that prevented me from testing for the serial bug. So I had to track down the fix for the pci bug (commit ee5324ea33d) so I could fix it while tracking down the fix for the serial bug (commit c3d8b76f) so I could bisect the introduction of the versatile scsi bug I was interested in, and then since that turned the dead driver into a build break when applied to 3.4 I had to track down the build break. I need to poke linux-kernel about this but my todo list runneth over and usually by the time I bother them about this stuff somebody else has already done it. *shrug* Anyway, did that now and tested it on a live system running under qemu. The proc thing was in the place you said on 3.4, and not there in the old place. :) Rob -- GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code. Either it's "mere aggregation", or a license violation. Pick one.
The 3.4 kernel broke the versatile target in commits c334bc150524f and 4d5fc58dbe34. This fixes it. diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 31a2ddc..6e91c39 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -308,6 +308,7 @@ config ARCH_VERSATILE select PLAT_VERSATILE select PLAT_VERSATILE_CLCD select PLAT_VERSATILE_FPGA_IRQ + select NEED_MACH_IO_H select ARM_TIMER_SP804 help This enables support for ARM Ltd Versatile board. commit 4d5fc58dbe34b78157c05b319669bb3e064ba8bd diff --git a/arch/arm/mach-versatile/include/mach/io.h b/arch/arm/mach-versatile/include/mach/io.h deleted file mode 100644 index f067c14..0000000 --- /dev/null +++ b/arch/arm/mach-versatile/include/mach/io.h @@ -0,0 +1,9 @@ +#ifndef __ASM_ARM_ARCH_IO_H +#define __ASM_ARM_ARCH_IO_H + +#define IO_SPACE_LIMIT 0xffffffff + +#define __io(a) __typesafe_io(a) +#define __mem_pci(a) (a) + +#endif