litex.git
9 years agominor fixes
Sebastien Bourdeauducq [Tue, 29 Sep 2015 02:19:00 +0000 (10:19 +0800)]
minor fixes

9 years agobasic out-of-tree build support (OK on PPro)
Sebastien Bourdeauducq [Mon, 28 Sep 2015 12:33:37 +0000 (20:33 +0800)]
basic out-of-tree build support (OK on PPro)

9 years agomove software into misoc
Sebastien Bourdeauducq [Mon, 28 Sep 2015 05:02:13 +0000 (13:02 +0800)]
move software into misoc

9 years agoSort constants in csr generation.
Tim 'mithro' Ansell [Sat, 26 Sep 2015 07:57:43 +0000 (17:57 +1000)]
Sort constants in csr generation.

Previously the order of constant output depended on Python's hashing order
which changes every run. This caused the file to change every run.

With this change the csr.h file will always be the same. This can be verified
this with the following;
```bash
 CSR=software/include/generated/csr.h
 for i in 1 2 3 4 5 6; do
   rm -f $CSR; python make.py build-headers
   cp $CSR $CSR.$i
 done
 md5sum $CSR.*
```

9 years agoRevert "Use shutil rather then rm -rf command."
Sebastien Bourdeauducq [Sat, 26 Sep 2015 13:54:19 +0000 (21:54 +0800)]
Revert "Use shutil rather then rm -rf command."

This reverts commit d8fd4fe7257eea9efe252376305b716b2f51840f.

9 years agosdram working on PPro
Sebastien Bourdeauducq [Sat, 26 Sep 2015 13:51:22 +0000 (21:51 +0800)]
sdram working on PPro

9 years agoreplace flen with len
Sebastien Bourdeauducq [Sat, 26 Sep 2015 10:50:11 +0000 (18:50 +0800)]
replace flen with len

9 years agoadd stream, fix CPUs and more imports. simple target boots on ppro.
Sebastien Bourdeauducq [Sat, 26 Sep 2015 08:44:06 +0000 (16:44 +0800)]
add stream, fix CPUs and more imports. simple target boots on ppro.

9 years agofix most imports
Sebastien Bourdeauducq [Fri, 25 Sep 2015 10:43:20 +0000 (18:43 +0800)]
fix most imports

9 years agointerconnect: add bus/bank components from Migen
Sebastien Bourdeauducq [Thu, 24 Sep 2015 12:48:18 +0000 (20:48 +0800)]
interconnect: add bus/bank components from Migen

9 years agolasmicon: enable refresh at all times
Sebastien Bourdeauducq [Thu, 24 Sep 2015 08:01:08 +0000 (16:01 +0800)]
lasmicon: enable refresh at all times

9 years agobreak down sdram, improve consistency of core names
Sebastien Bourdeauducq [Thu, 24 Sep 2015 07:59:55 +0000 (15:59 +0800)]
break down sdram, improve consistency of core names

9 years agocores directory
Sebastien Bourdeauducq [Thu, 24 Sep 2015 01:05:10 +0000 (09:05 +0800)]
cores directory

9 years agoreorganization WIP: flatten core structure (SDRAM still needs to be done)
Sebastien Bourdeauducq [Wed, 23 Sep 2015 16:18:27 +0000 (00:18 +0800)]
reorganization WIP: flatten core structure (SDRAM still needs to be done)

9 years agosetup: cleanup
Sebastien Bourdeauducq [Wed, 23 Sep 2015 01:52:12 +0000 (09:52 +0800)]
setup: cleanup

9 years agoCONTRIBUTING.md->rst
Sebastien Bourdeauducq [Tue, 22 Sep 2015 16:57:36 +0000 (00:57 +0800)]
CONTRIBUTING.md->rst

9 years agomigen.fhdl.std -> migen
Sebastien Bourdeauducq [Tue, 22 Sep 2015 16:36:47 +0000 (00:36 +0800)]
migen.fhdl.std -> migen

9 years agomisoclib -> misoc
Sebastien Bourdeauducq [Tue, 22 Sep 2015 16:35:02 +0000 (00:35 +0800)]
misoclib -> misoc

9 years agoAdd init file in sdram/phy dir
Rohit Kumar Singh [Mon, 21 Sep 2015 15:39:48 +0000 (21:09 +0530)]
Add init file in sdram/phy dir

Without __init__.py file, when using setup.py, setuptools' find_package() function does not find the files in sdram/phy package. Hence .egg file entirely misses sdram/phy directory

More info here: https://bitbucket.org/pypa/setuptools/issues/97

9 years agouart/software: remove litescope dependency
Florent Kermarrec [Mon, 21 Sep 2015 07:04:59 +0000 (09:04 +0200)]
uart/software: remove litescope dependency

9 years agoAdding --help option to flterm.
Tim 'mithro' Ansell [Sun, 20 Sep 2015 13:09:16 +0000 (23:09 +1000)]
Adding --help option to flterm.

9 years agodvisampler/edid: fix sda sampling, needs to be similar to scl.
Florent Kermarrec [Thu, 10 Sep 2015 18:51:10 +0000 (20:51 +0200)]
dvisampler/edid: fix sda sampling, needs to be similar to scl.

Video sources with high scl frequency were not able to access EDID information through I2C.
I2C start was not detected correctly and was randomly reseting the fsm during transfers.(seen with litescope)

9 years agoAllow installing tools to a prefix.
Tim 'mithro' Ansell [Tue, 8 Sep 2015 15:15:15 +0000 (08:15 -0700)]
Allow installing tools to a prefix.

(Defaults to /usr/local.)

9 years agocreate liteethmini and move liteeth to a separate repo (https://github.com/enjoy...
Florent Kermarrec [Mon, 7 Sep 2015 22:58:03 +0000 (00:58 +0200)]
create liteethmini and move liteeth to a separate repo (https://github.com/enjoy-digital/liteeth)

LiteEthMini is a subset of LiteEth intended to be used with a CPU and a software stack.

9 years agoremove litepcie_phy_wrappers submodule
Florent Kermarrec [Mon, 7 Sep 2015 11:19:12 +0000 (13:19 +0200)]
remove litepcie_phy_wrappers submodule

9 years agotargets: remove USBSoC from minispartan6 (example available here: https://github...
Florent Kermarrec [Mon, 7 Sep 2015 10:46:37 +0000 (12:46 +0200)]
targets: remove USBSoC from minispartan6 (example available here: https://github.com/enjoy-digital/scarab-soc)

9 years agomove liteusb to a separate repo (https://github.com/enjoy-digital/liteusb)
Florent Kermarrec [Mon, 7 Sep 2015 10:44:47 +0000 (12:44 +0200)]
move liteusb to a separate repo (https://github.com/enjoy-digital/liteusb)

9 years agomove litesata to a separate repo (https://github.com/enjoy-digital/litesata)
Florent Kermarrec [Mon, 7 Sep 2015 10:26:52 +0000 (12:26 +0200)]
move litesata to a separate repo (https://github.com/enjoy-digital/litesata)

9 years agomove litescope to a separate repo (https://github.com/enjoy-digital/litescope)
Florent Kermarrec [Mon, 7 Sep 2015 10:01:48 +0000 (12:01 +0200)]
move litescope to a separate repo (https://github.com/enjoy-digital/litescope)

9 years agomove litepcie to a separate repo (https://github.com/enjoy-digital/litepcie)
Florent Kermarrec [Mon, 7 Sep 2015 09:11:43 +0000 (11:11 +0200)]
move litepcie to a separate repo (https://github.com/enjoy-digital/litepcie)

9 years agomisoclib/soc: fix add_constant when used for strings
Florent Kermarrec [Tue, 1 Sep 2015 14:57:50 +0000 (16:57 +0200)]
misoclib/soc: fix add_constant when used for strings

9 years agolitecores: remove unneeded AutoCSR inheritance in example designs (thanks William...
Florent Kermarrec [Wed, 26 Aug 2015 20:36:48 +0000 (22:36 +0200)]
litecores: remove unneeded AutoCSR inheritance in example designs (thanks William D. Jones)

9 years agolitescope/core/port: fix missing self.comb...
Florent Kermarrec [Mon, 24 Aug 2015 18:12:39 +0000 (20:12 +0200)]
litescope/core/port: fix missing self.comb...

9 years agolitescope/core/port: fix EdgeDetector CSRs names
Florent Kermarrec [Mon, 24 Aug 2015 17:40:53 +0000 (19:40 +0200)]
litescope/core/port: fix EdgeDetector CSRs names

9 years agolitescope/core/port: fix LiteScopeEdgeDetector (refactoring issues)
Florent Kermarrec [Mon, 24 Aug 2015 16:15:13 +0000 (18:15 +0200)]
litescope/core/port: fix LiteScopeEdgeDetector (refactoring issues)

9 years agoliteth/phy: simplify clk_freq in LiteEthPHY autodetect function (thanks Sebastien)
Florent Kermarrec [Sat, 22 Aug 2015 14:30:42 +0000 (16:30 +0200)]
liteth/phy: simplify clk_freq in LiteEthPHY autodetect function (thanks Sebastien)

9 years agosdram/phy/s6ddrphy: fix comment on S6QuarterRateDDRPHY
Florent Kermarrec [Sat, 22 Aug 2015 10:50:41 +0000 (12:50 +0200)]
sdram/phy/s6ddrphy: fix comment on S6QuarterRateDDRPHY

9 years agosdram/module: add P3R1GE4JGF DDR2 (Atlys) and MT41J128M16 DDR3 (Opsis, Novena) modules.
Florent Kermarrec [Sat, 22 Aug 2015 10:42:44 +0000 (12:42 +0200)]
sdram/module: add P3R1GE4JGF DDR2 (Atlys) and MT41J128M16 DDR3 (Opsis, Novena) modules.

9 years agosdram/phy/s6ddrphy: add S6QuarterRateDDRPHY to run DDR3 at higher frequencies.
Florent Kermarrec [Sat, 22 Aug 2015 10:15:53 +0000 (12:15 +0200)]
sdram/phy/s6ddrphy: add S6QuarterRateDDRPHY to run DDR3 at higher frequencies.

Built on top of S6HalfRateDDRPHY, exposes a 4 phases DFI interface to the controller with a 2x slower clock.
Validated on the Numato Lab opsis board (50MHz sys_clk/ DDR400), should also work on the Novena laptop (same DDR3 module).

9 years agoliteeth/phy: fix autodetect (clk_freq not necessary passed in kwargs)
Florent Kermarrec [Sat, 22 Aug 2015 10:08:49 +0000 (12:08 +0200)]
liteeth/phy: fix autodetect (clk_freq not necessary passed in kwargs)

9 years agosdram/phy/s6ddrphy: rename S6DDRPHY to S6HalfRateDDRPHY and use ORed wrdata_en/rddata...
Florent Kermarrec [Sat, 22 Aug 2015 09:47:26 +0000 (11:47 +0200)]
sdram/phy/s6ddrphy: rename S6DDRPHY to S6HalfRateDDRPHY and use ORed wrdata_en/rddata_en (the controller already manages that)

9 years agoREADME: small update
Florent Kermarrec [Sat, 22 Aug 2015 09:39:54 +0000 (11:39 +0200)]
README: small update

9 years agosdram/module: cleanup indent
Florent Kermarrec [Thu, 20 Aug 2015 20:15:06 +0000 (22:15 +0200)]
sdram/module: cleanup indent

9 years agolitecores: add -Ob option to make.py (allow to build with yosys for example)
Florent Kermarrec [Tue, 18 Aug 2015 23:06:48 +0000 (01:06 +0200)]
litecores: add -Ob option to make.py (allow to build with yosys for example)

9 years agoliteeth/phy: only use clk_freq for LiteEthPHYGMIIMII in autodetect
Florent Kermarrec [Tue, 18 Aug 2015 23:07:41 +0000 (01:07 +0200)]
liteeth/phy: only use clk_freq for LiteEthPHYGMIIMII in autodetect

9 years agotools/flterm: replace int(a, 16) with int(a, 0) for --kernel-adr
Florent Kermarrec [Tue, 18 Aug 2015 13:47:09 +0000 (15:47 +0200)]
tools/flterm: replace int(a, 16) with int(a, 0) for --kernel-adr

9 years agotools/flterm.py: cleanup kernel-adr argument parsing
Florent Kermarrec [Thu, 13 Aug 2015 11:24:39 +0000 (13:24 +0200)]
tools/flterm.py: cleanup kernel-adr argument parsing

9 years agoUse shutil rather then rm -rf command.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:50 +0000 (12:28 +0100)]
Use shutil rather then rm -rf command.

9 years agoUse shell for globbing in clean.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:49 +0000 (12:28 +0100)]
Use shell for globbing in clean.

9 years agoAll commands run should be checked.
Tim 'mithro' Ansell [Wed, 12 Aug 2015 11:28:48 +0000 (12:28 +0100)]
All commands run should be checked.

9 years agotools/flterm.py: some cleanup and fix last frame data that was not transmitted
Florent Kermarrec [Wed, 12 Aug 2015 09:41:08 +0000 (11:41 +0200)]
tools/flterm.py: some cleanup and fix last frame data that was not transmitted

9 years agounwinder: update.
whitequark [Mon, 10 Aug 2015 13:23:02 +0000 (16:23 +0300)]
unwinder: update.

9 years agolibdyld: add const qualifiers.
whitequark [Sat, 8 Aug 2015 12:21:09 +0000 (15:21 +0300)]
libdyld: add const qualifiers.

9 years agolibbase: add const qualifiers.
whitequark [Sat, 8 Aug 2015 09:16:27 +0000 (12:16 +0300)]
libbase: add const qualifiers.

9 years agolibdyld: all ELF relocations may refer to the current object.
whitequark [Fri, 7 Aug 2015 08:05:28 +0000 (11:05 +0300)]
libdyld: all ELF relocations may refer to the current object.

9 years agoliteeth/phy: rename rgmii to s6rgmii since specific to Spartan6
Florent Kermarrec [Wed, 5 Aug 2015 08:33:08 +0000 (10:33 +0200)]
liteeth/phy: rename rgmii to s6rgmii since specific to Spartan6

Also remove autodetection support for RGMII. For it to work we would need to pass the device we are building for.

9 years agoliteeth: add rgmii phy
Florent Kermarrec [Tue, 4 Aug 2015 22:50:55 +0000 (00:50 +0200)]
liteeth: add rgmii phy

9 years agosdram/phy/s6ddrphy: add DDR3 support
Florent Kermarrec [Tue, 4 Aug 2015 09:20:27 +0000 (11:20 +0200)]
sdram/phy/s6ddrphy: add DDR3 support

9 years agosdram/phy/initsequence: add burst chop 4 (BC4) for DDR3
Florent Kermarrec [Tue, 4 Aug 2015 09:18:28 +0000 (11:18 +0200)]
sdram/phy/initsequence: add burst chop 4 (BC4) for DDR3

This is needed for half rate controllers with burst length of 4.
For best efficiency quarter rate controllers should be used.

9 years agolibunwind: build with -DNDEBUG.
whitequark [Sun, 2 Aug 2015 03:25:40 +0000 (06:25 +0300)]
libunwind: build with -DNDEBUG.

9 years agodyld: style
Sebastien Bourdeauducq [Sun, 2 Aug 2015 04:35:48 +0000 (12:35 +0800)]
dyld: style

9 years agolibdyld: handle existing but undefined symbols during lookup.
whitequark [Sun, 2 Aug 2015 02:49:15 +0000 (05:49 +0300)]
libdyld: handle existing but undefined symbols during lookup.

9 years agolibdyld: R_*_RELATIVE never specify a symbol.
whitequark [Sun, 2 Aug 2015 02:29:23 +0000 (05:29 +0300)]
libdyld: R_*_RELATIVE never specify a symbol.

9 years agolibdyld: handle unaligned relocations.
whitequark [Sat, 1 Aug 2015 17:26:27 +0000 (20:26 +0300)]
libdyld: handle unaligned relocations.

9 years agounwinder: update.
whitequark [Sat, 1 Aug 2015 17:16:59 +0000 (20:16 +0300)]
unwinder: update.

9 years agolibdyld: add support for R_OR1K_{NONE,32,GLOB_DAT}.
whitequark [Sat, 1 Aug 2015 17:16:10 +0000 (20:16 +0300)]
libdyld: add support for R_OR1K_{NONE,32,GLOB_DAT}.

9 years agolibbase: also pass exception PC and EA to exception handler.
whitequark [Sat, 1 Aug 2015 17:15:42 +0000 (20:15 +0300)]
libbase: also pass exception PC and EA to exception handler.

9 years agolibbase: downstream users should provide fprintf.
whitequark [Sat, 1 Aug 2015 17:14:09 +0000 (20:14 +0300)]
libbase: downstream users should provide fprintf.

9 years agolibdyld: fix dyld_lookup algorithm.
whitequark [Sat, 1 Aug 2015 14:21:31 +0000 (17:21 +0300)]
libdyld: fix dyld_lookup algorithm.

9 years agolibdyld: fix DT_HASH address calculation.
whitequark [Sat, 1 Aug 2015 12:48:56 +0000 (15:48 +0300)]
libdyld: fix DT_HASH address calculation.

9 years agosoftware/common.mak: use PYTHON env var
Sebastien Bourdeauducq [Fri, 31 Jul 2015 10:31:04 +0000 (18:31 +0800)]
software/common.mak: use PYTHON env var

9 years agoExport _cache_init from crt0.S.
whitequark [Thu, 30 Jul 2015 23:40:52 +0000 (02:40 +0300)]
Export _cache_init from crt0.S.

9 years agoImplement a dynamic linker.
whitequark [Thu, 30 Jul 2015 23:38:20 +0000 (02:38 +0300)]
Implement a dynamic linker.

9 years agoUpdate libunwind submodule.
whitequark [Thu, 30 Jul 2015 23:35:30 +0000 (02:35 +0300)]
Update libunwind submodule.

9 years agobios/sdram: fix error_cnt computation in memtest
Florent Kermarrec [Thu, 30 Jul 2015 21:55:31 +0000 (23:55 +0200)]
bios/sdram: fix error_cnt computation in memtest

9 years agolibbase: define intptr_t.
whitequark [Thu, 30 Jul 2015 07:55:12 +0000 (10:55 +0300)]
libbase: define intptr_t.

9 years agoEnable ror, ffl1 and addc for OR1K.
whitequark [Thu, 30 Jul 2015 07:55:01 +0000 (10:55 +0300)]
Enable ror, ffl1 and addc for OR1K.

9 years agoMake sure the BIOS file ends on an aligned boundary.
whitequark [Wed, 29 Jul 2015 09:30:57 +0000 (12:30 +0300)]
Make sure the BIOS file ends on an aligned boundary.

If it does not, the address to which mkmscimg.py writes the CRC
and the address from which it is read could differ.

9 years agoDon't build base libraries and BIOS with -fPIC after all.
whitequark [Wed, 29 Jul 2015 09:09:05 +0000 (12:09 +0300)]
Don't build base libraries and BIOS with -fPIC after all.

9 years agomor1kx: enable ADDC, CMOV and FFL1 instructions
Sebastien Bourdeauducq [Tue, 28 Jul 2015 16:08:21 +0000 (00:08 +0800)]
mor1kx: enable ADDC, CMOV and FFL1 instructions

9 years agosoc: increase default BIOS size
Sebastien Bourdeauducq [Tue, 28 Jul 2015 14:36:42 +0000 (22:36 +0800)]
soc: increase default BIOS size

9 years agoMerge branch 'master' of https://github.com/m-labs/misoc
Florent Kermarrec [Tue, 28 Jul 2015 09:59:48 +0000 (11:59 +0200)]
Merge branch 'master' of https://github.com/m-labs/misoc

9 years agoupdate lm32 with "Switch to -fPIC" changes.
Florent Kermarrec [Tue, 28 Jul 2015 09:11:11 +0000 (11:11 +0200)]
update lm32 with "Switch to -fPIC" changes.

9 years agoPass -integrated-as to clang.
whitequark [Tue, 28 Jul 2015 08:51:28 +0000 (11:51 +0300)]
Pass -integrated-as to clang.

This avoids misdetection of target assembler by clang.

9 years agoUpdate libbase/linker-sdram.ld with -fPIC support.
whitequark [Sun, 26 Jul 2015 13:15:02 +0000 (16:15 +0300)]
Update libbase/linker-sdram.ld with -fPIC support.

9 years agoSwitch to -fPIC.
whitequark [Sun, 26 Jul 2015 13:06:48 +0000 (16:06 +0300)]
Switch to -fPIC.

Using -fPIC for everything allows to link the MiSoC static libraries
both into static images such as the BIOS as well as
into shared libraries.

9 years agoRemove useless includes pulled in by libunwind.
whitequark [Sun, 26 Jul 2015 10:12:23 +0000 (13:12 +0300)]
Remove useless includes pulled in by libunwind.

These aren't used by libunwind in any configuration and
should be also removed in upstream.

9 years agoAdd libunwind.
whitequark [Sun, 26 Jul 2015 09:59:18 +0000 (12:59 +0300)]
Add libunwind.

9 years agoAdd a stub getenv() implementation.
whitequark [Sun, 26 Jul 2015 09:55:52 +0000 (12:55 +0300)]
Add a stub getenv() implementation.

This is not strictly necessary to build libunwind (it can
be built with -DNDEBUG), but it will be handy while it is
debugged.

It can be removed afterwards.

9 years agoAdd a stub pthread header.
whitequark [Sun, 26 Jul 2015 09:54:40 +0000 (12:54 +0300)]
Add a stub pthread header.

The header implements only the pthread rwlock interface, which
never actually locks.

This is necessary to build libunwind.

9 years agoAdd headers for the dynamic linker interface.
whitequark [Sun, 26 Jul 2015 09:53:18 +0000 (12:53 +0300)]
Add headers for the dynamic linker interface.

These are required for libunwind to discover
the exception frame headers.

9 years agoAdd a stub C++ standard library.
whitequark [Sun, 26 Jul 2015 09:49:02 +0000 (12:49 +0300)]
Add a stub C++ standard library.

This is necessary to build libunwind.

9 years agoAdd basic inttypes.h.
whitequark [Sun, 26 Jul 2015 09:44:13 +0000 (12:44 +0300)]
Add basic inttypes.h.

This is taken from glibc. Only PRI* definitions are imported;
functions are not.

9 years agoMark abort() as __attribute__((noreturn)).
whitequark [Sun, 26 Jul 2015 09:43:22 +0000 (12:43 +0300)]
Mark abort() as __attribute__((noreturn)).

9 years agoAdd support for fprintf(stderr, ...).
whitequark [Sun, 26 Jul 2015 09:42:53 +0000 (12:42 +0300)]
Add support for fprintf(stderr, ...).

9 years agoDon't use clang for anything except or1k.
whitequark [Sun, 26 Jul 2015 07:00:58 +0000 (10:00 +0300)]
Don't use clang for anything except or1k.

9 years agocommon.mak: Pass -fexceptions to clang and clang++.
whitequark [Sun, 26 Jul 2015 00:30:21 +0000 (03:30 +0300)]
common.mak: Pass -fexceptions to clang and clang++.

This results in generation of .eh_frame sections. These sections
can be discarded during final linking, or included if exception
handling is desired. For exception handling to work, all sources
must be built with -fexceptions.

9 years agocommon.mak: use clang/clang++ to compile C/C++ sources.
whitequark [Sun, 26 Jul 2015 00:28:37 +0000 (03:28 +0300)]
common.mak: use clang/clang++ to compile C/C++ sources.

Note that -integrated-as is not active by default on OR1K,
so we're still shelling out to binutils to assemble.
It is not yet possible to build everything using -integrated-as.

9 years agocommon.mak: remove RANLIB.
whitequark [Sun, 26 Jul 2015 00:20:23 +0000 (03:20 +0300)]
common.mak: remove RANLIB.

`ranlib` is not necessary on any system we can possibly build for,
as it is superseded by `ar s` for the last ten years or so (at least).
Thus, change ar invocations to `ar crs`, also removing a `l` flag
that is ignored by binutils.

9 years agocommon.mak: remove AS.
whitequark [Sat, 25 Jul 2015 23:46:03 +0000 (02:46 +0300)]
common.mak: remove AS.

$(AS) was never used: $(assemble) invokes the C compiler instead.
In case of LLVM, this will allow us to consistently use the LLVM
internal assembler for both inline assembly in C and assembly
sources; so, avoid ever invoking binutils as explicitly.