Hi, On 2 February 2015 at 01:07, Hans de Goede <hdego...@redhat.com> wrote: > Hi Simon, Siarhei, > > On 01-02-15 21:59, Simon Glass wrote: >> >> Hi Siarhei, >> >> On 1 February 2015 at 11:37, Siarhei Siamashka >> <siarhei.siamas...@gmail.com> > > > <snip> > >>> A comprehensive FEL usage guide is supposed to be in the linux-sunxi >>> wiki. But it might be not very up to date with the mainline u-boot >>> usage. >>> >>> Anyway, first just clone the https://github.com/linux-sunxi/sunxi-tools >>> repository and build it. This will provide you with the x86 binary of >>> the 'fel' tool, which is used on your desktop PC to talk with the >>> device. >>> >>> Then connect the device to your PC using a "USB A to USB mini/micro B" >>> cable. And reset the board while keeping the "FEL" button pressed. The >>> button might be labelled as "UPGRADE" on your pcduino3 board: >>> http://linux-sunxi.org/LinkSprite_pcDuino_V3#FEL_mode >>> >>> Then just run "fel ver" command: >>> http://linux-sunxi.org/FEL#Running_the_fel_tool >>> >>> If everything is fine, it should respond with something like this: >>> AWUSBFEX soc=00162500(A13) 00000001 ver=0001 44 08 scratchpad=00007e00 >>> 00000000 00000000 >>> >>> Now you can use "write" commands to upload data to SRAM. And "exe" >>> command to execute functions on the device (works as some kind of RPC): >>> http://linux-sunxi.org/FEL/USBBoot#Manual_loading >>> >>> As a simple test, you can upload just a single "bx lr" instruction >>> (compiled in ARM mode) to the address 0x2000 and try to execute it. >>> In the case if your code screws up something and does not return >>> control to the BROM correctly, then the "fel" tool can't communicate >>> over USB anymore and just timeouts. Regarding the address space, you >>> can use SRAM addresses starting from 0x2000 up to something like 0x5E00 >>> (that's where the stack pointer is set). This was a description of a >>> "bare metal" FEL usage. >>> >>> Now as for the u-boot support. You can compile and run u-boot in the FEL >>> mode configuration on pcduino3 in the following way: >>> >>> make CROSS_COMPILE=arm-none-gnueabi- Linksprite_pcDuino3_felconfig >>> make CROSS_COMPILE=arm-none-gnueabi- -j2 >>> >>> fel write 0x2000 spl/u-boot-spl.bin >>> fel exe 0x2000 >>> >>> sleep 1 # Wait for DRAM initialization to complete >> >> >> i.e. wait for U-Boot SPL to return to the BROM? >> >>> >>> fel write 0x4a000000 u-boot.bin >>> fel exe 0x4a000000 >>> >>> Please note the use of '*_felconfig' instead of '*_defconfig'. >>> And also right now the FEL mode support is broken. That's why the >>> http://lists.denx.de/pipermail/u-boot/2015-January/203282.html >>> patchset tried to address this problem. >>> >> >> OK that looks like an excellent guide, thank you. I will make some time to >> take a more detailed look at this as soon as I can, but definitely in the >> next few days. > > > I've been reading all threads on this, thank you both for looking into this, > since you're on it I'm going to leave this be (and not review / apply > Siarhei's patches for this), and we can revisit this later, with hopefully a > better fix.
Thanks to Siarhei's instructions I have a working setup with pcduino3. One less board where I have to swap SD cards. Can I suggest that it would be really nice to have a README.sunxi that covers all of this? Anyway I will fiddle around and see what I can come up with. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot