Skip to contentSkip to conversation

ABI for MIPS

DISCUSSION Scott A McConnell 4 participants 7 messages Jan 24, 2002 – Feb 3, 2002 MIPS

lore
Share & tools
lore
#1 lore raw

MIPS/Linux NonSGI

hello all.
i'm trying to bringup linux 2.4.[2|9] on our board based on LSI mips r4k core.
right now the kernel compiled with gcc-3.0, boots up & can only work with statically linked commands. hence the root file system mounted from ramdisk,nfs, & de-dream ide-disk can show some-prompt only if ash.static is invoked.
this is seen with 2.4.3 & ditto with 2.4.9. the kernel is in un-cached mode,since we have page-size problem with our core in cached, write through/back
both, modes. so question is WHY THE COMMANDS WITH SHARED LIBRARY DONOT WORK. FAILS TO LOAD SHARED LIBRARIES.

the problem no.2 is root on ide-disk. the disk is paritioned & formatted using a linux pentium-pc. using a master disk the above said statically linked commands are downloaded to slave disk. the board boots up. however the bdflush/update process corrupts file-system. the UPDATE PROCESS CORRUPTS SUPERBLOCK AND INODES WHILE FLUSHING THE DIRTY BUFERS.

PLEASE! PLEASE!! HELP ME ON THIS. THIS NEWSGROUP IS MY LAST HOPE.

many thanks in advance with regards,
girish.

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

#2 lore raw

Re: MIPS/Linux NonSGI

Quoted 3 lines · Girish Gulawani

i'm trying to bringup linux 2.4.[2|9] on our board based on LSI mips r4k core.
right now the kernel compiled with gcc-3.0, boots up & can only work with

There are known bugs in older kernels that will crash them when compiled with gcc 3.0. Even with current 2.4 kernels it's still playing with the fire.

Quoted 9 lines

statically linked commands. hence the root file system mounted from ramdisk,nfs, & de-dream ide-disk can show some-prompt only if ash.static is invoked.
this is seen with 2.4.3 & ditto with 2.4.9. the kernel is in un-cached mode,since we have page-size problem with our core in cached, write through/back
both, modes. so question is WHY THE COMMANDS WITH SHARED LIBRARY DONOT WORK. FAILS TO LOAD SHARED LIBRARIES.

Quoted 7 lines

the problem no.2 is root on ide-disk. the disk is paritioned & formatted using a linux pentium-pc. using a master disk the above said statically linked commands are downloaded to slave disk. the board boots up. however the bdflush/update process corrupts file-system. the UPDATE PROCESS CORRUPTS SUPERBLOCK AND INODES WHILE FLUSHING THE DIRTY BUFERS.

PLEASE! PLEASE!! HELP ME ON THIS. THIS NEWSGROUP IS MY LAST HOPE.

Seems pretty obvious that cacheflushing for your system is broken. Verify that arch/mips/mm/c-r4k.c knows how to handle your system.

Ralf

PS: Seems your caps lock key occasionally gets stuck ;-)

#3 lore raw

Re: MIPS/Linux NonSGI

Quoted 4 lines · Girish Gulawani
Quoted 3 lines

i'm trying to bringup linux 2.4.[2|9] on our board based on LSI mips r4k core.

[snip]

Quoted 1 line

Seems pretty obvious that cacheflushing for your system is broken.

Sure sounds like it.

Quoted 3 lines

Verify that arch/mips/mm/c-r4k.c knows how to handle your system.

Ralf

LSI has done a number of R3K and R4K-like designs under their MIPS architecture license which have features that differ from the main stream of MIPS CPUs where the OS is concerned. Cache manipulation is a case in point. If it's not obvious to you from the cache management code, compare the relevant sections of your CPU manual with the MIPS32 spec (which I think is on the web somewhere at www.mips.com) or a copy of the R4000 manual if you can find one kicking around somewhere.

Regards,

Kevin K.

#4 lore raw

Re: MIPS/Linux NonSGI

hi, again.
thanks a lot for quick reply. re-compiled the kernels, using egcc-2.91, but no luck. is there still older version i should be using? & i guess you were referring to file arch/mips/mm/r4xx.c. the board support is detected & load_mmu_r4k() is called. so this looks okay.
yes, LSI CPUs differ from the main stream, right in the cache opcodes. but this problem apart, as i have been using kernel in un-cached mode & anyway i have build almost all the commands by static linking. hence shared library issue i shall deal with later.
***right now my main concern is file system getting corrupted. the bdflush/update processes flushes the inode buffers & corrupts the fs. to be precise the "update" process wakes up & writes some buffers to the disk from the function sync_old_buffers() in fs/buffer.c. the pci-ide bus mastering controller is non standard & that the driver is also self written. however since reads from the disk are working as i can see all the commands getting loaded & executed, the writes also should be working properly, as they differ only in a command to the controller.
so where could be the problem? please help me.
many thanks & best regards,
girish.

ps. ralf, liked your comment abt my caps lock getting stuck;-) it just shows how desperate i'm in solving this problem.

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

#5 lore raw

Re: MIPS/Linux NonSGI

In reply to Ralf Baechle

hello, ralf.

could solve the disk corruption problem, thanks to you. it was due to my over-confident source code for bus mastering device. while re-targeting the driver from vxworks to linux i had introduced a bug. its all working great now. thanks again. while this problem is solved i have one more query.

as i mentioned earlier, our core supports page size of 16K. hence the mmu code is changed accordingly, for kernel 2.4.9. but any command load fails giving page alignment error. seems some problem from binfmt_elf.c file. i have build the command, ash, using egcc-2.91.66. to change the page alignment the option given was "--n16384". this option is surely wrong, hence could you tell me what is correct option? HOW TO CHANGE PAGE ALIGNMENT TO 16K WHILE LINKING USER COMMANDS??

many thanks in advance & best regards,
girish.

----- Original Message -----
From: "Ralf Baechle" <[email protected]>
To: "Girish Gulawani" <[email protected]>
Cc: "MIPS/Linux List (SGI)" <[email protected]>
Sent: Friday, January 25, 2002 10:45 AM
Subject: Re: MIPS/Linux NonSGI

Quoted 5 lines · Girish Gulawani
Quoted 4 lines

i'm trying to bringup linux 2.4.[2|9] on our board based on LSI mips r4k core.
right now the kernel compiled with gcc-3.0, boots up & can only work

with

Quoted 7 lines

There are known bugs in older kernels that will crash them when compiled with gcc 3.0. Even with current 2.4 kernels it's still playing with the fire.

Quoted 2 lines

statically linked commands. hence the root file system mounted from ramdisk,nfs, & de-dream ide-disk can show some-prompt only if ash.static

is

Quoted 5 lines
Quoted 5 lines

invoked.
this is seen with 2.4.3 & ditto with 2.4.9. the kernel is in un-cached mode,since we have page-size problem with our core in cached, write through/back
both, modes. so question is WHY THE COMMANDS WITH SHARED LIBRARY DONOT

WORK.

Quoted 5 lines
Quoted 5 lines

FAILS TO LOAD SHARED LIBRARIES.

the problem no.2 is root on ide-disk. the disk is paritioned & formatted using a linux pentium-pc. using a master disk the above said statically linked commands are downloaded to slave disk. the board boots up.

however

Quoted 1 line
Quoted 1 line

the bdflush/update process corrupts file-system. the UPDATE PROCESS

CORRUPTS

Quoted 10 lines
Quoted 3 lines

SUPERBLOCK AND INODES WHILE FLUSHING THE DIRTY BUFERS.

PLEASE! PLEASE!! HELP ME ON THIS. THIS NEWSGROUP IS MY LAST HOPE.

Seems pretty obvious that cacheflushing for your system is broken. Verify that arch/mips/mm/c-r4k.c knows how to handle your system.

Ralf

PS: Seems your caps lock key occasionally gets stuck ;-)

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

#6 lore raw

Re: MIPS/Linux NonSGI

Quoted 5 lines · Girish Gulawani

could solve the disk corruption problem, thanks to you. it was due to my over-confident source code for bus mastering device. while re-targeting the driver from vxworks to linux i had introduced a bug. its all working great now. thanks again. while this problem is solved i have one more query.

Quoted 7 lines

as i mentioned earlier, our core supports page size of 16K. hence the mmu code is changed accordingly, for kernel 2.4.9. but any command load fails giving page alignment error. seems some problem from binfmt_elf.c file. i have build the command, ash, using egcc-2.91.66. to change the page alignment the option given was "--n16384". this option is surely wrong, hence could you tell me what is correct option? HOW TO CHANGE PAGE ALIGNMENT TO 16K WHILE LINKING USER COMMANDS??

I hate to say it but at this time we don't support any other pagesize than 4kb on MIPS. I haven't looked into details but I'd expect to hit a number of subtle bugs when we go to a larger pagesize. So I expect your way to be stony.

Ralf