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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox