// QSPI applet to save at91bootstrap on RoadRunner QuadSPI // https://www.acmesystems.it/samba// https://www.acmesystems.it/at91bootstrap_3_8// https://www.acmesystems.it/roadrunner//// Sergio Tanzilli - tanzilli@acmesystems.itimport SAMBA 3.2import SAMBA.Connection.Serial 3.2import SAMBA.Device.SAMA5D2 3.2SerialConnection {	port: "ttyACM0"	baudRate: 57600	device: SAMA5D2Xplained {		// to use a custom config, replace SAMA5D2Xplained by SAMA5D2 and		// uncomment the following lines, or see documentation for		// custom board creation.				//config {		//	qspiflash {		//		instance: 0		//		ioset: 3		//		freq: 66		//	}		//}	}	// read and display current BSCR/BUREG/FUSE values	function printBootConfig() {		var bscr = applet.readBootCfg(BootCfg.BSCR)		print("BSCR=" + Utils.hex(bscr, 8) + " / " + BSCR.toText(bscr))		var bureg0 = applet.readBootCfg(BootCfg.BUREG0)		print("BUREG0=" + Utils.hex(bureg0, 8) + " / " + BCW.toText(bureg0))		var bureg1 = applet.readBootCfg(BootCfg.BUREG1)		print("BUREG1=" + Utils.hex(bureg1, 8) + " / " + BCW.toText(bureg1))		var bureg2 = applet.readBootCfg(BootCfg.BUREG2)		print("BUREG2=" + Utils.hex(bureg2, 8) + " / " + BCW.toText(bureg2))		var bureg3 = applet.readBootCfg(BootCfg.BUREG3)		print("BUREG3=" + Utils.hex(bureg3, 8) + " / " + BCW.toText(bureg3))		var fuse = applet.readBootCfg(BootCfg.FUSE)		print("FUSE=" + Utils.hex(fuse, 8) + " / " + BCW.toText(fuse))	}	onConnectionOpened: {		// initialize QSPI applet		initializeApplet("qspiflash")		// erase all memory		applet.erase(0, applet.memorySize)		// write files		applet.write(0x00000, "../at91bootstrap_3.8.8_produzione/binaries/at91bootstrap.bin", true)		// write files		applet.verify(0x00000, "../at91bootstrap_3.8.8_produzione/binaries/at91bootstrap.bin", true)		// initialize boot config applet		initializeApplet("bootconfig")		// Use BUREG0 as boot configuration word		applet.writeBootCfg(BootCfg.BSCR, BSCR.fromText("VALID,BUREG0"))		// Write flags in RAM		applet.writeBootCfg(BootCfg.BUREG0, BCW.fromText("EXT_MEM_BOOT,QSPI0_IOSET3"))		// Write flags on FUSES		//applet.writeBootCfg(BootCfg.FUSE, BCW.fromText("EXT_MEM_BOOT,QSPI0_IOSET3"))		printBootConfig();	             	}}	