<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 14, 2020 at 9:16 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>On 14/02/2020 15:45, Joel Sherrill wrote:<br>
    </p>
    <blockquote type="cite">
      <div dir="ltr" class="gmail_attr">On Fri, Feb 14, 2020 at 7:08 AM
        Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>>
        wrote:<br>
      </div>
      <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On
        14/02/2020 13:57, Joel Sherrill wrote:<br>
        <br>
        > Hi<br>
        ><br>
        > I haven't investigated or checked on other bsps but the
        xilinx qemu <br>
        > bsp has no output with the hello world in examples. It uses
        the devfs. <br>
        > Changing it to the default filesystem results in it
        working.<br>
        ><br>
        > I am suspicious of something with all the termios and new
        console <br>
        > changes breaking it.<br>
        The devfs works only with legacy IO drivers. The Termios drivers
        depend <br>
        on IMFS. I would like to remove the devfs in the future. The
        IMFS is <br>
        highly configurable, there is no need for an additional
        in-memory file <br>
        system.<br>
      </blockquote>
      <div><br>
      </div>
      <div>Do not remove it. Please fix it.</div>
    </blockquote>
    <p>The IMFS should be improved, so that we can remove the devfs. We
      already have a bunch of configuration options to customize it:</p>
    <p><a href="https://docs.rtems.org/branches/master/c-user/configuring_a_system.html#file-system-configuration-parameters" target="_blank">https://docs.rtems.org/branches/master/c-user/configuring_a_system.html#file-system-configuration-parameters</a></p></div></blockquote><div><br></div><div>You should look at the requirements for the older ESA RTEMS versions. They </div><div>had very specific requirements which ended up with the filesystem code </div><div>largerly removed AFAIK.</div><div><br></div><div>And you did break existing code in the public repository. If we need more tests </div><div>to ensure it works, then so be it. It is a feature in the current code base and it </div><div>just broke.</div><div><br></div><div>Until the IMFS can be proved to be configurable to meet the requirements that </div><div>resulted in the filesystem code being removed/minimized in the old ESA  versions<br></div><div>and other folks who needed the simplest possible infrastructure for devices so</div><div>our normal frameworks would work, it needs to stay and work.</div><div><br></div><div>You can have a goal which you may or may nor achieve but you can't leave a </div><div>trail of code that is broken just because you don't like it.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p><br>
    </p>
    <blockquote type="cite">
      <div><br>
      </div>
      <div>This filesystem is needed because some applications want no
        filesystem but</div>
      <div>you require one for device nodes. Even the IMFS is subject to
        mallocs which</div>
      <div>are undesired in the applications that this was supporting.</div>
    </blockquote>
    <p>Termios uses malloc(), so I don't think this filesystem makes
      sense for console drivers. I changed the clock driver to use a
      simple system initialization handler. Some time ago I refactored
      the IMFS mount operation to use statically allocated data:</p>
    <p><a href="https://git.rtems.org/rtems/commit/?id=a9df9169882c564af6714bbf121c278092d3c51c" target="_blank">https://git.rtems.org/rtems/commit/?id=a9df9169882c564af6714bbf121c278092d3c51c</a></p>
    <p>With a bit of work the IMFS_make_generic_node() can be changed to
      not allocate memory and instead use memory provided by the caller.
      I spend a considerable amount of time to make it possible that
      some time in the future we can have applications with purely
      statically allocated resources.<br></p></div></blockquote><div><br></div><div>OK. But that's maybe in the indefinite future and you broke something today.</div><div><br></div><div>----joel</div><div> </div></div></div>