Compare commits

..

30 Commits

Author SHA1 Message Date
Peter Korsgaard
a0690cc883 Update for 2016.11.1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-29 21:54:33 +01:00
Peter Korsgaard
bf8fdcc2fa CHANGES: update for 2016.11.1
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-12-29 21:41:23 +01:00
Peter Korsgaard
65d7b45bdd cryptopp: fixup DOS newlines in CVE-2016-9939 patch
The patch did contain the correct newlines, but they got stripped by
patchwork so now the patch no longer applies.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 9f57959147)
2016-12-29 21:34:53 +01:00
Peter Korsgaard
0f8f5a7711 cryptopp: add upstream security fix for CVE-2016-9939
Fixes security issue (DoS) in Crypto++ ASN1 decoder:

https://github.com/weidai11/cryptopp/issues/346

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 222808a4b6)
2016-12-29 21:34:46 +01:00
Peter Korsgaard
03f286cd85 exim: security bump to 4.87.1
No features are added or removed. This release contains
just a fix for CVE-2016-9963

    - Fix CVE-2016-9963 - Info leak from DKIM.  When signing DKIM, if
      either LMTP or PRDR was used for delivery, the key could appear in
      logs.  Additionally, if the experimental feature "DSN_INFO" was used,
      it could appear in DSN messages (and be sent offsite).

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 62f0195119)
2016-12-28 23:58:58 +01:00
Peter Korsgaard
5f691d11d4 libcurl: security bump to 7.52.1
Fixes CVE-2016-9594 - Unitilized random

Libcurl's (new) internal function that returns a good 32bit random value was
implemented poorly and overwrote the pointer instead of writing the value
into the buffer the pointer pointed to.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 72b6bf8f57)
2016-12-23 22:57:06 +01:00
Bernd Kuhls
04cc75c622 package/python: security bump version to 2.7.13
Rebased patches 004 & 010.

Changelog:
https://hg.python.org/cpython/raw-file/v2.7.13/Misc/NEWS

Fixes CVE-2016-2183 & CVE-2016-1000110.

This bump also fixes the host build with openssl 1.1.0,
http://patchwork.ozlabs.org/patch/696139/ is not needed anymore.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 5df0bfa9a0)
2016-12-23 22:56:51 +01:00
Bernd Kuhls
d1bd3e4104 package/apache: security bump version to 2.4.25
Changelog:
http://www.apache.org/dist/httpd/CHANGES_2.4.25

Fixes CVE-2016-8740, CVE-2016-5387, CVE-2016-2161, CVE-2016-0736,
CVE-2016-8743.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 68af1dc257)
2016-12-23 22:56:37 +01:00
Peter Korsgaard
d12c6df2fc libcurl: security bump to 7.52.0
Fixes CVE-2016-9586 - printf floating point buffer overflow

For details, see:
https://curl.haxx.se/docs/adv_20161221A.html

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 0c5beb6501)
2016-12-23 22:56:26 +01:00
Jörg Krause
b1cd530b3c package/monit: security bump to version 5.20.0
Fixes CVE-2016-7067.

Note that since version 5.20.0 monit optionally depends on zlib.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 0bf7c74e15)
2016-12-23 22:56:17 +01:00
Peter Korsgaard
c5c78f258a python-bottle: security bump to 0.12.11
"\r\n" sequences were not properly filtered when handling redirections.
This allowed an attacker to perform CRLF attacks such as HTTP header
injection:

https://github.com/bottlepy/bottle/issues/913

Python-bottle now uses setuptools instead of distutils.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit aa64e33c51)
2016-12-21 17:09:38 +01:00
Gustavo Zacarias
3df927248e gdk-pixbuf: security bump to version 2.36.2
Fixes:
* Fix a NULL pointer dereference (#776026)
* Fix a memory leak (#776020)
* Avoid a buffer overrun in the qtif loader ($#775648)
* Fix a crash in the bmp loader (#775242)
* Fix crash opening pnm images with large dimensions (#775232)
* Prevent buffer overflow in the pixdata loader (#775693)

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 75c3c94de9)
2016-12-21 17:08:06 +01:00
Danomi Manchego
9bff460146 uboot: fix custom patch dir legacy handling
Commit 3e3fef39e7 added new and improved
patch handling, with BR2_TARGET_UBOOT_PATCH.  This was in addition to
the existing BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR option, that only
handled directories.

Later, commit 21b25d28fc moved the old
BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR to legacy options.  But on the way,
bad things happened:

* The original option was a string, while the one added to Config.in.legacy
is a bool.  This results in a warning from defconfigs that actually define
the old BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR (because a string is not a valid
value for a bool), but it does not result in the legacy option being
selected.  Consequently, BR2_LEGACY is not selected either.

* The advice at the top of Config.in.legacy to add a hidden WRAP option
to select BR2_LEGACY was not heeded.

* The advice at the top of Config.in.legacy to use the old string
option as the default for the new string option was not heeded.  In
this case, the variable was not just renamed, as the old option
supported directories only, while the new one supports files too.
But since the old option is a subset of the new option, it can still
be used to set a useful default.

So, this mod turns the legacy option back to a string, adds a hidden
bool WRAP option to set BR2_LEGACY when the string is non emoty, and
uses the legacy option to set the default for the new option.

Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit f61583fc2e)
2016-12-20 22:46:17 +01:00
Peter Korsgaard
738a80e2eb libupnp: add upstream security fix for CVE-2016-8863
Fix out-of-bound access in create_url_list()

If there is an invalid URL in URLS->buf after a valid one, uri_parse is
called with out pointing after the allocated memory. As uri_parse writes
to *out before returning an error the loop in create_url_list must be
stopped early to prevent an out-of-bound access.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit c489cbad77)
2016-12-19 23:14:28 +01:00
Peter Korsgaard
e9da17dead libupnp: add upstream security fix for CVE-2016-6255
If there's no registered handler for a POST request, the default behaviour
is to write it to the filesystem. Several million deployed devices appear
to have this behaviour, making it possible to (at least) store arbitrary
data on them. Add a configure option that enables this behaviour, and change
the default to just drop POSTs that aren't directly handled.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit 9d1dab1b80)
2016-12-19 23:14:28 +01:00
Gustavo Zacarias
f3820f83d4 samba4: security bump to version 4.4.8
Fixes:
CVE-2016-2123 - Samba NDR Parsing ndr_pull_dnsp_name Heap-based Buffer
Overflow Remote Code Execution Vulnerability.
CVE-2016-2125 - Unconditional privilege delegation to Kerberos servers
in trusted realms.
CVE-2016-2126 - Flaws in Kerberos PAC validation can trigger privilege
elevation.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 80e0583a70)
2016-12-19 23:14:28 +01:00
Gustavo Zacarias
3a8611ea04 openssh: security bump to version 7.4p1
Fixes:
CVE-2016-10009 - ssh-agent(1): Will now refuse to load PKCS#11 modules
from paths outside a trusted whitelist
CVE-2016-10010 - sshd(8): When privilege separation is disabled,
forwarded Unix-domain sockets would be created by sshd(8) with the
privileges of 'root'
CVE-2016-10011 - sshd(8): Avoid theoretical leak of host private key
material to privilege-separated child processes via realloc()
CVE-2016-10012 - sshd(8): The shared memory manager used by
pre-authentication compression support had a bounds checks that could be
elided by some optimising compilers

http://seclists.org/oss-sec/2016/q4/708

Drop upstream patch.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit ae58da7111)
2016-12-19 23:14:28 +01:00
Gustavo Zacarias
f3d5197a46 squid: security bump to version 3.5.23
Fixes:
CVE-2016-10002: http://www.squid-cache.org/Advisories/SQUID-2016_11.txt
CVE-2016-10003: http://www.squid-cache.org/Advisories/SQUID-2016_10.txt

[Peter: add CVE references]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

(cherry picked from commit d9ef4c1f79)
2016-12-19 23:14:28 +01:00
Fabien Parent
34bd0869b6 xorg-server: add dependency on dri2proto when systemd is built
When systemd is selected, xorg-server must have config-udev-kms
enabled in order to build correctly, but it won't be the case if
BR2_PACKAGE_XPROTO_DRI2PROTO is not part of the build.

Add BR2_PACKAGE_XPROTO_DRI2PROTO as a dependency of xorg-xserver
only when systemd is part of the build.

Fixes bug #9486.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit cd4af31dd8)
2016-12-19 23:14:28 +01:00
Peter Korsgaard
7dbd36d931 docker-engine: security bump to 1.12.3
Fixes CVE-2016-8867: https://forums.docker.com/t/docker-1-12-2-security-advisory/23975

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 35e5e7d499)
2016-12-19 23:14:28 +01:00
Peter Korsgaard
59bd179c35 docker-engine: needs pkg-config
Fixes:
http://autobuild.buildroot.org/results/fcc/fcc32f6cdc46f354a016a9b137d4f51d4054cdb6/
http://autobuild.buildroot.org/results/083/0832b7be86c525522e2caed66246d5aeb365afb2/
http://autobuild.buildroot.org/results/ede/ede0ddf0c5685ece8443a9b1bbd5c63b4d98af33/

pkg-config is used for some of the docker-engine dependencies (at least
libseccomp and libsystemd), so make sure it is available.

The make.sh script used to configure docker-engine uses the PKG_CONFIG
variable, but the libseccomp-golang go module simply uses whatever
pkg-config binary it finds in the path at build time, so also pass
TARGET_MAKE_ENV to ensure our cross-pkg-config is used.

For consistency and robustness against future changes, use both approaches
for the configure and build steps.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit c4a7d95e19)
2016-12-19 23:14:27 +01:00
Gustavo Zacarias
a9a6bfd6c1 wireshark: bump to version 2.2.3
The only security bug fixed concerns windows so it's not a security bump
for buildroot.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 326a9559dc)
2016-12-19 23:14:27 +01:00
Gustavo Zacarias
c4954457b5 gdk-pixbuf: security bump to version 2.36.1
Fixes an integer buffer overflow in the jpeg loader (details still
embargoed).

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 660b3308cf)
2016-12-19 23:14:27 +01:00
Bernd Kuhls
6531f267bf package/dovecot: needs OpenSSL
The latest version bump to 2.27 introduced a bug in the configure
script which occurs when OpenSSL support is missing:
http://lists.busybox.net/pipermail/buildroot/2016-December/179397.html

This patch makes OpenSSL mandatory following the upstream advice:
http://www.dovecot.org/list/dovecot/2016-December/106346.html
"Nobody really should be building without OpenSSL nowadays anyway"

Fixes
http://autobuild.buildroot.net/results/85f/85f2f176c108ab36520f02d975f27c27cddce84b/

[Peter: drop legacy handling]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

(cherry picked from commit f93cd820d1)
2016-12-19 23:14:27 +01:00
Vicente Olivert Riera
105727951a dovecot: bump version to 2.2.27 (security)
Fixes CVE-2016-8652 : http://www.securityfocus.com/bid/94639/

Release notes:
  http://www.dovecot.org/list/dovecot-news/2016-December/000333.html

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit e244d79cd8)
2016-12-19 23:00:50 +01:00
Gustavo Zacarias
1ca7ab6022 links: security bump to version 2.14
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit f4b9e87fdb)
2016-12-19 23:00:42 +01:00
Gustavo Zacarias
0757d8db1c php: security bump to version 7.0.14
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 2483170d32)
2016-12-19 23:00:23 +01:00
Thomas Petazzoni
8d58e8af95 vim: be more careful when removing the documentation
The current VIM_REMOVE_DOCS hook removes all .txt files from
/usr/share/vim. Unfortunately, this also removes the rgb.txt file,
which is needed at runtime for vim, as reported in bug #9466.

This commit changes VIM_REMOVE_DOCS to remove only
/usr/share/vim/vim*/doc/. Size-wise, it's equivalent because:

 - We are no longer removing a few README.txt in other directories,
   taking more space.

 - We are now removing the /usr/share/vim/vim*/doc/ folder entirely,
   which contained a few files not named *.txt

So overall, the size of /usr/share/vim/ before and after this patch is
still 11MB.

Fixes bug #9466.

Reported-by: Mateusz Furdyna <sir.ferdek@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit f7a07f42f7)
2016-12-19 22:58:43 +01:00
Peter Korsgaard
7567aff8fc nodejs: security bump 0.10.x series to 0.10.48
c-ares: fix for single-byte buffer overwrite, CVE-2016-5180, more
information at https://c-ares.haxx.se/adv_20160929.html

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit 7fe6b5d9dc)
2016-12-19 22:58:36 +01:00
Patrick Devlin
722b2d11a0 package/nodejs: security bump version to 6.9.1
Fixes CVE-2016-5172 - V8 arbitrary memory read:
https://nodejs.org/en/blog/vulnerability/october-2016-security-releases/

https://nodejs.org/en/blog/release/v6.9.1/

The patches from 6.7.0 have been copied to 6.9.1.

[Peter: add CVE reference]
Signed-off-by: Patrick Devlin <cloudyparts@icloud.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
(cherry picked from commit 5f899d7f1c)
2016-12-19 22:56:56 +01:00
6777 changed files with 121726 additions and 103726 deletions

View File

@@ -1,2 +0,0 @@
[flake8]
max-line-length=132

View File

@@ -1,284 +0,0 @@
# Configuration for Gitlab-CI.
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
# It needs to be regenerated every time a defconfig is added, using
# "make .gitlab-ci.yml".
image: buildroot/base:20180318.1724
.defconfig_script: &defconfig_script
- echo 'Configure Buildroot'
- make ${CI_JOB_NAME}
- echo 'Build buildroot'
- |
make > >(tee build.log |grep '>>>') 2>&1 || {
echo 'Failed build last output'
tail -200 build.log
exit 1
}
check-gitlab-ci.yml:
script:
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
- make .gitlab-ci.yml
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
check-DEVELOPERS:
# get-developers should print just "No action specified"; if it prints
# anything else, it's a parse error.
# The initial ! is removed by YAML so we need to quote it.
script:
- "! utils/get-developers | grep -v 'No action specified'"
check-package:
script:
- find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +
.defconfig: &defconfig
# Running the defconfigs for every push is too much, so limit to
# explicit triggers through the API.
only:
- triggers
- tags
script: *defconfig_script
artifacts:
when: always
expire_in: 2 weeks
paths:
- build.log
- output/images/
- output/build/build-time.log
- output/build/packages-file-list.txt
.runtime_test: &runtime_test
# Keep build directories so the rootfs can be an artifact of the job. The
# runner will clean up those files for us.
# Multiply every emulator timeout by 10 to avoid sporadic failures in
# elastic runners.
script: ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${CI_JOB_NAME}
artifacts:
when: always
expire_in: 2 weeks
paths:
- test-output/*.log
- test-output/*/.config
- test-output/*/images/*
acmesystems_aria_g25_128mb_defconfig: *defconfig
acmesystems_aria_g25_256mb_defconfig: *defconfig
acmesystems_arietta_g25_128mb_defconfig: *defconfig
acmesystems_arietta_g25_256mb_defconfig: *defconfig
arcturus_ucp1020_defconfig: *defconfig
arm_foundationv8_defconfig: *defconfig
arm_juno_defconfig: *defconfig
armadeus_apf27_defconfig: *defconfig
armadeus_apf28_defconfig: *defconfig
armadeus_apf51_defconfig: *defconfig
at91sam9260eknf_defconfig: *defconfig
at91sam9g20dfc_defconfig: *defconfig
at91sam9g45m10ek_defconfig: *defconfig
at91sam9rlek_defconfig: *defconfig
at91sam9x5ek_defconfig: *defconfig
at91sam9x5ek_dev_defconfig: *defconfig
at91sam9x5ek_mmc_defconfig: *defconfig
at91sam9x5ek_mmc_dev_defconfig: *defconfig
atmel_sama5d27_som1_ek_mmc_dev_defconfig: *defconfig
atmel_sama5d2_xplained_mmc_defconfig: *defconfig
atmel_sama5d2_xplained_mmc_dev_defconfig: *defconfig
atmel_sama5d3_xplained_defconfig: *defconfig
atmel_sama5d3_xplained_dev_defconfig: *defconfig
atmel_sama5d3_xplained_mmc_defconfig: *defconfig
atmel_sama5d3_xplained_mmc_dev_defconfig: *defconfig
atmel_sama5d3xek_defconfig: *defconfig
atmel_sama5d4_xplained_defconfig: *defconfig
atmel_sama5d4_xplained_dev_defconfig: *defconfig
atmel_sama5d4_xplained_mmc_defconfig: *defconfig
atmel_sama5d4_xplained_mmc_dev_defconfig: *defconfig
bananapi_m1_defconfig: *defconfig
bananapi_m2_plus_defconfig: *defconfig
bananapi_m64_defconfig: *defconfig
bananapro_defconfig: *defconfig
beagleboardx15_defconfig: *defconfig
beaglebone_defconfig: *defconfig
beaglebone_qt5_defconfig: *defconfig
chromebook_snow_defconfig: *defconfig
ci20_defconfig: *defconfig
csky_gx6605s_defconfig: *defconfig
cubieboard2_defconfig: *defconfig
engicam_imx6qdl_icore_defconfig: *defconfig
engicam_imx6qdl_icore_qt5_defconfig: *defconfig
engicam_imx6qdl_icore_rqs_defconfig: *defconfig
engicam_imx6ul_geam_defconfig: *defconfig
engicam_imx6ul_isiot_defconfig: *defconfig
freescale_imx28evk_defconfig: *defconfig
freescale_imx6dlsabreauto_defconfig: *defconfig
freescale_imx6dlsabresd_defconfig: *defconfig
freescale_imx6qsabreauto_defconfig: *defconfig
freescale_imx6qsabresd_defconfig: *defconfig
freescale_imx6sxsabresd_defconfig: *defconfig
freescale_imx7dsabresd_defconfig: *defconfig
friendlyarm_nanopi_a64_defconfig: *defconfig
friendlyarm_nanopi_neo2_defconfig: *defconfig
galileo_defconfig: *defconfig
gdb_bfin_bf512_defconfig: *defconfig
grinn_chiliboard_defconfig: *defconfig
grinn_liteboard_defconfig: *defconfig
imx23evk_defconfig: *defconfig
imx6-sabreauto_defconfig: *defconfig
imx6-sabresd_defconfig: *defconfig
imx6-sabresd_qt5_defconfig: *defconfig
imx6slevk_defconfig: *defconfig
imx6sx-sdb_defconfig: *defconfig
imx6ulevk_defconfig: *defconfig
imx6ulpico_defconfig: *defconfig
imx7dpico_defconfig: *defconfig
lego_ev3_defconfig: *defconfig
linksprite_pcduino_defconfig: *defconfig
minnowboard_max-graphical_defconfig: *defconfig
minnowboard_max_defconfig: *defconfig
mx25pdk_defconfig: *defconfig
mx51evk_defconfig: *defconfig
mx53loco_defconfig: *defconfig
mx6cubox_defconfig: *defconfig
mx6sx_udoo_neo_defconfig: *defconfig
mx6udoo_defconfig: *defconfig
nanopi_m1_defconfig: *defconfig
nanopi_m1_plus_defconfig: *defconfig
nanopi_neo_defconfig: *defconfig
nexbox_a95x_defconfig: *defconfig
nitrogen6sx_defconfig: *defconfig
nitrogen6x_defconfig: *defconfig
nitrogen7_defconfig: *defconfig
odroidc2_defconfig: *defconfig
olimex_a13_olinuxino_defconfig: *defconfig
olimex_a20_olinuxino_lime2_defconfig: *defconfig
olimex_a20_olinuxino_lime_defconfig: *defconfig
olimex_a20_olinuxino_lime_mali_defconfig: *defconfig
olimex_a20_olinuxino_micro_defconfig: *defconfig
olimex_a64_olinuxino_defconfig: *defconfig
olimex_imx233_olinuxino_defconfig: *defconfig
openblocks_a6_defconfig: *defconfig
orangepi_lite_defconfig: *defconfig
orangepi_one_defconfig: *defconfig
orangepi_pc2_defconfig: *defconfig
orangepi_pc_defconfig: *defconfig
orangepi_pc_plus_defconfig: *defconfig
orangepi_plus_defconfig: *defconfig
orangepi_prime_defconfig: *defconfig
orangepi_win_defconfig: *defconfig
orangepi_zero_defconfig: *defconfig
orangepi_zero_plus2_defconfig: *defconfig
pandaboard_defconfig: *defconfig
pc_x86_64_bios_defconfig: *defconfig
pc_x86_64_efi_defconfig: *defconfig
pine64_defconfig: *defconfig
pine64_sopine_defconfig: *defconfig
qemu_aarch64_virt_defconfig: *defconfig
qemu_arm_versatile_defconfig: *defconfig
qemu_arm_versatile_nommu_defconfig: *defconfig
qemu_arm_vexpress_defconfig: *defconfig
qemu_m68k_mcf5208_defconfig: *defconfig
qemu_m68k_q800_defconfig: *defconfig
qemu_microblazebe_mmu_defconfig: *defconfig
qemu_microblazeel_mmu_defconfig: *defconfig
qemu_mips32r2_malta_defconfig: *defconfig
qemu_mips32r2el_malta_defconfig: *defconfig
qemu_mips32r6_malta_defconfig: *defconfig
qemu_mips32r6el_malta_defconfig: *defconfig
qemu_mips64_malta_defconfig: *defconfig
qemu_mips64el_malta_defconfig: *defconfig
qemu_mips64r6_malta_defconfig: *defconfig
qemu_mips64r6el_malta_defconfig: *defconfig
qemu_nios2_10m50_defconfig: *defconfig
qemu_or1k_defconfig: *defconfig
qemu_ppc64_pseries_defconfig: *defconfig
qemu_ppc64le_pseries_defconfig: *defconfig
qemu_ppc_g3beige_defconfig: *defconfig
qemu_ppc_mpc8544ds_defconfig: *defconfig
qemu_ppc_virtex_ml507_defconfig: *defconfig
qemu_sh4_r2d_defconfig: *defconfig
qemu_sh4eb_r2d_defconfig: *defconfig
qemu_sparc64_sun4u_defconfig: *defconfig
qemu_sparc_ss10_defconfig: *defconfig
qemu_x86_64_defconfig: *defconfig
qemu_x86_defconfig: *defconfig
qemu_xtensa_lx60_defconfig: *defconfig
qemu_xtensa_lx60_nommu_defconfig: *defconfig
raspberrypi0_defconfig: *defconfig
raspberrypi2_defconfig: *defconfig
raspberrypi3_64_defconfig: *defconfig
raspberrypi3_defconfig: *defconfig
raspberrypi3_qt5we_defconfig: *defconfig
raspberrypi_defconfig: *defconfig
roseapplepi_defconfig: *defconfig
s6lx9_microboard_defconfig: *defconfig
sheevaplug_defconfig: *defconfig
snps_aarch64_vdk_defconfig: *defconfig
snps_arc700_axs101_defconfig: *defconfig
snps_archs38_axs103_defconfig: *defconfig
snps_archs38_haps_defconfig: *defconfig
snps_archs38_vdk_defconfig: *defconfig
socrates_cyclone5_defconfig: *defconfig
solidrun_macchiatobin_mainline_defconfig: *defconfig
solidrun_macchiatobin_marvell_defconfig: *defconfig
stm32f429_disco_defconfig: *defconfig
stm32f469_disco_defconfig: *defconfig
toradex_apalis_imx6_defconfig: *defconfig
ts4800_defconfig: *defconfig
ts4900_defconfig: *defconfig
ts5500_defconfig: *defconfig
ts7680_defconfig: *defconfig
wandboard_defconfig: *defconfig
warp7_defconfig: *defconfig
warpboard_defconfig: *defconfig
zynq_microzed_defconfig: *defconfig
zynq_zc706_defconfig: *defconfig
zynq_zed_defconfig: *defconfig
zynq_zybo_defconfig: *defconfig
tests.boot.test_atf.TestATFAllwinner: *runtime_test
tests.boot.test_atf.TestATFMarvell: *runtime_test
tests.boot.test_atf.TestATFVexpress: *runtime_test
tests.core.test_post_scripts.TestPostScripts: *runtime_test
tests.core.test_rootfs_overlay.TestRootfsOverlay: *runtime_test
tests.core.test_timezone.TestGlibcAllTimezone: *runtime_test
tests.core.test_timezone.TestGlibcNonDefaultLimitedTimezone: *runtime_test
tests.core.test_timezone.TestNoTimezone: *runtime_test
tests.fs.test_ext.TestExt2: *runtime_test
tests.fs.test_ext.TestExt2r1: *runtime_test
tests.fs.test_ext.TestExt3: *runtime_test
tests.fs.test_ext.TestExt4: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2External: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2ExternalCompress: *runtime_test
tests.fs.test_iso9660.TestIso9660Grub2Internal: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxExternal: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxExternalCompress: *runtime_test
tests.fs.test_iso9660.TestIso9660SyslinuxInternal: *runtime_test
tests.fs.test_jffs2.TestJffs2: *runtime_test
tests.fs.test_squashfs.TestSquashfs: *runtime_test
tests.fs.test_ubi.TestUbi: *runtime_test
tests.fs.test_yaffs2.TestYaffs2: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRo: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRoNet: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRw: *runtime_test
tests.init.test_busybox.TestInitSystemBusyboxRwNet: *runtime_test
tests.init.test_none.TestInitSystemNone: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoFull: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoIfupdown: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRoNetworkd: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwFull: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwIfupdown: *runtime_test
tests.init.test_systemd.TestInitSystemSystemdRwNetworkd: *runtime_test
tests.package.test_dropbear.TestDropbear: *runtime_test
tests.package.test_ipython.TestIPythonPy2: *runtime_test
tests.package.test_ipython.TestIPythonPy3: *runtime_test
tests.package.test_python.TestPython2: *runtime_test
tests.package.test_python.TestPython3: *runtime_test
tests.package.test_rust.TestRust: *runtime_test
tests.package.test_rust.TestRustBin: *runtime_test
tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: *runtime_test
tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: *runtime_test
tests.toolchain.test_external.TestExternalToolchainCCache: *runtime_test
tests.toolchain.test_external.TestExternalToolchainCtngMusl: *runtime_test
tests.toolchain.test_external.TestExternalToolchainLinaroArm: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv4: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv5: *runtime_test
tests.toolchain.test_external.TestExternalToolchainSourceryArmv7: *runtime_test

View File

@@ -1,65 +0,0 @@
# Configuration for Gitlab-CI.
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
# It needs to be regenerated every time a defconfig is added, using
# "make .gitlab-ci.yml".
image: buildroot/base:20180318.1724
.defconfig_script: &defconfig_script
- echo 'Configure Buildroot'
- make ${CI_JOB_NAME}
- echo 'Build buildroot'
- |
make > >(tee build.log |grep '>>>') 2>&1 || {
echo 'Failed build last output'
tail -200 build.log
exit 1
}
check-gitlab-ci.yml:
script:
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
- make .gitlab-ci.yml
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
check-DEVELOPERS:
# get-developers should print just "No action specified"; if it prints
# anything else, it's a parse error.
# The initial ! is removed by YAML so we need to quote it.
script:
- "! utils/get-developers | grep -v 'No action specified'"
check-package:
script:
- find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +
.defconfig: &defconfig
# Running the defconfigs for every push is too much, so limit to
# explicit triggers through the API.
only:
- triggers
- tags
script: *defconfig_script
artifacts:
when: always
expire_in: 2 weeks
paths:
- build.log
- output/images/
- output/build/build-time.log
- output/build/packages-file-list.txt
.runtime_test: &runtime_test
# Keep build directories so the rootfs can be an artifact of the job. The
# runner will clean up those files for us.
# Multiply every emulator timeout by 10 to avoid sporadic failures in
# elastic runners.
script: ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${CI_JOB_NAME}
artifacts:
when: always
expire_in: 2 weeks
paths:
- test-output/*.log
- test-output/*/.config
- test-output/*/images/*

1428
CHANGES

File diff suppressed because it is too large Load Diff

242
Config.in
View File

@@ -57,18 +57,8 @@ config BR2_HOST_GCC_AT_LEAST_6
default y if BR2_HOST_GCC_VERSION = "6" default y if BR2_HOST_GCC_VERSION = "6"
select BR2_HOST_GCC_AT_LEAST_5 select BR2_HOST_GCC_AT_LEAST_5
config BR2_HOST_GCC_AT_LEAST_7
bool
default y if BR2_HOST_GCC_VERSION = "7"
select BR2_HOST_GCC_AT_LEAST_6
config BR2_HOST_GCC_AT_LEAST_8
bool
default y if BR2_HOST_GCC_VERSION = "8"
select BR2_HOST_GCC_AT_LEAST_7
# Hidden boolean selected by packages in need of Java in order to build # Hidden boolean selected by packages in need of Java in order to build
# (example: kodi) # (example: xbmc)
config BR2_NEEDS_HOST_JAVA config BR2_NEEDS_HOST_JAVA
bool bool
@@ -94,11 +84,6 @@ config BR2_HOSTARCH_NEEDS_IA32_LIBS
config BR2_HOSTARCH_NEEDS_IA32_COMPILER config BR2_HOSTARCH_NEEDS_IA32_COMPILER
bool bool
# Hidden boolean selected by packages that need the host to have an
# UTF8 locale.
config BR2_NEEDS_HOST_UTF8_LOCALE
bool
source "arch/Config.in" source "arch/Config.in"
menu "Build options" menu "Build options"
@@ -111,7 +96,7 @@ config BR2_WGET
config BR2_SVN config BR2_SVN
string "Subversion (svn) command" string "Subversion (svn) command"
default "svn --non-interactive" default "svn"
config BR2_BZR config BR2_BZR
string "Bazaar (bzr) command" string "Bazaar (bzr) command"
@@ -168,13 +153,6 @@ config BR2_XZCAT
Command to be used to extract a xz'ed file to stdout. Command to be used to extract a xz'ed file to stdout.
Default is "xzcat" Default is "xzcat"
config BR2_LZCAT
string "lzcat command"
default "lzip -d -c"
help
Command to be used to extract a lzip'ed file to stdout.
Default is "lzip -d -c"
config BR2_TAR_OPTIONS config BR2_TAR_OPTIONS
string "Tar options" string "Tar options"
default "" default ""
@@ -337,9 +315,6 @@ config BR2_CCACHE_DIR
default "$(HOME)/.buildroot-ccache" default "$(HOME)/.buildroot-ccache"
help help
Where ccache should store cached files. Where ccache should store cached files.
If the Linux shell environment has defined the BR2_CCACHE_DIR
environment variable, then this overrides this configuration
item.
config BR2_CCACHE_INITIAL_SETUP config BR2_CCACHE_INITIAL_SETUP
string "Compiler cache initial setup" string "Compiler cache initial setup"
@@ -427,10 +402,13 @@ config BR2_DEBUG_3
endchoice endchoice
endif endif
choice
prompt "strip command for binaries on target"
default BR2_STRIP_strip
config BR2_STRIP_strip config BR2_STRIP_strip
bool "strip target binaries" bool "strip"
depends on !BR2_PACKAGE_HOST_ELF2FLT depends on !BR2_PACKAGE_HOST_ELF2FLT
default y
help help
Binaries and libraries in the target filesystem will be Binaries and libraries in the target filesystem will be
stripped using the normal 'strip' command. This allows to save stripped using the normal 'strip' command. This allows to save
@@ -438,9 +416,15 @@ config BR2_STRIP_strip
on the target are needed for native debugging, but not when on the target are needed for native debugging, but not when
remote debugging is used. remote debugging is used.
config BR2_STRIP_none
bool "none"
help
Do not strip binaries and libraries in the target filesystem.
endchoice
config BR2_STRIP_EXCLUDE_FILES config BR2_STRIP_EXCLUDE_FILES
string "executables that should not be stripped" string "executables that should not be stripped"
depends on BR2_STRIP_strip depends on !BR2_STRIP_none
default "" default ""
help help
You may specify a space-separated list of binaries and You may specify a space-separated list of binaries and
@@ -448,7 +432,7 @@ config BR2_STRIP_EXCLUDE_FILES
config BR2_STRIP_EXCLUDE_DIRS config BR2_STRIP_EXCLUDE_DIRS
string "directories that should be skipped when stripping" string "directories that should be skipped when stripping"
depends on BR2_STRIP_strip depends on !BR2_STRIP_none
default "" default ""
help help
You may specify a space-separated list of directories that You may specify a space-separated list of directories that
@@ -466,7 +450,7 @@ choice
config BR2_OPTIMIZE_0 config BR2_OPTIMIZE_0
bool "optimization level 0" bool "optimization level 0"
help help
Do not optimize. Do not optimize. This is the default.
config BR2_OPTIMIZE_1 config BR2_OPTIMIZE_1
bool "optimization level 1" bool "optimization level 1"
@@ -533,7 +517,6 @@ config BR2_OPTIMIZE_S
-falign-loops -falign-labels -freorder-blocks -falign-loops -falign-labels -freorder-blocks
-freorder-blocks-and-partition -fprefetch-loop-arrays -freorder-blocks-and-partition -fprefetch-loop-arrays
-ftree-vect-loop-version -ftree-vect-loop-version
This is the default.
endchoice endchoice
@@ -541,13 +524,10 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
bool "Enable google-breakpad support" bool "Enable google-breakpad support"
select BR2_PACKAGE_GOOGLE_BREAKPAD select BR2_PACKAGE_GOOGLE_BREAKPAD
depends on BR2_INSTALL_LIBSTDCPP depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_USE_WCHAR depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_TOOLCHAIN_HAS_THREADS
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
help help
This option will enable the use of google breakpad, a library This option will enable the use of google breakpad, a library
and tool suite that allows you to distribute an application to and tool suite that allows you to distribute an application to
@@ -575,6 +555,61 @@ config BR2_GOOGLE_BREAKPAD_INCLUDE_FILES
endif endif
choice
bool "build code with Stack Smashing Protection"
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
depends on BR2_TOOLCHAIN_HAS_SSP
help
Enable stack smashing protection support using GCC's
-fstack-protector option family.
See
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
for details.
Note that this requires the toolchain to have SSP support.
This is always the case for glibc and eglibc toolchain, but is
optional in uClibc toolchains.
config BR2_SSP_NONE
bool "None"
help
Disable stack-smashing protection.
config BR2_SSP_REGULAR
bool "-fstack-protector"
help
Emit extra code to check for buffer overflows, such as stack
smashing attacks. This is done by adding a guard variable to
functions with vulnerable objects. This includes functions
that call alloca, and functions with buffers larger than 8
bytes. The guards are initialized when a function is entered
and then checked when the function exits. If a guard check
fails, an error message is printed and the program exits.
config BR2_SSP_STRONG
bool "-fstack-protector-strong"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
help
Like -fstack-protector but includes additional functions to be
protected - those that have local array definitions, or have
references to local frame addresses.
comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_SSP_ALL
bool "-fstack-protector-all"
help
Like -fstack-protector except that all functions are
protected. This option might have a significant performance
impact on the compiled binaries.
endchoice
comment "Stack Smashing Protection needs a toolchain w/ SSP"
depends on !BR2_TOOLCHAIN_HAS_SSP
choice choice
bool "libraries" bool "libraries"
default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
@@ -666,152 +701,17 @@ config BR2_COMPILER_PARANOID_UNSAFE_PATH
config BR2_REPRODUCIBLE config BR2_REPRODUCIBLE
bool "Make the build reproducible (experimental)" bool "Make the build reproducible (experimental)"
# SOURCE_DATE_EPOCH support in toolchain-wrapper requires GCC 4.4
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
help help
This option will remove all sources of non-reproducibility This option will remove all sources of non-reproducibility
from the build process. For a given Buildroot configuration, from the build process. For a given Buildroot configuration,
this allows to generate exactly identical binaries from one this allows to generate exactly identical binaries from one
build to the other, including on different machines. build to the other, including on different machines.
The current implementation is restricted to builds with the
same output directory. Many (absolute) paths are recorded in
intermediary files, and it is very likely that some of these
paths leak into the target rootfs. If you build with the
same O=... path, however, the result is identical.
This is labeled as an experimental feature, as not all This is labeled as an experimental feature, as not all
packages behave properly to ensure reproducibility. packages behave properly to ensure reproducibility.
endmenu endmenu
comment "Security Hardening Options"
choice
bool "Stack Smashing Protection"
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
depends on BR2_TOOLCHAIN_HAS_SSP
help
Enable stack smashing protection support using GCC's
-fstack-protector option family.
See
http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
for details.
Note that this requires the toolchain to have SSP support.
This is always the case for glibc and eglibc toolchain, but is
optional in uClibc toolchains.
config BR2_SSP_NONE
bool "None"
help
Disable stack-smashing protection.
config BR2_SSP_REGULAR
bool "-fstack-protector"
help
Emit extra code to check for buffer overflows, such as stack
smashing attacks. This is done by adding a guard variable to
functions with vulnerable objects. This includes functions
that call alloca, and functions with buffers larger than 8
bytes. The guards are initialized when a function is entered
and then checked when the function exits. If a guard check
fails, an error message is printed and the program exits.
config BR2_SSP_STRONG
bool "-fstack-protector-strong"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
help
Like -fstack-protector but includes additional functions to be
protected - those that have local array definitions, or have
references to local frame addresses.
comment "Stack Smashing Protection strong needs a toolchain w/ gcc >= 4.9"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
config BR2_SSP_ALL
bool "-fstack-protector-all"
help
Like -fstack-protector except that all functions are
protected. This option might have a significant performance
impact on the compiled binaries.
endchoice
comment "Stack Smashing Protection needs a toolchain w/ SSP"
depends on !BR2_TOOLCHAIN_HAS_SSP
choice
bool "RELRO Protection"
depends on BR2_SHARED_LIBS
help
Enable a link-time protection know as RELRO (RELocation Read Only)
which helps to protect from certain type of exploitation techniques
altering the content of some ELF sections.
config BR2_RELRO_NONE
bool "None"
help
Disables Relocation link-time protections.
config BR2_RELRO_PARTIAL
bool "Partial"
help
This option makes the dynamic section not writeable after
initialization (with almost no performance penalty).
config BR2_RELRO_FULL
bool "Full"
help
This option includes the partial configuration, but also
marks the GOT as read-only at the cost of initialization time
during program loading, i.e every time an executable is started.
endchoice
comment "RELocation Read Only (RELRO) needs shared libraries"
depends on !BR2_SHARED_LIBS
choice
bool "Buffer-overflow Detection (FORTIFY_SOURCE)"
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on !BR2_OPTIMIZE_0
help
Enable the _FORTIFY_SOURCE macro which introduces additional
checks to detect buffer-overflows in the following standard library
functions: memcpy, mempcpy, memmove, memset, strcpy, stpcpy,
strncpy, strcat, strncat, sprintf, vsprintf, snprintf, vsnprintf,
gets.
NOTE: This feature requires an optimization level of s/1/2/3/g
Support for this feature has been present since GCC 4.x.
config BR2_FORTIFY_SOURCE_NONE
bool "None"
help
Disables additional checks to detect buffer-overflows.
config BR2_FORTIFY_SOURCE_1
bool "Conservative"
help
This option sets _FORTIFY_SOURCE to 1 and only introduces
checks that shouldn't change the behavior of conforming
programs. Adds checks at compile-time only.
config BR2_FORTIFY_SOURCE_2
bool "Aggressive"
help
This option sets _FORTIFY_SOURCES to 2 and some more
checking is added, but some conforming programs might fail.
Also adds checks at run-time (detected buffer overflow
terminates the program)
endchoice
comment "Fortify Source needs a glibc toolchain and optimization"
depends on (!BR2_TOOLCHAIN_USES_GLIBC || BR2_OPTIMIZE_0)
endmenu endmenu
source "toolchain/Config.in" source "toolchain/Config.in"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

219
Makefile
View File

@@ -2,7 +2,7 @@
# #
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org> # Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org> # Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
# Copyright (C) 2014-2018 by the Buildroot developers <buildroot@buildroot.org> # Copyright (C) 2014-2016 by the Buildroot developers <buildroot@buildroot.org>
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@@ -24,9 +24,6 @@
# You shouldn't need to mess with anything beyond this point... # You shouldn't need to mess with anything beyond this point...
#-------------------------------------------------------------- #--------------------------------------------------------------
# Delete default rules. We don't use them. This saves a bit of time.
.SUFFIXES:
# we want bash as shell # we want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \ else if [ -x /bin/bash ]; then echo /bin/bash; \
@@ -84,12 +81,9 @@ else # umask / $(CURDIR) / $(O)
# This is our default rule, so must come first # This is our default rule, so must come first
all: all:
.PHONY: all
# Set and export the version string # Set and export the version string
export BR2_VERSION := 2018.02.3 export BR2_VERSION := 2016.11.1
# Actual time the release is cut (for reproducible builds)
BR2_VERSION_EPOCH = 1529344000
# Save running make version since it's clobbered by the make package # Save running make version since it's clobbered by the make package
RUNNING_MAKE_VERSION := $(MAKE_VERSION) RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@@ -126,11 +120,10 @@ DATE := $(shell date +%Y%m%d)
# Need to export it, so it can be got from environment in children (eg. mconf) # Need to export it, so it can be got from environment in children (eg. mconf)
export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion) export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
# List of targets and target patterns for which .config doesn't need to be read in
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
defconfig %_defconfig allyesconfig allnoconfig alldefconfig silentoldconfig release \ defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \ randpackageconfig allyespackageconfig allnopackageconfig \
print-version olddefconfig distclean manual manual-% print-version olddefconfig distclean
# Some global targets do not trigger a build, but are used to collect # Some global targets do not trigger a build, but are used to collect
# metadata, or do various checks. When such targets are triggered, # metadata, or do various checks. When such targets are triggered,
@@ -141,12 +134,9 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
# We're building in two situations: when MAKECMDGOALS is empty # We're building in two situations: when MAKECMDGOALS is empty
# (default target is to build), or when MAKECMDGOALS contains # (default target is to build), or when MAKECMDGOALS contains
# something else than one of the nobuild_targets. # something else than one of the nobuild_targets.
nobuild_targets := source %-source \ nobuild_targets := source source-check \
legal-info %-legal-info external-deps _external-deps \ legal-info external-deps _external-deps \
clean distclean help show-targets graph-depends \ clean distclean help
%-graph-depends %-show-depends %-show-version \
graph-build graph-size list-defconfigs \
savedefconfig printvars
ifeq ($(MAKECMDGOALS),) ifeq ($(MAKECMDGOALS),)
BR_BUILDING = y BR_BUILDING = y
else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),) else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
@@ -175,10 +165,10 @@ endif
# bash prints the name of the directory on 'cd <dir>' if CDPATH is # bash prints the name of the directory on 'cd <dir>' if CDPATH is
# set, so unset it here to not cause problems. Notice that the export # set, so unset it here to not cause problems. Notice that the export
# line doesn't affect the environment of $(shell ..) calls. # line doesn't affect the environment of $(shell ..) calls, so
# explictly throw away any output from 'cd' here.
export CDPATH := export CDPATH :=
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) >/dev/null && pwd)
BASE_DIR := $(CANONICAL_O)
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist)) $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
@@ -249,13 +239,9 @@ endif
# timezone and locale may affect build output # timezone and locale may affect build output
ifeq ($(BR2_REPRODUCIBLE),y) ifeq ($(BR2_REPRODUCIBLE),y)
export TZ = UTC export TZ=UTC
export LANG = C export LANG=C
export LC_ALL = C export LC_ALL=C
export GZIP = -n
BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
DEPENDENCIES_HOST_PREREQ += host-fakedate
endif endif
# To put more focus on warnings, be less verbose as default # To put more focus on warnings, be less verbose as default
@@ -324,7 +310,6 @@ HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)
HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm) HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy) HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib) HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
SED := $(shell which sed || type -p sed) -i -e
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
@@ -363,22 +348,6 @@ ifneq ($(firstword $(HOSTCC_VERSION)),4)
HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION)) HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION))
endif endif
ifeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y)
# First, we try to use the user's configured locale (as that's the
# language they'd expect messages to be displayed), then we favour
# a non language-specific locale like C.UTF-8 if one is available,
# so we sort with the C locale to get it at the top.
# This is guaranteed to not be empty, because of the check in
# support/dependencies/dependencies.sh
HOST_UTF8_LOCALE := $(shell \
( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \
locale -a 2>/dev/null | LC_ALL=C sort \
) \
| grep -i -E 'utf-?8$$' \
| head -n 1)
HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE)
endif
# Make sure pkg-config doesn't look outside the buildroot tree # Make sure pkg-config doesn't look outside the buildroot tree
HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH) HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
unexport PKG_CONFIG_PATH unexport PKG_CONFIG_PATH
@@ -419,7 +388,6 @@ unexport QMAKESPEC
unexport TERMINFO unexport TERMINFO
unexport MACHINE unexport MACHINE
unexport O unexport O
unexport GCC_COLORS
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess) GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
@@ -439,7 +407,6 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-e s/arm.*/arm/ -e s/sa110/arm/ \ -e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \ -e s/aarch64.*/arm64/ \
-e s/bfin/blackfin/ \ -e s/bfin/blackfin/ \
-e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \ -e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \ -e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
@@ -449,21 +416,20 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
ZCAT := $(call qstrip,$(BR2_ZCAT)) ZCAT := $(call qstrip,$(BR2_ZCAT))
BZCAT := $(call qstrip,$(BR2_BZCAT)) BZCAT := $(call qstrip,$(BR2_BZCAT))
XZCAT := $(call qstrip,$(BR2_XZCAT)) XZCAT := $(call qstrip,$(BR2_XZCAT))
LZCAT := $(call qstrip,$(BR2_LZCAT))
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
# packages compiled for the host go here # packages compiled for the host go here
HOST_DIR := $(call qstrip,$(BR2_HOST_DIR)) HOST_DIR := $(call qstrip,$(BR2_HOST_DIR))
# Quotes are needed for spaces and all in the original PATH content. # Quotes are needed for spaces and all in the original PATH content.
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)" BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(HOST_DIR)/usr/bin:$(HOST_DIR)/usr/sbin:$(PATH)"
# Location of a file giving a big fat warning that output/target # Location of a file giving a big fat warning that output/target
# should not be used as the root filesystem. # should not be used as the root filesystem.
TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM
ifeq ($(BR2_CCACHE),y) ifeq ($(BR2_CCACHE),y)
CCACHE := $(HOST_DIR)/bin/ccache CCACHE := $(HOST_DIR)/usr/bin/ccache
BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR)) BR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR))
export BR_CACHE_DIR export BR_CACHE_DIR
HOSTCC := $(CCACHE) $(HOSTCC) HOSTCC := $(CCACHE) $(HOSTCC)
@@ -495,17 +461,11 @@ all: world
# may rely on it. # may rely on it.
include Makefile.legacy include Makefile.legacy
include system/system.mk
include package/Makefile.in include package/Makefile.in
# arch/arch.mk.* must be after package/Makefile.in because it may need to
# complement variables defined therein, like BR_NO_CHECK_HASH_FOR.
-include $(sort $(wildcard arch/arch.mk.*))
include support/dependencies/dependencies.mk include support/dependencies/dependencies.mk
PACKAGES += $(DEPENDENCIES_HOST_PREREQ) include toolchain/*.mk
include toolchain/*/*.mk
include $(sort $(wildcard toolchain/*.mk))
include $(sort $(wildcard toolchain/*/*.mk))
# Include the package override file if one has been provided in the # Include the package override file if one has been provided in the
# configuration. # configuration.
@@ -558,37 +518,19 @@ $(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\
endif endif
.PHONY: dirs
dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \ dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(HOST_DIR)/usr $(HOST_DIR)/lib $(BINARIES_DIR) $(HOST_DIR) $(BINARIES_DIR)
$(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG) $(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)
$(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig $(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
.PHONY: prepare
prepare: $(BUILD_DIR)/buildroot-config/auto.conf prepare: $(BUILD_DIR)/buildroot-config/auto.conf
.PHONY: world
world: target-post-image world: target-post-image
.PHONY: sdk .PHONY: all world toolchain dirs clean distclean source outputmakefile \
sdk: world legal-info legal-info-prepare legal-info-clean printvars help \
@$(call MESSAGE,"Rendering the SDK relocatable") list-defconfigs target-finalize target-post-image source-check
$(TOPDIR)/support/scripts/fix-rpath host
$(TOPDIR)/support/scripts/fix-rpath staging
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
# Compatibility symlink in case a post-build script still uses $(HOST_DIR)/usr
$(HOST_DIR)/usr: $(HOST_DIR)
@ln -snf . $@
$(HOST_DIR)/lib: $(HOST_DIR)
@mkdir -p $@
@case $(HOSTARCH) in \
(*64) ln -snf lib $(@D)/lib64;; \
(*) ln -snf lib $(@D)/lib32;; \
esac
# Populating the staging with the base directories is handled by the skeleton package # Populating the staging with the base directories is handled by the skeleton package
$(STAGING_DIR): $(STAGING_DIR):
@@ -642,7 +584,7 @@ define GENERATE_GLIBC_LOCALES
fi ; \ fi ; \
echo "Generating locale $${inputfile}.$${charmap}" ; \ echo "Generating locale $${inputfile}.$${charmap}" ; \
I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \ I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \
$(HOST_DIR)/bin/localedef \ $(HOST_DIR)/usr/bin/localedef \
--prefix=$(TARGET_DIR) \ --prefix=$(TARGET_DIR) \
--$(call LOWERCASE,$(BR2_ENDIAN))-endian \ --$(call LOWERCASE,$(BR2_ENDIAN))-endian \
-i $${inputfile} -f $${charmap} \ -i $${inputfile} -f $${charmap} \
@@ -692,13 +634,8 @@ endif
$(TARGETS_ROOTFS): target-finalize $(TARGETS_ROOTFS): target-finalize
.PHONY: target-finalize
target-finalize: $(PACKAGES) target-finalize: $(PACKAGES)
@$(call MESSAGE,"Finalizing target directory") @$(call MESSAGE,"Finalizing target directory")
# Check files that are touched by more than one package
./support/scripts/check-uniq-files -t target $(BUILD_DIR)/packages-file-list.txt
./support/scripts/check-uniq-files -t staging $(BUILD_DIR)/packages-file-list-staging.txt
./support/scripts/check-uniq-files -t host $(BUILD_DIR)/packages-file-list-host.txt
$(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep)) $(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \ rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \ $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
@@ -719,7 +656,7 @@ endif
rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
rm -rf $(TARGET_DIR)/usr/share/gtk-doc rm -rf $(TARGET_DIR)/usr/share/gtk-doc
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true -rmdir $(TARGET_DIR)/usr/share 2>/dev/null
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
# See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads # See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads
@@ -745,11 +682,7 @@ endif
echo "ID=buildroot"; \ echo "ID=buildroot"; \
echo "VERSION_ID=$(BR2_VERSION)"; \ echo "VERSION_ID=$(BR2_VERSION)"; \
echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \ echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
) > $(TARGET_DIR)/usr/lib/os-release ) > $(TARGET_DIR)/etc/os-release
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
@$(call MESSAGE,"Sanitizing RPATH in target tree")
$(TOPDIR)/support/scripts/fix-rpath target
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
$(call MESSAGE,"Copying overlay $(d)"); \ $(call MESSAGE,"Copying overlay $(d)"); \
@@ -761,37 +694,32 @@ endif
$(call MESSAGE,"Executing post-build script $(s)"); \ $(call MESSAGE,"Executing post-build script $(s)"); \
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) $(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
touch $(TARGET_DIR)/usr
.PHONY: target-post-image
target-post-image: $(TARGETS_ROOTFS) target-finalize target-post-image: $(TARGETS_ROOTFS) target-finalize
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \ @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \
$(call MESSAGE,"Executing post-image script $(s)"); \ $(call MESSAGE,"Executing post-image script $(s)"); \
$(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)) $(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
.PHONY: source
source: $(foreach p,$(PACKAGES),$(p)-all-source) source: $(foreach p,$(PACKAGES),$(p)-all-source)
.PHONY: _external-deps external-deps
_external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps) _external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps)
external-deps: external-deps:
@$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u @$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u
.PHONY: legal-info-clean # check if download URLs are outdated
source-check: $(foreach p,$(PACKAGES),$(p)-all-source-check)
legal-info-clean: legal-info-clean:
@rm -fr $(LEGAL_INFO_DIR) @rm -fr $(LEGAL_INFO_DIR)
.PHONY: legal-info-prepare
legal-info-prepare: $(LEGAL_INFO_DIR) legal-info-prepare: $(LEGAL_INFO_DIR)
@$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info") @$(call MESSAGE,"Collecting legal info")
@$(call legal-license-file,buildroot,buildroot,support/legal-info,COPYING,COPYING,HOST) @$(call legal-license-file,buildroot,COPYING,COPYING,HOST)
@$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,TARGET) @$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,TARGET)
@$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,HOST) @$(call legal-manifest,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,HOST)
@$(call legal-manifest,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved,HOST) @$(call legal-manifest,buildroot,$(BR2_VERSION_FULL),GPLv2+,COPYING,not saved,not saved,HOST)
@$(call legal-warning,the Buildroot source code has not been saved) @$(call legal-warning,the Buildroot source code has not been saved)
@cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config @cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config
.PHONY: legal-info
legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \
$(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST)
@cat support/legal-info/README.header >>$(LEGAL_REPORT) @cat support/legal-info/README.header >>$(LEGAL_REPORT)
@@ -806,14 +734,9 @@ legal-info: dirs legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p
mv .legal-info.sha256 legal-info.sha256) mv .legal-info.sha256 legal-info.sha256)
@echo "Legal info produced in $(LEGAL_INFO_DIR)" @echo "Legal info produced in $(LEGAL_INFO_DIR)"
.PHONY: show-targets
show-targets: show-targets:
@echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS)) @echo $(PACKAGES) $(TARGETS_ROOTFS)
.PHONY: show-build-order
show-build-order: $(patsubst %,%-show-build-order,$(PACKAGES))
.PHONY: graph-build
graph-build: $(O)/build/build-time.log graph-build: $(O)/build/build-time.log
@install -d $(GRAPHS_DIR) @install -d $(GRAPHS_DIR)
$(foreach o,name build duration,./support/scripts/graph-build-time \ $(foreach o,name build duration,./support/scripts/graph-build-time \
@@ -825,12 +748,10 @@ graph-build: $(O)/build/build-time.log
--output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \ --output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \
$(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)) $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep))
.PHONY: graph-depends-requirements
graph-depends-requirements: graph-depends-requirements:
@dot -? >/dev/null 2>&1 || \ @dot -? >/dev/null 2>&1 || \
{ echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends" >&2; exit 1; } { echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends" >&2; exit 1; }
.PHONY: graph-depends
graph-depends: graph-depends-requirements graph-depends: graph-depends-requirements
@$(INSTALL) -d $(GRAPHS_DIR) @$(INSTALL) -d $(GRAPHS_DIR)
@cd "$(CONFIG_DIR)"; \ @cd "$(CONFIG_DIR)"; \
@@ -840,7 +761,6 @@ graph-depends: graph-depends-requirements
-o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \ -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \
$(GRAPHS_DIR)/$(@).dot $(GRAPHS_DIR)/$(@).dot
.PHONY: graph-size
graph-size: graph-size:
$(Q)mkdir -p $(GRAPHS_DIR) $(Q)mkdir -p $(GRAPHS_DIR)
$(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \ $(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \
@@ -848,21 +768,13 @@ graph-size:
--file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \ --file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv --package-size-csv $(GRAPHS_DIR)/package-size-stats.csv
.PHONY: check-dependencies
check-dependencies: check-dependencies:
@cd "$(CONFIG_DIR)"; \ @cd "$(CONFIG_DIR)"; \
$(TOPDIR)/support/scripts/graph-depends -C $(TOPDIR)/support/scripts/graph-depends -C
else # ifeq ($(BR2_HAVE_DOT_CONFIG),y) else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Some subdirectories are also package names. To avoid that "make linux" all: menuconfig
# on an unconfigured tree produces "Nothing to be done", add an explicit
# rule for it.
# Also for 'all' we error out and ask the user to configure first.
.PHONY: linux toolchain
linux toolchain all: outputmakefile
$(error Please configure Buildroot first (e.g. "make menuconfig"))
@exit 1
endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y) endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
@@ -914,20 +826,50 @@ config: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
# no values are set for the legacy options so a subsequent oldconfig # no values are set for the legacy options so a subsequent oldconfig
# will query them. Therefore, run an additional olddefconfig. # will query them. Therefore, run an additional olddefconfig.
randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig oldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
randconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --randconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
randpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig allyesconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allyesconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnoconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --allnoconfig $(CONFIG_CONFIG_IN)
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
randpackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \ @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \ KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --$(subst package,,$@) $(CONFIG_CONFIG_IN) $< --randconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg @rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
oldconfig silentoldconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN) @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --allyesconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
$< --allnoconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
@$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/null
silentoldconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
olddefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN)
defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig defconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN) @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
@@ -957,7 +899,6 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf prepare-kconfig
# outputmakefile generates a Makefile in the output directory, if using a # outputmakefile generates a Makefile in the output directory, if using a
# separate output directory. This allows convenient use of make in the # separate output directory. This allows convenient use of make in the
# output directory. # output directory.
.PHONY: outputmakefile
outputmakefile: outputmakefile:
ifeq ($(NEED_WRAPPER),y) ifeq ($(NEED_WRAPPER),y)
$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O) $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
@@ -974,24 +915,18 @@ $(BUILD_DIR)/.br2-external.in: $(BUILD_DIR)
# Makefiles. Alternatively, if a non-empty VARS variable is passed, # Makefiles. Alternatively, if a non-empty VARS variable is passed,
# only the variables matching the make pattern passed in VARS are # only the variables matching the make pattern passed in VARS are
# displayed. # displayed.
.PHONY: printvars
printvars: printvars:
@:$(foreach V, \ @$(foreach V, \
$(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \ $(sort $(if $(VARS),$(filter $(VARS),$(.VARIABLES)),$(.VARIABLES))), \
$(if $(filter-out environment% default automatic, \ $(if $(filter-out environment% default automatic, \
$(origin $V)), \ $(origin $V)), \
$(if $(QUOTED_VARS),\ $(info $V=$($V) ($(value $V)))))
$(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \
$(info $V=$(if $(RAW_VARS),$(value $V),$($V))))))
# ' Syntax colouring...
.PHONY: clean
clean: clean:
rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \ rm -rf $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(BUILD_DIR) $(BASE_DIR)/staging \ $(BUILD_DIR) $(BASE_DIR)/staging \
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(LEGAL_INFO_DIR) $(GRAPHS_DIR)
.PHONY: distclean
distclean: clean distclean: clean
ifeq ($(O),$(CURDIR)/output) ifeq ($(O),$(CURDIR)/output)
rm -rf $(O) rm -rf $(O)
@@ -999,7 +934,6 @@ endif
rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \ rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \
$(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE) $(CONFIG_DIR)/.auto.deps $(BR2_EXTERNAL_FILE)
.PHONY: help
help: help:
@echo 'Cleaning:' @echo 'Cleaning:'
@echo ' clean - delete all files created by build' @echo ' clean - delete all files created by build'
@@ -1008,7 +942,6 @@ help:
@echo 'Build:' @echo 'Build:'
@echo ' all - make world' @echo ' all - make world'
@echo ' toolchain - build toolchain' @echo ' toolchain - build toolchain'
@echo ' sdk - build relocatable SDK'
@echo @echo
@echo 'Configuration:' @echo 'Configuration:'
@echo ' menuconfig - interactive curses-based configurator' @echo ' menuconfig - interactive curses-based configurator'
@@ -1024,7 +957,6 @@ help:
@echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)' @echo ' savedefconfig - Save current config to BR2_DEFCONFIG (minimal config)'
@echo ' allyesconfig - New config where all options are accepted with yes' @echo ' allyesconfig - New config where all options are accepted with yes'
@echo ' allnoconfig - New config where all options are answered with no' @echo ' allnoconfig - New config where all options are answered with no'
@echo ' alldefconfig - New config where all options are set to default'
@echo ' randpackageconfig - New config with random answer to package options' @echo ' randpackageconfig - New config with random answer to package options'
@echo ' allyespackageconfig - New config where pkg options are accepted with yes' @echo ' allyespackageconfig - New config where pkg options are accepted with yes'
@echo ' allnopackageconfig - New config where package options are answered with no' @echo ' allnopackageconfig - New config where package options are answered with no'
@@ -1063,9 +995,9 @@ help:
@echo @echo
@echo 'Miscellaneous:' @echo 'Miscellaneous:'
@echo ' source - download all sources needed for offline-build' @echo ' source - download all sources needed for offline-build'
@echo ' source-check - check selected packages for valid download URLs'
@echo ' external-deps - list external packages used' @echo ' external-deps - list external packages used'
@echo ' legal-info - generate info about license compliance' @echo ' legal-info - generate info about license compliance'
@echo ' printvars - dump all the internal variables'
@echo @echo
@echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build' @echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build'
@echo ' make O=dir - Locate all output files in "dir", including .config' @echo ' make O=dir - Locate all output files in "dir", including .config'
@@ -1097,7 +1029,6 @@ endef
# We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS, # We iterate over BR2_EXTERNAL_NAMES rather than BR2_EXTERNAL_DIRS,
# because we want to display the name of the br2-external tree. # because we want to display the name of the br2-external tree.
.PHONY: list-defconfigs
list-defconfigs: list-defconfigs:
$(call list-defconfigs,$(TOPDIR)) $(call list-defconfigs,$(TOPDIR))
$(foreach name,$(BR2_EXTERNAL_NAMES),\ $(foreach name,$(BR2_EXTERNAL_NAMES),\
@@ -1120,14 +1051,8 @@ release:
print-version: print-version:
@echo $(BR2_VERSION_FULL) @echo $(BR2_VERSION_FULL)
.PHONY: .gitlab-ci.yml
.gitlab-ci.yml: .gitlab-ci.yml.in
cp $< $@
(cd configs; LC_ALL=C ls -1 *_defconfig) | sed 's/$$/: *defconfig/' >> $@
./support/testing/run-tests -l 2>&1 | sed -r -e '/^test_run \((.*)\).*/!d; s//\1: *runtime_test/' | LC_ALL=C sort >> $@
include docs/manual/manual.mk include docs/manual/manual.mk
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))) -include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
.PHONY: $(noconfig_targets) .PHONY: $(noconfig_targets)

View File

@@ -79,22 +79,12 @@ config BR2_aarch64_be
config BR2_bfin config BR2_bfin
bool "Blackfin" bool "Blackfin"
select BR2_ARCH_HAS_FDPIC_SUPPORT select BR2_ARCH_HAS_FDPIC_SUPPORT
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
help help
The Blackfin is a family of 16 or 32-bit microprocessors developed, The Blackfin is a family of 16 or 32-bit microprocessors developed,
manufactured and marketed by Analog Devices. manufactured and marketed by Analog Devices.
http://www.analog.com/ http://www.analog.com/
http://en.wikipedia.org/wiki/Blackfin http://en.wikipedia.org/wiki/Blackfin
config BR2_csky
bool "csky"
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_ARCH_HAS_MMU_MANDATORY
help
csky is processor IP from china.
http://www.c-sky.com/
http://www.github.com/c-sky
config BR2_i386 config BR2_i386
bool "i386" bool "i386"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@@ -169,13 +159,6 @@ config BR2_nios2
http://www.altera.com/ http://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II http://en.wikipedia.org/wiki/Nios_II
config BR2_or1k
bool "OpenRISC"
select BR2_ARCH_HAS_MMU_MANDATORY
help
OpenRISC is a free and open processor for embedded system.
http://openrisc.io
config BR2_powerpc config BR2_powerpc
bool "PowerPC" bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
@@ -252,37 +235,6 @@ config BR2_xtensa
endchoice endchoice
# For some architectures or specific cores, our internal toolchain
# backend is not suitable (like, missing support in upstream gcc, or
# no ChipCo fork exists...)
config BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
bool
config BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT
bool
default y if !BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
# The following symbols are selected by the individual
# Config.in.$ARCH files
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
bool
config BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8
config BR2_ARCH_NEEDS_GCC_AT_LEAST_5
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_ARCH_NEEDS_GCC_AT_LEAST_6
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_ARCH_NEEDS_GCC_AT_LEAST_7
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
# The following string values are defined by the individual # The following string values are defined by the individual
# Config.in.$ARCH files # Config.in.$ARCH files
config BR2_ARCH config BR2_ARCH
@@ -297,12 +249,6 @@ config BR2_GCC_TARGET_ARCH
config BR2_GCC_TARGET_ABI config BR2_GCC_TARGET_ABI
string string
config BR2_GCC_TARGET_NAN
string
config BR2_GCC_TARGET_FP32_MODE
string
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
string string
@@ -331,12 +277,6 @@ config BR2_GCC_TARGET_MODE
config BR2_BINFMT_SUPPORTS_SHARED config BR2_BINFMT_SUPPORTS_SHARED
bool bool
# Must match the name of the architecture from readelf point of view,
# i.e the "Machine:" field of readelf output. See get_machine_name()
# in binutils/readelf.c for the list of possible values.
config BR2_READELF_ARCH_NAME
string
# Set up target binary format # Set up target binary format
choice choice
prompt "Target Binary Format" prompt "Target Binary Format"
@@ -414,18 +354,18 @@ if BR2_arcle || BR2_arceb
source "arch/Config.in.arc" source "arch/Config.in.arc"
endif endif
if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be if BR2_arm || BR2_armeb
source "arch/Config.in.arm" source "arch/Config.in.arm"
endif endif
if BR2_aarch64 || BR2_aarch64_be
source "arch/Config.in.aarch64"
endif
if BR2_bfin if BR2_bfin
source "arch/Config.in.bfin" source "arch/Config.in.bfin"
endif endif
if BR2_csky
source "arch/Config.in.csky"
endif
if BR2_m68k if BR2_m68k
source "arch/Config.in.m68k" source "arch/Config.in.m68k"
endif endif
@@ -442,10 +382,6 @@ if BR2_nios2
source "arch/Config.in.nios2" source "arch/Config.in.nios2"
endif endif
if BR2_or1k
source "arch/Config.in.or1k"
endif
if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc" source "arch/Config.in.powerpc"
endif endif

7
arch/Config.in.aarch64 Normal file
View File

@@ -0,0 +1,7 @@
config BR2_ARCH
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN
default "LITTLE" if BR2_aarch64
default "BIG" if BR2_aarch64_be

View File

@@ -38,10 +38,6 @@ config BR2_GCC_TARGET_CPU
default "arc700" if BR2_arc770d default "arc700" if BR2_arc770d
default "archs" if BR2_archs38 default "archs" if BR2_archs38
config BR2_READELF_ARCH_NAME
default "ARCompact" if BR2_arc750d || BR2_arc770d
default "ARCv2" if BR2_archs38
choice choice
prompt "MMU Page Size" prompt "MMU Page Size"
default BR2_ARC_PAGE_SIZE_8K default BR2_ARC_PAGE_SIZE_8K

View File

@@ -31,10 +31,6 @@ config BR2_ARM_CPU_HAS_VFPV4
bool bool
select BR2_ARM_CPU_HAS_VFPV3 select BR2_ARM_CPU_HAS_VFPV3
config BR2_ARM_CPU_HAS_FP_ARMV8
bool
select BR2_ARM_CPU_HAS_VFPV4
config BR2_ARM_CPU_HAS_ARM config BR2_ARM_CPU_HAS_ARM
bool bool
@@ -59,18 +55,13 @@ config BR2_ARM_CPU_ARMV7A
config BR2_ARM_CPU_ARMV7M config BR2_ARM_CPU_ARMV7M
bool bool
config BR2_ARM_CPU_ARMV8A
bool
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
default BR2_cortex_a53 if BR2_ARCH_IS_64 depends on BR2_arm || BR2_armeb
default BR2_arm926t default BR2_arm926t
help help
Specific CPU variant to use Specific CPU variant to use
if !BR2_ARCH_IS_64
comment "armv4 cores"
config BR2_arm920t config BR2_arm920t
bool "arm920t" bool "arm920t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@@ -83,18 +74,6 @@ config BR2_arm922t
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV4 select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_fa526
bool "fa526/626"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_strongarm
bool "strongarm sa110/sa1100"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV4
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv5 cores"
config BR2_arm926t config BR2_arm926t
bool "arm926t" bool "arm926t"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@@ -102,19 +81,6 @@ config BR2_arm926t
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5 select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_iwmmxt
bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_xscale
bool "xscale"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV5
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv6 cores"
config BR2_arm1136j_s config BR2_arm1136j_s
bool "arm1136j-s" bool "arm1136j-s"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@@ -148,8 +114,6 @@ config BR2_arm11mpcore
select BR2_ARM_CPU_HAS_THUMB select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_ARMV6 select BR2_ARM_CPU_ARMV6
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv7a cores"
config BR2_cortex_a5 config BR2_cortex_a5
bool "cortex-A5" bool "cortex-A5"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@@ -198,15 +162,6 @@ config BR2_cortex_a15
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a15_a7
bool "cortex-A15/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
config BR2_cortex_a17 config BR2_cortex_a17
bool "cortex-A17" bool "cortex-A17"
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
@@ -215,24 +170,6 @@ config BR2_cortex_a17
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a17_a7
bool "cortex-A17/A7 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON
select BR2_ARM_CPU_HAS_VFPV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_pj4
bool "pj4"
select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_ARMV7A
select BR2_ARCH_HAS_MMU_OPTIONAL
comment "armv7m cores"
config BR2_cortex_m3 config BR2_cortex_m3
bool "cortex-M3" bool "cortex-M3"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
@@ -241,197 +178,33 @@ config BR2_cortex_m4
bool "cortex-M4" bool "cortex-M4"
select BR2_ARM_CPU_HAS_THUMB2 select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_ARMV7M select BR2_ARM_CPU_ARMV7M
endif # !BR2_ARCH_IS_64 config BR2_fa526
bool "fa526/626"
comment "armv8 cores"
config BR2_cortex_a32
bool "cortex-A32"
depends on !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_ARM select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON select BR2_ARM_CPU_ARMV4
select BR2_ARM_CPU_HAS_THUMB2
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_pj4
config BR2_cortex_a35 bool "pj4"
bool "cortex-A35" select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_VFPV3
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_ARMV7A
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 config BR2_strongarm
config BR2_cortex_a53 bool "strongarm sa110/sa1100"
bool "cortex-A53" select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_ARMV4
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57 config BR2_xscale
bool "cortex-A57" bool "xscale"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_THUMB
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 select BR2_ARM_CPU_ARMV5
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
config BR2_cortex_a57_a53 config BR2_iwmmxt
bool "cortex-A57/A53 big.LITTLE" bool "iwmmxt"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 select BR2_ARM_CPU_HAS_ARM
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 select BR2_ARM_CPU_ARMV5
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a72
bool "cortex-A72"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_cortex_a72_a53
bool "cortex-A72/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_cortex_a73
bool "cortex-A73"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_cortex_a73_a35
bool "cortex-A73/A35 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_cortex_a73_a53
bool "cortex-A73/A53 big.LITTLE"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_exynos_m1
bool "exynos-m1"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_falkor
bool "falkor"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_qdf24xx
bool "qdf24xx"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
if BR2_ARCH_IS_64
config BR2_thunderx
bool "thunderx"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_thunderxt81
bool "thunderxt81"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt83
bool "thunderxt83"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88
bool "thunderxt88"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderxt88p1
bool "thunderxt88p1"
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
endif # BR2_ARCH_IS_64
config BR2_xgene1
bool "xgene1"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
if BR2_ARCH_IS_64
comment "armv8.1a cores"
config BR2_thunderx2t99
bool "thunderx2t99"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_thunderx2t99p1
bool "thunderx2t99p1"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
config BR2_vulcan
bool "vulcan"
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV8A
select BR2_ARCH_HAS_MMU_OPTIONAL
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
endif # BR2_ARCH_IS_64
endchoice endchoice
config BR2_ARM_ENABLE_NEON config BR2_ARM_ENABLE_NEON
@@ -511,7 +284,7 @@ endchoice
choice choice
prompt "Floating point strategy" prompt "Floating point strategy"
default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 depends on BR2_ARM_EABI || BR2_ARM_EABIHF
default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4 default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
@@ -622,25 +395,10 @@ config BR2_ARM_FPU_NEON_VFPV4
example on Cortex-A5 and Cortex-A7, support for VFPv4 and example on Cortex-A5 and Cortex-A7, support for VFPv4 and
NEON is optional. NEON is optional.
config BR2_ARM_FPU_FP_ARMV8
bool "FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
help
This option allows to use the ARMv8 floating point unit.
config BR2_ARM_FPU_NEON_FP_ARMV8
bool "NEON/FP-ARMv8"
depends on BR2_ARM_CPU_HAS_FP_ARMV8
depends on BR2_ARM_CPU_HAS_NEON
help
This option allows to use both the ARMv8 floating point unit
and the NEON SIMD unit for floating point operations.
endchoice endchoice
choice choice
prompt "ARM instruction set" prompt "ARM instruction set"
depends on BR2_arm || BR2_armeb
config BR2_ARM_INSTRUCTIONS_ARM config BR2_ARM_INSTRUCTIONS_ARM
bool "ARM" bool "ARM"
@@ -676,86 +434,49 @@ config BR2_ARM_INSTRUCTIONS_THUMB2
endchoice endchoice
config BR2_ARCH config BR2_ARCH
default "arm" if BR2_arm default "arm" if BR2_arm
default "armeb" if BR2_armeb default "armeb" if BR2_armeb
default "aarch64" if BR2_aarch64
default "aarch64_be" if BR2_aarch64_be
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if (BR2_arm || BR2_aarch64) default "LITTLE" if BR2_arm
default "BIG" if (BR2_armeb || BR2_aarch64_be) default "BIG" if BR2_armeb
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
# armv4
default "arm920t" if BR2_arm920t default "arm920t" if BR2_arm920t
default "arm922t" if BR2_arm922t default "arm922t" if BR2_arm922t
default "fa526" if BR2_fa526
default "strongarm" if BR2_strongarm
# armv5
default "arm926ej-s" if BR2_arm926t default "arm926ej-s" if BR2_arm926t
default "iwmmxt" if BR2_iwmmxt
default "xscale" if BR2_xscale
# armv6
default "arm1136j-s" if BR2_arm1136j_s default "arm1136j-s" if BR2_arm1136j_s
default "arm1136jf-s" if BR2_arm1136jf_s default "arm1136jf-s" if BR2_arm1136jf_s
default "arm1176jz-s" if BR2_arm1176jz_s default "arm1176jz-s" if BR2_arm1176jz_s
default "arm1176jzf-s" if BR2_arm1176jzf_s default "arm1176jzf-s" if BR2_arm1176jzf_s
default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2 default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
default "mpcorenovfp" if BR2_arm11mpcore default "mpcorenovfp" if BR2_arm11mpcore
# armv7a
default "cortex-a5" if BR2_cortex_a5 default "cortex-a5" if BR2_cortex_a5
default "cortex-a7" if BR2_cortex_a7 default "cortex-a7" if BR2_cortex_a7
default "cortex-a8" if BR2_cortex_a8 default "cortex-a8" if BR2_cortex_a8
default "cortex-a9" if BR2_cortex_a9 default "cortex-a9" if BR2_cortex_a9
default "cortex-a12" if BR2_cortex_a12 default "cortex-a12" if BR2_cortex_a12
default "cortex-a15" if BR2_cortex_a15 default "cortex-a15" if BR2_cortex_a15
default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
default "cortex-a17" if BR2_cortex_a17 default "cortex-a17" if BR2_cortex_a17
default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
default "marvell-pj4" if BR2_pj4
# armv7m
default "cortex-m3" if BR2_cortex_m3 default "cortex-m3" if BR2_cortex_m3
default "cortex-m4" if BR2_cortex_m4 default "cortex-m4" if BR2_cortex_m4
# armv8a default "fa526" if BR2_fa526
default "cortex-a32" if BR2_cortex_a32 default "marvell-pj4" if BR2_pj4
default "cortex-a35" if BR2_cortex_a35 default "strongarm" if BR2_strongarm
default "cortex-a53" if BR2_cortex_a53 default "xscale" if BR2_xscale
default "cortex-a57" if BR2_cortex_a57 default "iwmmxt" if BR2_iwmmxt
default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
default "cortex-a72" if BR2_cortex_a72
default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
default "cortex-a73" if BR2_cortex_a73
default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35
default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53
default "exynos-m1" if BR2_exynos_m1
default "falkor" if BR2_falkor
default "qdf24xx" if BR2_qdf24xx
default "thunderx" if BR2_thunderx
default "thunderxt81" if BR2_thunderxt81
default "thunderxt83" if BR2_thunderxt83
default "thunderxt88" if BR2_thunderxt88
default "thunderxt88p1" if BR2_thunderxt88p1
default "xgene1" if BR2_xgene1
# armv8.1a
default "thunderx2t99" if BR2_thunderx2t99
default "thunderx2t99p1" if BR2_thunderx2t99p1
default "vulcan" if BR2_vulcan
config BR2_GCC_TARGET_ABI config BR2_GCC_TARGET_ABI
default "aapcs-linux" if BR2_arm || BR2_armeb default "aapcs-linux"
default "lp64" if BR2_aarch64 || BR2_aarch64_be
config BR2_GCC_TARGET_FPU config BR2_GCC_TARGET_FPU
depends on BR2_arm || BR2_armeb
default "vfp" if BR2_ARM_FPU_VFPV2 default "vfp" if BR2_ARM_FPU_VFPV2
default "vfpv3" if BR2_ARM_FPU_VFPV3 default "vfpv3" if BR2_ARM_FPU_VFPV3
default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
default "vfpv4" if BR2_ARM_FPU_VFPV4 default "vfpv4" if BR2_ARM_FPU_VFPV4
default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16 default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
default "neon" if BR2_ARM_FPU_NEON default "neon" if BR2_ARM_FPU_NEON
default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
config BR2_GCC_TARGET_FLOAT_ABI config BR2_GCC_TARGET_FLOAT_ABI
default "soft" if BR2_ARM_SOFT_FLOAT default "soft" if BR2_ARM_SOFT_FLOAT
@@ -765,7 +486,3 @@ config BR2_GCC_TARGET_FLOAT_ABI
config BR2_GCC_TARGET_MODE config BR2_GCC_TARGET_MODE
default "arm" if BR2_ARM_INSTRUCTIONS_ARM default "arm" if BR2_ARM_INSTRUCTIONS_ARM
default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2 default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
config BR2_READELF_ARCH_NAME
default "ARM" if BR2_arm || BR2_armeb
default "AArch64" if BR2_aarch64 || BR2_aarch64_be

View File

@@ -4,6 +4,14 @@ choice
default BR2_bf532 default BR2_bf532
help help
Specify target CPU Specify target CPU
config BR2_bf606
bool "bf606"
config BR2_bf607
bool "bf607"
config BR2_bf608
bool "bf608"
config BR2_bf609
bool "bf609"
config BR2_bf512 config BR2_bf512
bool "bf512" bool "bf512"
config BR2_bf514 config BR2_bf514
@@ -97,6 +105,3 @@ config BR2_GCC_TARGET_CPU_REVISION
value of the -mcpu option. For example, if the selected CPU is value of the -mcpu option. For example, if the selected CPU is
bf609, and then selected CPU revision is "0.0", then gcc will bf609, and then selected CPU revision is "0.0", then gcc will
receive the -mcpu=bf609-0.0 option. receive the -mcpu=bf609-0.0 option.
config BR2_READELF_ARCH_NAME
default "Analog Devices Blackfin"

View File

@@ -1,48 +0,0 @@
choice
prompt "Target Architecture Variant"
default BR2_ck610
help
Specific CPU variant to use
config BR2_ck610
bool "ck610"
config BR2_ck807
bool "ck807"
config BR2_ck810
bool "ck810"
endchoice
config BR2_CSKY_FPU
bool "Enable FPU coprocessor"
depends on BR2_ck810 || BR2_ck807
help
You can say N here if your C-SKY CPU doesn't have a
Floating-Point Coprocessor or if you don't need FPU support
for your user-space programs.
config BR2_CSKY_DSP
bool "Enable DSP enhanced instructions"
depends on BR2_ck810 || BR2_ck807
config BR2_ARCH
default "csky"
config BR2_ENDIAN
default "LITTLE"
config BR2_GCC_TARGET_CPU
default "ck610" if (BR2_ck610 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807" if (BR2_ck807 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807e" if (BR2_ck807 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck807f" if (BR2_ck807 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck807ef" if (BR2_ck807 && BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck810" if (BR2_ck810 && !BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck810e" if (BR2_ck810 && !BR2_CSKY_FPU && BR2_CSKY_DSP)
default "ck810f" if (BR2_ck810 && BR2_CSKY_FPU && !BR2_CSKY_DSP)
default "ck810ef" if (BR2_ck810 && BR2_CSKY_FPU && BR2_CSKY_DSP)
config BR2_READELF_ARCH_NAME
default "CSKY"

View File

@@ -35,6 +35,3 @@ endchoice
config BR2_GCC_TARGET_CPU config BR2_GCC_TARGET_CPU
default "68040" if BR2_m68k_68040 default "68040" if BR2_m68k_68040
default "5208" if BR2_m68k_cf5208 default "5208" if BR2_m68k_cf5208
config BR2_READELF_ARCH_NAME
default "MC68000"

View File

@@ -6,9 +6,6 @@ config BR2_ENDIAN
default "LITTLE" if BR2_microblazeel default "LITTLE" if BR2_microblazeel
default "BIG" if BR2_microblazebe default "BIG" if BR2_microblazebe
config BR2_READELF_ARCH_NAME
default "Xilinx MicroBlaze"
config BR2_microblaze config BR2_microblaze
bool bool
default y if BR2_microblazeel || BR2_microblazebe default y if BR2_microblazeel || BR2_microblazebe

View File

@@ -1,30 +1,20 @@
# mips default CPU ISAs # mips default CPU ISAs
config BR2_MIPS_CPU_MIPS32 config BR2_MIPS_CPU_MIPS32
bool bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS32R2 config BR2_MIPS_CPU_MIPS32R2
bool bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS32R5 config BR2_MIPS_CPU_MIPS32R5
bool bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS32R6 config BR2_MIPS_CPU_MIPS32R6
bool bool
select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS64 config BR2_MIPS_CPU_MIPS64
bool bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS64R2 config BR2_MIPS_CPU_MIPS64R2
bool bool
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_CPU_MIPS64R5 config BR2_MIPS_CPU_MIPS64R5
bool bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_CPU_MIPS64R6 config BR2_MIPS_CPU_MIPS64R6
bool bool
select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
choice choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
@@ -57,23 +47,18 @@ config BR2_mips_interaptiv
bool "interAptiv" bool "interAptiv"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R2 select BR2_MIPS_CPU_MIPS32R2
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_m5150 config BR2_mips_m5150
bool "M5150" bool "M5150"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5 select BR2_MIPS_CPU_MIPS32R5
select BR2_MIPS_NAN_2008
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_m6250 config BR2_mips_m6250
bool "M6250" bool "M6250"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_MIPS_CPU_MIPS32R6 select BR2_MIPS_CPU_MIPS32R6
config BR2_mips_p5600 config BR2_mips_p5600
bool "P5600" bool "P5600"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS32R5 select BR2_MIPS_CPU_MIPS32R5
select BR2_MIPS_NAN_2008
config BR2_mips_xburst config BR2_mips_xburst
bool "XBurst" bool "XBurst"
depends on !BR2_ARCH_IS_64 depends on !BR2_ARCH_IS_64
@@ -107,11 +92,9 @@ config BR2_mips_i6400
bool "I6400" bool "I6400"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_MIPS_CPU_MIPS64R6 select BR2_MIPS_CPU_MIPS64R6
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
config BR2_mips_p6600 config BR2_mips_p6600
bool "P6600" bool "P6600"
depends on BR2_ARCH_IS_64 depends on BR2_ARCH_IS_64
select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
select BR2_MIPS_CPU_MIPS64R6 select BR2_MIPS_CPU_MIPS64R6
endchoice endchoice
@@ -143,64 +126,6 @@ config BR2_MIPS_SOFT_FLOAT
floating point functions, then everything will need to be floating point functions, then everything will need to be
compiled with soft floating point support (-msoft-float). compiled with soft floating point support (-msoft-float).
choice
prompt "FP mode"
depends on !BR2_ARCH_IS_64 && !BR2_MIPS_SOFT_FLOAT
default BR2_MIPS_FP32_MODE_XX
help
MIPS32 supports different FP modes (32,xx,64). Information about FP
modes can be found here:
https://sourceware.org/binutils/docs/as/MIPS-Options.html
https://dmz-portal.imgtec.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking#5._Generating_modeless_code
config BR2_MIPS_FP32_MODE_32
bool "32"
depends on !BR2_MIPS_CPU_MIPS32R6
config BR2_MIPS_FP32_MODE_XX
bool "xx"
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
config BR2_MIPS_FP32_MODE_64
bool "64"
depends on !BR2_MIPS_CPU_MIPS32
endchoice
config BR2_GCC_TARGET_FP32_MODE
default "32" if BR2_MIPS_FP32_MODE_32
default "xx" if BR2_MIPS_FP32_MODE_XX
default "64" if BR2_MIPS_FP32_MODE_64
config BR2_MIPS_NAN_LEGACY
bool
config BR2_MIPS_NAN_2008
bool
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
choice
prompt "Target NaN"
depends on BR2_mips_32r5 || BR2_mips_64r5
default BR2_MIPS_ENABLE_NAN_2008
help
MIPS supports two different NaN encodings, legacy and 2008.
Information about MIPS NaN encodings can be found here:
https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html
config BR2_MIPS_ENABLE_NAN_LEGACY
bool "legacy"
select BR2_MIPS_NAN_LEGACY
config BR2_MIPS_ENABLE_NAN_2008
bool "2008"
depends on !BR2_MIPS_SOFT_FLOAT
select BR2_MIPS_NAN_2008
endchoice
config BR2_GCC_TARGET_NAN
default "legacy" if BR2_MIPS_NAN_LEGACY
default "2008" if BR2_MIPS_NAN_2008
config BR2_ARCH config BR2_ARCH
default "mips" if BR2_mips default "mips" if BR2_mips
default "mipsel" if BR2_mipsel default "mipsel" if BR2_mipsel
@@ -209,7 +134,7 @@ config BR2_ARCH
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if BR2_mipsel || BR2_mips64el default "LITTLE" if BR2_mipsel || BR2_mips64el
default "BIG" if BR2_mips || BR2_mips64 default "BIG" if BR2_mips || BR2_mips64
config BR2_GCC_TARGET_ARCH config BR2_GCC_TARGET_ARCH
default "mips32" if BR2_mips_32 default "mips32" if BR2_mips_32
@@ -236,6 +161,3 @@ config BR2_GCC_TARGET_ABI
default "32" if BR2_MIPS_OABI32 default "32" if BR2_MIPS_OABI32
default "n32" if BR2_MIPS_NABI32 default "n32" if BR2_MIPS_NABI32
default "64" if BR2_MIPS_NABI64 default "64" if BR2_MIPS_NABI64
config BR2_READELF_ARCH_NAME
default "MIPS R3000"

View File

@@ -3,6 +3,3 @@ config BR2_ARCH
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" default "LITTLE"
config BR2_READELF_ARCH_NAME
default "Altera Nios II"

View File

@@ -1,8 +0,0 @@
config BR2_ARCH
default "or1k"
config BR2_ENDIAN
default "BIG"
config BR2_READELF_ARCH_NAME
default "OpenRISC 1000"

View File

@@ -212,7 +212,3 @@ config BR2_GCC_TARGET_ABI
default "no-spe" if BR2_PPC_ABI_no-spe default "no-spe" if BR2_PPC_ABI_no-spe
default "ibmlongdouble" if BR2_PPC_ABI_ibmlongdouble default "ibmlongdouble" if BR2_PPC_ABI_ibmlongdouble
default "ieeelongdouble" if BR2_PPC_ABI_ieeelongdouble default "ieeelongdouble" if BR2_PPC_ABI_ieeelongdouble
config BR2_READELF_ARCH_NAME
default "PowerPC" if BR2_powerpc
default "PowerPC64" if BR2_powerpc64 || BR2_powerpc64le

View File

@@ -27,6 +27,3 @@ config BR2_ARCH
config BR2_ENDIAN config BR2_ENDIAN
default "LITTLE" if BR2_sh4 || BR2_sh4a default "LITTLE" if BR2_sh4 || BR2_sh4a
default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb default "BIG" if BR2_sh2a || BR2_sh4eb || BR2_sh4aeb
config BR2_READELF_ARCH_NAME
default "Renesas / SuperH SH"

View File

@@ -28,7 +28,3 @@ config BR2_GCC_TARGET_CPU
default "leon3" if BR2_sparc_leon3 default "leon3" if BR2_sparc_leon3
default "v8" if BR2_sparc_v8 default "v8" if BR2_sparc_v8
default "ultrasparc" if BR2_sparc_v9 default "ultrasparc" if BR2_sparc_v9
config BR2_READELF_ARCH_NAME
default "Sparc" if BR2_sparc
default "Sparc v9" if BR2_sparc64

View File

@@ -129,15 +129,6 @@ config BR2_x86_atom
select BR2_X86_CPU_HAS_SSE2 select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3 select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3 select BR2_X86_CPU_HAS_SSSE3
config BR2_x86_silvermont
bool "silvermont"
select BR2_X86_CPU_HAS_MMX
select BR2_X86_CPU_HAS_SSE
select BR2_X86_CPU_HAS_SSE2
select BR2_X86_CPU_HAS_SSE3
select BR2_X86_CPU_HAS_SSSE3
select BR2_X86_CPU_HAS_SSE4
select BR2_X86_CPU_HAS_SSE42
config BR2_x86_k6 config BR2_x86_k6
bool "k6" bool "k6"
select BR2_X86_CPU_HAS_MMX select BR2_X86_CPU_HAS_MMX
@@ -238,7 +229,6 @@ config BR2_ARCH
default "i686" if BR2_x86_corei7_avx && BR2_i386 default "i686" if BR2_x86_corei7_avx && BR2_i386
default "i686" if BR2_x86_corei7_avx2 && BR2_i386 default "i686" if BR2_x86_corei7_avx2 && BR2_i386
default "i686" if BR2_x86_atom && BR2_i386 default "i686" if BR2_x86_atom && BR2_i386
default "i686" if BR2_x86_silvermont && BR2_i386
default "i686" if BR2_x86_opteron && BR2_i386 default "i686" if BR2_x86_opteron && BR2_i386
default "i686" if BR2_x86_opteron_sse3 && BR2_i386 default "i686" if BR2_x86_opteron_sse3 && BR2_i386
default "i686" if BR2_x86_barcelona && BR2_i386 default "i686" if BR2_x86_barcelona && BR2_i386
@@ -271,7 +261,6 @@ config BR2_GCC_TARGET_ARCH
default "corei7-avx" if BR2_x86_corei7_avx default "corei7-avx" if BR2_x86_corei7_avx
default "core-avx2" if BR2_x86_core_avx2 default "core-avx2" if BR2_x86_core_avx2
default "atom" if BR2_x86_atom default "atom" if BR2_x86_atom
default "silvermont" if BR2_x86_silvermont
default "k8" if BR2_x86_opteron default "k8" if BR2_x86_opteron
default "k8-sse3" if BR2_x86_opteron_sse3 default "k8-sse3" if BR2_x86_opteron_sse3
default "barcelona" if BR2_x86_barcelona default "barcelona" if BR2_x86_barcelona
@@ -286,7 +275,3 @@ config BR2_GCC_TARGET_ARCH
default "c3" if BR2_x86_c3 default "c3" if BR2_x86_c3
default "c3-2" if BR2_x86_c32 default "c3-2" if BR2_x86_c32
default "geode" if BR2_x86_geode default "geode" if BR2_x86_geode
config BR2_READELF_ARCH_NAME
default "Intel 80386" if BR2_i386
default "Advanced Micro Devices X86-64" if BR2_x86_64

View File

@@ -2,32 +2,39 @@ choice
prompt "Target Architecture Variant" prompt "Target Architecture Variant"
depends on BR2_xtensa depends on BR2_xtensa
default BR2_xtensa_fsf default BR2_xtensa_fsf
config BR2_XTENSA_CUSTOM config BR2_XTENSA_CUSTOM
select BR2_ARCH_HAS_MMU_OPTIONAL select BR2_ARCH_HAS_MMU_OPTIONAL
bool "Custom Xtensa processor configuration" bool "Custom Xtensa processor configuration"
config BR2_xtensa_fsf config BR2_xtensa_fsf
select BR2_ARCH_HAS_MMU_MANDATORY select BR2_ARCH_HAS_MMU_MANDATORY
bool "fsf - Default configuration" bool "fsf - Default configuration"
endchoice endchoice
config BR2_XTENSA_OVERLAY_FILE config BR2_XTENSA_CUSTOM_NAME
string "Overlay file for custom configuration" string "Custom Xtensa processor configuration name"
depends on BR2_XTENSA_CUSTOM depends on BR2_XTENSA_CUSTOM
default ""
help help
Enter the path to the overlay tarball for a custom processor Name given to a custom Xtensa processor configuration.
configuration.
config BR2_XTENSA_CORE_NAME
string
default BR2_XTENSA_CUSTOM_NAME if BR2_XTENSA_CUSTOM
default "" if BR2_xtensa_fsf
config BR2_XTENSA_OVERLAY_DIR
string "Overlay directory for custom configuration"
depends on BR2_XTENSA_CUSTOM
default ""
help
Provide the directory path that contains the overlay file
for a custom processor configuration. The path is relative
to the top directory of buildroot.
These overlay files are tar packages with updated configuration These overlay files are tar packages with updated configuration
files for various toolchain packages and Xtensa processor files for various toolchain packages and Xtensa processor
configurations. They are provided by the processor vendor or configurations. They are provided by the processor vendor or
directly from Tensilica. directly from Tensilica.
The path can be either absolute, or relative to the top directory
of buildroot.
choice choice
prompt "Target Architecture Endianness" prompt "Target Architecture Endianness"
depends on BR2_XTENSA_CUSTOM depends on BR2_XTENSA_CUSTOM
@@ -47,6 +54,3 @@ config BR2_ENDIAN
config BR2_ARCH config BR2_ARCH
default "xtensa" if BR2_xtensa default "xtensa" if BR2_xtensa
config BR2_READELF_ARCH_NAME
default "Tensilica Xtensa Processor"

View File

@@ -1,36 +0,0 @@
################################################################################
# This variable can be used by packages that need to extract the overlay.
#
# ARCH_XTENSA_OVERLAY_FILE is the path to the overlay tarball; empty if not
# using any overlay
#
# Example:
# ifneq ($(ARCH_XTENSA_OVERLAY_FILE),)
# tar xf $(ARCH_XTENSA_OVERLAY_FILE) -C $(@D) --strip-components=1 gcc
# endif
################################################################################
BR_ARCH_XTENSA_OVERLAY_FILE = $(call qstrip,$(BR2_XTENSA_OVERLAY_FILE))
ifneq ($(filter http://% https://% ftp://% scp://%,$(BR_ARCH_XTENSA_OVERLAY_FILE)),)
ARCH_XTENSA_OVERLAY_URL = $(BR_ARCH_XTENSA_OVERLAY_FILE)
ARCH_XTENSA_OVERLAY_FILE = $(DL_DIR)/$(notdir $(BR_ARCH_XTENSA_OVERLAY_FILE))
# Do not check that file, we can't know its hash
BR_NO_CHECK_HASH_FOR += $(notdir $(ARCH_XTENSA_OVERLAY_URL))
else
ARCH_XTENSA_OVERLAY_FILE = $(BR_ARCH_XTENSA_OVERLAY_FILE)
endif
################################################################################
# arch-xtensa-overlay-extract -- extract an extensa overlay
#
# argument 1 is the path in which to extract
# argument 2 is the component to extract, one of: gcc, binutils, gdb, linux,
# u-boot
#
# Example:
# $(call arch-xtensa-overlay-extract,/path/to/overlay.tar,$(@D),gcc)
################################################################################
define arch-xtensa-overlay-extract
$(call suitable-extractor,$(ARCH_XTENSA_OVERLAY_FILE)) \
$(ARCH_XTENSA_OVERLAY_FILE) | \
$(TAR) --strip-components=1 -C $(1) $(TAR_OPTIONS) - $(2)
endef

8
board/altera/post-image.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
# post-image.sh for SoCkit/SoCDK
# 2014, "Roman Diouskine" <roman.diouskine@savoirfairelinux.com>
# 2014, "Sebastien Bourdelin" <sebastien.bourdelin@savoirfairelinux.com>
# create a DTB file copy with the name expected by the u-boot config
# Name of the DTB is passed as the second argument to the script.
cp -af $BINARIES_DIR/${2}.dtb $BINARIES_DIR/socfpga.dtb

165
board/altera/readme.txt Normal file
View File

@@ -0,0 +1,165 @@
SoCkit, SoC Development Kit
Intro
=====
This is the buildroot board support for the Arrow SoCkit Evaluation Board
and the Altera Cyclone 5 Development Board.
A good source of information for Arrow SoCkit:
http://www.rocketboards.org/foswiki/Documentation/ArrowSoCKitEvaluationBoard
More information about SoC DK:
https://www.altera.com/products/boards_and_kits/dev-kits/altera/kit-cyclone-v-soc.html
How it works
============
Boot process:
-------------
In summary, the bootloader has multiple stages, an hardcoded boot routine is
loaded from an on-chip ROM.
- That first stage is scanning the SD card's partition table to find
partition having the 0xA2 type.
- This partition is expected to contain a boot image on its first 60 Kb,
because u-boot is bigger, we must fill it with a preloader (u-boot-spl)
which will load the u-boot image.
- Then the u-boot image will load the Linux kernel.
A good source of information for the boot process is:
http://xillybus.com/tutorials/u-boot-image-altera-soc
Note for the SPL:
The SPL generated by the u-boot from Rocketboards doesn't seems to work,
therefore we provide a patch for {uboot-PKG}/board/altera/socfpga_cyclone5/*
based on the files generated with the Altera example design.
For more information about this files please look at:
http://www.rocketboards.org/foswiki/Documentation/PreloaderUbootCustomization#Common_Source_Code
How to build it
===============
Configure Buildroot
-------------------
The altera_sockit_defconfig configuration is a minimal configuration with
all that is required to bring the SoCkit:
$ make altera_sockit_defconfig
and for the SoC Development Board:
$ make altera_sockdk_defconfig
Build everything
----------------
Note: you will need to have access to the network, since Buildroot will
download the packages' sources.
$ make
Result of the build
-------------------
After building, you should obtain this tree:
output/images/
├── rootfs.ext2
├── rootfs.ext3 -> rootfs.ext2
├── rootfs.tar
├── socfpga_cyclone5_sockit.dtb or socfpga_cyclone5_socdk.dtb
├── socfpga.dtb
├── u-boot.img
├── u-boot-spl.bin
└── uImage
Signing the Preloader
---------------------
*** BEWARE ****
The u-boot-spl.bin must be signed using the Altera's tool "mkpimage".
This tool comes as a part of the Altera development environnment (SoC EDS).
A fork of this tool have been done by Maxime Hadjinlian and can be found here:
https://github.com/maximeh/mkpimage
Remember that without signing the u-boot-spl.bin, the board will not boot !!!
$ mkpimage u-boot-spl.bin -o u-boot-spl-signed.bin
Prepare your SDcard
===================
A good source of information for the partitioning process is:
http://www.rocketboards.org/foswiki/view/Projects/SoCKitLinaroLinuxDesktop#Partition_the_SD_Card
Create the SDcard partition table
----------------------------------
Determine the device associated to the SD card:
$ cat /proc/partitions
let's assume it is /dev/mmcblk0:
$ sudo fdisk /dev/mmcblk0
Delete all previous partitions with 'd' then create the new partition table,
using these options, pressing enter after each one:
* n p 1 9000000 +20480K t 1 b
* n p 2 4096 +4496384K t 83
* n p 3 2048 +1024K t 3 a2
Using the 'p' option, the SD card's partition must look like this:
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 9000000 9041919 20960 b W95 FAT32
/dev/mmcblk0p2 4096 8996863 4496384 83 Linux
/dev/mmcblk0p3 2048 4095 1024 a2 Unknown
Then write the partition table using 'w' and exit.
Make partition one a DOS partition:
$ sudo mkdosfs /dev/mmcblk0p1
Install the binaries to the SDcard
----------------------------------
Remember your binaries are located in output/images/, go inside that directory:
$ cd output/images
The partition with type a2 is the partition scan by the first bootloader stage
in the SoCkit ROM to find the next bootloader stage so we must write the signed
preloader and the u-boot binaries in that partition:
$ sudo dd if=u-boot-spl-signed.bin of=/dev/mmcblk0p3 bs=64k seek=0
$ sudo dd if=u-boot.img of=/dev/mmcblk0p3 bs=64k seek=4
Copy the Linux kernel and its Device tree:
$ sudo mkdir /mnt/sdcard
$ sudo mount /dev/mmcblk0p1 /mnt/sdcard
$ sudo cp socfpga.dtb uImage /mnt/sdcard
$ sudo umount /mnt/sdcard
Copy the rootfs:
$ sudo dd if=rootfs.ext2 of=/dev/mmcblk0p2 bs=64k
$ sudo sync
It's Done!
Finish
======
Eject your SDcard, insert it in your SoCkit, and power it up.
if you want a serial console, you can plug a micro B USB cable on the USB-UART
port, the serial port config to used is 57600/8-N-1.

View File

@@ -0,0 +1,820 @@
From c70f2ebb350da20af1a0ed4b7960b8e5a1952713 Mon Sep 17 00:00:00 2001
From: Sebastien Bourdelin <sebastien.bourdelin@savoirfairelinux.com>
Date: Thu, 20 Feb 2014 11:51:31 -0500
Subject: [PATCH] board: add to sockit a working preloader design
---
board/altera/socfpga_cyclone5/build.h | 2 +-
board/altera/socfpga_cyclone5/iocsr_config.c | 314 ++++++++++-----------
board/altera/socfpga_cyclone5/pinmux_config.c | 32 +--
board/altera/socfpga_cyclone5/pinmux_config.h | 8 +-
board/altera/socfpga_cyclone5/sdram/sdram_config.h | 14 +-
.../altera/socfpga_cyclone5/sdram/sequencer_auto.h | 16 +-
.../sdram/sequencer_auto_ac_init.c | 16 +-
.../socfpga_cyclone5/sdram/sequencer_defines.h | 34 +--
8 files changed, 218 insertions(+), 218 deletions(-)
diff --git a/board/altera/socfpga_cyclone5/build.h b/board/altera/socfpga_cyclone5/build.h
index e5d9c3c..a369015 100644
--- a/board/altera/socfpga_cyclone5/build.h
+++ b/board/altera/socfpga_cyclone5/build.h
@@ -29,7 +29,7 @@
* Handoff files must provide user option whether to
* enable watchdog during preloader execution phase
*/
-#define CONFIG_PRELOADER_WATCHDOG_ENABLE (0)
+#define CONFIG_PRELOADER_WATCHDOG_ENABLE (1)
/*
* Handoff files must provide user option whether to enable
diff --git a/board/altera/socfpga_cyclone5/iocsr_config.c b/board/altera/socfpga_cyclone5/iocsr_config.c
index fa663e1..90fc154 100644
--- a/board/altera/socfpga_cyclone5/iocsr_config.c
+++ b/board/altera/socfpga_cyclone5/iocsr_config.c
@@ -7,113 +7,113 @@ const unsigned long iocsr_scan_chain0_table[((CONFIG_HPS_IOCSR_SCANCHAIN0_LENGTH
0xC0000000,
0x0000003F,
0x00008000,
- 0x00020080,
- 0x08020000,
- 0x08000000,
- 0x00018020,
+ 0x00060180,
+ 0x18060000,
+ 0x18000000,
+ 0x00018060,
0x00000000,
0x00004000,
- 0x00010040,
- 0x04010000,
- 0x04000000,
- 0x00000010,
- 0x00004010,
+ 0x000300C0,
+ 0x0C030000,
+ 0x0C000000,
+ 0x00000030,
+ 0x0000C030,
0x00002000,
- 0x00020000,
- 0x02008000,
- 0x02000000,
- 0x00000008,
- 0x00002008,
+ 0x00018060,
+ 0x06018000,
+ 0x06000000,
+ 0x00000018,
+ 0x00006018,
0x00001000,
};
const unsigned long iocsr_scan_chain1_table[((CONFIG_HPS_IOCSR_SCANCHAIN1_LENGTH / 32) + 1)] = {
- 0x000C0300,
- 0x10040000,
- 0x100000C0,
- 0x00000040,
- 0x00010040,
+ 0x00100000,
+ 0x300C0000,
+ 0x300000C0,
+ 0x000000C0,
+ 0x000300C0,
0x00008000,
0x00080000,
- 0x18060000,
- 0x18000000,
- 0x00000060,
- 0x00018060,
+ 0x20000000,
+ 0x00000000,
+ 0x00000080,
+ 0x00020000,
0x00004000,
- 0x00010040,
+ 0x000300C0,
0x10000000,
- 0x04000000,
- 0x00000010,
- 0x00004010,
+ 0x0C000000,
+ 0x00000030,
+ 0x0000C030,
0x00002000,
- 0x06008020,
- 0x02008000,
+ 0x06018060,
+ 0x06018000,
0x01FE0000,
0xF8000000,
0x00000007,
0x00001000,
- 0x00004010,
- 0x01004000,
- 0x01000000,
- 0x00003004,
- 0x00001004,
+ 0x0000C030,
+ 0x0300C000,
+ 0x03000000,
+ 0x0000300C,
+ 0x0000300C,
0x00000800,
0x00000000,
0x00000000,
- 0x00800000,
- 0x00000002,
+ 0x01800000,
+ 0x00000006,
0x00002000,
0x00000400,
0x00000000,
- 0x00401000,
+ 0x00C03000,
0x00000003,
0x00000000,
0x00000000,
0x00000200,
- 0x00600802,
+ 0x00601806,
0x00000000,
- 0x80200000,
- 0x80000600,
- 0x00000200,
+ 0x80600000,
+ 0x80000601,
+ 0x00000601,
0x00000100,
- 0x00300401,
- 0xC0100400,
- 0x40100000,
- 0x40000300,
- 0x000C0100,
+ 0x00300C03,
+ 0xC0300C00,
+ 0xC0300000,
+ 0xC0000300,
+ 0x000C0300,
0x00000080,
};
const unsigned long iocsr_scan_chain2_table[((CONFIG_HPS_IOCSR_SCANCHAIN2_LENGTH / 32) + 1)] = {
- 0x80040100,
+ 0x300C0300,
0x00000000,
0x0FF00000,
0x00000000,
- 0x0C010040,
+ 0x0C0300C0,
0x00008000,
- 0x18020080,
- 0x00000000,
- 0x08000000,
- 0x00040020,
- 0x06018060,
+ 0x18060180,
+ 0x18060000,
+ 0x18000000,
+ 0x00018060,
+ 0x00018060,
0x00004000,
- 0x0C010040,
- 0x04010000,
+ 0x000300C0,
+ 0x0C030000,
0x00000030,
0x00000000,
- 0x03004010,
+ 0x0300C030,
0x00002000,
- 0x06008020,
- 0x02008000,
- 0x02000018,
- 0x00006008,
- 0x01802008,
+ 0x00018060,
+ 0x06018000,
+ 0x06000000,
+ 0x00000018,
+ 0x00006018,
0x00001000,
- 0x03004010,
- 0x01004000,
- 0x0100000C,
- 0x00003004,
- 0x00C01004,
+ 0x0000C030,
+ 0x00000000,
+ 0x03000000,
+ 0x0000000C,
+ 0x00C0300C,
0x00000800,
};
@@ -170,14 +170,14 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xA0000034,
0x0D000001,
0x6068030C,
- 0xC7034018,
- 0x0E381A01,
+ 0xCF034059,
+ 0x1E781A03,
0x8030C0D0,
- 0x34018606,
- 0x01A01C70,
+ 0x34059606,
+ 0x01A03CF0,
0x0C0D0000,
- 0x18606803,
- 0x01C70340,
+ 0x59606803,
+ 0x03CF0340,
0xD000001A,
0x068030C0,
0x10040000,
@@ -244,15 +244,15 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xA0000034,
0x0D000001,
0x6068030C,
- 0xC7034018,
- 0x0E381A01,
+ 0xCF034059,
+ 0x1E781A03,
0x8030C0D0,
- 0x34018606,
+ 0x34059606,
0x01A00000,
0x0C0D0000,
- 0x18606803,
- 0x01C70340,
- 0xD00E381A,
+ 0x59606803,
+ 0x03CF0340,
+ 0xD01E781A,
0x068030C0,
0x10040000,
0x00200000,
@@ -273,7 +273,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xAA0D4000,
0x01C3A810,
0xAA0D4000,
- 0x01C3A808,
+ 0x01C3A810,
0xAA0D4000,
0x01C3A810,
0x00040100,
@@ -301,7 +301,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x2A835000,
0x0070EA04,
0x2A835000,
- 0x0070EA02,
+ 0x0070EA04,
0x2A835000,
0x0070EA04,
0x00010040,
@@ -321,15 +321,15 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x14864000,
0x69A47A05,
0xCBCF23D7,
- 0xF41E791E,
- 0x034ED348,
+ 0xF5DE791E,
+ 0x0356D348,
0x821A0000,
0x0000D000,
0x01860680,
0xD769A47A,
0x1ECBCF23,
- 0x48F41E79,
- 0x00034ED3,
+ 0x48F5DE79,
+ 0x000356D3,
0x00080200,
0x00001000,
0x00080200,
@@ -347,7 +347,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xAA0D4000,
0x01C3A810,
0xAA0D4000,
- 0x01C3A808,
+ 0x01C3A810,
0xAA0D4000,
0x01C3A810,
0x00040100,
@@ -375,7 +375,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x2A835000,
0x0070EA04,
0x2A835000,
- 0x0070EA02,
+ 0x0070EA04,
0x2A835000,
0x0070EA04,
0x00015000,
@@ -395,15 +395,15 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x14864000,
0x69A47A05,
0xCBCF23D7,
- 0xF41E791E,
- 0x034ED348,
- 0x821A00C3,
+ 0xF5DE791E,
+ 0x0356D348,
+ 0x821A02CB,
0x0000D000,
0x00000680,
0xD769A47A,
0x1ECBCF23,
- 0x48F41E79,
- 0x00034ED3,
+ 0x48F5DE79,
+ 0x000356D3,
0x00080200,
0x00001000,
0x00080200,
@@ -421,7 +421,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xAA0D4000,
0x01C3A810,
0xAA0D4000,
- 0x01C3A808,
+ 0x01C3A810,
0xAA0D4000,
0x01C3A810,
0x00040100,
@@ -449,7 +449,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x2A835000,
0x0070EA04,
0x2A835000,
- 0x0070EA02,
+ 0x0070EA04,
0x2A835000,
0x0070EA04,
0x00010040,
@@ -469,15 +469,15 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x14864000,
0x69A47A05,
0xCBCF23D7,
- 0xF41E791E,
- 0x034ED348,
+ 0xF5DE791E,
+ 0x0356D348,
0x821A0000,
0x0000D000,
0x00000680,
0xD769A47A,
0x1ECBCF23,
- 0x48F41E79,
- 0x00034ED3,
+ 0x48F5DE79,
+ 0x000356D3,
0x00080200,
0x00001000,
0x00080200,
@@ -495,7 +495,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0xAA0D4000,
0x01C3A810,
0xAA0D4000,
- 0x01C3A808,
+ 0x01C3A810,
0xAA0D4000,
0x01C3A810,
0x00040100,
@@ -523,7 +523,7 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x2A835000,
0x0070EA04,
0x2A835000,
- 0x0070EA02,
+ 0x0070EA04,
0x2A835000,
0x0070EA04,
0x00010040,
@@ -543,15 +543,15 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x14864000,
0x69A47A05,
0xCBCF23D7,
- 0xF41E791E,
- 0x034ED348,
+ 0xF5DE791E,
+ 0x0356D348,
0x821A0000,
0x0000D000,
0x00000680,
0xD769A47A,
0x1ECBCF23,
- 0x48F41E79,
- 0x00034ED3,
+ 0x48F5DE79,
+ 0x000356D3,
0x00080200,
0x00001000,
0x00080200,
@@ -567,80 +567,80 @@ const unsigned long iocsr_scan_chain3_table[((CONFIG_HPS_IOCSR_SCANCHAIN3_LENGTH
0x04000002,
0x00820000,
0x00489000,
- 0x001A1A1A,
- 0x085506A0,
- 0x0000E1D4,
- 0x045506A0,
- 0x0000E1D4,
- 0x085506A0,
- 0x8000E1D4,
+ 0x801A1A1A,
+ 0x00000200,
+ 0x80000004,
+ 0x00000200,
+ 0x80000004,
+ 0x00000200,
+ 0x80000004,
0x00000200,
0x00000004,
- 0x04000000,
- 0x00000009,
- 0x00002410,
+ 0x00040000,
+ 0x10000000,
+ 0x00000000,
0x00000040,
- 0x41000000,
- 0x00002082,
- 0x00000350,
- 0x000000DA,
+ 0x00010000,
+ 0x40002000,
+ 0x00000100,
+ 0x40000002,
+ 0x00000100,
+ 0x40000002,
0x00000100,
0x40000002,
0x00000100,
0x00000002,
- 0x042A8350,
- 0x000070EA,
- 0x86000000,
- 0x08000004,
+ 0x00020000,
+ 0x08000000,
0x00000000,
- 0x00482000,
- 0x21800000,
- 0x00101061,
- 0x021541A8,
- 0x00003875,
- 0x011541A8,
- 0x00003875,
- 0x021541A8,
- 0x20003875,
+ 0x00000020,
+ 0x00008000,
+ 0x20001000,
+ 0x00000080,
+ 0x20000001,
+ 0x00000080,
+ 0x20000001,
+ 0x00000080,
+ 0x20000001,
0x00000080,
0x00000001,
- 0x41000000,
- 0x00000002,
- 0x00FF0904,
+ 0x00010000,
+ 0x04000000,
+ 0x00FF0000,
0x00000000,
- 0x90400000,
- 0x00000820,
+ 0x00004000,
+ 0x00000800,
0x80000001,
- 0x38D612AF,
- 0x86F8E38E,
- 0x0A0A78B4,
- 0x000D020A,
+ 0x00041419,
+ 0x40000000,
+ 0x04000816,
+ 0x000D0000,
0x00006800,
- 0x028A4320,
- 0xEBB4D23D,
- 0x8F65E791,
- 0xA47A0F3C,
- 0x0001A769,
- 0x00410D00,
+ 0x00000340,
+ 0xD000001A,
+ 0x06800000,
+ 0x00340000,
+ 0x0001A000,
+ 0x00000D00,
0x40000068,
- 0x3D000003,
- 0x91EBB4D2,
- 0x3C8F65E7,
- 0x69A47A0F,
- 0x000001A7,
+ 0x1A000003,
+ 0x00D00000,
+ 0x00068000,
+ 0x00003400,
+ 0x000001A0,
+ 0x00000401,
+ 0x00000008,
0x00000401,
0x00000008,
0x00000401,
0x00000008,
- 0x00000540,
- 0x000003A8,
- 0x10AA0D40,
- 0x8001C3A8,
+ 0x00000401,
+ 0x80000008,
0x0000007F,
+ 0x20000000,
0x00000000,
- 0x00004060,
- 0xE1208000,
+ 0xE0000080,
0x0000001F,
- 0x00004100,
+ 0x00004000,
};
diff --git a/board/altera/socfpga_cyclone5/pinmux_config.c b/board/altera/socfpga_cyclone5/pinmux_config.c
index 730067e..cfd74cd 100644
--- a/board/altera/socfpga_cyclone5/pinmux_config.c
+++ b/board/altera/socfpga_cyclone5/pinmux_config.c
@@ -23,7 +23,7 @@ unsigned long sys_mgr_init_table[CONFIG_HPS_PINMUX_NUM] = {
0, /* EMACIO18 */
0, /* EMACIO19 */
3, /* FLASHIO0 */
- 3, /* FLASHIO1 */
+ 0, /* FLASHIO1 */
3, /* FLASHIO2 */
3, /* FLASHIO3 */
0, /* FLASHIO4 */
@@ -34,25 +34,25 @@ unsigned long sys_mgr_init_table[CONFIG_HPS_PINMUX_NUM] = {
3, /* FLASHIO9 */
3, /* FLASHIO10 */
3, /* FLASHIO11 */
- 3, /* GENERALIO0 */
- 3, /* GENERALIO1 */
- 3, /* GENERALIO2 */
- 3, /* GENERALIO3 */
- 3, /* GENERALIO4 */
- 3, /* GENERALIO5 */
- 3, /* GENERALIO6 */
- 3, /* GENERALIO7 */
- 3, /* GENERALIO8 */
+ 0, /* GENERALIO0 */
+ 1, /* GENERALIO1 */
+ 1, /* GENERALIO2 */
+ 1, /* GENERALIO3 */
+ 1, /* GENERALIO4 */
+ 0, /* GENERALIO5 */
+ 0, /* GENERALIO6 */
+ 0, /* GENERALIO7 */
+ 0, /* GENERALIO8 */
3, /* GENERALIO9 */
3, /* GENERALIO10 */
3, /* GENERALIO11 */
3, /* GENERALIO12 */
- 2, /* GENERALIO13 */
- 2, /* GENERALIO14 */
- 3, /* GENERALIO15 */
- 3, /* GENERALIO16 */
- 2, /* GENERALIO17 */
- 2, /* GENERALIO18 */
+ 0, /* GENERALIO13 */
+ 0, /* GENERALIO14 */
+ 1, /* GENERALIO15 */
+ 1, /* GENERALIO16 */
+ 1, /* GENERALIO17 */
+ 1, /* GENERALIO18 */
0, /* GENERALIO19 */
0, /* GENERALIO20 */
0, /* GENERALIO21 */
diff --git a/board/altera/socfpga_cyclone5/pinmux_config.h b/board/altera/socfpga_cyclone5/pinmux_config.h
index fb483ab..64c750a 100644
--- a/board/altera/socfpga_cyclone5/pinmux_config.h
+++ b/board/altera/socfpga_cyclone5/pinmux_config.h
@@ -11,15 +11,15 @@
#define CONFIG_HPS_UART0 (1)
#define CONFIG_HPS_UART1 (0)
#define CONFIG_HPS_TRACE (0)
-#define CONFIG_HPS_I2C0 (1)
-#define CONFIG_HPS_I2C1 (0)
+#define CONFIG_HPS_I2C0 (0)
+#define CONFIG_HPS_I2C1 (1)
#define CONFIG_HPS_I2C2 (0)
#define CONFIG_HPS_I2C3 (0)
#define CONFIG_HPS_SPIM0 (1)
-#define CONFIG_HPS_SPIM1 (0)
+#define CONFIG_HPS_SPIM1 (1)
#define CONFIG_HPS_SPIS0 (0)
#define CONFIG_HPS_SPIS1 (0)
-#define CONFIG_HPS_CAN0 (1)
+#define CONFIG_HPS_CAN0 (0)
#define CONFIG_HPS_CAN1 (0)
#define CONFIG_HPS_SDMMC_BUSWIDTH (4)
diff --git a/board/altera/socfpga_cyclone5/sdram/sdram_config.h b/board/altera/socfpga_cyclone5/sdram/sdram_config.h
index b90d6f3..dd027ef 100755
--- a/board/altera/socfpga_cyclone5/sdram/sdram_config.h
+++ b/board/altera/socfpga_cyclone5/sdram/sdram_config.h
@@ -4,16 +4,16 @@
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMTYPE (2)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_MEMBL (8)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ADDRORDER (0)
-#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCEN (1)
-#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCCORREN (1)
+#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCEN (0)
+#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_ECCCORREN (0)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_REORDEREN (1)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_STARVELIMIT (10)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_DQSTRKEN (0)
#define CONFIG_HPS_SDR_CTRLCFG_CTRLCFG_NODMPINS (0)
-#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCWL (6)
+#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCWL (8)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_AL (0)
-#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCL (7)
-#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRRD (4)
+#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TCL (11)
+#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRRD (3)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TFAW (12)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING1_TRFC (104)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TREFI (3120)
@@ -21,7 +21,7 @@
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TRP (6)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWR (6)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING2_IF_TWTR (4)
-#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRTP (4)
+#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRTP (3)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRAS (14)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TRC (20)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMTIMING3_TMRD (4)
@@ -33,7 +33,7 @@
#define CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_ROWBITS (15)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_BANKBITS (3)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMADDRW_CSBITS (1)
-#define CONFIG_HPS_SDR_CTRLCFG_DRAMIFWIDTH_IFWIDTH (40)
+#define CONFIG_HPS_SDR_CTRLCFG_DRAMIFWIDTH_IFWIDTH (32)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMDEVWIDTH_DEVWIDTH (8)
#define CONFIG_HPS_SDR_CTRLCFG_DRAMINTR_INTREN (0)
#define CONFIG_HPS_SDR_CTRLCFG_STATICCFG_MEMBL (2)
diff --git a/board/altera/socfpga_cyclone5/sdram/sequencer_auto.h b/board/altera/socfpga_cyclone5/sdram/sequencer_auto.h
index e8c5484..919676d 100644
--- a/board/altera/socfpga_cyclone5/sdram/sequencer_auto.h
+++ b/board/altera/socfpga_cyclone5/sdram/sequencer_auto.h
@@ -34,7 +34,7 @@
#define __RW_MGR_ac_read_en 0x21
#define __RW_MGR_ac_mrs3_mirr 0x0C
#define __RW_MGR_ac_mrs2 0x05
-#define __RW_MGR_CONTENT_ac_mrs1 0x10090044
+#define __RW_MGR_CONTENT_ac_mrs1 0x10090006
#define __RW_MGR_CONTENT_ac_mrs3 0x100B0000
#define __RW_MGR_CONTENT_ac_write_bank_0_col_0_nodata_wl_1 0x18980000
#define __RW_MGR_CONTENT_ac_act_1 0x106B0000
@@ -46,8 +46,8 @@
#define __RW_MGR_CONTENT_ac_init_reset_0_cke_0 0x20700000
#define __RW_MGR_CONTENT_ac_read_bank_0_1_norden 0x10580008
#define __RW_MGR_CONTENT_ac_pre_all 0x10280400
-#define __RW_MGR_CONTENT_ac_mrs0_user 0x10080431
-#define __RW_MGR_CONTENT_ac_mrs0_dll_reset 0x10080530
+#define __RW_MGR_CONTENT_ac_mrs0_user 0x10080471
+#define __RW_MGR_CONTENT_ac_mrs0_dll_reset 0x10080570
#define __RW_MGR_CONTENT_ac_read_bank_0_0 0x13580000
#define __RW_MGR_CONTENT_ac_write_bank_0_col_1 0x1C980008
#define __RW_MGR_CONTENT_ac_read_bank_0_1 0x13580008
@@ -55,21 +55,21 @@
#define __RW_MGR_CONTENT_ac_write_bank_1_col_1 0x1C9B0008
#define __RW_MGR_CONTENT_ac_write_bank_0_col_0 0x1C980000
#define __RW_MGR_CONTENT_ac_read_bank_1_0 0x135B0000
-#define __RW_MGR_CONTENT_ac_mrs1_mirr 0x100A0024
+#define __RW_MGR_CONTENT_ac_mrs1_mirr 0x100A0006
#define __RW_MGR_CONTENT_ac_read_bank_1_1 0x135B0008
#define __RW_MGR_CONTENT_ac_des_odt_1 0x38780000
-#define __RW_MGR_CONTENT_ac_mrs0_dll_reset_mirr 0x100804C8
+#define __RW_MGR_CONTENT_ac_mrs0_dll_reset_mirr 0x100804E8
#define __RW_MGR_CONTENT_ac_zqcl 0x10380400
#define __RW_MGR_CONTENT_ac_write_predata 0x38F80000
-#define __RW_MGR_CONTENT_ac_mrs0_user_mirr 0x10080449
+#define __RW_MGR_CONTENT_ac_mrs0_user_mirr 0x10080469
#define __RW_MGR_CONTENT_ac_ref 0x10480000
#define __RW_MGR_CONTENT_ac_nop 0x30780000
#define __RW_MGR_CONTENT_ac_rdimm 0x10780000
-#define __RW_MGR_CONTENT_ac_mrs2_mirr 0x10090010
+#define __RW_MGR_CONTENT_ac_mrs2_mirr 0x10090218
#define __RW_MGR_CONTENT_ac_write_bank_0_col_0_nodata 0x18180000
#define __RW_MGR_CONTENT_ac_read_en 0x33780000
#define __RW_MGR_CONTENT_ac_mrs3_mirr 0x100B0000
-#define __RW_MGR_CONTENT_ac_mrs2 0x100A0008
+#define __RW_MGR_CONTENT_ac_mrs2 0x100A0218
#define __RW_MGR_READ_B2B_WAIT2 0x6A
#define __RW_MGR_LFSR_WR_RD_BANK_0_WAIT 0x31
diff --git a/board/altera/socfpga_cyclone5/sdram/sequencer_auto_ac_init.c b/board/altera/socfpga_cyclone5/sdram/sequencer_auto_ac_init.c
index e16efa1..20b4ca1 100644
--- a/board/altera/socfpga_cyclone5/sdram/sequencer_auto_ac_init.c
+++ b/board/altera/socfpga_cyclone5/sdram/sequencer_auto_ac_init.c
@@ -6,16 +6,16 @@ const alt_u32 ac_rom_init[36] =
{
0x20700000,
0x20780000,
- 0x10080431,
- 0x10080530,
- 0x10090044,
- 0x100a0008,
+ 0x10080471,
+ 0x10080570,
+ 0x10090006,
+ 0x100a0218,
0x100b0000,
0x10380400,
- 0x10080449,
- 0x100804c8,
- 0x100a0024,
- 0x10090010,
+ 0x10080469,
+ 0x100804e8,
+ 0x100a0006,
+ 0x10090218,
0x100b0000,
0x30780000,
0x38780000,
diff --git a/board/altera/socfpga_cyclone5/sdram/sequencer_defines.h b/board/altera/socfpga_cyclone5/sdram/sequencer_defines.h
index 52faf3f..b85b85c 100644
--- a/board/altera/socfpga_cyclone5/sdram/sequencer_defines.h
+++ b/board/altera/socfpga_cyclone5/sdram/sequencer_defines.h
@@ -1,28 +1,28 @@
#ifndef _SEQUENCER_DEFINES_H_
#define _SEQUENCER_DEFINES_H_
-#define AC_ROM_MR1_MIRR 0000000100100
+#define AC_ROM_MR1_MIRR 0000000000110
#define AC_ROM_MR1_OCD_ENABLE
-#define AC_ROM_MR2_MIRR 0000000010000
+#define AC_ROM_MR2_MIRR 0001000011000
#define AC_ROM_MR3_MIRR 0000000000000
#define AC_ROM_MR0_CALIB
-#define AC_ROM_MR0_DLL_RESET_MIRR 0010011001000
-#define AC_ROM_MR0_DLL_RESET 0010100110000
-#define AC_ROM_MR0_MIRR 0010001001001
-#define AC_ROM_MR0 0010000110001
-#define AC_ROM_MR1 0000001000100
-#define AC_ROM_MR2 0000000001000
+#define AC_ROM_MR0_DLL_RESET_MIRR 0010011101000
+#define AC_ROM_MR0_DLL_RESET 0010101110000
+#define AC_ROM_MR0_MIRR 0010001101001
+#define AC_ROM_MR0 0010001110001
+#define AC_ROM_MR1 0000000000110
+#define AC_ROM_MR2 0001000011000
#define AC_ROM_MR3 0000000000000
#define AFI_CLK_FREQ 401
#define AFI_RATE_RATIO 1
#define ARRIAVGZ 0
#define ARRIAV 0
-#define AVL_CLK_FREQ 67
+#define AVL_CLK_FREQ 81
#define BFM_MODE 0
#define BURST2 0
#define CALIBRATE_BIT_SLIPS 0
-#define CALIB_LFIFO_OFFSET 7
-#define CALIB_VFIFO_OFFSET 5
+#define CALIB_LFIFO_OFFSET 11
+#define CALIB_VFIFO_OFFSET 9
#define CYCLONEV 1
#define DDR2 0
#define DDR3 1
@@ -89,20 +89,20 @@
#define RW_MGR_MEM_CHIP_SELECT_WIDTH 1
#define RW_MGR_MEM_CLK_EN_WIDTH 1
#define RW_MGR_MEM_CONTROL_WIDTH 1
-#define RW_MGR_MEM_DATA_MASK_WIDTH 5
-#define RW_MGR_MEM_DATA_WIDTH 40
+#define RW_MGR_MEM_DATA_MASK_WIDTH 4
+#define RW_MGR_MEM_DATA_WIDTH 32
#define RW_MGR_MEM_DQ_PER_READ_DQS 8
#define RW_MGR_MEM_DQ_PER_WRITE_DQS 8
-#define RW_MGR_MEM_IF_READ_DQS_WIDTH 5
-#define RW_MGR_MEM_IF_WRITE_DQS_WIDTH 5
+#define RW_MGR_MEM_IF_READ_DQS_WIDTH 4
+#define RW_MGR_MEM_IF_WRITE_DQS_WIDTH 4
#define RW_MGR_MEM_NUMBER_OF_CS_PER_DIMM 1
#define RW_MGR_MEM_NUMBER_OF_RANKS 1
#define RW_MGR_MEM_ODT_WIDTH 1
#define RW_MGR_MEM_VIRTUAL_GROUPS_PER_READ_DQS 1
#define RW_MGR_MEM_VIRTUAL_GROUPS_PER_WRITE_DQS 1
#define RW_MGR_MR0_BL 1
-#define RW_MGR_MR0_CAS_LATENCY 3
-#define RW_MGR_TRUE_MEM_DATA_MASK_WIDTH 5
+#define RW_MGR_MR0_CAS_LATENCY 7
+#define RW_MGR_TRUE_MEM_DATA_MASK_WIDTH 4
#define RW_MGR_WRITE_TO_DEBUG_READ 1.0
#define SKEW_CALIBRATION 0
#define STATIC_FULL_CALIBRATION 1
--
1.9.0

View File

@@ -1,8 +0,0 @@
linux_load_address=0x100000
linux_dtb_load_address=0x100
linux_dtb=socfpga_cyclone5_socrates.dtb
linux_load=mmc rescan; fatload mmc 0:1 ${linux_load_address} zImage; fatload mmc 0:1 ${linux_dtb_load_address} ${linux_dtb}
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p3 ro rootwait
source_env=fatload mmc 0:1 0x2000000 boot.scr; source 0x2000000
bootcmd=run linux_load; bootz ${linux_load_address} - ${linux_dtb_load_address}
bootdelay=1

View File

@@ -1,58 +0,0 @@
image boot.vfat {
vfat {
files = {
"zImage",
"socfpga_cyclone5_socrates.dtb"
}
}
size = 8M
}
image uboot.img {
hdimage {
partition-table = "no"
}
partition spl {
in-partition-table = "no"
image = "u-boot-spl.bin.crc"
offset = 0
size = 64k
}
partition uboot-full {
in-partition-table = "no"
image = "u-boot.img"
offset = 256k
}
size = 1M
}
image sdcard.img {
hdimage {
}
partition uboot-env {
in-partition-table = "no"
image = "uboot-env.bin"
offset = 17408 # 512 * 34 -> just after gpt
}
partition boot {
partition-type = 0xc
bootable = "true"
image = "boot.vfat"
}
partition uboot {
partition-type = 0xa2
image = "uboot.img"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
size = 500M
}
}

View File

@@ -1,52 +0,0 @@
EBV SoCrates Evaluation Board
Intro
=====
More information about this board can be found here:
https://rocketboards.org/foswiki/Documentation/EBVSoCratesEvaluationBoard
Build
=====
First, load socrates config for buildroot
make socrates_cyclone5_defconfig
Build everything
make
Following files will be generated in output/images
.
├── boot.vfat
├── rootfs.ext2
├── rootfs.ext4 -> rootfs.ext2
├── rootfs.tar
├── sdcard.img
├── socfpga_cyclone5_socrates.dtb
├── u-boot-spl.bin
├── u-boot-spl.bin.crc
├── u-boot.bin
├── u-boot.img
├── uboot-env.bin
├── uboot.img
└── zImage
Creating bootable SD card
=========================
Simply invoke
dd if=output/images/sdcard.img of=/dev/sdX
Where X is your SD card device (not partition)
Booting
=======
Pins 6:8 on P18 selector is used to determine boot device. To boot socrates from
sdcard set these pins to value 0x5 (101b). Remaining pins are used to determine
how to configure FPGA and are not associated with booting into Linux kernel.

View File

@@ -1,53 +0,0 @@
From 35b7ce4f8f290794d3b89db7461e8c568b5defa1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 25 Apr 2016 09:19:17 -0700
Subject: powerpc/ptrace: Fix out of bounds array access warning
commit 1e407ee3b21f981140491d5b8a36422979ca246f upstream.
gcc-6 correctly warns about a out of bounds access
arch/powerpc/kernel/ptrace.c:407:24: warning: index 32 denotes an offset greater than size of 'u64[32][1] {aka long long unsigned int[32][1]}' [-Warray-bounds]
offsetof(struct thread_fp_state, fpr[32][0]));
^
check the end of array instead of beginning of next element to fix this
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Acked-by: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Oleksandr Zhadan <oleks@arcturusnetworks.com>
---
arch/powerpc/kernel/ptrace.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index f21897b..93f200f 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -376,7 +376,7 @@ static int fpr_get(struct task_struct *target, const struct user_regset *regset,
#else
BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
- offsetof(struct thread_fp_state, fpr[32][0]));
+ offsetof(struct thread_fp_state, fpr[32]));
return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
&target->thread.fp_state, 0, -1);
@@ -404,7 +404,7 @@ static int fpr_set(struct task_struct *target, const struct user_regset *regset,
return 0;
#else
BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
- offsetof(struct thread_fp_state, fpr[32][0]));
+ offsetof(struct thread_fp_state, fpr[32]));
return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
&target->thread.fp_state, 0, -1);
--
cgit v1.1

View File

@@ -0,0 +1,224 @@
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MXC=y
CONFIG_MACH_IMX27_DT=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_PM_DEBUG=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=y
CONFIG_CAN=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_MCP251X=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
# CONFIG_MTD_CFI_I2 is not set
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_MXC=y
CONFIG_MTD_UBI=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_FARADAY is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_SMSC_PHY=y
CONFIG_RTL8187=m
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_SDIO=m
CONFIG_RT2X00=m
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RTL8192CU=m
CONFIG_ZD1211RW=m
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_IMX=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
CONFIG_W1=y
CONFIG_W1_MASTER_MXC=y
CONFIG_W1_SLAVE_THERM=y
CONFIG_WATCHDOG=y
CONFIG_IMX2_WDT=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_PWC=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=m
CONFIG_VIDEO_MX2=m
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
# CONFIG_DVB_AU8522_V4L is not set
# CONFIG_DVB_TUNER_DIB0070 is not set
# CONFIG_DVB_TUNER_DIB0090 is not set
CONFIG_FB=y
# CONFIG_FB_MX3 is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
CONFIG_SND_IMX_SOC=m
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MXC=y
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA_DEBUG=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_HID=m
CONFIG_MMC=y
CONFIG_MMC_MXC=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_MXC=m
CONFIG_DMADEVICES=y
CONFIG_IMX_SDMA=y
CONFIG_IMX_DMA=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_IIO=y
CONFIG_MAX1027=y
CONFIG_MAX5821=y
CONFIG_PWM=y
CONFIG_PWM_IMX=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_DNOTIFY is not set
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_FTRACE is not set
CONFIG_DEBUG_LL=y
CONFIG_EARLY_PRINTK=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y

View File

@@ -1,216 +0,0 @@
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_CGROUPS=y
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=m
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MXC=y
CONFIG_MACH_IMX27_DT=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_PM_DEBUG=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_CAN=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_MCP251X=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
# CONFIG_MTD_CFI_I2 is not set
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_MXC=y
CONFIG_MTD_UBI=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_FARADAY is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_SMSC_PHY=y
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_SDIO=m
CONFIG_RT2X00=m
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RTL8187=m
CONFIG_RTL8192CU=m
CONFIG_ZD1211RW=m
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_IMX=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
CONFIG_W1=y
CONFIG_W1_MASTER_MXC=y
CONFIG_W1_SLAVE_THERM=y
CONFIG_WATCHDOG=y
CONFIG_IMX2_WDT=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_PWC=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_SOC_CAMERA=m
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
CONFIG_FB=y
# CONFIG_FB_MX3 is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
# CONFIG_SND_USB is not set
CONFIG_SND_SOC=m
CONFIG_SND_IMX_SOC=m
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MXC=y
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_FTDI_SIO=y
CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_ULPI=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_USB_GADGETFS=m
CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_HID=m
CONFIG_MMC=y
CONFIG_MMC_MXC=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1374=y
CONFIG_RTC_DRV_MXC=m
CONFIG_DMADEVICES=y
CONFIG_IMX_DMA=y
CONFIG_IMX_SDMA=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_IIO=y
CONFIG_MAX1027=y
CONFIG_MAX5821=y
CONFIG_PWM=y
CONFIG_PWM_IMX=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_DNOTIFY is not set
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
# CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m
CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
# CONFIG_SCHED_DEBUG is not set
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_FTRACE is not set
CONFIG_DEBUG_LL=y
CONFIG_EARLY_PRINTK=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y

View File

@@ -0,0 +1,185 @@
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MXS=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CPU_IDLE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=y
CONFIG_CAN=m
CONFIG_CAN_VCAN=m
CONFIG_CAN_FLEXCAN=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_HCIBTUSB=m
CONFIG_CFG80211=m
CONFIG_MAC80211=m
CONFIG_MAC80211_RC_PID=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_FW_LOADER=m
CONFIG_MTD=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_DATAFLASH=y
CONFIG_MTD_M25P80=y
# CONFIG_M25PXX_USE_FAST_READ is not set
CONFIG_MTD_SST25L=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_GPMI_NAND=y
CONFIG_MTD_UBI=y
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_SCH=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_NETDEVICES=y
CONFIG_RTL8187=m
CONFIG_RT2X00=m
CONFIG_RT73USB=m
CONFIG_ZD1211RW=m
CONFIG_INPUT_JOYDEV=y
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=m
# CONFIG_SERIO_SERPORT is not set
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_DEVKMEM is not set
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_MXS_AUART=y
CONFIG_TTY_PRINTK=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_MXS=y
CONFIG_SPI=y
CONFIG_SPI_BITBANG=m
CONFIG_SPI_MXS=y
CONFIG_SPI_SPIDEV=m
CONFIG_GPIO_SYSFS=y
CONFIG_HWMON=m
CONFIG_WATCHDOG=y
CONFIG_STMP3XXX_RTC_WATCHDOG=y
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_FB=y
CONFIG_FB_MXS=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PWM=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_MON=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_ACM=y
CONFIG_USB_PRINTER=y
CONFIG_USB_WDM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_MXS_PHY=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_DEBUG_FILES=y
CONFIG_USB_ETH=m
CONFIG_MMC=y
CONFIG_MMC_MXS=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_STMP=y
CONFIG_DMADEVICES=y
CONFIG_MXS_DMA=y
CONFIG_STAGING=y
CONFIG_MXS_LRADC=y
CONFIG_IIO=y
CONFIG_PWM=y
CONFIG_PWM_MXS=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_UBIFS_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_DEBUG_FS=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y

View File

@@ -13,6 +13,7 @@ Supported platforms
Buildroot currently supports the following Armadeus platforms with the Buildroot currently supports the following Armadeus platforms with the
associated defconfigs: associated defconfigs:
* APF9328 SOM + devt boards -> armadeus_apf9328_defconfig
* APF27 SOM + devt board -> armadeus_apf27_defconfig * APF27 SOM + devt board -> armadeus_apf27_defconfig
* APF51 SOM + devt board -> armadeus_apf51_defconfig * APF51 SOM + devt board -> armadeus_apf51_defconfig
* APF28 SOM + devt board -> armadeus_apf28_defconfig * APF28 SOM + devt board -> armadeus_apf28_defconfig
@@ -45,12 +46,15 @@ When the build is finished, you will end up with:
output/images/ output/images/
├── imx**-apfxxdev.dtb [1] ├── imx**-apfxxdev.dtb [1]
├── rootfs.jffs2 [2]
├── rootfs.tar ├── rootfs.tar
├── rootfs.ubi ├── rootfs.ubi [2]
├── rootfs.ubifs ├── rootfs.ubifs [2]
└── uImage └── uImage
[1] Only if the kernel version used uses a Device Tree. [1] Only if the kernel version used uses a Device Tree.
[2] .ubi/.ubifs images are not available on APF9328 and replaced by a
.jffs2 one in this case.
Building U-Boot is currently not supported in these configurations. Building U-Boot is currently not supported in these configurations.
@@ -65,6 +69,7 @@ it:
$ cp output/images/uImage /tftpboot/apfxx-linux.bin $ cp output/images/uImage /tftpboot/apfxx-linux.bin
$ cp output/images/*.dtb /tftpboot/ $ cp output/images/*.dtb /tftpboot/
$ cp output/images/rootfs.ubi /tftpboot/apfxx-rootfs.ubi $ cp output/images/rootfs.ubi /tftpboot/apfxx-rootfs.ubi
$ cp output/images/rootfs.jffs2 /tftpboot/apfxx-rootfs.jffs2
where "apfxx" is the version of your SOM, as used with _defconfigs. where "apfxx" is the version of your SOM, as used with _defconfigs.

View File

@@ -1,39 +0,0 @@
# Image for SD card boot on Atmel at91sam9x5ek boards
#
image boot.vfat {
vfat {
files = {
"zImage",
"at91sam9g15ek.dtb",
"at91sam9g25ek.dtb",
"at91sam9g35ek.dtb",
"at91sam9x25ek.dtb",
"at91sam9x35ek.dtb",
"boot.bin",
"u-boot.bin"
}
file uboot.env {
image = "uboot-env.bin"
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 1M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
size = 512M
}
}

View File

@@ -1,7 +0,0 @@
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait video=Unknown-1:800x480-16
bootcmd=fatload mmc 0:1 0x21000000 at91sam9g35ek.dtb; fatload mmc 0:1 0x22000000 zImage; bootz 0x22000000 - 0x21000000
bootdelay=1
ethact=gmac0
stderr=serial
stdin=serial
stdout=serial

View File

@@ -130,6 +130,7 @@ if [[ $BOARD == "*pda4" ]]; then
video_mode="video=LVDS-1:480x272-16" video_mode="video=LVDS-1:480x272-16"
fi fi
echo "Executing: ${!F} O=$1/images $1/host/bin/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode" echo "Executing: ${!F} O=$1/images $1/host/opt/sam-ba/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode"
export O=$1/images export O=$1/images
$1/host/bin/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode $1/host/opt/sam-ba/sam-ba $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} ${!D} $video_mode

View File

@@ -44,7 +44,7 @@ using SAM-BA" section below.
For the Xplained boards, an alternative Buildroot configuration is For the Xplained boards, an alternative Buildroot configuration is
provided to boot from an SD card. Those configurations are labeled as provided to boot from an SD card. Those configurations are labeled as
'mmc'. In this case, after building Buildroot, follow the instructions 'mmc'. In this case, after building Buildroot, follow the instructions
in the "Preparing the SD card" section. in the "Preparting the SD card" sction.
To configure and build Buildroot, run: To configure and build Buildroot, run:

View File

@@ -1,34 +0,0 @@
# Image for SD card boot on Atmel SAMA5D2 Xplained boards
#
image boot.vfat {
vfat {
files = {
"zImage",
"at91-sama5d27_som1_ek.dtb",
"at91-sama5d27_som1_ek_pda4.dtb",
"at91-sama5d27_som1_ek_pda7.dtb",
"at91-sama5d27_som1_ek_pda7b.dtb",
"boot.bin",
"u-boot.bin"
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 1M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
size = 512M
}
}

View File

@@ -0,0 +1,14 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -0,0 +1,14 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -1,7 +0,0 @@
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
mmc dev 0
fatload mmc 0 $kernel_addr_r zImage
fatload mmc 0 $fdt_addr_r sun7i-a20-bananapi.dtb
bootz $kernel_addr_r - $fdt_addr_r

View File

@@ -1,33 +0,0 @@
image boot.vfat {
vfat {
files = {
"zImage",
"sun7i-a20-bananapi.dtb",
"boot.scr"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition u-boot {
in-partition-table = "no"
image = "u-boot-sunxi-with-spl.bin"
offset = 8192
size = 1040384 # 1MB - 8192
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -1,37 +0,0 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Bananapi M1. With the current configuration
it will bring-up the board, and allow access through the serial console.
Bananapi M1 link:
http://www.banana-pi.org/m1.html
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Bananapi+M1
This configuration uses U-Boot mainline and kernel mainline.
How to build
============
$ make bananapi_m1_defconfig
$ make
Note: you will need access to the internet to download the required
sources.
How to write the SD card
========================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
$ sudo sync
Insert the micro SDcard in your Bananapi M1 and power it up. The console
is on the serial line, 115200 8N1.

View File

@@ -1,6 +0,0 @@
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
fatload mmc 0 $kernel_addr_r Image
fatload mmc 0 $fdt_addr_r sun50i-a64-bananapi-m64.dtb
booti $kernel_addr_r - $fdt_addr_r

View File

@@ -1,39 +0,0 @@
image boot.vfat {
vfat {
files = {
"Image",
"sun50i-a64-bananapi-m64.dtb",
"boot.scr"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition spl {
in-partition-table = "no"
image = "sunxi-spl.bin"
offset = 8192
}
partition u-boot {
in-partition-table = "no"
image = "u-boot.itb"
offset = 40K
size = 1M # 1MB - 40K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@@ -1,37 +0,0 @@
Intro
=====
This default configuration will allow you to start experimenting with the
buildroot environment for the Bananapi M64. With the current configuration
it will bring-up the board, and allow access through the serial console.
Bananapi M64 link:
http://www.banana-pi.org/m64.html
Wiki link:
https://openedev.amarulasolutions.com/display/ODWIKI/Bananapi+M64
This configuration uses U-Boot mainline and kernel mainline.
How to build
============
$ make bananapi_m64_defconfig
$ make
Note: you will need access to the internet to download the required
sources.
How to write the SD card
========================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
$ sudo sync
Insert the micro SDcard in your Bananapi M64 and power it up. The console
is on the serial line, 115200 8N1.

View File

@@ -1,26 +0,0 @@
image boot.vfat {
vfat {
files = {
"MLO",
"u-boot.img"
}
}
size = 4M
}
image sdcard.img {
hdimage {
}
partition u-boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
size = 512M
}
}

View File

@@ -1,15 +0,0 @@
#!/bin/sh
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -1,49 +0,0 @@
BeagleBoard X15
Intro
=====
This config currently supports the beagleboard x15,
and generates a barebone image.
The image must be flashed to a SD card to be used.
How to build it
===============
$ make beagleboardx15_defconfig
Then you can edit the build options using
$ make menuconfig
Compile all and build a sdcard image:
$ make
Result of the build
-------------------
After building, you should get a tree like this:
output/images/
├── am57xx-beagle-x15.dtb
├── am57xx-beagle-x15-revb1.dtb
├── boot.vfat
├── MLO
├── rootfs.ext2
├── rootfs.ext4
├── rootfs.tar
├── sdcard.img
├── u-boot.img
├── u-boot-spl.bin
└── zImage
How to write the microSD card
=============================
Once the build process is finished you will have an image called "sdcard.img"
in the output/images/ directory.
Copy the bootable "sdcard.img" onto an SD card with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX

View File

@@ -9,7 +9,6 @@ image boot.vfat {
"am335x-evmsk.dtb", "am335x-evmsk.dtb",
"am335x-bone.dtb", "am335x-bone.dtb",
"am335x-boneblack.dtb", "am335x-boneblack.dtb",
"am335x-bonegreen.dtb",
} }
} }
size = 16M size = 16M

View File

@@ -1,32 +0,0 @@
image boot.vfat {
vfat {
files = {
"MLO",
"u-boot.img",
"zImage",
"uEnv.txt",
"am335x-evm.dtb",
"am335x-evmsk.dtb",
"am335x-bone.dtb",
"am335x-boneblack.dtb",
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition u-boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
size = 512M
}
}

View File

@@ -8,15 +8,7 @@ BOARD_DIR="$(dirname $0)"
# copy the uEnv.txt to the output/images directory # copy the uEnv.txt to the output/images directory
cp board/beaglebone/uEnv.txt $BINARIES_DIR/uEnv.txt cp board/beaglebone/uEnv.txt $BINARIES_DIR/uEnv.txt
# the 4.1 kernel does not provide a dtb for beaglebone green, so we GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
# use a different genimage config if am335x-bonegreen.dtb is not
# built:
if [ -e ${BINARIES_DIR}/am335x-bonegreen.dtb ] ; then
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
else
GENIMAGE_CFG="${BOARD_DIR}/genimage_linux41.cfg"
fi
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
rm -rf "${GENIMAGE_TMP}" rm -rf "${GENIMAGE_TMP}"

View File

@@ -106,7 +106,6 @@ fi
if itest.s "x" != "x${wlmac}" ; then if itest.s "x" != "x${wlmac}" ; then
setenv bootargs ${bootargs} wlcore.mac=${wlmac} setenv bootargs ${bootargs} wlcore.mac=${wlmac}
setenv bootargs ${bootargs} wlan.mac=${wlmac}
fi fi
if itest.s "x" != "x${gpumem}" ; then if itest.s "x" != "x${gpumem}" ; then

View File

@@ -1,155 +0,0 @@
setenv bootargs ''
setenv initrd_high 0xffffffff
m4=''
a_base=0x10000000
if itest.s x51 == "x${imx_cpu}" ; then
a_base=0x90000000
elif itest.s x53 == "x${imx_cpu}"; then
a_base=0x70000000
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
a_base=0x80000000
if itest.s "x1" == "x$m4enabled" ; then
run m4boot;
m4='-m4';
fi
fi
setexpr a_script ${a_base} + 0x00800000
setexpr a_zImage ${a_base} + 0x00800000
setexpr a_fdt ${a_base} + 0x03000000
setexpr a_ramdisk ${a_base} + 0x03800000
setexpr a_initrd ${a_base} + 0x03a00000
setexpr a_reset_cause_marker ${a_base} + 0x80
setexpr a_reset_cause ${a_base} + 0x84
if itest.s "x" == "x${board}" ; then
echo "!!!! Error: Your u-boot is outdated. Please upgrade.";
exit;
fi
if itest.s "x" == "x${fdt_file}" ; then
if itest.s x6SOLO == "x${imx_cpu}" ; then
fdt_file=imx6dl-${board}.dtb;
elif itest.s x6DL == "x${imx_cpu}" ; then
fdt_file=imx6dl-${board}.dtb;
elif itest.s x6QP == "x${imx_cpu}" ; then
fdt_file=imx6qp-${board}.dtb;
elif itest.s x6SX == "x${imx_cpu}" ; then
fdt_file=imx6sx-${board}${m4}.dtb;
elif itest.s x7D == "x${imx_cpu}" ; then
fdt_file=imx7d-${board}${m4}.dtb;
elif itest.s x51 == "x${imx_cpu}" ; then
fdt_file=imx51-${board}${m4}.dtb;
elif itest.s x53 == "x${imx_cpu}" ; then
fdt_file=imx53-${board}${m4}.dtb;
else
fdt_file=imx6q-${board}.dtb;
fi
fi
if itest.s x${distro_bootpart} == x ; then
distro_bootpart=1
fi
if load ${devtype} ${devnum}:${distro_bootpart} ${a_script} uEnv.txt ; then
env import -t ${a_script} ${filesize}
fi
setenv bootargs ${bootargs} console=${console},115200 vmalloc=400M consoleblank=0 rootwait fixrtc cpu=${imx_cpu} board=${board}
if load ${devtype} ${devnum}:${distro_bootpart} ${a_fdt} ${prefix}${fdt_file} ; then
fdt addr ${a_fdt}
setenv fdt_high 0xffffffff
else
echo "!!!! Error loading ${prefix}${fdt_file}";
exit;
fi
cmd_xxx_present=
fdt resize
if itest.s "x" != "x${cmd_custom}" ; then
run cmd_custom
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_hdmi}" ; then
run cmd_hdmi
cmd_xxx_present=1;
if itest.s x == x${allow_noncea} ; then
setenv bootargs ${bootargs} mxc_hdmi.only_cea=1;
echo "only CEA modes allowed on HDMI port";
else
setenv bootargs ${bootargs} mxc_hdmi.only_cea=0;
echo "non-CEA modes allowed on HDMI, audio may be affected";
fi
fi
if itest.s "x" != "x${cmd_lcd}" ; then
run cmd_lcd
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lcd2}" ; then
run cmd_lcd2
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds}" ; then
run cmd_lvds
cmd_xxx_present=1;
fi
if itest.s "x" != "x${cmd_lvds2}" ; then
run cmd_lvds2
cmd_xxx_present=1;
fi
if itest.s "x" == "x${cmd_xxx_present}" ; then
echo "!!!!!!!!!!!!!!!!"
echo "warning: your u-boot may be outdated, please upgrade"
echo "!!!!!!!!!!!!!!!!"
fi
if test "sata" = "${devtype}" ; then
setenv bootargs "${bootargs} root=/dev/sda${distro_bootpart}" ;
elif test "usb" = "${devtype}" ; then
setenv bootargs "${bootargs} root=/dev/sda${distro_bootpart}" ;
else
setenv bootargs "${bootargs} root=/dev/mmcblk${devnum}p${distro_bootpart}"
fi
if itest.s "x" != "x${disable_msi}" ; then
setenv bootargs ${bootargs} pci=nomsi
fi;
if itest.s "x" != "x${disable_giga}" ; then
setenv bootargs ${bootargs} fec.disable_giga=1
fi
if itest.s "x" != "x${wlmac}" ; then
setenv bootargs ${bootargs} wlcore.mac=${wlmac}
setenv bootargs ${bootargs} wlan.mac=${wlmac}
fi
if itest.s "x" != "x${gpumem}" ; then
setenv bootargs ${bootargs} galcore.contiguousSize=${gpumem}
fi
if itest.s "x" != "x${cma}" ; then
setenv bootargs ${bootargs} cma=${cma}
fi
if itest.s "x" != "x${loglevel}" ; then
setenv bootargs ${bootargs} loglevel=${loglevel}
fi
if itest.s "x" != "x${show_fdt}" ; then
fdt print /
fi
if itest.s "x" != "x${show_env}" ; then
printenv
fi
if load ${devtype} ${devnum}:${distro_bootpart} ${a_zImage} ${prefix}zImage ; then
bootz ${a_zImage} - ${a_fdt}
fi
echo "Error loading kernel image"

View File

@@ -7,19 +7,14 @@
BOARD_DIR="$(dirname $0)" BOARD_DIR="$(dirname $0)"
# bd u-boot looks for standard bootscript # bd u-boot looks for bootscript here
install -m 0644 -D $BINARIES_DIR/boot.scr $TARGET_DIR/boot/ $HOST_DIR/usr/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
# legacy 6x_bootscript script
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "boot script" -d $BOARD_DIR/6x_bootscript.txt $TARGET_DIR/6x_bootscript -n "boot script" -d $BOARD_DIR/6x_bootscript.txt $TARGET_DIR/6x_bootscript
# u-boot / update script for bd upgradeu command # u-boot / update script for bd upgradeu command
if [ -e $BINARIES_DIR/u-boot.imx ]; if [ -e $BINARIES_DIR/u-boot.imx ];
then then
install -D -m 0644 $BINARIES_DIR/u-boot.imx $TARGET_DIR/u-boot.imx install -D -m 0644 $BINARIES_DIR/u-boot.imx $TARGET_DIR/u-boot.imx
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \ $HOST_DIR/usr/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "upgrade script" -d $BOARD_DIR/upgrade.cmd $TARGET_DIR/upgrade.scr
# legacy 6x_upgrade script
$HOST_DIR/bin/mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n "upgrade script" -d $BOARD_DIR/6x_upgrade.txt $TARGET_DIR/6x_upgrade -n "upgrade script" -d $BOARD_DIR/6x_upgrade.txt $TARGET_DIR/6x_upgrade
fi fi

View File

@@ -1,154 +0,0 @@
if itest.s a$uboot_defconfig == a; then
echo "Please set uboot_defconfig to the appropriate value"
exit
fi
offset=0x400
erase_size=0xC0000
qspi_offset=0x0
a_base=0x12000000
if itest.s x51 == "x${imx_cpu}"; then
a_base=0x92000000
elif itest.s x53 == "x${imx_cpu}"; then
a_base=0x72000000
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
a_base=0x82000000
fi
qspi_match=1
setexpr a_qspi1 ${a_base}
setexpr a_qspi2 ${a_qspi1} + 0x400000
setexpr a_uImage1 ${a_qspi1} + 0x400
setexpr a_uImage2 ${a_qspi2} + 0x400
setexpr a_script ${a_base}
setenv stdout serial,vga
if sf probe || sf probe || sf probe 1 27000000 || sf probe 1 27000000 ; then
echo "probed SPI ROM" ;
else
echo "Error initializing EEPROM"
exit
fi
if itest.s x7D == "x${imx_cpu}"; then
echo "check qspi parameter block" ;
if ${fs}load ${devtype} ${devnum}:1 ${a_qspi1} qspi-${sfname}.${uboot_defconfig} ; then
else
echo "parameter file qspi-${sfname}.${uboot_defconfig} not found on SD card"
exit
fi
if itest ${filesize} != 0x200 ; then
echo "------- qspi-${sfname}.${uboot_defconfig} 0x${filesize} != 0x200 bytes" ;
exit
fi
setexpr a_marker ${a_qspi1} + 0x1fc
if itest *${a_marker} != c0ffee01 ; then
echo "------- qspi-${sfname}.${uboot_defconfig} c0ffee01 marker missing" ;
exit
fi
if sf read ${a_qspi2} ${qspi_offset} 0x200 ; then
else
echo "Error reading qspi parameter from EEPROM"
exit
fi
if cmp.b ${a_qspi1} ${a_qspi2} 0x200 ; then
echo "------- qspi parameters match"
else
echo "------- qspi parameters mismatch"
qspi_match=0
fi
fi
echo "check U-Boot" ;
if ${fs}load ${devtype} ${devnum}:1 ${a_uImage1} u-boot.$uboot_defconfig ; then
else
echo "File u-boot.$uboot_defconfig not found on SD card" ;
exit
fi
echo "read $filesize bytes from SD card" ;
if sf read ${a_uImage2} $offset $filesize ; then
else
echo "Error reading boot loader from EEPROM" ;
exit
fi
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
echo "------- U-Boot versions match" ;
if itest.s "${qspi_match}" == "1" ; then
echo "------- upgrade not needed" ;
if itest.s "x" != "x${next}" ; then
if ${fs}load ${devtype} ${devnum}:1 ${a_script} ${next} ; then
source ${a_script}
else
echo "${next} not found on SD card"
fi
fi
exit
fi
erase_size=0x1000
if itest.s xMX25L6405D == "x${sfname}"; then
erase_size=0x10000
fi
setexpr filesize ${erase_size} - ${offset}
fi
echo "Need U-Boot upgrade" ;
echo "Program in 5 seconds" ;
for n in 5 4 3 2 1 ; do
echo $n ;
sleep 1 ;
done
echo "erasing" ;
sf erase 0 ${erase_size} ;
# two steps to prevent bricking
echo "programming" ;
setexpr a1 ${a_uImage1} + 0x400
setexpr o1 ${offset} + 0x400
setexpr s1 ${filesize} - 0x400
sf write ${a1} ${o1} ${s1} ;
sf write ${a_uImage1} $offset 0x400 ;
if itest.s x7D == "x${imx_cpu}"; then
sf write ${a_qspi1} ${qspi_offset} 0x200
fi
echo "verifying" ;
if sf read ${a_uImage2} $offset $filesize ; then
else
echo "Error re-reading EEPROM" ;
exit
fi
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
else
echo "Read verification error" ;
exit
fi
if itest.s x7D == "x${imx_cpu}"; then
if sf read ${a_qspi2} ${qspi_offset} 0x200 ; then
else
echo "Error re-reading qspi" ;
exit
fi
if cmp.b ${a_qspi1} ${a_qspi2} 0x200 ; then
else
echo "qspi parameter block verification error" ;
exit
fi
fi
if itest.s "x" != "x${next}" ; then
if ${fs}load ${devtype} ${devnum}:1 ${a_script} ${next} ; then
source ${a_script}
else
echo "${next} not found on ${devtype} ${devnum}"
fi
fi
while echo "---- U-Boot upgraded. reset" ; do
sleep 120
done

View File

@@ -14,8 +14,8 @@
# cgpt does not create protective MBR, and the kernel refuses to read # cgpt does not create protective MBR, and the kernel refuses to read
# GPT unless there's some kind of MBR in sector 0. So we need parted # GPT unless there's some kind of MBR in sector 0. So we need parted
# to write that single sector before doing anything with the GPT. # to write that single sector before doing anything with the GPT.
cgpt=$HOST_DIR/bin/cgpt cgpt=$HOST_DIR/usr/bin/cgpt
parted=$HOST_DIR/sbin/parted parted=$HOST_DIR/usr/sbin/parted
kernel=$BINARIES_DIR/uImage.kpart kernel=$BINARIES_DIR/uImage.kpart
rootfs=$BINARIES_DIR/rootfs.ext2 rootfs=$BINARIES_DIR/rootfs.ext2

View File

@@ -88,7 +88,7 @@ you will probably want the rootfs to occupy the whole remaining space.
cgpt may be used to check current layout: cgpt may be used to check current layout:
output/host/bin/cgpt show $SD output/host/usr/bin/cgpt show $SD
All sizes and all offsets are in 512-byte blocks. All sizes and all offsets are in 512-byte blocks.

View File

@@ -5,9 +5,9 @@
# The resulting file is called uImage.kpart. # The resulting file is called uImage.kpart.
BOARD_DIR=$(dirname $0) BOARD_DIR=$(dirname $0)
mkimage=$HOST_DIR/bin/mkimage mkimage=$HOST_DIR/usr/bin/mkimage
futility=$HOST_DIR/bin/futility futility=$HOST_DIR/usr/bin/futility
devkeys=$HOST_DIR/share/vboot/devkeys devkeys=$HOST_DIR/usr/share/vboot/devkeys
run() { echo "$@"; "$@"; } run() { echo "$@"; "$@"; }
die() { echo "$@" >&2; exit 1; } die() { echo "$@" >&2; exit 1; }

View File

@@ -1,29 +0,0 @@
image sdcard.img {
hdimage {
}
partition uboot-spl {
in-partition-table = "no"
image = "u-boot-spl.bin"
offset = 512
}
partition uboot {
in-partition-table = "no"
image = "u-boot.img"
offset = 14k
}
partition uboot-env {
in-partition-table = "no"
image = "uboot-env.bin"
offset = 526k
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
offset = 2M
size = 60M
}
}

View File

@@ -2,45 +2,41 @@
* MIPS Creator CI20 * * MIPS Creator CI20 *
********************* *********************
Introduction
============
The 'ci20_defconfig' will create a root filesystem and a kernel image The 'ci20_defconfig' will create a root filesystem and a kernel image
under the 'output/images/' directory. This document will try to explain how under the 'output/images/' directory. This document will try to explain how
to use them in order to run Buildroot in the MIPS Creator CI20 board. to use them in order to run Buildroot in the MIPS Creator CI20 board.
How to build it Assuming you are at the U-Boot prompt of the MIPS Creator CI20, you have to
=============== load the generated kernel image by using the 'tftpboot' command. In
order to do that, you will need to get the network working. Here you
have the instructions to set the ip address, netmask and gateway:
Configure Buildroot setenv ipaddr x.x.x.x
------------------- setenv netmask x.x.x.x
setenv gatewayip x.x.x.x
$ make ci20_defconfig Now you have to set the ip for the TFTP server you are going to load the
kernel image from, and also the name of the kernel image file (we use
'uImage' as a filename in this example):
Build the rootfs setenv serverip x.x.x.x
---------------- setenv bootfile uImage
Note: you will need to have access to the network, since Buildroot will And finally load the kernel image:
download the packages' sources.
You may now build your rootfs with: tftpboot
$ make Now you have to extract the generated root filesystem into a USB drive
or SD-Card. Here you have the instructions to boot from the two of them.
You have to choose the one your prefer:
(This may take a while, consider getting yourself a coffee ;-) ) From USB
setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0
mem=768M@0x30000000 root=/dev/sda1
How to write the SD card From SD-Card
======================== setenv bootargs console=ttyS4,115200 console=tty0 mem=256M@0x0
mem=768M@0x30000000 root=/dev/mmcblk0p1
Once the build process is finished you will have an image called And finally run this command to boot the board:
"sdcard.img" in the output/images/ directory. bootm
Make sure the SD card is not mounted then copy the bootable "sdcard.img" onto
it with "dd":
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
Insert the SDcard into your ci20, and power it up. Your new system
should come up now and start a console on the UART HEADER.
see: https://elinux.org/CI20_Hardware#Dedicated_UART_header

View File

@@ -1,10 +0,0 @@
baudrate=115200
board_mfr=NP
bootargs=console=ttyS4,115200 console=tty0 mem=256M@0x0 mem=768M@0x30000000 rootwait root=/dev/mmcblk0p1 devtmpfs.mount=1 ip=dhcp
bootcmd=run ethargs; ext4load mmc 0:1 0x88000000 /boot/uImage; bootm 0x88000000
bootdelay=1
ethargs=env set bootargs ${bootargs}
loads_echo=1
stderr=eserial0,eserial4
stdin=eserial0,eserial4
stdout=eserial0,eserial4

View File

@@ -1,25 +0,0 @@
tar jtag jtag://127.0.0.1:1025
reset
# setup CCR (Cache Config Reg)
# 0-1:MP,2:IE,3:DE,4:WB,5:RS,6:Z,7:BE
set $cr18 = 0x7d
# vendor custom setup, double cache line & preload
set $cr30 = 0xc
# pin mux for serial8250
set *(unsigned int *) 0xa030a14c |= (1 << 22) | (1 << 23)
# pass devicetree blob
# r2 is magic
# r3 is address
set $r2 = 0x20150401
set $r3 = 0x92000000
restore gx6605s.dtb binary 0x92000000
# flush cache
set $cr17 = 0x33
load

View File

@@ -1,88 +0,0 @@
C-SKY Development Kit
Intro
=====
C-SKY is a CPU Architecture from www.c-sky.com and has it own instruction set.
Just like arm and mips in linux/arch, it named as 'csky'.
gx6605s develop board is made by Hangzhou Nationalchip and C-SKY.
Hardware Spec:
* CPU: ck610 up to 594Mhz
* Integrate with 64MB ddr2 in SOC.
* Integrate with hardware Jtag.
* Integrate with usb-to-serial chip.
* USB ehci controller in SOC.
* Power Supply: DC 5V from two micro-usb.
How to build it
===============
Configure Buildroot
-------------------
The csky_gx6605s_defconfig configuration is a sample configuration with
all that is required to bring the gx6605s Development Board:
$ make csky_gx6605s_defconfig
Build everything
----------------
Note: you will need to have access to the network, since Buildroot will
download the packages' sources.
$ make
Result of the build
-------------------
After building, you should obtain this tree:
output/images/
├── vmlinux
├── rootfs.ext2
└── <board name>.dtb
How to run it
=============
Prepare Jtag-Server
-------------------
Download the Jtag-Server here:
https://github.com/c-sky/tools/raw/master/DebugServerConsole-linux-x86_64-V4.2.00-20161213.tar.gz
Go to the unpacked directory:
$./DebugServerConsole -ddc -rstwait 1000 -prereset -port 1025
Perhaps you need to use "sudo", which need libusb to detect c510:b210
$ sudo ./DebugServerConsole -ddc -rstwait 1000 -prereset -port 1025
Prepare USB drive
-----------------
You sould determine which device associated to the usb drive
carefully. eg:
$ cat /proc/partitions
8 48 1971712 sdd
8 49 976720 sdd1
$ sudo dd if=rootfs.ext2 of=/dev/sdd1
$ sudo sync
Run
---
Plug the usb drive on gx6605s dev board.
Setup the Console with the rate 115200/8-N-1.
$ cd output/images
$ ../host/bin/csky-linux-gdb -x ../../board/csky/gx6605s/gdbinit vmlinux

View File

@@ -0,0 +1,11 @@
#!/bin/sh
# post-build.sh for Cubieboard2
# 2013, Carlo Caione <carlo.caione@gmail.com>
BOARD_DIR="$(dirname $0)"
MKIMAGE=$HOST_DIR/usr/bin/mkimage
BOOT_CMD=$BOARD_DIR/boot.cmd
BOOT_CMD_H=$BINARIES_DIR/boot.scr
# U-Boot script
$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H

View File

@@ -0,0 +1,46 @@
Buildroot for Embest RIoTboard
==============================
1. Compiling buildroot
----------------------
make riotboard_defconfig
make
2. Installing buildroot
-----------------------
Prepare an SD-card and plug it into your card reader. Write the bootloader to
your SD-card:
sudo dd if=output/images/u-boot.imx of=/dev/sdX bs=1k seek=1
Create 1 partition on the SD-card using your favourite tool. The
partition should be big enough to hold your rootfs, for example
128MiB. Here's an example partition layout:
Device Boot Start End Blocks Id System
/dev/sdX1 2048 264191 131072 83 Linux
Format the SD-card partition with your favourite filesystem:
sudo mkfs.ext2 /dev/sdX1
Deploy your rootfs to the SD-card:
sudo mkdir /mnt/sdcard/
sudo mount /dev/sdX1 /mnt/sdcard/
sudo tar xf output/images/rootfs.tar -C /mnt/sdcard/
sudo umount /dev/sdX1
3. Running buildroot
--------------------
Position the board so you can read the label "RIoTboard" on the right side of
SW1 DIP switches. Configure the SW1 swiches like this:
10100101 (1 means ON position, 0 means OFF position)
Now plug your prepared SD-card in slot J6. Connect a serial console (115200, 8,
N, 1) to header J18. Connect a 5V/1A power supply to the board and enjoy your
new toy.

View File

@@ -0,0 +1,6 @@
default buildroot
label buildroot
kernel /boot/uImage
devicetree /boot/imx6dl-riotboard.dtb
append console=ttymxc1,115200 root=/dev/mmcblk0p1 rw

View File

@@ -1,38 +0,0 @@
image boot.vfat {
vfat {
files = {
"uImage",
"imx6ul-geam-kit.dtb"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition SPL {
in-partition-table = "no"
image = "SPL"
offset = 1024
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 69K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,66 +0,0 @@
********************************************
Buildroot for Engicam GEAM6UL SOM platforms:
********************************************
This file documents the Buildroot support for all Engicam GEAM6UL
SOM platform boards.
GEAM6UL SOM Starter kits:
https://www.engicam.com/vis-prod/101115
This configuration uses U-Boot mainline and kernel mainline.
Build
=====
First, configure Buildroot for the Engicam GEAM6UL SOM:
- for GEAM6UL SOM:
make engicam_imx6ul_geam_defconfig
Build all components:
make
You will find the following files in output/images/:
- imx6ul-geam-kit.dtb
- rootfs.ext4
- rootfs.tar
- sdcard.img
- SPL
- u-boot-dtb.img
- uImage
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
sync
*** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in
board/engicam/geam6ul/genimage.cfg
Boot the GEAM6UL boards with SD boot:
====================================
To boot your newly created system:
- insert the SD card in the SD slot of the board;
- connect 3-wire RS232 serial port J28 on board, and connect with other
serial end or USB cable(if serial-to-usb converter used) using
a terminal emulator at 115200 bps, 8n1;
- close JM3 for sd boot.
- power on the board.
Enjoy!

View File

@@ -1,41 +0,0 @@
image boot.vfat {
vfat {
files = {
"uImage",
"imx6dl-icore.dtb",
"imx6q-icore.dtb",
"imx6q-icore-ofcap10.dtb",
"imx6q-icore-ofcap12.dtb"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition SPL {
in-partition-table = "no"
image = "SPL"
offset = 1024
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 69K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,4 +0,0 @@
# Currently kernel mainline exhibits issues when running cpufreq as ondemand
# governor on mx6.
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

View File

@@ -1,93 +0,0 @@
*********************************************
Buildroot for Engicam i.CoreM6 SOM platforms:
*********************************************
This file documents the Buildroot support for Engicam i.CoreM6
platform boards.
i.CoreM6 Quad/Dual/DualLite/Solo SOM Starter kits:
https://www.engicam.com/vis-prod/101120
i.CoreM6 Quad/Dual/DualLite/Solo Open Frame 10.1 C.TOUCH kits:
https://www.engicam.com/vis-prod/101133
This configuration uses U-Boot mainline and kernel mainline.
Build
=====
First, configure Buildroot for the Engicam i.CoreM6:
make engicam_imx6qdl_icore_defconfig
Build all components:
make
You will find the following files in output/images/:
- imx6q-icore.dtb (for i.CoreM6 Quad/Dual)
- imx6dl-icore.dtb (for i.CoreM6 DualLite/Solo)
- imx6q-icore-ofcap10.dtb (for i.CoreM6 Quad/Dual ofcap 10)
- imx6q-icore-ofcap12.dtb (for i.CoreM6 Quad/Dual ofcap 12)
- rootfs.ext4
- rootfs.tar
- sdcard.img
- SPL
- u-boot-dtb.img
- uImage
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
sync
*** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in
board/engicam/icorem6/genimage.cfg
Boot the i.CoreM6 boards with SD boot:
=====================================
To boot your newly created system:
- insert the SD card in the SD slot of the board;
- connect 3-wire RS232 serial port J28 on board, and connect with other
serial end or USB cable(if serial-to-usb converter used) using
a terminal emulator at 115200 bps, 8n1;
- close JM3 for sd boot.
- power on the board.
Testing graphics on i.CoreM6:
============================
Build with support for Etnaviv, Qt5 and demo applications:
make engicam_imx6qdl_icore_qt5_defconfig
make
Running kmscube
# kmscube -D /dev/dri/card1
Running glmark2-es2-drm
# glmark2-es2-drm
Running Qt5 Cinematic Demo:
- for i.CoreM6 Starter Kit
# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore.json
- for i.CoreM6 ofcap10
# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore-ofcap10.json
- for i.CoreM6 ofcap12
# export QT_QPA_EGLFS_KMS_CONFIG=/root/imx6qdl-icore-ofcap12.json
# CinematicExperience-demo
Enjoy!

View File

@@ -1,11 +0,0 @@
{
"device": "/dev/dri/card1",
"hwcursor": false,
"pbuffers": true,
"outputs": [
{
"name": "LVDS-1",
"mode": "1280x800"
}
]
}

View File

@@ -1,11 +0,0 @@
{
"device": "/dev/dri/card1",
"hwcursor": false,
"pbuffers": true,
"outputs": [
{
"name": "LVDS-1",
"mode": "1280x480"
}
]
}

View File

@@ -1,11 +0,0 @@
{
"device": "/dev/dri/card1",
"hwcursor": false,
"pbuffers": true,
"outputs": [
{
"name": "LVDS-1",
"mode": "800x480"
}
]
}

View File

@@ -1,39 +0,0 @@
image boot.vfat {
vfat {
files = {
"uImage",
"imx6dl-icore-rqs.dtb",
"imx6q-icore-rqs.dtb"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition SPL {
in-partition-table = "no"
image = "SPL"
offset = 1024
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 69K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,69 +0,0 @@
*************************************************
Buildroot for Engicam i.CoreM6 RQS SOM platforms:
*************************************************
This file documents the Buildroot support for Engicam i.CoreM6 RQS
SOM platform boards.
i.CoreM6 Quad/Dual/DualLite/Solo RQS SOM Starter kits:
https://www.engicam.com/vis-prod/101124
This configuration uses U-Boot mainline and kernel mainline.
Build
=====
First, configure Buildroot for the Engicam i.CoreM6 RQS:
- for i.CoreM6 RQS Quad/Dual/DualLite/Solo:
make engicam_imx6qdl_icore_rqs_defconfig
Build all components:
make
You will find the following files in output/images/:
- for i.CoreM6 Quad/Dual RQS:
- imx6q-icore-rqs.dtb
- for i.CoreM6 DualLite/Solo RQS:
- imx6dl-icore-rqs.dtb
- rootfs.ext4
- rootfs.tar
- sdcard.img
- SPL
- u-boot-dtb.img
- uImage
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
sync
*** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in
board/engicam/icorem6_rqs/genimage.cfg
Boot the i.CoreM6 RQS boards with SD boot:
=========================================
To boot your newly created system:
- insert the SD card in the SD slot of the board;
- connect 3-wire RS232 serial port J7 on board, and connect with other
serial end or USB cable(if serial-to-usb converter used) using
a terminal emulator at 115200 bps, 8n1;
- close JM2 for sd boot.
- power on the board.
Enjoy!

View File

@@ -1,38 +0,0 @@
image boot.vfat {
vfat {
files = {
"uImage",
"imx6ul-isiot-emmc.dtb"
}
}
size = 64M
}
image sdcard.img {
hdimage {
}
partition SPL {
in-partition-table = "no"
image = "SPL"
offset = 1024
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 69K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,66 +0,0 @@
********************************************
Buildroot for Engicam Is.IoT SOM platforms:
********************************************
This file documents the Buildroot support for all Engicam Is.IoT MX6UL
SOM platform boards.
Is.IoT MX6UL SOM Starter kits:
https://www.engicam.com/vis-prod/101122
This configuration uses U-Boot mainline and kernel mainline.
Build
=====
First, configure Buildroot for the Engicam Is.IoT MX6UL SOM:
- for Is.IoT MX6UL SOM:
make engicam_imx6ul_isiot_defconfig
Build all components:
make
You will find the following files in output/images/:
- imx6ul-isiot-emmc.dtb
- rootfs.ext4
- rootfs.tar
- sdcard.img
- SPL
- u-boot-dtb.img
- uImage
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Buildroot prepares a bootable "sdcard.img" image in the output/images/
directory, ready to be dumped on a SD card. Launch the following
command as root:
dd if=output/images/sdcard.img of=/dev/<your-sd-device>
sync
*** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in
board/engicam/isiot/genimage.cfg
Boot the Is.IoT MX6UL boards with SD boot:
=========================================
To boot your newly created system:
- insert the SD card in the SD slot of the board;
- connect 3-wire RS232 serial port J28 on board, and connect with other
serial end or USB cable(if serial-to-usb converter used) using
a terminal emulator at 115200 bps, 8n1;
- close JM3 for sd boot.
- power on the board.
Enjoy!

View File

@@ -0,0 +1,6 @@
default firefly-rk3288
label firefly-rk3288
kernel /boot/uImage
devicetree /boot/rk3288-firefly.dtb
append console=ttyS2,115200n8 root=/dev/mmcblk0p1 rootwait

View File

@@ -0,0 +1,3 @@
BOARD_DIR="$(dirname $0)"
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf

View File

@@ -0,0 +1,20 @@
#!/bin/sh
MKIMAGE=$HOST_DIR/usr/bin/mkimage
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/sd-image.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
$MKIMAGE -n rk3288 -T rksd -d $BINARIES_DIR/u-boot-spl-dtb.bin $BINARIES_DIR/u-boot-spl-dtb.img
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"
exit $?

View File

@@ -0,0 +1,40 @@
Firefly RK3288
How to build it
===============
$ make firefly_rk3288_defconfig
Then you can edit the build options using
$ make menuconfig
Compile all and build rootfs image:
$ make
Result of the build
-------------------
After building, you should get a tree like this:
output/images/
├── rk3288-firefly.dtb
├── rootfs.ext2
├── rootfs.ext4 -> rootfs.ext2
├── sdcard.img
├── u-boot-dtb.img
├── u-boot-spl-dtb.bin
├── u-boot-spl-dtb.img
└── uImage
Prepare your SDCard
===================
Buildroot generates a ready-to-use SD card image that you can flash directly to
the card. The image will be in output/images/sdcard.img.
You can write this image directly to an SD card device (i.e. /dev/xxx):
$ dd if=output/images/sdcard.img of=/dev/xxx
Finally, you can insert the SD card to the Firefly RK3288 board and boot it.

View File

@@ -0,0 +1,22 @@
image sdcard.img {
hdimage {
}
partition u-boot-spl-dtb {
in-partition-table = "no"
image = "u-boot-spl-dtb.img"
offset = 32K
}
partition u-boot-dtb {
in-partition-table = "no"
image = "u-boot-dtb.img"
offset = 128K
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
size = 512M
}
}

View File

@@ -1,46 +0,0 @@
# Minimal SD card image for the Freescale boards Template for SPL Boot
#
# We mimic the .sdcard Freescale's image format:
# * the SD card must have 1 kB free space at the beginning,
# * U-Boot is dumped as is,
# * a FAT partition at offset 8MB is containing zImage/uImage and DTB files
# * a single root filesystem partition is required (ext2, ext3 or ext4)
#
image boot.vfat {
vfat {
files = {
%FILES%
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition spl {
in-partition-table = "no"
image = "SPL"
offset = 1024
}
partition u-boot-img {
in-partition-table = "no"
image = "u-boot.img"
offset = 69K
}
partition boot {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
offset = 8M
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,63 +0,0 @@
#!/usr/bin/env bash
#
# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME
# in ${BR_CONFIG}, then prints the corresponding list of file names for the
# genimage configuration file
#
dtb_list()
{
local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
for dt in $DTB_LIST; do
echo -n "\"$dt.dtb\", "
done
}
#
# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in
# ${BR_CONFIG}, then prints the corresponding file name for the genimage
# configuration file
#
linux_image()
{
if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
echo "\"uImage\""
else
echo "\"zImage\""
fi
}
genimage_type()
{
if grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then
echo "genimage.cfg.template_spl"
else
echo "genimage.cfg.template"
fi
}
main()
{
local FILES="$(dtb_list) $(linux_image)"
local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
sed -e "s/%FILES%/${FILES}/" \
board/freescale/common/imx/$(genimage_type) > ${GENIMAGE_CFG}
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"
rm -f ${GENIMAGE_CFG}
exit $?
}
main $@

View File

@@ -1,39 +0,0 @@
# Minimal SD card image for the Freescale MX23/MX28 Template
#
# We mimic the .sdcard Freescale's MX23/MX28 image format:
# * u-boot.sb is placed at offset 1M,
# * a FAT partition at offset 16 MB is containing zImage/uImage and DTB files
# * a single root filesystem partition is required (ext2, ext3 or ext4)
#
image boot.vfat {
vfat {
files = {
%FILES%
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition u-boot {
partition-type = 0x53
image = "u-boot.sd"
offset = 1M
size = 16M
}
partition kernel {
partition-type = 0xC
bootable = "true"
image = "boot.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -1,54 +0,0 @@
#!/usr/bin/env bash
#
# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME
# in ${BR_CONFIG}, then prints the corresponding list of file names for the
# genimage configuration file
#
dtb_list()
{
local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
for dt in $DTB_LIST; do
echo -n "\"$dt.dtb\", "
done
}
#
# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in
# ${BR_CONFIG}, then prints the corresponding file name for the genimage
# configuration file
#
linux_image()
{
if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
echo "\"uImage\""
else
echo "\"zImage\""
fi
}
main()
{
local FILES="$(dtb_list) $(linux_image)"
local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
sed -e "s/%FILES%/${FILES}/" \
board/freescale/common/mxs/genimage.cfg.template > ${GENIMAGE_CFG}
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"
rm -f ${GENIMAGE_CFG}
exit $?
}
main $@

View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
#
# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME
# in ${BR_CONFIG}, then prints the corresponding list of file names for the
# genimage configuration file
#
dtb_list()
{
local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
for dt in $DTB_LIST; do
echo -n "\"$dt.dtb\", "
done
}
#
# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in
# ${BR_CONFIG}, then prints the corresponding file name for the genimage
# configuration file
#
linux_image()
{
if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
echo "\"uImage\""
else
echo "\"zImage\""
fi
}
main()
{
local FILES="$(dtb_list) $(linux_image)"
local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
sed -e "s/%FILES%/${FILES}/" \
board/freescale/common/genimage.cfg.template > ${GENIMAGE_CFG}
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"
rm -f ${GENIMAGE_CFG}
exit $?
}
main $@

View File

@@ -1,48 +0,0 @@
**************************
Freescale i.MX23 EVK board
**************************
This file documents the Buildroot support for the Freescale i.MX23 EVK board.
Build
=====
First, configure Buildroot for your i.MX23 EVK board:
make imx23evk_defconfig
Build all components:
make
You will find in output/images/ directory the following files:
- imx23-evk.dtb
- rootfs.tar
- u-boot.sd
- zImage
Create a bootable SD card
=========================
To determine the device associated to the SD card have a look in the
/proc/partitions file:
cat /proc/partitions
Then, run the following command:
*** WARNING! The command will destroy all the card content. Use with care! ***
sudo dd if=output/images/sdcard.img of=/dev/<your-microsd-device>
Boot the i.MX23 EVK board
=========================
- Put the Boot Mode Select jumper as 1 0 0 1 so that it can boot
from the SD card
- Insert the SD card in the SD Card slot of the board;
- Connect an RS232 UART cable to the Debug UART Port and connect using a
terminal emulator at 115200 bps, 8n1;
- power on the board.
Enjoy!

View File

@@ -40,7 +40,7 @@ command as root:
*** WARNING! This will destroy all the card content. Use with care! *** *** WARNING! This will destroy all the card content. Use with care! ***
For details about the medium image layout, see the definition in For details about the medium image layout, see the definition in
board/freescale/common/imx/genimage.cfg.template. board/freescale/common/genimage.cfg.template.
Boot the i.MX25 PDK board Boot the i.MX25 PDK board
========================= =========================

View File

@@ -0,0 +1,29 @@
image kernel.vfat {
vfat {
files = {
"zImage", "imx28-evk.dtb"
}
}
size = 16M
}
image sdcard.img {
hdimage {
}
partition boot {
partition-type = 0x53
image = "u-boot.sd"
offset = 1M
size = 16M
}
partition kernel {
partition-type = 0xC
image = "kernel.vfat"
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
BOARD_DIR="$(dirname $0)"
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
rm -rf "${GENIMAGE_TMP}"
genimage \
--rootpath "${TARGET_DIR}" \
--tmppath "${GENIMAGE_TMP}" \
--inputpath "${BINARIES_DIR}" \
--outputpath "${BINARIES_DIR}" \
--config "${GENIMAGE_CFG}"

View File

@@ -0,0 +1 @@
# CONFIG_FB_MXS is not set

View File

@@ -0,0 +1,92 @@
**************************************
Freescale i.MX31 PDK development board
**************************************
This file documents the Buildroot support for the Freescale i.MX31 PDK in "3
stack" configuration.
The i.MX31 Product Development Kit (or PDK) is Freescale development board [1]
based on the i.MX31 application processor [2].
For more details on the i.MX31 PDK board, refer to the User's Guide [3].
Build
=====
First, configure Buildroot for your i.MX31 PDK board:
make freescale_imx31_3stack_defconfig
Build all components:
make
You will find in ./output/images/ the following files:
- rootfs.cpio
- rootfs.cpio.gz
- rootfs.tar
- zImage
The generated zImage does include the rootfs.
Boot the PDK board
==================
The i.MX31 PDK contains a RedBoot bootloader in flash, which can be used to
boot the newly created Buildroot images from the network.
This necessitates to setup a TFTP server first. This setup is explained for
example in Freescale i.MX31 PDK 1.5 Linux User's Guide [4].
Here is a sample RedBoot configuration, for proper network boot of Buildroot on
the i.MX31 PDK:
RedBoot> fconfig -l
Run script at boot: true
Boot script:
.. load -r -b 0x100000 zImage
.. exec -c "console=ttymxc0,115200"
Boot script timeout (1000ms resolution): 2
Use BOOTP for network configuration: false
Gateway IP address: <your gateway IP address>
Local IP address: <your PDK IP address>
Local IP address mask: 255.255.255.0
Default server IP address: <your TFTP server IP address>
Board specifics: 0
Console baud rate: 115200
Set eth0 network hardware address [MAC]: false
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Adapt those settings to your network configuration by replacing the appropriate
network addresses where necessary.
You might want to verify that your i.MX31 PDK switches settings are the correct
ones for UART, power, boot mode, etc. Here is a reference switches
configuration:
SW4
1 2 3 4 5 6 7 8
ON off off off off off off ON
SW5 SW6 SW7 SW8 SW9 SW10
0 1 0 0 0 0
See the i.MX31 PDK Linux Quick Start Guide [5] for more details on the switches
settings.
Connect a serial terminal set to 115200n8 and power on the i.MX31 PDK board.
Buildroot will present a login prompt on the serial port.
Enjoy!
References
==========
[1] http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX31PDK
[2] http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX31
[3] http://cache.freescale.com/files/32bit/doc/user_guide/pdk15_imx31_Hardware_UG.pdf
[4] http://cache.freescale.com/files/32bit/doc/support_info/IMX31_PDK15_LINUXDOCS_BUNDLE.zip, pdk15_imx31__Linux_UG.pdf
[5] http://www.freescale.com/files/32bit/doc/quick_ref_guide/PDK14LINUXQUICKSTART.pdf

Some files were not shown because too many files have changed in this diff Show More