* [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