I don't remember deleting your file?. In fact, it's dated as yesterday. Checked the recycle bin, wasn't there either
![Confused :-//](https://www.eevblog.com/forum/Smileys/default/confused0024.gif)
I also noticed that. After modifying the update so it applied all of its contents, the system did't like it and the dso interface broke completely.
Didn't investigate any further.
uboot-with-spl-spinand is what it is- Uboot compiled with spi nand support. But that image is build to be compatible with the AllWinner BROM loader (eGon), with a specific header and such.
uboot_fb is build to be loaded at ram, also with spi nand support but adding usb and fastboot. Don't ask me how, I guess Hantek did some crazy hacks there.
nand, spi and spi nand are all different things in u-boot and sunxi.fel. Nand is usually a parallel interface, while generic spi is NOR.
Hovewer this board uses spi nand. Sunxi-fel code lacks support for that. I started working on it but I got tired of the lack of documentation and other stupid time-wasting issues.
And, in the best case, it made 44KB/s, took 1 hour to read or flash. No thanks! The best way would be to compile a program that runs in the ram, avoiding all the u-boot and linux thing.
This SOC BROM doesn't init the DRAM by default, so a dirty hack is to let sunxi-fel to do it by loading u-boot into ram, but not executing it:
sunxi-fel spl uboot.bin
Now the DRAM is ready. I wrote a 8MB file to the memory, took 26 seconds:
sunxi-fel write 0x80000000 8M.bin
Then read it back, took 21 seconds:
sunxi-fel read 0x80000000 8388608 8M.bin
Made m5sums before and after, and they were the same.
So now, the loader. Shouldn't be that hard. SPI is easy to interface in low level programming.
The computer-side interface can be easily done by scripting sunxi-fel commands, reading/writing from/to known memory addresses.
Ex.:
0x80001000: Status (Ready, Execute, ,done, error)
0x80001004: Cmd read/write/erase/protect...
0x80001008: Start address
0x8000100C: Read / write length.
0x80002000: Scratchpad start address (buffer to store the data)
For example, you write the first chunk into the buffer. Write the address and length. Write "erase"comand. Execute. Write "program" command. Execute.
And repeat with the next chunks. That's what actually sunxi-fel does, but in a such way that I cannot understand completely, I don't know how why some work and others not. So it'll be better to do it myself!
Yet to know how to execute a program and return the control to the BROM loader.