1. 06 May, 2013 2 commits
    • Alessandro Rubini's avatar
    • Alessandro Rubini's avatar
      Kconfig: complete reshuffle, using an "advanced" section · 9603a711
      Alessandro Rubini authored
      This introduced an "advanced" menu, only for developers, and most
      questions are grouped in there, because we cannot support users
      playing with experimental features or work in progress (like the new
      onewire code, or the new ptp daemon) until they are the officially
      supported option.
      
      The commit also removes changes in stack size, because the new
      calibration code by tom is not stack-hungry like the previous one:
      wrnic_defconfig is now the same as spec_defconfig and ppsi doesn't
      select a bigger stack any more.
      
      Finally, ppsi_defconfig replaces spec_ppsi_defconfig, since we only
      support the "spec" hardware configuration (other implementations we know
      of are still very much spec-alike).
      
      Unfortunately, this spits two warnings:
      
          Kconfig:25:warning: defaults for choice values not supported
          Kconfig:29:warning: defaults for choice values not supported
      
      even if such defaults actually works. The next commit removes them.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      9603a711
  2. 03 May, 2013 1 commit
    • Cesar Prados's avatar
      Makefile: change to support gmake-3.82 · 152111a8
      Cesar Prados authored
      Split a rule into two rules, to make make happy.
      
      In previous versions of make it was acceptable to list one or more
      explicit targets followed by one or more pattern targets in the same
      rule and it worked "as expected". However, this was not documented as
      acceptable and if you listed any explicit targets AFTER the pattern
      targets, the entire rule would be mis-parsed. This release removes
      this ability completely: make will generate an error message if you
      mix explicit and pattern targets in the same rule. You must split
      these rules into two rules: one for the pattern and one for the
      explicit targets. The Linux kernel source has already been modified in
      this way (in newer kernels).
      152111a8
  3. 26 Apr, 2013 6 commits
  4. 24 Apr, 2013 1 commit
  5. 23 Apr, 2013 1 commit
  6. 09 Apr, 2013 1 commit
  7. 04 Apr, 2013 2 commits
  8. 03 Apr, 2013 8 commits
    • Alessandro Rubini's avatar
      onewire: Kconfig choice between w1 and sockitowm · ad2efece
      Alessandro Rubini authored
      This adds the build choice about whether to use the older sockitowm or
      the new "w1" implementation, which supports all three thermometers
      but is still missing eeprom support (the API is defined, though, see
      include/w1.h
      
      This also adds a shell command, called "w1", which rescans the bus and
      tries to read the temperature from all devices. In the example below
      the third device is an eeprom, so it return an error for temperature
      read-out.
      
         wrc# w1
         W1: 68000801dce56910
         W1: f70000001eda8242
         W1: 5f00000040e50143
         device 0: 68000801dce56910
         temp: 34.7500
         device 1: f70000001eda8242
         temp: 32.5000
         device 2: 5f00000040e50143
         temp: -32768.0000
      
      The code is properly integrated in wrpc-sw, and the "first" thermometer is
      used to build the MAC address of the device, like it used to be with
      sockitowm.
      
      The binary built with w1 is 3kB smaller than what is build with sockitowm.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      ad2efece
    • Alessandro Rubini's avatar
      w1: files for new onewire implementation (not built) · bab55a8a
      Alessandro Rubini authored
      This adds the files for an alternative to sockitowm. I called it "w1"
      like in the Linux kernel, because "onewire" was already in use as file
      name in this project.
      
      The bus scanning code was a fun project of mine a few years ago, the
      rest is what I did for my own crappy operating system in the last few
      days.  This commit adds the files as modified to build in wrpc-sw, since
      I have no "official" Bathos files yet to diff against.
      
      This commit doesn't change the build, only adds the file, so actual
      changes to existing code is all part of the next (smaller) commit.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      bab55a8a
    • Alessandro Rubini's avatar
      tools: add wrpc-uart-sw.c · d796977e
      Alessandro Rubini authored
      This is the host part of the software-only uart. The lm32 part is
      selected at compile time (CONFIG_UART_SW).
      
      The tool, when run, opens one or more pty pairs, and reports to stdout
      which is the name of the slave descriptor. You can then run
      "minicom -p /dev/pts/XXX" or other commands, to access the software uart.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      d796977e
    • Alessandro Rubini's avatar
      tools/Makefile: link with -lutil · 80789ee6
      Alessandro Rubini authored
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      80789ee6
    • Alessandro Rubini's avatar
      dev: introduce uart-sw · fd3f8864
      Alessandro Rubini authored
      This introduces dev/uart-sw as an alternative to dev/uart . The
      software-only thing is a pair of circular buffers that can be driven
      by tools/wrpc-uart-sw .
      
      The software uart can be enabled by Kconfig (and is disabled by
      default).  The code size is the same as the uart, but it "wastes" 306
      bytes of data space.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      fd3f8864
    • Alessandro Rubini's avatar
      shell: added "sleep" command (not built by default) · bccfebd2
      Alessandro Rubini authored
      This adds "sleep" that is used to verify the usleep function.
      It is not build by default nor by a Kconfig option, because it is
      not expected to be generally useful.
      
      To build, add "CONFIG_CMD_SLEEP=y" to the command line of make.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      bccfebd2
    • Alessandro Rubini's avatar
      lib: add usleep.c (and call its own init from main) · 3497d157
      Alessandro Rubini authored
      This adds a real usleep implementation. The init function calculates
      the "loops per jiffy" variable, by watching the timer ticks before
      interrupts are enabled by spll_init().  This init takes 40ms.
      
      Then, the udelay runs the same loop used in calculating lpj, and
      is thus correct (it will be slower because we have interrupts running
      at run time, but this is not a problem).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      3497d157
    • Alessandro Rubini's avatar
      lib/ptp-noposix-wrappers.c: copied from ptp-noposix · b445f5ca
      Alessandro Rubini authored
      This is a copy of ptp-noposix/libposix/freestanding-wrapper.c, moved
      into this project because it actually is only used here. The Makefile
      now builds this one.
      
      This move is needed in order to remove this faulty usleep and provide a
      better one, while keeping the other fake functions called by ptp-noposix
      code.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      b445f5ca
  9. 29 Mar, 2013 1 commit
    • Alessandro Rubini's avatar
      trivial: headers: include two files more · ae19fd81
      Alessandro Rubini authored
      1- wrc.h now includes syscon.h. This is a prerequisite to a non-inline
      implementation of usleep (the current inline one is just a random
      loop, 10x wrong on the spec). Without this we should modify sockitowm
      where it calls usleep, but I'd better not touch sockitowm.
      
      2- syscon.h includes <sys/types.h>.  This is needed to have
      useconds_t.  I'd better have usleep take unsigned long, but some file
      already includes sys/types.h, so our prototype must match that one.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      ae19fd81
  10. 28 Mar, 2013 5 commits
    • Alessandro Rubini's avatar
      shell: add "config" command. · c118ac41
      Alessandro Rubini authored
      This command can return the .config file to the user. It can be useful
      to trace what is actually running, as addition to the "ver"
      command.  It is optional because it costs .5kB of binary size.
      
      Example:
      
        wrc# config
          Current WRPC-SW configuration:
        CONFIG_RAMSIZE=90112
        # CONFIG_PTP_NOPOSIX is not set
        CONFIG_PPSI=y
        # CONFIG_CHECK_RESET is not set
        CONFIG_PPSI_VERBOSITY=0
        CONFIG_PPSI_RUNTIME_VERBOSITY=y
        CONFIG_STACKSIZE=2048
        CONFIG_PP_PRINTF=y
        # CONFIG_PRINTF_FULL is not set
        CONFIG_PRINTF_XINT=y
        # CONFIG_PRINTF_MINI is not set
        # CONFIG_PRINTF_NONE is not set
        CONFIG_PRINT_BUFSIZE=128
        CONFIG_ETHERBONE=y
        # CONFIG_DETERMINISTIC_BINARY is not set
        CONFIG_CMD_CONFIG=y
      
      (This configuration amounts to a binary size of 86252 bytes, at this
      commit).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      c118ac41
    • Alessandro Rubini's avatar
      shell: add help command · 78e9e68d
      Alessandro Rubini authored
      The help command currently only lists available commands. It was asked
      by some developers some time ago, and this implementation only costs
      150 bytes in the final exectuable.  I don't think it's worth a Kconfig
      option.
      
      This is it in action with my configuration:
      
         wrc# help
         Available commands:
           ver
           pll
           sfp
           stat
           ptp
           mode
           calibration
           time
           gui
           sdb
           mac
           init
           ptrack
           ip
           verbose
           help
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      78e9e68d
    • Alessandro Rubini's avatar
      shell: remove environment commands · bebe796c
      Alessandro Rubini authored
      The environment was drafted but not actually used, so this commit
      removes it.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: Grzegorz Daniluk's avatarGrzegorz Daniluk <grzegorz.daniluk@cern.ch>
      Acked-by: Tomasz Wlostowski's avatarTomasz Wlostowski <tomasz.wlostowski@cern.ch>
      bebe796c
    • Alessandro Rubini's avatar
      shell: reorganize parsing using .cmd ELF section · a9ce831d
      Alessandro Rubini authored
      This commit creates a .cmd section, so there is no global list of
      commands in shell.c any more, and no ifdef in the code for conditional
      commands.  Also, (unrelated) makes shell errors slightly more friendly.
      
      The technique is widely used, in the Linux kernel and all boot
      loaders, as well as a lot of my own personal code, so this is safe
      (and tested).
      
      As a side effect, this allows (in later commits) to move the "verbose"
      ppsi-specific command back to ppsi/arch-wrpc/ where it really belongs.
      It allows new commands to be easily added by just adding their
      respective file to the build.
      
      Even though this increases code size by around 50 lines, it makes it
      more modular and only costs 8 bytes in the final executable (in my
      configuration: 128 bytes less of text and 136 bytes more of data).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      a9ce831d
    • Alessandro Rubini's avatar
      Makefile: use bigobj.lds during initial partial link · eb9d18a4
      Alessandro Rubini authored
      This commit makes no effect, but it prepares for the following one.
      In general, using an intermediate platform-agnostic linker script
      when making wrc.o is not bad, so let's do it here.
      
      The main reason why we need it is to force the "KEEP" command for the
      ".cmd" ELF section, introduced by the next commit.  The alternative to
      this would be chaning the main linker script, which is worse in my
      opinion.
      
      If we add initcalls or similar stuff later, this bigobj.lds is the
      place to do it.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      eb9d18a4
  11. 26 Mar, 2013 4 commits
  12. 19 Mar, 2013 2 commits
  13. 18 Mar, 2013 6 commits