ex1: Add SPR_TBU support
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 18 Jun 2020 09:41:00 +0000 (19:41 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 23 Jun 2020 23:53:46 +0000 (09:53 +1000)
It's used by the boot wrapper in Linux and possibly some userspace
programs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
common.vhdl
execute1.vhdl

index f80593b28a8af78cff366474f9091d22cc08e047..d376ac36a273eca1cd4f279415cdb5bcf563fa56 100644 (file)
@@ -27,6 +27,7 @@ package common is
     constant SPR_DSISR  : spr_num_t := 18;
     constant SPR_DAR    : spr_num_t := 19;
     constant SPR_TB     : spr_num_t := 268;
+    constant SPR_TBU    : spr_num_t := 269;
     constant SPR_DEC    : spr_num_t := 22;
     constant SPR_SRR0   : spr_num_t := 26;
     constant SPR_SRR1   : spr_num_t := 27;
index 902af70f8ad4fed61951726a643382594bc44564..c585f781c6e5e8cc3c89c64dd51edc98fdb62287 100644 (file)
@@ -752,6 +752,9 @@ begin
                    case decode_spr_num(e_in.insn) is
                    when SPR_TB =>
                        spr_val := ctrl.tb;
+                   when SPR_TBU =>
+                        spr_val(63 downto 32) := (others => '0');
+                       spr_val(31 downto 0)  := ctrl.tb(63 downto 32);
                    when SPR_DEC =>
                        spr_val := ctrl.dec;
                     when 724 =>     -- LOG_ADDR SPR