From: Mark Meade <mark@lakeshoremicro.com>
To: linux-mtd@lists.infradead.org
Cc: ilatypov@superbt.com
Subject: Re: DiskOnChip 2000 and Millenium support in GRUB bootloader
Date: Fri, 15 Mar 2002 17:05:49 -0500 [thread overview]
Message-ID: <200203151705703.SM01632@there> (raw)
On Tue, 12 Mar 2002, Ilguiz Latypov wrote:
> inform that DoC Millennium and DoC Millennium Plus feature a Download
> Engine which takes care of copying the flash image into the read-only area
>available at offset 0 of the window.
> Apparently, the XIP IPL doesn't need the DoC 2000 trick with duplicating
> the code for 256-byte and 512-byte page size devices at offsets 0x100 and
> 0x200 respectively.
Ilguiz,
With a DoC Millennium , the doc_stage1 logic will always copy the
256-byte-page code to RAM, regardless of the chip type. In fact, because of
the Millennium's 512 byte "boot block" window, the actual 512-byte page code
is never directly accessible -- it is always located at 0x200 in this case.
As I mentioned previously, my hack to get my part to work was simply to force
the 512-byte-page code to 0x100, and everything worked great. If there are
256-byte-page parts, this obviously won't work.
One alternative is to have both 256- and 512-byte code located at
0x100..0x1FF, and determine (at run time) which type of part we have.
One way of doing this would be to have a small look-up table, and based on
the chip ID, determine the part type.
Another way (which I've already tested) is to read from flash address 0x200,
using the 256-byte-page access method. If we are indeed on a 256-byte
device, the word at 0x200 will always match the code word at %cs:doc_stage1b.
In a 512-byte device, reading this address actually reads 0x400, which will
*most likely* not match, as it is actually stage 2 GRUB code. We could
compare more bytes, if necessary, to reduce the possibility that this could
happen.
Maybe there is an easier, cleaner way to handle this problem -- but I haven't
found it yet. Does it make sense to pursue this further?
Regards,
Mark
next reply other threads:[~2002-03-15 21:55 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-15 22:05 Mark Meade [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-03-11 18:06 DiskOnChip 2000 and Millenium support in GRUB bootloader Mark Meade
2002-03-12 21:07 ` Ilguiz Latypov
[not found] <Pine.LNX.4.44.0203041529100.20113-100000@server.superbt.com>
2002-03-04 21:48 ` Mark Meade
2002-03-04 20:54 ilatypov
2002-03-02 2:51 Mark Meade
[not found] <87k7sxevml.wl@enter.planet.of.kuicr.kyoto-u.ac.jp>
2002-03-01 2:44 ` Ilguiz Latypov
2002-03-01 7:19 ` David Woodhouse
2002-03-20 8:48 ` Yoshinori K. Okuji
2002-02-26 0:39 Vadim Khmelnitsky
2002-02-26 0:26 Vadim Khmelnitsky
2002-02-26 1:06 ` David Woodhouse
2002-02-23 0:23 Vadim Khmelnitsky
2002-02-21 22:50 Vadim Khmelnitsky
2002-02-22 5:37 ` Ilguiz Latypov
2002-02-22 16:17 ` Mark Meade
2002-02-22 16:59 ` Ilguiz Latypov
2002-02-22 20:32 ` Mark Meade
2002-02-22 22:38 ` Ilguiz Latypov
2002-02-20 22:25 Mark Meade
2002-02-20 23:38 ` Ilguiz Latypov
2002-02-21 1:01 ` Mark Meade
2002-02-21 22:08 ` Ilguiz Latypov
2002-02-21 22:13 ` Ilguiz Latypov
2002-02-21 22:32 ` Mark Meade
2002-02-19 22:51 Ilguiz Latypov
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=200203151705703.SM01632@there \
--to=mark@lakeshoremicro.com \
--cc=ilatypov@superbt.com \
--cc=linux-mtd@lists.infradead.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.