On Friday, 10 July 2020 08:59:07 CEST Pablo Rath wrote:
On Thu, Jul 09, 2020 at 11:43:58AM +0100, Luke Kenneth Casson Leighton
wrote:
yes, this is standard practice. you create the link on the parent, first, then it creates a question-mark, then you get an edit link. if you know what you're doing you can manually create edit links :)
Thank you for the crash course. Worked... almost like... *magic*. I have created a subpage under a20 and will put everthing there and we can move individual sections later if necessary.
I think I had similar problems until I realised that it is all very "old- school wiki", first creating links for new pages in existing pages, then getting the magic question mark, and then having the opportunity to create the new page. I suppose it encourages people to link to new content and to consider whether they really need a new page.
I saw that there is a section about legacy U-Boot in the page:
http://rhombus-tech.net/allwinner/a20/EOMA68-A20_2-7-4_preproduction/
The experience I had with old U-Boot versions that were contemporary with older versions of GCC is that the compiler-tweaking headers from Linux generally spew out lots of errors with newer compilers. One apparent solution was to just copy in the header from a more recent version of Linux (or maybe U-Boot) which is what I did for the MIPS Creator CI20 U-Boot, copying from a more recent version of Linux:
cp ../CI20_linux-ci20-v3.18/include/linux/compiler-gcc.h include/linux
However, that doesn't seem to be sufficient here. The structure of the Linux headers have changed, and while newer U-Boot versions seem to have adopted this structure, it doesn't seem to be easy to introduce to the legacy U-Boot for the Allwinner boards.
So, what seems to be necessary is to get an older compiler and to use that instead. Since distributions retire older compilers regularly, I used Buildroot to create a suitable GCC 4.9 cross-compiler than can then build the legacy U-Boot. To make things complicated here, Buildroot also retires support for older compilers, so I had to find a version still supporting GCC 4.x that didn't also suffer from this issue:
https://git.busybox.net/buildroot/commit/? id=c48f8a64626c60bd1b46804b7cf1a699ff53cdf3
Anyway, here are the commands I used:
git clone git://git.buildroot.net/buildroot cd buildroot git checkout 2018.08.4 make menuconfig
In the menu, the following settings were inspected/changed:
Target options Target Architecture (ARM (little endian)) Target Binary Format (ELF) Target Architecture Variant Target ABI (EABIhf) Floating point strategy (NEON/VFPv4) ARM instruction set (ARM)
Toolchain GCC compiler Version (gcc 4.9.x)
To build the toolchain, run...
make toolchain
(Use -j <processes> for parallel builds, of course. You may need to install rsync if you haven't already done so. Other packages may also be necessary.)
Setting PATH to reference this toolchain in output/host/bin, you can now build the legacy U-Boot as follows:
git clone https://github.com/linux-sunxi/u-boot-sunxi.git cd u-boot-sunxi make CROSS_COMPILE=arm-linux- EOMA68_A20_config make CROSS_COMPILE=arm-linux-
(Again, use -j <processes> to make this go faster. Note that Buildroot compilers tend to use their own naming, so it is arm-linux- and not arm-linux- gnueabihf- that needs to be used.)
Here, the use of EOMA68_A20_config sets up a bootloader for SD cards, whereas EOMA68_A20_FEL_config would set up a USB-bootable payload. See here for all the details:
https://github.com/linux-sunxi/u-boot-sunxi/wiki
This should get you the u-boot-sunxi-with-spl.bin file that needs to be deployed.
Hope this was helpful!
Paul