forked from OERV-BSP/u-boot
This commit adds support for the brcp1, brsmarc2, brcp150 and brcp170 boards. This boards are based on the Xilinx Zynq SoC. Signed-off-by: Bernhard Messerklinger <bernhard.messerklinger@br-automation.com> Acked-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20250404072819.69642-5-bernhard.messerklinger@br-automation.com Signed-off-by: Michal Simek <michal.simek@amd.com>
110 lines
2.6 KiB
Bash
110 lines
2.6 KiB
Bash
autoload=0
|
|
b_break=0
|
|
fpgastatus=disabled
|
|
/* Memory variable */
|
|
scradr=0xC0000
|
|
fdtbackaddr=0x4000000
|
|
loadaddr=CONFIG_SYS_LOAD_ADDR
|
|
|
|
/* PREBOOT */
|
|
preboot=run setupaddr_spi; run brdefaultip; run cfgscr; setenv bootstart 1
|
|
|
|
/* SPI layout variables */
|
|
cfg_addr=
|
|
fdt get value cfgaddr_spi /binman/blob-ext@0 offset &&
|
|
fdt get value cfgsize_spi /binman/blob-ext@0 size
|
|
|
|
fpga_addr=
|
|
fdt get value fpgaaddr_spi /binman/blob-ext@1 offset &&
|
|
fdt get value fpgasize_spi /binman/blob-ext@1 size
|
|
|
|
os_addr=
|
|
fdt get value osaddr_spi /binman/blob-ext@2 offset &&
|
|
fdt get value ossize_spi /binman/blob-ext@2 size
|
|
|
|
dtb_addr=
|
|
fdt get value dtbaddr_spi /binman/blob-ext@3 offset &&
|
|
fdt get value dtbsize_spi /binman/blob-ext@3 size
|
|
|
|
setupaddr_spi=
|
|
fdt addr ${fdtcontroladdr};
|
|
run dtb_addr; run os_addr;
|
|
run fpga_addr; run cfg_addr
|
|
|
|
/* IP setup */
|
|
brdefaultip=
|
|
if test -r ${ipaddr}; then;
|
|
else
|
|
setenv ipaddr 192.168.60.1; setenv serverip 192.168.60.254;
|
|
setenv gatewayip 192.168.60.254; setenv netmask 255.255.255.0;
|
|
fi
|
|
|
|
/* Boot orders */
|
|
b_tgts_std=mmc0 mmc1 spi usb0 usb1 net
|
|
b_tgts_rcy=spi usb0 usb1 net
|
|
b_tgts_pme=net usb0 usb1 mmc spi
|
|
|
|
/* Boot targets */
|
|
b_mmc0=
|
|
run fpga; mmc dev 0; load mmc 0 ${loadaddr} arimg.itb &&
|
|
run vxargs && bootm ${loadaddr}
|
|
|
|
b_mmc1=
|
|
run fpga; mmc dev 0; load mmc 0 ${loadaddr} arimg &&
|
|
run vxargs &&
|
|
sf read ${fdtbackaddr} ${dtbaddr_spi} ${dtbsize_spi} &&
|
|
fdt addr ${fdtbackaddr} &&
|
|
bootm ${loadaddr} - ${fdtbackaddr}
|
|
|
|
b_spi=
|
|
run fpga; sf read ${loadaddr} ${osaddr_spi} ${ossize_spi} &&
|
|
run vxargs && bootm ${loadaddr}
|
|
|
|
b_net=run fpga; tftp ${scradr} netscript.img && source ${scradr}
|
|
b_usb0=usb start && load usb 0 ${scradr} usbscript.img && source ${scradr}
|
|
b_usb1=usb start && load usb 0 ${scradr} bootscr.img && source ${scradr}
|
|
|
|
/* FPGA setup */
|
|
fpga=
|
|
setenv fpgastatus disabled;
|
|
sf read ${loadaddr} ${fpgaaddr_spi} ${fpgasize_spi} &&
|
|
fpga loadb 0 ${loadaddr} ${fpgasize_spi} &&
|
|
setenv fpgastatus okay
|
|
|
|
/* Configuration preboot*/
|
|
cfgscr=
|
|
sf probe &&
|
|
sf read ${scradr} ${cfgaddr_spi} ${cfgsize_spi} &&
|
|
source ${scradr}
|
|
|
|
/* OS Boot */
|
|
fdt_fixup=
|
|
run cfgscr; run vxfdt
|
|
|
|
vxargs=
|
|
setenv bootargs gem(0,0)host:vxWorks h=${serverip}
|
|
e=${ipaddr}:${netmask} g=${gatewayip} u=vxWorksFTP pw=vxWorks f=0x1
|
|
|
|
vxfdt=
|
|
fdt set /fpga/pci status ${fpgastatus};
|
|
fdt set /fpga status ${fpgastatus}
|
|
|
|
/* Boot code */
|
|
b_default=
|
|
run b_deftgts;
|
|
for target in ${b_tgts}; do
|
|
run b_${target};
|
|
if test ${b_break} = 1; then;
|
|
exit;
|
|
fi;
|
|
done
|
|
|
|
b_deftgts=
|
|
if test ${b_mode} = 12; then
|
|
setenv b_tgts ${b_tgts_pme};
|
|
elif test ${b_mode} = 0; then
|
|
setenv b_tgts ${b_tgts_rcy};
|
|
else
|
|
setenv b_tgts ${b_tgts_std};
|
|
fi
|