plotting – dynamic `FramelLabel` and `Legend`

How to create a dynamic FramelLabel and dynamic Legend for various parameter y1? ( for the commands Plot, Plot3D or Show )

y1 = 1;  
f1(x_, y_) = x^2 y 
p1 = Plot(f1(x, y1), {x, 0, 5}, PlotStyle -> {Red, Dashed}, 
  Frame -> True, FrameLabel ->   {{"f1(x,y1)", ""}, {x, ""}})

For example,
when
y1 = 1,
the outcome for dynamical FrameLabel will be as follows:
enter image description here

when

y1 = 2;

f2(x_, y_) = x^3 y

the outcome for dynamical legends will be as follows:
enter image description here

My Goal: I want to automatize that when I change variable y1,
legend and Framelabel in Plots automatically will be changed