diff options
author | Andrew Waterman <andrew@sifive.com> | 2019-06-11 17:37:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-11 17:37:24 +0200 |
commit | 46cd5082c5d324bb843be35d8130aa9d44068d7d (patch) | |
tree | 76d47a8160f3d22bf2a69dd510b41b24a2dbb0fc | |
parent | cb253a3f970b373df4390a0e7a17610556f920f3 (diff) | |
parent | ff71b88278db63ff22b7f39d38bd952dea34f2a1 (diff) | |
download | riscv-pk-46cd5082c5d324bb843be35d8130aa9d44068d7d.zip riscv-pk-46cd5082c5d324bb843be35d8130aa9d44068d7d.tar.gz riscv-pk-46cd5082c5d324bb843be35d8130aa9d44068d7d.tar.bz2 |
Merge pull request #163 from gsomlo/gls-litex
Building BBL for the LiteX/Rocket SoC
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | bbl/bbl.lds | 2 | ||||
-rwxr-xr-x | configure | 18 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | machine/minit.c | 3 | ||||
-rw-r--r-- | pk/pk.lds | 2 |
6 files changed, 30 insertions, 4 deletions
diff --git a/Makefile.in b/Makefile.in index 376670d..0cdf013 100644 --- a/Makefile.in +++ b/Makefile.in @@ -278,7 +278,7 @@ $$($(2)_install_prog_objs) : %.o : %.c $(COMPILE) -c $$< $$($(2)_install_prog_exes) : % : %.o $$($(2)_prog_libnames) - $(LINK) -o $$@ $$< $$($(2)_prog_libarg) $(LIBS) -T $(src_dir)/$(2)/$(2).lds + $(LINK) -o $$@ $$< $$($(2)_prog_libarg) $(LIBS) -Wl,--defsym=MEM_START=@MEM_START@,-T,$(src_dir)/$(2)/$(2).lds $(2)_c_deps += $$($(2)_install_prog_deps) $(2)_junk += \ diff --git a/bbl/bbl.lds b/bbl/bbl.lds index 397cd3f..624f691 100644 --- a/bbl/bbl.lds +++ b/bbl/bbl.lds @@ -12,7 +12,7 @@ SECTIONS /*--------------------------------------------------------------------*/ /* Begining of code and text segment */ - . = 0x80000000; + . = MEM_START; _ftext = .; .text : @@ -593,6 +593,7 @@ subprojects BBL_LOGO_FILE BBL_PAYLOAD BBL_ENABLE_LOGO +MEM_START WITH_ARCH RISCV EGREP @@ -672,6 +673,7 @@ enable_option_checking enable_stow with_arch enable_print_device_tree +with_mem_start enable_optional_subprojects enable_vm enable_logo @@ -1333,6 +1335,7 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-arch Set the RISC-V architecture + --with-mem-start Set physical memory start address --with-payload Set ELF payload for bbl --with-logo Specify a better logo @@ -4105,6 +4108,21 @@ LIBS="-lgcc" + +# Check whether --with-mem-start was given. +if test "${with_mem_start+set}" = set; then : + withval=$with_mem_start; + MEM_START=$with_mem_start + + +else + + MEM_START=0x80000000 + + +fi + + #------------------------------------------------------------------------- # MCPPBS subproject list #------------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index 962b2c0..4a211f6 100644 --- a/configure.ac +++ b/configure.ac @@ -97,6 +97,13 @@ AC_SUBST([LIBS], ["-lgcc"]) AC_SUBST(WITH_ARCH) AC_SUBST(host_alias) +AC_ARG_WITH([mem-start], AS_HELP_STRING([--with-mem-start], [Set physical memory start address]), + [ + AC_SUBST([MEM_START], $with_mem_start, [Physical memory start address]) + ], [ + AC_SUBST([MEM_START], [0x80000000], [Physical memory start address]) + ]) + #------------------------------------------------------------------------- # MCPPBS subproject list #------------------------------------------------------------------------- diff --git a/machine/minit.c b/machine/minit.c index bb1ee6e..5ad6d92 100644 --- a/machine/minit.c +++ b/machine/minit.c @@ -30,7 +30,8 @@ static void mstatus_init() // Enable user/supervisor use of perf counters if (supports_extension('S')) write_csr(scounteren, -1); - write_csr(mcounteren, -1); + if (supports_extension('U')) + write_csr(mcounteren, -1); // Enable software interrupts write_csr(mie, MIP_MSIP); @@ -12,7 +12,7 @@ SECTIONS /*--------------------------------------------------------------------*/ /* Begining of code and text segment */ - . = 0x80000000; + . = MEM_START; _ftext = .; .text : |