diff --git a/BaS_gcc/flash_scripts/flash_firebee_bas.bdm b/BaS_gcc/flash_scripts/flash_firebee_bas.bdm index ca0b487..0cd530e 100755 --- a/BaS_gcc/flash_scripts/flash_firebee_bas.bdm +++ b/BaS_gcc/flash_scripts/flash_firebee_bas.bdm @@ -4,43 +4,10 @@ # open $1 reset -sleep 10 +sleep 1 wait -# Turn on MBAR at 0xFF00_0000 -write-ctrl 0x0C0F 0xFF000000 - -# set VBR -write-ctrl 0x0801 0x00000000 - -# -# Init CS0 (BootFLASH @ E000_0000 - E07F_FFFF 8Mbytes) -write 0xFF000500 0xE0000000 4 -write 0xFF000508 0x00001180 4 -write 0xFF000504 0x007F0001 4 - -# SDRAM Initialization @ 0000_0000 - 1FFF_FFFF 512Mbytes -#write 0xFF000004 0x000002AA 4 # SDRAMDS configuration -#write 0xFF000020 0x0000001A 4 # SDRAM CS0 configuration (128Mbytes 0000_0000 - 07FF_FFFF) -#write 0xFF000024 0x0800001A 4 # SDRAM CS1 configuration (128Mbytes 0800_0000 - 0FFF_FFFF) -#write 0xFF000028 0x1000001A 4 # SDRAM CS2 configuration (128Mbytes 1000_0000 - 17FF_FFFF) -#write 0xFF00002C 0x1800001A 4 # SDRAM CS3 configuration (128Mbytes 1800_0000 - 1FFF_FFFF) -#write 0xFF000108 0x73622830 4 # SDCFG1 -#write 0xFF00010C 0x46770000 4 # SDCFG2 - -#write 0xFF000104 0xE10D0002 4 # SDCR + IPALL -#write 0xFF000100 0x40010000 4 # SDMR (write to LEMR) -#write 0xFF000100 0x048D0000 4 # SDMR (write to LMR) -#sleep 100 -#write 0xFF000104 0xE10D0002 4 # SDCR + IPALL -#write 0xFF000104 0xE10D0004 4 # SDCR + IREF (first refresh) -#write 0xFF000104 0xE10D0004 4 # SDCR + IREF (first refresh) -#write 0xFF000100 0x008D0000 4 # SDMR (write to LMR) -#write 0xFF000104 0x710D0F00 4 # SDCR (lock SDMR and enable refresh) -#sleep 10 - - # use system sdram as flashlib scratch area. # TODO: plugin flashing seems to work o.k. now for smaller binaries, while it doesn't for larger ones (EmuTOS) yet. # This seems to be related to large flash buffers and PC-relative adressing of the plugin @@ -53,46 +20,34 @@ flash 0xe0000000 # Caution: sector offset numbers need to be the ones from the x16 address range # column and they vary in size - needs to be exactly as in the data sheet (p. 9) # -# contrary to documentation, it seems we need to erase-wait after each sector erase 0xe0000000 0 -erase-wait 0xe0000000 erase 0xe0000000 0x1000 -erase-wait 0xe0000000 erase 0xe0000000 0x2000 -erase-wait 0xe0000000 erase 0xe0000000 0x3000 -erase-wait 0xe0000000 erase 0xe0000000 0x4000 -erase-wait 0xe0000000 erase 0xe0000000 0x5000 -erase-wait 0xe0000000 erase 0xe0000000 0x6000 -erase-wait 0xe0000000 erase 0xe0000000 0x7000 -erase-wait 0xe0000000 erase 0xe0000000 0x8000 -erase-wait 0xe0000000 erase 0xe0000000 0x10000 -erase-wait 0xe0000000 erase 0xe0000000 0x18000 -erase-wait 0xe0000000 erase 0xe0000000 0x20000 -erase-wait 0xe0000000 erase 0xe0000000 0x28000 -erase-wait 0xe0000000 erase 0xe0000000 0x30000 -erase-wait 0xe0000000 erase 0xe0000000 0x38000 -erase-wait 0xe0000000 erase 0xe0000000 0x40000 -erase-wait 0xe0000000 erase 0xe0000000 0x48000 -erase-wait 0xe0000000 erase 0xe0000000 0x50000 -erase-wait 0xe0000000 erase 0xe0000000 0x58000 +erase 0xe0000000 0x60000 +erase 0xe0000000 0x70000 +erase 0xe0000000 0x78000 + erase-wait 0xe0000000 +# should now have erased from 0xe0000000 to 0xe00fffff + +dump-mem 0xe0010000 0x20 b load -v ../firebee/bas.elf wait