Port-evbmips archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Which kernel for Lemote Yeeloong?



On Sun, Dec 04, 2011 at 07:48:49AM -0600, John D. Baker wrote:
> I have done so, sprinkling
> 
>   printf("\nIn %s: %s:%d\n", __func__, __FILE__, __LINE__);
> 
> in amongst the first several operations in main() down to just after
> rw_obj_init().  There is no change in the console output; no additional
> output at all.  This would appear to indicate that it's branching to
> the_weeds() instead.

Or something between the call to mach_init() and main() in locore.S
is going wrong.
You could try selectively commenting out parts of the code in
locore.S between jal _C_LABEL(mach_init) and jal _C_LABEL(main).
Suspects are:
- switch to lwp0 stack:
        PTR_L   sp, L_PCB(MIPS_CURLWP)          # switch to lwp0 stack
        nop
        PTR_ADDU sp, USPACE - TF_SIZ - CALLFRAME_SIZ
- Raise to IPLHIGH:
        jal     _C_LABEL(splhigh_noprof)
- enable interrupts:
        mfc0    v0, MIPS_COP_0_STATUS
        or      v0, MIPS_SR_INT_IE
        mtc0    v0, MIPS_COP_0_STATUS

I would first comment out all of them and then reenabling  to lwp0 stack,
then Raise to IPLHIGH and finally enable interrupts.


> 
> Are there any tweaks to system information that need to be made through
> PMON?  I've only made the most minimal of changes to get OpenBSD's boot
> loader to be happy.

I don't remember doing anything more

> 
> Need I go further with the printf()s?  Maybe I haven't reached a point
> where output is actually possible?

loongson/machdep.c uses printf(), so I'd expect a plain printf() call
to work as well. I'm more suspecting either the hardware wedging,
or one of the operations after mach_init to cause an infinite loop.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index