Author: br
Date: Fri Apr 22 16:15:58 2016
New Revision: 298477
URL: https://svnweb.freebsd.org/changeset/base/298477

Log:
  Clear the DDR memory. This should be done by bootloaders,
  but they have no such feature yet.
  
  This fixes operation on Rocket Core and lowRISC.

Modified:
  head/sys/conf/options.riscv
  head/sys/riscv/riscv/locore.S

Modified: head/sys/conf/options.riscv
==============================================================================
--- head/sys/conf/options.riscv Fri Apr 22 15:12:05 2016        (r298476)
+++ head/sys/conf/options.riscv Fri Apr 22 16:15:58 2016        (r298477)
@@ -2,3 +2,4 @@
 
 RISCV                          opt_global.h
 VFP                            opt_global.h
+DDR_CLEAR_SIZE                 opt_global.h

Modified: head/sys/riscv/riscv/locore.S
==============================================================================
--- head/sys/riscv/riscv/locore.S       Fri Apr 22 15:12:05 2016        
(r298476)
+++ head/sys/riscv/riscv/locore.S       Fri Apr 22 16:15:58 2016        
(r298477)
@@ -126,6 +126,17 @@ _start:
        csrr    a0, mhartid
        bnez    a0, mpentry
 
+#if defined(DDR_CLEAR_SIZE)
+       /* Clear DDR memory */
+       la      t0, _end
+       li      t1, DDR_CLEAR_SIZE
+1:
+       sd      zero, 0(t0)
+       addi    t0, t0, 8
+       bltu    t0, t1, 1b
+       /* End */
+#endif
+
        /* Build event queue for current core */
        build_ring
 
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to