[U-Boot] Is there a better way?

Ira W. Snyder iws at ovro.caltech.edu
Tue Apr 20 21:59:55 CEST 2010


On Tue, Apr 20, 2010 at 01:01:39PM -0600, Chris Rigg wrote:
> Hello,
> 
> I have a general design question and I can't think of a better forum than
> this one to ask it in. Let me know if this is not the right place to ask.
> 
> My environment:
> I have an embedded system (u-boot/Embedded Linux) running on a PPC440 and
> configured as a target over a PCI bus. My host is a Linux server and I
> communicate over the PCI bus to it using the I2O messaging interface the PPC
> provides. I am making the entire 256MB of SDRAM on my board accessible over
> the PCI bus to the host. I have no persistent storage on my board (other
> than flash) that I can use to store log files that my embedded system
> produces. I have Linux running on the PPC with the filesystem in ram as a
> ramdisk.
> 
> My goal:
> I need a way to get the files from the ramdisk on the PPC to the host over
> PCI.
> 
> My solution:
> The best idea I could come up with was to map in the PPC's ramdisk memory on
> the host and then read it like I would a normal ext2 filesystem. For
> example, let's say the ramdisk is 1MB in size. I would simply map in that
> 1MB on the host side over the PCI bus. And then have a ext2 filesystem
> reader tool that can look at the filesystem and extract the log files I
> mentioned earlier. It would be like NFS but over PCI instead of ethernet.
> 
> My problem:
> If I have an in-memory filesystem on my board (the ramdisk), and I have the
> entire 256MB of memory accessible to the host over the PCI bus, you'd think
> I could write a tool (or find a tool) that I could point at a block of
> physical memory and have it recognize it as an ext2 filesystem and read it
> as such. Unfortunately, there doesn't appear to be a precedent for doing
> this. Is there a better way to accomplish my goal of getting my logs off the
> ramdisk on the board from the host?
> 
> Thanks in advance. Any advice/help/suggestions are greatly appreciated.
> 

I've solved a relatively similar problem here. I have a
mpc8349emds-based board that is a PCI target. I've written a couple of
smallish drivers for U-Boot and Linux that make the board seem like an
ethernet interface.

This was all done through a 4KB section of the target's SDRAM exposed as
a PCI BAR to the host system, plus the "doorbell registers" that the
83xx uses to generate interrupts on the PCI bus.

I then attach all of the ethernet devices together on a Linux ethernet
bridge (see the brctl command in your distro). Now everything is
ethernet, and you can use NFS. In our case we use syslog-ng, logging to
a remote server on our ethernet.

We tftp our kernel and boot our board over NFS using the "ethernet"
interface.

So there is one alternative solution.

Ira


More information about the U-Boot mailing list