<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - PowerPC e5500, kernel crash, GT520, GT610"
href="https://bugs.freedesktop.org/show_bug.cgi?id=88868#c14">Comment # 14</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - PowerPC e5500, kernel crash, GT520, GT610"
href="https://bugs.freedesktop.org/show_bug.cgi?id=88868">bug 88868</a>
from <span class="vcard"><a class="email" href="mailto:skeggsb@gmail.com" title="Ben Skeggs <skeggsb@gmail.com>"> <span class="fn">Ben Skeggs</span></a>
</span></b>
<pre>(In reply to Dmitriy from <a href="show_bug.cgi?id=88868#c12">comment #12</a>)
<span class="quote">> Created <span class=""><a href="attachment.cgi?id=112968" name="attach_112968" title="Gt610_log_patch">attachment 112968</a> <a href="attachment.cgi?id=112968&action=edit" title="Gt610_log_patch">[details]</a></span>
> Gt610_log_patch
>
> Thank you.
>
> magic patch.
> "boot" value is now correct.
> What this command "ioread32_native(map);" do ?</span >
It does a read of mmio space to make sure the previous write has fully taken
effect.
<span class="quote">> but kernel anyway crash on operation read 0x700000.
>
> Value bar0 and value from addr.0x619f04 is not correct read. It is show in
> debug in file bios/base.c</span >
You still need to use a newer kernel. Later kernels have code to detect that
there's no VBIOS area setup in VRAM before trying to access it.
What's likely happening is your board hasn't been POSTed (likely, because
you're not on x86 to have the vbios set stuff up for you), and using the
uninitialised memory controllers is making the card very unhappy.
Ben.
<span class="quote">>
> file base.c
> /* switch mmio to cpu's native endianness */
> #ifndef __BIG_ENDIAN
> if (ioread32_native(map + 0x000004) != 0x00000000){
> #else
> if (ioread32_native(map + 0x000004) == 0x00000000){
> #endif
> iowrite32_native(0x01000001, map + 0x000004);
> ioread32_native(map);
> }
>
> /* read boot0 and strapping information */
> boot0 = ioread32_native(map + 0x000000);
> strap = ioread32_native(map + 0x101000);
>
> printk ("##boot0=%x\n",boot0);
> printk ("##strap=%x\n",strap);
>
> file bios/base.c
> unsigned int tmp_val;
>
> if (device->card_type >= NV_50) {
> u64 addr = (u64)(nv_rd32(bios, 0x619f04) & 0xffffff00) << 8;
> if (!addr) {
> addr = (u64)nv_rd32(bios, 0x001700) << 16;
> addr += 0xf0000;
> }
>
> bar0 = nv_mask(bios, 0x001700, 0xffffffff, addr >> 16);
> printk ("##%s(%d) bar0=%x\n",__FUNCTION__,__LINE__,bar0);
> }
>
> tmp_val = nv_rd32(bios, 0x619f04);
> printk ("##val=%x\n", tmp_val);</span ></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>