arm and patch phys offset

Nicolas Pitre nico at fluxnic.net
Mon Dec 12 23:01:30 EST 2011


On Tue, 13 Dec 2011, Michael Walle wrote:

> Am Montag 12 Dezember 2011, 23:56:38 schrieb Nicolas Pitre:
> > I just compiled vanilla v3.2-rc5 using kirkwood_defconfig and
> > successfully booted it on a SheevaPlug and a DB-88F6281-BP development
> > board.  And I do have CONFIG_ARM_PATCH_PHYS_VIRT=y.  Both platforms are
> > using u-Boot which booted the default uImage produced by the kernel
> > build system.
> > 
> > So at this point I wouldn't think the issue is Kirkwood related as I
> > can't reproduce it on two different Kirkwood targets.
> 
> Seems like the l2 cache is enabled after uboot starts the linux kernel. I'll 
> dig deeper into that tomorrow.
> 
> For now, i appended
>   l2_cache_disable();
> to uboots cleanup_before_linux() and all stubs seems to be patched correctly.

Strange.  Having l2 enabled shouldn't cause such trouble.

> void l2_cache_disable(void)
> {
> 	struct kwcpu_registers *cpureg =
> 		(struct kwcpu_registers *)KW_CPU_REG_BASE;
> 	writel(readl(&cpureg->l2_cfg) & ~0x18, &cpureg->l2_cfg);
> }
> 
> l2_cfg is 0xf1020128.
> 
> But i don't know if that is correct way of disabling the cache.

I don't remember the details, but I wouldn't think it is that simple.  
The Kirkwood manual would tell you.  It is publicly available.

> Nico, what uboot are you using for your SheeavaPlug? Vanilla uboot?

No, it's whatever u-Boot that shipped with it.  It says:

U-Boot 1.1.4 (Jan 20 2009 - 12:05:46) Marvell version: 3.4.11


Nicolas



More information about the linux-arm-kernel mailing list