Messages in this thread | | | Date | Sat, 23 Apr 2011 10:51:08 -0700 | From | "H. Peter Anvin" <> | Subject | Re: FW: 2.6.38.3 and 2.6.39-rc4 hangs after "Booting the kernel" on quad Pentium Pro system |
| |
On 04/23/2011 06:52 AM, Thomas Meyer wrote: > > so your bios seems to report the size in AX/BX. the code in > arch/x86/boot/memory.c move the return sizes from CX/DX into AX/BX, when > CX or DX is not zero. > > Could you try to change the line: > > } else if (oreg.ax == 15*1024) { > boot_params.alt_mem_k = (oreg.dx<< 6) + oreg.ax; > > to > } else if (oreg.ax == 15*1024) { > boot_params.alt_mem_k = (oreg.bx<< 6) + oreg.ax; > > That should fix your misdetection. > > The assembler code in arch/i386/boot/setup.S seemed to move AX/BX into > CX/DX, when CX and(!) DX were zero. Then used CX/DX to calc the memory > size. > > PS: gitk --follow arch/x86/boot/memory.c seems to react strangley... >
Ah yes, this should have been bx; ax/bx and cx/dx forms pairs (unlike the normal x86 convention of DX:AX and BX:CX forming pairs), and it doesn't make sense to mix and match them.
-hpa
| |