public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Rudi Pfister <Rudi.Pfister@informatik.stud.uni-erlangen.de>
To: Andrew Lunn <andrew@lunn.ch>
Cc: ecos-devel@ecos.sourceware.org
Subject: Re: Flashdriver for TC1796
Date: Tue, 21 Nov 2006 11:04:00 -0000	[thread overview]
Message-ID: <200611211203.51912.Rudi.Pfister@informatik.stud.uni-erlangen.de> (raw)

Hello,

I don't want to use the Flash Image System ...

I want to write programcode to the flash memory of the TC1796.
It should be possible to place the code anywhere in the flash,
e.g. to the program counter start address so the board will start
my application after a reset.

The only way to achieve this is to use the load-command with the
option -f <address> and for this operation Redboot uses the
buffer, or am I wrong ?

> The eCos design philosophy would be to use CDL.

Do you mean I should use an option to configure the size of the
buffer and only use the blocks smaller or equal to the buffer
size ?

Thanks !

	Rudi



> On Sat, Nov 18, 2006 at 04:06:45PM +0100, Rudi Pfister wrote:
> > Hello,
> >
> > I'm porting Redboot to the Tricore-architecture. In special to the
> > TC1796-variant on a Infineon-Triboard.
> >
> > The TC1796 has onchip 2 MByte of Flashmemory devided into several
> > blocks with sizes from 16 KByte up to 512 KByte.
> > The TC1796 has about 192 KByte RAM in total.
> > The Triboard has 1 MByte SRAM used by the TC1796 as external
> > Memory.
> >
> > I want to write a driver for the flash memory of the TC1796.
> >
> > If the Redboot wants to change data in the flash memory it stores
> > the block to which the data should be written to a buffer in RAM.
> > Then it changes the data in the buffer and writes it back to flash
> > memory. The size of the buffer has to be the same size as the
> > largest block in the flash memory.
> >
> > Here is my problem. The size of the buffer has to be 512 KByte, but
> > the TC1796 has less than 512 KByte in total, so there is no space to
> > create the Buffer an a TC1796.
> >
> > In my case I could use the RAM of the Triboard, which is large enough.
> > But then the the driver for the flash memory of the TC1796-variant would
> > depend on the properites of the Triboard-platform.
> > I could also use only a part of the flash of the TC1796. In special the
>
> blocks
>
> > with the size of 16 KBytes. In total I would then be able to use 128
> > Kbytes of Flashmemory, which would be enough for me.
> > But in my opinion both ways are very unsatisfying.
> >
> > Is there a better way to deal with this problem ?
> > And what is the best resolution in respect to the
> > eCos-design-philosophy ?
>
> The eCos design philosophy would be to use CDL.
>
> First off we should talk about the different uses Redboot makes of
> flash.
>
> There two configuration areas, FIS and CFG. These can be in separate
> blocks, or combined into one. Redboot keeps a working copy of these in
> RAM.
>
> The second usage of flash is to allow you to store application images
> in flash. This is the fis create command and fis load. They don't
> require a RAM copy of a flash block, you just need sufficient RAM to
> hold what ever you want move to/from flash.
>
> For FIS/CFG you want to use the smaller blocks. 16KBytes is big enough
> to hold the combined FIS/CFG.
>
> Once option is to let the flash driver report that the block size if
> 16KBytes. This will allow FIS/CFG to work optimally. However, if you
> ask FIS to find free space in the flash to place an image, it is going
> to give the wrong answer, because the block boundaries are not where
> it thinks they are. There is a danger you then put an image into the
> middle of a block, which results in the image before/after being
> corrupted when the block is erased. So long as you manually control
> the memory map, this can work.
>
> A second option is to add new code which allows you to control where
> the fis_work_block is stored. You HAL can then set this variable to
> somewhere in your external RAM.
>
>           Andrew

             reply	other threads:[~2006-11-21 11:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-21 11:04 Rudi Pfister [this message]
2006-11-21 13:19 ` Andrew Lunn
  -- strict thread matches above, loose matches on Subject: below --
2006-11-22 10:51 Rudi Pfister
2006-11-18 15:07 Rudi Pfister
2006-11-18 20:39 ` Andrew Lunn

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=200611211203.51912.Rudi.Pfister@informatik.stud.uni-erlangen.de \
    --to=rudi.pfister@informatik.stud.uni-erlangen.de \
    --cc=20061118203849.GC31982@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=ecos-devel@ecos.sourceware.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).