From: Bob Breuer <breuerr@mc.net>
To: sparclinux@vger.kernel.org
Subject: Re: 2.6.11.10 failure on Hypersparc sparc32 [was: Re: sparc32 2.6
Date: Sat, 04 Jun 2005 16:34:25 +0000 [thread overview]
Message-ID: <42A1D811.8030103@mc.net> (raw)
In-Reply-To: <Pine.LNX.4.61.0505190111530.13987@bobcat>
William Lee Irwin III wrote:
> On Sat, Jun 04, 2005 at 12:21:22AM -0400, Jurij Smakov wrote:
>
>>I have tried to dig a little bit more on this issue, with some success.
>>It appears that initrd does not mount because something is wrong with the
>>__copy_1page function, invoked by memcpy() for copying page-sized chunks.
>>It is used in fs/cramfs/inode.c to read in the superblock of the cramfs
>>filesystem and, surprisingly, in this process first 16 bytes (containing
>>the magic cramfs number, among other things), get lost somehow. After I've
>>replaced a call to __copy_1page with a call to __memcpy in
>>include/asm-sparc/string.h, initrd mounted, however boot still fails. The
>>next problem is that /linuxrc script from initrd is not executed as it
>>should. This script is supposed to save real-root-device from /proc and
>>set the real-root-device to ramdisk, where initrd is located (it all
>>happens in do_mounts_initrd.c). However, the execve call to /linuxrc
>>quietly fails, and the script is never executed. After that kernel tries
>>to immediately mount /dev/sda1 (which is the real root) and fails, because
>>the scsi modules have not been loaded. So it now looks like this:
>
> [...]
>
> This is a tremendous amount of progress. I'll look at __copy_1page,
> though others should do likewise as well.
>
Look for hypersparc_copy_1page in arch/sparc/mm/hypersparc.S where it
uses ASI_M_BCOPY. I think the src and dest need to be 32 byte aligned
in this case.
The core problem here is that cramfs uses statically allocated page
sized buffers:
nm -S arch/sparc/boot/image |grep read_buffers
f022bab0 00008000 b read_buffers
Looks like cramfs also has the possibility of using a bad alignment with
bzero_1page.
As for execve failing, can you print out the value of errno when it fails?
Bob
next prev parent reply other threads:[~2005-06-04 16:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-19 5:20 2.6.11.10 failure on Hypersparc sparc32 [was: Re: sparc32 2.6 work] Jurij Smakov
2005-05-19 14:35 ` 2.6.11.10 failure on Hypersparc sparc32 [was: Re: sparc32 2.6 Tom 'spot' Callaway
2005-05-19 15:24 ` Bob Breuer
2005-05-19 16:24 ` Jurij Smakov
2005-05-19 16:41 ` Jurij Smakov
2005-05-19 17:12 ` Tom 'spot' Callaway
2005-05-20 3:45 ` Bob Breuer
2005-06-04 4:21 ` Jurij Smakov
2005-06-04 5:18 ` 2.6.11.10 failure on Hypersparc sparc32 [was: Re: sparc32 2.6 work] William Lee Irwin III
2005-06-04 16:34 ` Bob Breuer [this message]
2005-06-05 3:13 ` 2.6.11.10 failure on Hypersparc sparc32 [was: Re: sparc32 2.6 Jurij Smakov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42A1D811.8030103@mc.net \
--to=breuerr@mc.net \
--cc=sparclinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.