public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
@ 2005-08-22 15:54 Keith J Outwater
  2005-08-22 20:56 ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Keith J Outwater @ 2005-08-22 15:54 UTC (permalink / raw)
  To: u-boot

Hello all - 
I have completed the initial port of U-Boot to a custom PPC405/VirtexII 
Pro FPGA board and I am starting to look at ways to store the U-Boot 
environment in the CF card used for FPGA configuration by the Xilinx 
SystemAce.
As it stands now, there is DOS FAT read support in U-Boot but no write 
support, so that would have to be added if the environment was to be 
stored as a DOS file on the CF card.  Another option might be to partition 
the CF card so as to leave a few sectors unused and use low-level sector 
read/write routines to store the environment directly to the CF card. This 
solution seems straightforward, but seems somehow inelegant.
I am leaning toward the approach of adding DOS FAT write support and 
adjusting the initial U-Boot environment to provide sufficient stack space 
to run the DOS filesystem code during initial boot.  Does this seem 
reasonable?  Does anyone know where the original DOS filesystem code came 
from? 

Keith

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
  2005-08-22 15:54 [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH Keith J Outwater
@ 2005-08-22 20:56 ` Wolfgang Denk
  2005-08-22 23:43   ` Andrew Dyer
  2005-08-23 16:39   ` Keith J Outwater
  0 siblings, 2 replies; 6+ messages in thread
From: Wolfgang Denk @ 2005-08-22 20:56 UTC (permalink / raw)
  To: u-boot

In message <OF8ADB0661.25EF292C-ON07257065.00568E7A-07257065.00576B05@mck.us.ray.com> you wrote:
>
> I have completed the initial port of U-Boot to a custom PPC405/VirtexII 
> Pro FPGA board and I am starting to look at ways to store the U-Boot 
> environment in the CF card used for FPGA configuration by the Xilinx 
> SystemAce.

Please re-read the archives why this is not as trivial as it may seem.

> I am leaning toward the approach of adding DOS FAT write support and 
> adjusting the initial U-Boot environment to provide sufficient stack space 

This won't help you much. In the first step, you would have to modify
the whole CF and DOS FAT code such that it works while  running  from
flash.  This is a non-trivial task, and I don't intend to accept such
modifications for inclusion in the publich tree.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Men of peace usually are [brave].
	-- Spock, "The Savage Curtain", stardate 5906.5

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
  2005-08-22 20:56 ` Wolfgang Denk
@ 2005-08-22 23:43   ` Andrew Dyer
  2005-08-23 16:20     ` Keith J Outwater
  2005-08-23 16:39   ` Keith J Outwater
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Dyer @ 2005-08-22 23:43 UTC (permalink / raw)
  To: u-boot

On 8/22/05, Wolfgang Denk <wd@denx.de> wrote:
> In message <OF8ADB0661.25EF292C-ON07257065.00568E7A-07257065.00576B05@mck.us.ray.com> you wrote:
> >
> > I have completed the initial port of U-Boot to a custom PPC405/VirtexII
> > Pro FPGA board and I am starting to look at ways to store the U-Boot
> > environment in the CF card used for FPGA configuration by the Xilinx
> > SystemAce.
> 
> Please re-read the archives why this is not as trivial as it may seem.
> 
> > I am leaning toward the approach of adding DOS FAT write support and
> > adjusting the initial U-Boot environment to provide sufficient stack space
> 
> This won't help you much. In the first step, you would have to modify
> the whole CF and DOS FAT code such that it works while  running  from
> flash.  This is a non-trivial task, and I don't intend to accept such
> modifications for inclusion in the publich tree.
> 

Does a system ace CF card have a partition table?  Maybe you could make a
special partition on the CF for this type of info.  You would need a sector read
routine and code to parse the partition table to index into the
environment sectors.
You would probably need some ram available (or at least a bunch of registers)
to pull this off.

Another option might be to store the environment stuff as data to be loaded into
an accessible block ram on fpga power-up.  I haven't looked at how system ace
handles this sort of thing.  Are the block ram contents stored in
separate files on
the CF?

-- 
Hardware, n.:
        The parts of a computer system that can be kicked.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
  2005-08-22 23:43   ` Andrew Dyer
@ 2005-08-23 16:20     ` Keith J Outwater
  0 siblings, 0 replies; 6+ messages in thread
From: Keith J Outwater @ 2005-08-23 16:20 UTC (permalink / raw)
  To: u-boot

u-boot-users-admin at lists.sourceforge.net wrote on 08/22/2005 04:43:15 PM:

> On 8/22/05, Wolfgang Denk <wd@denx.de> wrote:
> > In message <OF8ADB0661.25EF292C-ON07257065.00568E7A-07257065.
> 00576B05 at mck.us.ray.com> you wrote:
> > >
> > > I have completed the initial port of U-Boot to a custom 
PPC405/VirtexII
> > > Pro FPGA board and I am starting to look at ways to store the U-Boot
> > > environment in the CF card used for FPGA configuration by the Xilinx
> > > SystemAce.
> > 
> > Please re-read the archives why this is not as trivial as it may seem.
> > 
> > > I am leaning toward the approach of adding DOS FAT write support and
> > > adjusting the initial U-Boot environment to provide sufficient stack 
space
> > 
> > This won't help you much. In the first step, you would have to modify
> > the whole CF and DOS FAT code such that it works while  running  from
> > flash.  This is a non-trivial task, and I don't intend to accept such
> > modifications for inclusion in the publich tree.
> > 
> 
> Does a system ace CF card have a partition table?  Maybe you could make 
a
> special partition on the CF for this type of info.  You would need a
> sector read
> routine and code to parse the partition table to index into the
> environment sectors.
> You would probably need some ram available (or at least a bunch of 
registers)
> to pull this off.

RAM is not a problem.  VirtexII FPGA based processor systems have plenty 
of RAM for this type of thing.
I like this idea a lot better than just trying to access raw sectors on 
the CF card.  I'll take a look at that.

> 
> Another option might be to store the environment stuff as data to be
> loaded into
> an accessible block ram on FPGA power-up.  I haven't looked at how 
system ace
> handles this sort of thing.  Are the block ram contents stored in
> separate files on
> the CF?

Not as a separate file, but (optionally) as part of the FPGA configuration 
bitstream.
The problem with using block RAM for storing the environment is that it is 
volatile.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
  2005-08-22 20:56 ` Wolfgang Denk
  2005-08-22 23:43   ` Andrew Dyer
@ 2005-08-23 16:39   ` Keith J Outwater
  2005-08-23 20:46     ` Wolfgang Denk
  1 sibling, 1 reply; 6+ messages in thread
From: Keith J Outwater @ 2005-08-23 16:39 UTC (permalink / raw)
  To: u-boot

wd at denx.de wrote on 08/22/2005 01:56:23 PM:

> In message <OF8ADB0661.25EF292C-ON07257065.00568E7A-07257065.
> 00576B05 at mck.us.ray.com> you wrote:
> >
> > I have completed the initial port of U-Boot to a custom 
PPC405/VirtexII 
> > Pro FPGA board and I am starting to look at ways to store the U-Boot 
> > environment in the CF card used for FPGA configuration by the Xilinx 
> > SystemAce.
> 
> Please re-read the archives why this is not as trivial as it may seem.

As I understand it, these are the issues:
1. Small stack
2. BSS is uninitialized
3. Global data is not writeable

Am I missing something from this list?

> 
> > I am leaning toward the approach of adding DOS FAT write support and 
> > adjusting the initial U-Boot environment to provide sufficient stack 
space 
> 
> This won't help you much. In the first step, you would have to modify
> the whole CF and DOS FAT code such that it works while  running  from
> flash.  This is a non-trivial task, and I don't intend to accept such
> modifications for inclusion in the publich tree.

OK, that pretty much kills that idea.

That being said, please realize that some board architectures have *much 
more* resources available at boot than some of the powerQUICC systems that 
ppcboot/U-Boot grew up on.

For example, the PPC405 systems that can be built using a VirtexII PRO 
FPGA have main memory (SDRAM, DDR SDRAM, etc) available *immediately* upon 
processor release.  These FPGAs provide lots of flexible, internal static 
RAM (block RAM), which for a 2VP50 device is something like 400 kbytes. In 
fact, my current design has no FLASH at all - a large chunk of block RAM 
is initialized with the U-Boot image along with the rest of the FPGA 
logic.  U-Boot is running from RAM from the start.

I think it's reasonable to assume that the kinds of resources I mentioned 
are going to be available for any system using the SystemACE given that 
the SystemACE approach to FPGA configuration is a high-end solution and it 
would typically be used in systems with big FPGAs and lots of memory.  I 
would not expect someone to use a Xilinx FPGA specific device like this 
simply to provide a CF card interface.

So that's why I was looking at simply throwing resources at issues 1-3 
above - I have a lot of resources available in this system, and any 
similar system would have them as well.

As to additional issues involved in running the FAT code from "flash", I'd 
like to learn more.  Maybe not to solve this problem (as I am considering 
this approach killed), but to broaden my knowledge.

There was a suggestion to use a dedicated partition on the CF card to hold 
the environment and manually parse the partition map.  Is this an approach 
you could support?

Keith

> 
> Best regards,
> 
> Wolfgang Denk
> 
> -- 
> Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Men of peace usually are [brave].
>    -- Spock, "The Savage Curtain", stardate 5906.5

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH
  2005-08-23 16:39   ` Keith J Outwater
@ 2005-08-23 20:46     ` Wolfgang Denk
  0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2005-08-23 20:46 UTC (permalink / raw)
  To: u-boot

In message <OF59D7AF38.9E936776-ON07257066.0059D1CC-07257066.005B8D56@mck.us.ray.com> you wrote:
> 
> As I understand it, these are the issues:
> 1. Small stack
> 2. BSS is uninitialized
> 3. Global data is not writeable
> 
> Am I missing something from this list?

Many other parts are not yet initialized and/or working,  and  trying
to change the init sequence to make it work will most probably result
in  a  mess.  You  don't  even  have  a  serial  console port yet for
debugging. This also means that your have to remove  each  and  every
printf() or puts() from all code you need to call, and recursively.

> That being said, please realize that some board architectures have *much 
> more* resources available at boot than some of the powerQUICC systems that 
> ppcboot/U-Boot grew up on.

I am definitely aware  of  this.  However,  the  design  decision  to
provide  a  serial  console  port  very early also results in certain
restrictions - like not being  able  to  load  the  environment  from
arbitrary storage devices.

> For example, the PPC405 systems that can be built using a VirtexII PRO 
> FPGA have main memory (SDRAM, DDR SDRAM, etc) available *immediately* upon 
> processor release.  These FPGAs provide lots of flexible, internal static 
> RAM (block RAM), which for a 2VP50 device is something like 400 kbytes. In 
> fact, my current design has no FLASH at all - a large chunk of block RAM 
> is initialized with the U-Boot image along with the rest of the FPGA 
> logic.  U-Boot is running from RAM from the start.

The U-Boot design is definitely *not* optimized for such a system.

> There was a suggestion to use a dedicated partition on the CF card to hold 
> the environment and manually parse the partition map.  Is this an approach 
> you could support?

All you get rid of is the file system problems.

You still have lots of other problems.  I  mentioned  that  you  must
"clean" all code you are going to call, and recursively all functions
that are referenced by this code, from any printf() or puts(). Either
you give up here, or you will have a mess of code. or you will try to
delay access to the real environment and fake one, at which point the
whole approach should be put into question.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If ignorance is bliss, why aren't there more happy people?

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-08-23 20:46 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-22 15:54 [U-Boot-Users] RFC: U-Boot Environment support in SystemAce Compact FLASH Keith J Outwater
2005-08-22 20:56 ` Wolfgang Denk
2005-08-22 23:43   ` Andrew Dyer
2005-08-23 16:20     ` Keith J Outwater
2005-08-23 16:39   ` Keith J Outwater
2005-08-23 20:46     ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox