[Arm-netbook] 2.7.4 preproduction sample, 1.7 MD, Questions
Paul Boddie
paul at boddie.org.uk
Sat Jul 18 18:19:37 BST 2020
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
More information about the arm-netbook
mailing list