marvell kirkwood / openrd-base kernel freeze on bootup with PICe->PCI bridge
saeed bishara
saeed.bishara at gmail.com
Thu Oct 29 18:47:11 EDT 2009
For Kirkwood, the registers physical addresses start at 0xF1000000
(KIRKWOOD_REGS_PHYS_BASE ). so the physical address that you need to
pass to ioremap is 0xf1020100. alternatley, you can use the existing
virtual mapping of the register that defined by
KIRKWOOD_REGS_VIRT_BASE, so just use: readl(KIRKWOOD_REGS_VIRT_BASE |
0x20100)
saeed
On Thu, Oct 29, 2009 at 5:16 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Thu, Oct 29, 2009 at 05:11:02PM +0200, Dieter Kiermaier wrote:
>> Am Donnerstag 29 Oktober 2009 12:33:03 schrieb Ronen Shitrit:
>> > Sorry I don't have experience with the OpenOCD.
>> > Any way by using the printk hack, u can simply read the register and print it...
>>
>> I fear I need any further help:
>>
>> I've tried to read the register you told me but now I get an oops:
>> <1>Unable to handle kernel paging request at virtual address 40020100
>> <1>pgd = c0004000
>> <1>[40020100] *pgd=00000000
>> <0>Internal error: Oops: 5 [#1] PREEMP
>>
>> My code to read the register is:
>> #include <asm/io.h>
>> printk("register 0x20100: %x\n", readl(virt_to_phys(0x20100)))
>>
>> also a
>> printk("register 0x20100: %x\n", readl(0x20100));
>> fail with an Ooops :(
>>
>> What am I doing wrong here?
>
> 1. virt_to_phys() is only valid for the kernel memory region in the
> virtual address space. 0x20100 is not within such a region.
>
> 2. readl() takes an offsettable cookie representing the location you
> want to access. (you get this cookie via ioremap of a bus address
> or via a platform defined constant.) Practially (for most existing
> implementations but not all) it is a virtual address.
>
> Assuming 0x20100 is the physical address of the register, you should be
> able to read it like this:
>
> void __iomem *base = ioremap(0x20100, 4);
> if (base)
> printk("register 0x20100: %x\n", readl(base));
> iounmap(base);
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
More information about the linux-arm-kernel
mailing list