mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-17 12:53:45 -09:00
Compare commits
91 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d77f6c1712 | ||
|
|
73dad61740 | ||
|
|
b718ed9fab | ||
|
|
668fe091f8 | ||
|
|
efe9840c2a | ||
|
|
2610ab44be | ||
|
|
30433bc252 | ||
|
|
5381d693ef | ||
|
|
3eadf3ccbd | ||
|
|
b952431bf3 | ||
|
|
e818d80f4d | ||
|
|
e82df41169 | ||
|
|
6271eabb12 | ||
|
|
b1a2ad290a | ||
|
|
c6bf0d01e7 | ||
|
|
8294642b7a | ||
|
|
675b5f3439 | ||
|
|
e047354d09 | ||
|
|
550c5d67ab | ||
|
|
8607d7f7e0 | ||
|
|
82796c2770 | ||
|
|
64f83694c1 | ||
|
|
83d4a70fd2 | ||
|
|
6bab977dc7 | ||
|
|
7056eee606 | ||
|
|
8a4449f869 | ||
|
|
c23b97f11a | ||
|
|
2822c1d200 | ||
|
|
d76e77036d | ||
|
|
579fe1c91b | ||
|
|
bf76ef6c31 | ||
|
|
e03bbada32 | ||
|
|
8ecb9e8154 | ||
|
|
f10dc0c3db | ||
|
|
fc0f575ae9 | ||
|
|
5905fa0d35 | ||
|
|
5edf478e33 | ||
|
|
7429adc5f2 | ||
|
|
b77d290993 | ||
|
|
aeb3e03627 | ||
|
|
75f8b68706 | ||
|
|
9e1b847569 | ||
|
|
865799e4aa | ||
|
|
6bdb30be0c | ||
|
|
d8826a9ee7 | ||
|
|
4f5913e471 | ||
|
|
c0ce55929e | ||
|
|
125dd61444 | ||
|
|
87e80d1bd1 | ||
|
|
dfd7269860 | ||
|
|
fc9125fb16 | ||
|
|
014a25173e | ||
|
|
dde51f1a35 | ||
|
|
d60ba920b2 | ||
|
|
bd86fb8ee3 | ||
|
|
357af4853b | ||
|
|
fbcbbdd0f6 | ||
|
|
4c0f06c08b | ||
|
|
174c5d2dbf | ||
|
|
1f0205ed61 | ||
|
|
03aadc8759 | ||
|
|
fa4b6a45e7 | ||
|
|
52bdfcfd8c | ||
|
|
45eedd82e1 | ||
|
|
633cad6e83 | ||
|
|
a75cf49658 | ||
|
|
dfaac41b4c | ||
|
|
a69392c719 | ||
|
|
ec13a9b598 | ||
|
|
5ef2a1aded | ||
|
|
c29905ae47 | ||
|
|
43623a24b6 | ||
|
|
381176ba3b | ||
|
|
6439831802 | ||
|
|
7fda4097bc | ||
|
|
0408b48116 | ||
|
|
f335581465 | ||
|
|
276ca822e8 | ||
|
|
7c9e7db1ed | ||
|
|
e3082a3035 | ||
|
|
507b18c76c | ||
|
|
209156962a | ||
|
|
eec524032f | ||
|
|
7bd72289f0 | ||
|
|
e68cec4a2b | ||
|
|
f3d3680c50 | ||
|
|
832f4d8ae4 | ||
|
|
7b90e9eabb | ||
|
|
f015857126 | ||
|
|
c62302f5e2 | ||
|
|
171a220c44 |
482
.gitlab-ci.yml
482
.gitlab-ci.yml
@@ -1,23 +1,471 @@
|
||||
# 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:20200814.2228
|
||||
image: buildroot/base:20180318.1724
|
||||
|
||||
stages:
|
||||
- generate-gitlab-ci
|
||||
- build
|
||||
.check_base:
|
||||
except:
|
||||
- /^.*-.*_defconfig$/
|
||||
- /^.*-tests\..*$/
|
||||
|
||||
generate-gitlab-ci-yml:
|
||||
stage: generate-gitlab-ci
|
||||
script: ./support/scripts/generate-gitlab-ci-yml support/misc/gitlab-ci.yml.in > generated-gitlab-ci.yml
|
||||
artifacts:
|
||||
paths:
|
||||
- generated-gitlab-ci.yml
|
||||
check-DEVELOPERS:
|
||||
extends: .check_base
|
||||
# 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'"
|
||||
|
||||
buildroot-pipeline:
|
||||
stage: build
|
||||
trigger:
|
||||
include:
|
||||
- artifact: generated-gitlab-ci.yml
|
||||
job: generate-gitlab-ci-yml
|
||||
strategy: depend
|
||||
check-flake8:
|
||||
extends: .check_base
|
||||
before_script:
|
||||
# Help flake8 to find the Python files without .py extension.
|
||||
- find * -type f -name '*.py' > files.txt
|
||||
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
||||
- sort -u files.txt | tee files.processed
|
||||
script:
|
||||
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
||||
after_script:
|
||||
- wc -l files.processed
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
extends: .check_base
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
|
||||
check-package:
|
||||
extends: .check_base
|
||||
script:
|
||||
- make check-package
|
||||
|
||||
.defconfig_base:
|
||||
script:
|
||||
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
||||
- make ${DEFCONFIG_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- .config
|
||||
- build.log
|
||||
- output/images/
|
||||
- output/build/build-time.log
|
||||
- output/build/packages-file-list.txt
|
||||
- output/build/*/.config
|
||||
|
||||
.defconfig:
|
||||
extends: .defconfig_base
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-defconfigs$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-defconfig:
|
||||
extends: .defconfig_base
|
||||
only:
|
||||
- /^.*-.*_defconfig$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
||||
.runtime_test_base:
|
||||
# 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:
|
||||
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
||||
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- test-output/*.log
|
||||
- test-output/*/.config
|
||||
- test-output/*/images/*
|
||||
|
||||
.runtime_test:
|
||||
extends: .runtime_test_base
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-runtime_test:
|
||||
extends: .runtime_test_base
|
||||
only:
|
||||
- /^.*-tests\..*$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
aarch64_efi_defconfig: { extends: .defconfig }
|
||||
acmesystems_aria_g25_128mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_aria_g25_256mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_arietta_g25_128mb_defconfig: { extends: .defconfig }
|
||||
acmesystems_arietta_g25_256mb_defconfig: { extends: .defconfig }
|
||||
amarula_a64_relic_defconfig: { extends: .defconfig }
|
||||
amarula_vyasa_rk3288_defconfig: { extends: .defconfig }
|
||||
andes_ae3xx_defconfig: { extends: .defconfig }
|
||||
arcturus_ucls1012a_defconfig: { extends: .defconfig }
|
||||
arcturus_ucp1020_defconfig: { extends: .defconfig }
|
||||
arm_foundationv8_defconfig: { extends: .defconfig }
|
||||
arm_juno_defconfig: { extends: .defconfig }
|
||||
armadeus_apf27_defconfig: { extends: .defconfig }
|
||||
armadeus_apf28_defconfig: { extends: .defconfig }
|
||||
armadeus_apf51_defconfig: { extends: .defconfig }
|
||||
asus_tinker_rk3288_defconfig: { extends: .defconfig }
|
||||
at91sam9260eknf_defconfig: { extends: .defconfig }
|
||||
at91sam9g20dfc_defconfig: { extends: .defconfig }
|
||||
at91sam9g45m10ek_defconfig: { extends: .defconfig }
|
||||
at91sam9rlek_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_dev_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_mmc_defconfig: { extends: .defconfig }
|
||||
at91sam9x5ek_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d27_som1_ek_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d2_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d2_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d3xek_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_dev_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_mmc_defconfig: { extends: .defconfig }
|
||||
atmel_sama5d4_xplained_mmc_dev_defconfig: { extends: .defconfig }
|
||||
bananapi_m1_defconfig: { extends: .defconfig }
|
||||
bananapi_m2_plus_defconfig: { extends: .defconfig }
|
||||
bananapi_m2_ultra_defconfig: { extends: .defconfig }
|
||||
bananapi_m64_defconfig: { extends: .defconfig }
|
||||
bananapro_defconfig: { extends: .defconfig }
|
||||
beagleboardx15_defconfig: { extends: .defconfig }
|
||||
beaglebone_defconfig: { extends: .defconfig }
|
||||
beaglebone_qt5_defconfig: { extends: .defconfig }
|
||||
chromebook_snow_defconfig: { extends: .defconfig }
|
||||
ci20_defconfig: { extends: .defconfig }
|
||||
csky_gx6605s_defconfig: { extends: .defconfig }
|
||||
cubieboard2_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_qt5_defconfig: { extends: .defconfig }
|
||||
engicam_imx6qdl_icore_rqs_defconfig: { extends: .defconfig }
|
||||
engicam_imx6ul_geam_defconfig: { extends: .defconfig }
|
||||
engicam_imx6ul_isiot_defconfig: { extends: .defconfig }
|
||||
freescale_imx28evk_defconfig: { extends: .defconfig }
|
||||
freescale_imx6dlsabreauto_defconfig: { extends: .defconfig }
|
||||
freescale_imx6dlsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx6qsabreauto_defconfig: { extends: .defconfig }
|
||||
freescale_imx6qsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx6sxsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx7dsabresd_defconfig: { extends: .defconfig }
|
||||
freescale_imx8mmevk_defconfig: { extends: .defconfig }
|
||||
freescale_imx8mqevk_defconfig: { extends: .defconfig }
|
||||
freescale_imx8qxpmek_defconfig: { extends: .defconfig }
|
||||
freescale_p1025twr_defconfig: { extends: .defconfig }
|
||||
freescale_t1040d4rdb_defconfig: { extends: .defconfig }
|
||||
freescale_t2080_qds_rdb_defconfig: { extends: .defconfig }
|
||||
friendlyarm_nanopi_a64_defconfig: { extends: .defconfig }
|
||||
friendlyarm_nanopi_neo2_defconfig: { extends: .defconfig }
|
||||
galileo_defconfig: { extends: .defconfig }
|
||||
grinn_chiliboard_defconfig: { extends: .defconfig }
|
||||
grinn_liteboard_defconfig: { extends: .defconfig }
|
||||
hifive_unleashed_defconfig: { extends: .defconfig }
|
||||
imx23evk_defconfig: { extends: .defconfig }
|
||||
imx6-sabreauto_defconfig: { extends: .defconfig }
|
||||
imx6-sabresd_defconfig: { extends: .defconfig }
|
||||
imx6-sabresd_qt5_defconfig: { extends: .defconfig }
|
||||
imx6slevk_defconfig: { extends: .defconfig }
|
||||
imx6sx-sdb_defconfig: { extends: .defconfig }
|
||||
imx6ulevk_defconfig: { extends: .defconfig }
|
||||
imx6ulpico_defconfig: { extends: .defconfig }
|
||||
imx7d-sdb_defconfig: { extends: .defconfig }
|
||||
imx7dpico_defconfig: { extends: .defconfig }
|
||||
imx8mmpico_defconfig: { extends: .defconfig }
|
||||
imx8mpico_defconfig: { extends: .defconfig }
|
||||
lego_ev3_defconfig: { extends: .defconfig }
|
||||
licheepi_zero_defconfig: { extends: .defconfig }
|
||||
linksprite_pcduino_defconfig: { extends: .defconfig }
|
||||
minnowboard_max-graphical_defconfig: { extends: .defconfig }
|
||||
minnowboard_max_defconfig: { extends: .defconfig }
|
||||
mx25pdk_defconfig: { extends: .defconfig }
|
||||
mx51evk_defconfig: { extends: .defconfig }
|
||||
mx53loco_defconfig: { extends: .defconfig }
|
||||
mx6cubox_defconfig: { extends: .defconfig }
|
||||
mx6sx_udoo_neo_defconfig: { extends: .defconfig }
|
||||
mx6udoo_defconfig: { extends: .defconfig }
|
||||
nanopi_m1_defconfig: { extends: .defconfig }
|
||||
nanopi_m1_plus_defconfig: { extends: .defconfig }
|
||||
nanopi_neo_defconfig: { extends: .defconfig }
|
||||
nexbox_a95x_defconfig: { extends: .defconfig }
|
||||
nitrogen6sx_defconfig: { extends: .defconfig }
|
||||
nitrogen6x_defconfig: { extends: .defconfig }
|
||||
nitrogen7_defconfig: { extends: .defconfig }
|
||||
nitrogen8m_defconfig: { extends: .defconfig }
|
||||
odroidxu4_defconfig: { extends: .defconfig }
|
||||
olimex_a10_olinuxino_lime_defconfig: { extends: .defconfig }
|
||||
olimex_a13_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_lime2_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_lime_defconfig: { extends: .defconfig }
|
||||
olimex_a20_olinuxino_micro_defconfig: { extends: .defconfig }
|
||||
olimex_a33_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_a64_olinuxino_defconfig: { extends: .defconfig }
|
||||
olimex_imx233_olinuxino_defconfig: { extends: .defconfig }
|
||||
openblocks_a6_defconfig: { extends: .defconfig }
|
||||
orangepi_lite2_defconfig: { extends: .defconfig }
|
||||
orangepi_lite_defconfig: { extends: .defconfig }
|
||||
orangepi_one_defconfig: { extends: .defconfig }
|
||||
orangepi_one_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_pc2_defconfig: { extends: .defconfig }
|
||||
orangepi_pc_defconfig: { extends: .defconfig }
|
||||
orangepi_pc_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_plus_defconfig: { extends: .defconfig }
|
||||
orangepi_prime_defconfig: { extends: .defconfig }
|
||||
orangepi_r1_defconfig: { extends: .defconfig }
|
||||
orangepi_win_defconfig: { extends: .defconfig }
|
||||
orangepi_zero_defconfig: { extends: .defconfig }
|
||||
orangepi_zero_plus2_defconfig: { extends: .defconfig }
|
||||
pandaboard_defconfig: { extends: .defconfig }
|
||||
pc_x86_64_bios_defconfig: { extends: .defconfig }
|
||||
pc_x86_64_efi_defconfig: { extends: .defconfig }
|
||||
pine64_defconfig: { extends: .defconfig }
|
||||
pine64_sopine_defconfig: { extends: .defconfig }
|
||||
qemu_aarch64_virt_defconfig: { extends: .defconfig }
|
||||
qemu_arm_versatile_defconfig: { extends: .defconfig }
|
||||
qemu_arm_versatile_nommu_defconfig: { extends: .defconfig }
|
||||
qemu_arm_vexpress_defconfig: { extends: .defconfig }
|
||||
qemu_csky610_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky807_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky810_virt_defconfig: { extends: .defconfig }
|
||||
qemu_csky860_virt_defconfig: { extends: .defconfig }
|
||||
qemu_m68k_mcf5208_defconfig: { extends: .defconfig }
|
||||
qemu_m68k_q800_defconfig: { extends: .defconfig }
|
||||
qemu_microblazebe_mmu_defconfig: { extends: .defconfig }
|
||||
qemu_microblazeel_mmu_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r2_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r2el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r6_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips32r6el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64r6_malta_defconfig: { extends: .defconfig }
|
||||
qemu_mips64r6el_malta_defconfig: { extends: .defconfig }
|
||||
qemu_nios2_10m50_defconfig: { extends: .defconfig }
|
||||
qemu_or1k_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64_e5500_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64_pseries_defconfig: { extends: .defconfig }
|
||||
qemu_ppc64le_pseries_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_g3beige_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_mac99_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_mpc8544ds_defconfig: { extends: .defconfig }
|
||||
qemu_ppc_virtex_ml507_defconfig: { extends: .defconfig }
|
||||
qemu_riscv32_virt_defconfig: { extends: .defconfig }
|
||||
qemu_riscv64_virt_defconfig: { extends: .defconfig }
|
||||
qemu_sh4_r2d_defconfig: { extends: .defconfig }
|
||||
qemu_sh4eb_r2d_defconfig: { extends: .defconfig }
|
||||
qemu_sparc64_sun4u_defconfig: { extends: .defconfig }
|
||||
qemu_sparc_ss10_defconfig: { extends: .defconfig }
|
||||
qemu_x86_64_defconfig: { extends: .defconfig }
|
||||
qemu_x86_defconfig: { extends: .defconfig }
|
||||
qemu_xtensa_lx60_defconfig: { extends: .defconfig }
|
||||
qemu_xtensa_lx60_nommu_defconfig: { extends: .defconfig }
|
||||
raspberrypi0_defconfig: { extends: .defconfig }
|
||||
raspberrypi0w_defconfig: { extends: .defconfig }
|
||||
raspberrypi2_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_64_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_defconfig: { extends: .defconfig }
|
||||
raspberrypi3_qt5we_defconfig: { extends: .defconfig }
|
||||
raspberrypi4_defconfig: { extends: .defconfig }
|
||||
raspberrypi_defconfig: { extends: .defconfig }
|
||||
riotboard_defconfig: { extends: .defconfig }
|
||||
rock64_defconfig: { extends: .defconfig }
|
||||
roseapplepi_defconfig: { extends: .defconfig }
|
||||
s6lx9_microboard_defconfig: { extends: .defconfig }
|
||||
sheevaplug_defconfig: { extends: .defconfig }
|
||||
snps_aarch64_vdk_defconfig: { extends: .defconfig }
|
||||
snps_arc700_axs101_defconfig: { extends: .defconfig }
|
||||
snps_archs38_axs103_defconfig: { extends: .defconfig }
|
||||
snps_archs38_haps_defconfig: { extends: .defconfig }
|
||||
snps_archs38_hsdk_defconfig: { extends: .defconfig }
|
||||
snps_archs38_vdk_defconfig: { extends: .defconfig }
|
||||
socrates_cyclone5_defconfig: { extends: .defconfig }
|
||||
solidrun_clearfog_defconfig: { extends: .defconfig }
|
||||
solidrun_clearfog_gt_8k_defconfig: { extends: .defconfig }
|
||||
solidrun_macchiatobin_mainline_defconfig: { extends: .defconfig }
|
||||
solidrun_macchiatobin_marvell_defconfig: { extends: .defconfig }
|
||||
stm32f429_disco_defconfig: { extends: .defconfig }
|
||||
stm32f469_disco_defconfig: { extends: .defconfig }
|
||||
toradex_apalis_imx6_defconfig: { extends: .defconfig }
|
||||
ts4900_defconfig: { extends: .defconfig }
|
||||
ts5500_defconfig: { extends: .defconfig }
|
||||
ts7680_defconfig: { extends: .defconfig }
|
||||
wandboard_defconfig: { extends: .defconfig }
|
||||
warp7_defconfig: { extends: .defconfig }
|
||||
warpboard_defconfig: { extends: .defconfig }
|
||||
zynq_microzed_defconfig: { extends: .defconfig }
|
||||
zynq_zc706_defconfig: { extends: .defconfig }
|
||||
zynq_zed_defconfig: { extends: .defconfig }
|
||||
zynqmp_zcu106_defconfig: { extends: .defconfig }
|
||||
tests.boot.test_atf.TestATFAllwinner: { extends: .runtime_test }
|
||||
tests.boot.test_atf.TestATFMarvell: { extends: .runtime_test }
|
||||
tests.boot.test_atf.TestATFVexpress: { extends: .runtime_test }
|
||||
tests.core.test_file_capabilities.TestFileCapabilities: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestFortifyConserv: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestFortifyNone: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestRelro: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestRelroPartial: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestSspNone: { extends: .runtime_test }
|
||||
tests.core.test_hardening.TestSspStrong: { extends: .runtime_test }
|
||||
tests.core.test_post_scripts.TestPostScripts: { extends: .runtime_test }
|
||||
tests.core.test_rootfs_overlay.TestRootfsOverlay: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestGlibcAllTimezone: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestGlibcNonDefaultLimitedTimezone: { extends: .runtime_test }
|
||||
tests.core.test_timezone.TestNoTimezone: { extends: .runtime_test }
|
||||
tests.download.test_git.TestGitHash: { extends: .runtime_test }
|
||||
tests.download.test_git.TestGitRefs: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt2: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt2r1: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt3: { extends: .runtime_test }
|
||||
tests.fs.test_ext.TestExt4: { extends: .runtime_test }
|
||||
tests.fs.test_f2fs.TestF2FS: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2External: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2ExternalCompress: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660Grub2Internal: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxExternal: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxExternalCompress: { extends: .runtime_test }
|
||||
tests.fs.test_iso9660.TestIso9660SyslinuxInternal: { extends: .runtime_test }
|
||||
tests.fs.test_jffs2.TestJffs2: { extends: .runtime_test }
|
||||
tests.fs.test_squashfs.TestSquashfs: { extends: .runtime_test }
|
||||
tests.fs.test_ubi.TestUbi: { extends: .runtime_test }
|
||||
tests.fs.test_yaffs2.TestYaffs2: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRo: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRoNet: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRw: { extends: .runtime_test }
|
||||
tests.init.test_busybox.TestInitSystemBusyboxRwNet: { extends: .runtime_test }
|
||||
tests.init.test_none.TestInitSystemNone: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoFull: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoIfupdown: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRoNetworkd: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwFull: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwIfupdown: { extends: .runtime_test }
|
||||
tests.init.test_systemd.TestInitSystemSystemdRwNetworkd: { extends: .runtime_test }
|
||||
tests.package.test_atop.TestAtop: { extends: .runtime_test }
|
||||
tests.package.test_docker_compose.TestDockerCompose: { extends: .runtime_test }
|
||||
tests.package.test_dropbear.TestDropbear: { extends: .runtime_test }
|
||||
tests.package.test_glxinfo.TestGlxinfo: { extends: .runtime_test }
|
||||
tests.package.test_ipython.TestIPythonPy3: { extends: .runtime_test }
|
||||
tests.package.test_lpeg.TestLuaLPeg: { extends: .runtime_test }
|
||||
tests.package.test_lpeg.TestLuajitLPeg: { extends: .runtime_test }
|
||||
tests.package.test_lsqlite3.TestLuaLsqlite3: { extends: .runtime_test }
|
||||
tests.package.test_lsqlite3.TestLuajitLsqlite3: { extends: .runtime_test }
|
||||
tests.package.test_lua.TestLua: { extends: .runtime_test }
|
||||
tests.package.test_lua.TestLuajit: { extends: .runtime_test }
|
||||
tests.package.test_lua_curl.TestLuaLuacURL: { extends: .runtime_test }
|
||||
tests.package.test_lua_curl.TestLuajitLuacURL: { extends: .runtime_test }
|
||||
tests.package.test_lua_http.TestLuaHttp: { extends: .runtime_test }
|
||||
tests.package.test_lua_http.TestLuajitHttp: { extends: .runtime_test }
|
||||
tests.package.test_lua_utf8.TestLuaUtf8: { extends: .runtime_test }
|
||||
tests.package.test_lua_utf8.TestLuajitUtf8: { extends: .runtime_test }
|
||||
tests.package.test_luaexpat.TestLuaLuaExpat: { extends: .runtime_test }
|
||||
tests.package.test_luaexpat.TestLuajitLuaExpat: { extends: .runtime_test }
|
||||
tests.package.test_luafilesystem.TestLuaLuaFileSystem: { extends: .runtime_test }
|
||||
tests.package.test_luafilesystem.TestLuajitLuaFileSystem: { extends: .runtime_test }
|
||||
tests.package.test_luaossl.TestLuaLuaossl: { extends: .runtime_test }
|
||||
tests.package.test_luaossl.TestLuajitLuaossl: { extends: .runtime_test }
|
||||
tests.package.test_luaposix.TestLuaLuaPosix: { extends: .runtime_test }
|
||||
tests.package.test_luaposix.TestLuajitLuaPosix: { extends: .runtime_test }
|
||||
tests.package.test_luasec.TestLuaLuaSec: { extends: .runtime_test }
|
||||
tests.package.test_luasec.TestLuajitLuaSec: { extends: .runtime_test }
|
||||
tests.package.test_luasocket.TestLuaLuaSocket: { extends: .runtime_test }
|
||||
tests.package.test_luasocket.TestLuajitLuaSocket: { extends: .runtime_test }
|
||||
tests.package.test_luasyslog.TestLuaLuasyslog: { extends: .runtime_test }
|
||||
tests.package.test_luasyslog.TestLuajitLuasyslog: { extends: .runtime_test }
|
||||
tests.package.test_openjdk.TestOpenJdk: { extends: .runtime_test }
|
||||
tests.package.test_perl.TestPerl: { extends: .runtime_test }
|
||||
tests.package.test_perl_class_load.TestPerlClassLoad: { extends: .runtime_test }
|
||||
tests.package.test_perl_dbd_mysql.TestPerlDBDmysql: { extends: .runtime_test }
|
||||
tests.package.test_perl_encode_detect.TestPerlEncodeDetect: { extends: .runtime_test }
|
||||
tests.package.test_perl_gdgraph.TestPerlGDGraph: { extends: .runtime_test }
|
||||
tests.package.test_perl_io_socket_multicast.TestPerlIOSocketMulticast: { extends: .runtime_test }
|
||||
tests.package.test_perl_io_socket_ssl.TestPerlIOSocketSSL: { extends: .runtime_test }
|
||||
tests.package.test_perl_libwww_perl.TestPerllibwwwperl: { extends: .runtime_test }
|
||||
tests.package.test_perl_mail_dkim.TestPerlMailDKIM: { extends: .runtime_test }
|
||||
tests.package.test_perl_x10.TestPerlX10: { extends: .runtime_test }
|
||||
tests.package.test_perl_xml_libxml.TestPerlXMLLibXML: { extends: .runtime_test }
|
||||
tests.package.test_prosody.TestProsodyLua51: { extends: .runtime_test }
|
||||
tests.package.test_prosody.TestProsodyLuajit: { extends: .runtime_test }
|
||||
tests.package.test_python.TestPython2: { extends: .runtime_test }
|
||||
tests.package.test_python.TestPython3: { extends: .runtime_test }
|
||||
tests.package.test_python_argh.TestPythonPy2Argh: { extends: .runtime_test }
|
||||
tests.package.test_python_argh.TestPythonPy3Argh: { extends: .runtime_test }
|
||||
tests.package.test_python_attrs.TestPythonPy2Attrs: { extends: .runtime_test }
|
||||
tests.package.test_python_attrs.TestPythonPy3Attrs: { extends: .runtime_test }
|
||||
tests.package.test_python_autobahn.TestPythonPy2Autobahn: { extends: .runtime_test }
|
||||
tests.package.test_python_autobahn.TestPythonPy3Autobahn: { extends: .runtime_test }
|
||||
tests.package.test_python_automat.TestPythonPy2Automat: { extends: .runtime_test }
|
||||
tests.package.test_python_automat.TestPythonPy3Automat: { extends: .runtime_test }
|
||||
tests.package.test_python_bitstring.TestPythonPy2Bitstring: { extends: .runtime_test }
|
||||
tests.package.test_python_bitstring.TestPythonPy3Bitstring: { extends: .runtime_test }
|
||||
tests.package.test_python_cbor.TestPythonPy2Cbor: { extends: .runtime_test }
|
||||
tests.package.test_python_cbor.TestPythonPy3Cbor: { extends: .runtime_test }
|
||||
tests.package.test_python_click.TestPythonPy2Click: { extends: .runtime_test }
|
||||
tests.package.test_python_click.TestPythonPy3Click: { extends: .runtime_test }
|
||||
tests.package.test_python_constantly.TestPythonPy2Constantly: { extends: .runtime_test }
|
||||
tests.package.test_python_constantly.TestPythonPy3Constantly: { extends: .runtime_test }
|
||||
tests.package.test_python_crossbar.TestPythonPy3Crossbar: { extends: .runtime_test }
|
||||
tests.package.test_python_cryptography.TestPythonPy2Cryptography: { extends: .runtime_test }
|
||||
tests.package.test_python_cryptography.TestPythonPy3Cryptography: { extends: .runtime_test }
|
||||
tests.package.test_python_incremental.TestPythonPy2Incremental: { extends: .runtime_test }
|
||||
tests.package.test_python_incremental.TestPythonPy3Incremental: { extends: .runtime_test }
|
||||
tests.package.test_python_passlib.TestPythonPy2Passlib: { extends: .runtime_test }
|
||||
tests.package.test_python_passlib.TestPythonPy3Passlib: { extends: .runtime_test }
|
||||
tests.package.test_python_pexpect.TestPythonPy2Pexpect: { extends: .runtime_test }
|
||||
tests.package.test_python_pexpect.TestPythonPy3Pexpect: { extends: .runtime_test }
|
||||
tests.package.test_python_pynacl.TestPythonPy2Pynacl: { extends: .runtime_test }
|
||||
tests.package.test_python_pynacl.TestPythonPy3Pynacl: { extends: .runtime_test }
|
||||
tests.package.test_python_pyyaml.TestPythonPy2Pyyaml: { extends: .runtime_test }
|
||||
tests.package.test_python_pyyaml.TestPythonPy3Pyyaml: { extends: .runtime_test }
|
||||
tests.package.test_python_service_identity.TestPythonPy2ServiceIdentity: { extends: .runtime_test }
|
||||
tests.package.test_python_service_identity.TestPythonPy3ServiceIdentity: { extends: .runtime_test }
|
||||
tests.package.test_python_subprocess32.TestPythonPy2Subprocess32: { extends: .runtime_test }
|
||||
tests.package.test_python_treq.TestPythonPy2Treq: { extends: .runtime_test }
|
||||
tests.package.test_python_treq.TestPythonPy3Treq: { extends: .runtime_test }
|
||||
tests.package.test_python_twisted.TestPythonPy2Twisted: { extends: .runtime_test }
|
||||
tests.package.test_python_twisted.TestPythonPy3Twisted: { extends: .runtime_test }
|
||||
tests.package.test_python_txaio.TestPythonPy2Txaio: { extends: .runtime_test }
|
||||
tests.package.test_python_txaio.TestPythonPy3Txaio: { extends: .runtime_test }
|
||||
tests.package.test_python_txtorcon.TestPythonPy2Txtorcon: { extends: .runtime_test }
|
||||
tests.package.test_python_txtorcon.TestPythonPy3Txtorcon: { extends: .runtime_test }
|
||||
tests.package.test_python_ubjson.TestPythonPy2Ubjson: { extends: .runtime_test }
|
||||
tests.package.test_python_ubjson.TestPythonPy3Ubjson: { extends: .runtime_test }
|
||||
tests.package.test_rings.TestLuaRings: { extends: .runtime_test }
|
||||
tests.package.test_rings.TestLuajitRings: { extends: .runtime_test }
|
||||
tests.package.test_rust.TestRust: { extends: .runtime_test }
|
||||
tests.package.test_rust.TestRustBin: { extends: .runtime_test }
|
||||
tests.package.test_syslog_ng.TestSyslogNg: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainCCache: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainCtngMusl: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainLinaroArm: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv4: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv5: { extends: .runtime_test }
|
||||
tests.toolchain.test_external.TestExternalToolchainSourceryArmv7: { extends: .runtime_test }
|
||||
tests.utils.test_check_package.TestCheckPackage: { extends: .runtime_test }
|
||||
|
||||
118
.gitlab-ci.yml.in
Normal file
118
.gitlab-ci.yml.in
Normal file
@@ -0,0 +1,118 @@
|
||||
# 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
|
||||
|
||||
.check_base:
|
||||
except:
|
||||
- /^.*-.*_defconfig$/
|
||||
- /^.*-tests\..*$/
|
||||
|
||||
check-DEVELOPERS:
|
||||
extends: .check_base
|
||||
# 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-flake8:
|
||||
extends: .check_base
|
||||
before_script:
|
||||
# Help flake8 to find the Python files without .py extension.
|
||||
- find * -type f -name '*.py' > files.txt
|
||||
- find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
|
||||
- sort -u files.txt | tee files.processed
|
||||
script:
|
||||
- python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
|
||||
after_script:
|
||||
- wc -l files.processed
|
||||
|
||||
check-gitlab-ci.yml:
|
||||
extends: .check_base
|
||||
script:
|
||||
- mv .gitlab-ci.yml .gitlab-ci.yml.orig
|
||||
- make .gitlab-ci.yml
|
||||
- diff -u .gitlab-ci.yml.orig .gitlab-ci.yml
|
||||
|
||||
check-package:
|
||||
extends: .check_base
|
||||
script:
|
||||
- make check-package
|
||||
|
||||
.defconfig_base:
|
||||
script:
|
||||
- echo "Configure Buildroot for ${DEFCONFIG_NAME}"
|
||||
- make ${DEFCONFIG_NAME}
|
||||
- echo 'Build buildroot'
|
||||
- |
|
||||
make > >(tee build.log |grep '>>>') 2>&1 || {
|
||||
echo 'Failed build last output'
|
||||
tail -200 build.log
|
||||
exit 1
|
||||
}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- .config
|
||||
- build.log
|
||||
- output/images/
|
||||
- output/build/build-time.log
|
||||
- output/build/packages-file-list.txt
|
||||
- output/build/*/.config
|
||||
|
||||
.defconfig:
|
||||
extends: .defconfig_base
|
||||
# Running the defconfigs for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-defconfigs$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-defconfig:
|
||||
extends: .defconfig_base
|
||||
only:
|
||||
- /^.*-.*_defconfig$/
|
||||
before_script:
|
||||
- DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
|
||||
.runtime_test_base:
|
||||
# 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:
|
||||
- echo "Starting runtime test ${TEST_CASE_NAME}"
|
||||
- ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 2 weeks
|
||||
paths:
|
||||
- test-output/*.log
|
||||
- test-output/*/.config
|
||||
- test-output/*/images/*
|
||||
|
||||
.runtime_test:
|
||||
extends: .runtime_test_base
|
||||
# Running the runtime tests for every push is too much, so limit to
|
||||
# explicit triggers through the API.
|
||||
only:
|
||||
- triggers
|
||||
- tags
|
||||
- /-runtime-tests$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=${CI_JOB_NAME}
|
||||
|
||||
one-runtime_test:
|
||||
extends: .runtime_test_base
|
||||
only:
|
||||
- /^.*-tests\..*$/
|
||||
before_script:
|
||||
- TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
|
||||
74
Config.in
74
Config.in
@@ -26,9 +26,29 @@ config BR2_HOST_GCC_VERSION
|
||||
string
|
||||
option env="HOST_GCC_VERSION"
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_5
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 5"
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_6
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 6"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_5
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_7
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 7"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_6
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_8
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 8"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_7
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_4_9
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "4 9"
|
||||
select BR2_HOST_GCC_AT_LEAST_4_8
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_5
|
||||
bool
|
||||
@@ -50,11 +70,6 @@ config BR2_HOST_GCC_AT_LEAST_8
|
||||
default y if BR2_HOST_GCC_VERSION = "8"
|
||||
select BR2_HOST_GCC_AT_LEAST_7
|
||||
|
||||
config BR2_HOST_GCC_AT_LEAST_9
|
||||
bool
|
||||
default y if BR2_HOST_GCC_VERSION = "9"
|
||||
select BR2_HOST_GCC_AT_LEAST_8
|
||||
|
||||
# When adding new entries above, be sure to update
|
||||
# the HOSTCC_MAX_VERSION variable in the Makefile.
|
||||
|
||||
@@ -63,6 +78,16 @@ config BR2_HOST_GCC_AT_LEAST_9
|
||||
config BR2_NEEDS_HOST_JAVA
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages in need of javac in order to build
|
||||
# (example: classpath)
|
||||
config BR2_NEEDS_HOST_JAVAC
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages in need of jar in order to build
|
||||
# (example: classpath)
|
||||
config BR2_NEEDS_HOST_JAR
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by pre-built packages for x86, when they
|
||||
# need to run on x86-64 machines (example: pre-built external
|
||||
# toolchains, binary tools like SAM-BA, etc.).
|
||||
@@ -80,11 +105,6 @@ config BR2_HOSTARCH_NEEDS_IA32_COMPILER
|
||||
config BR2_NEEDS_HOST_UTF8_LOCALE
|
||||
bool
|
||||
|
||||
# Hidden boolean selected by packages that need the host to have
|
||||
# support for building gcc plugins
|
||||
config BR2_NEEDS_HOST_GCC_PLUGIN_SUPPORT
|
||||
bool
|
||||
|
||||
source "arch/Config.in"
|
||||
|
||||
menu "Build options"
|
||||
@@ -521,14 +541,13 @@ config BR2_OPTIMIZE_S
|
||||
This is the default.
|
||||
|
||||
config BR2_OPTIMIZE_FAST
|
||||
bool "optimize for fast (may break packages!)"
|
||||
bool "optimize for fast"
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
|
||||
help
|
||||
Optimize for fast. Disregard strict standards
|
||||
compliance. -Ofast enables all -O3 optimizations. It also
|
||||
enables optimizations that are not valid for all
|
||||
standard-compliant programs, so be careful, as it may break
|
||||
some packages. It turns on -ffast-math and the
|
||||
standard-compliant programs. It turns on -ffast-math and the
|
||||
Fortran-specific -fstack-arrays, unless -fmax-stack-var-size
|
||||
is specified, and -fno-protect-parens.
|
||||
|
||||
@@ -537,6 +556,7 @@ endchoice
|
||||
config BR2_GOOGLE_BREAKPAD_ENABLE
|
||||
bool "Enable google-breakpad support"
|
||||
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_TOOLCHAIN_HAS_THREADS
|
||||
@@ -691,24 +711,6 @@ config BR2_REPRODUCIBLE
|
||||
This is labeled as an experimental feature, as not all
|
||||
packages behave properly to ensure reproducibility.
|
||||
|
||||
config BR2_PER_PACKAGE_DIRECTORIES
|
||||
bool "Use per-package directories (experimental)"
|
||||
help
|
||||
This option will change the build process of Buildroot
|
||||
package to use per-package target and host directories.
|
||||
|
||||
This is useful for two related purposes:
|
||||
|
||||
- Cleanly isolate the build of each package, so that a
|
||||
given package only "sees" the dependencies it has
|
||||
explicitly expressed, and not other packages that may
|
||||
have by chance been built before.
|
||||
|
||||
- Enable top-level parallel build.
|
||||
|
||||
This is labeled as an experimental feature, as not all
|
||||
packages behave properly with per-package directories.
|
||||
|
||||
endmenu
|
||||
|
||||
comment "Security Hardening Options"
|
||||
@@ -716,15 +718,10 @@ comment "Security Hardening Options"
|
||||
config BR2_PIC_PIE
|
||||
bool "Build code with PIC/PIE"
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
help
|
||||
Generate Position-Independent Code (PIC) and link
|
||||
Position-Independent Executables (PIE).
|
||||
|
||||
comment "PIC/PIE needs a toolchain w/ PIE"
|
||||
depends on BR2_SHARED_LIBS
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
choice
|
||||
bool "Stack Smashing Protection"
|
||||
default BR2_SSP_ALL if BR2_ENABLE_SSP # legacy
|
||||
@@ -759,7 +756,6 @@ config BR2_SSP_REGULAR
|
||||
|
||||
config BR2_SSP_STRONG
|
||||
bool "-fstack-protector-strong"
|
||||
depends on BR2_TOOLCHAIN_HAS_SSP_STRONG
|
||||
help
|
||||
Like -fstack-protector but includes additional functions to be
|
||||
protected - those that have local array definitions, or have
|
||||
@@ -808,16 +804,12 @@ config BR2_RELRO_PARTIAL
|
||||
|
||||
config BR2_RELRO_FULL
|
||||
bool "Full"
|
||||
depends on BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
select BR2_PIC_PIE
|
||||
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.
|
||||
|
||||
comment "RELRO Full needs a toolchain w/ PIE"
|
||||
depends on !BR2_TOOLCHAIN_SUPPORTS_PIE
|
||||
|
||||
endchoice
|
||||
|
||||
comment "RELocation Read Only (RELRO) needs shared libraries"
|
||||
|
||||
1626
Config.in.legacy
1626
Config.in.legacy
File diff suppressed because it is too large
Load Diff
508
DEVELOPERS
508
DEVELOPERS
File diff suppressed because it is too large
Load Diff
134
Makefile
134
Makefile
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 2006-2014 by the Buildroot developers <buildroot@uclibc.org>
|
||||
# Copyright (C) 2014-2020 by the Buildroot developers <buildroot@buildroot.org>
|
||||
# Copyright (C) 2014-2019 by the Buildroot developers <buildroot@buildroot.org>
|
||||
#
|
||||
# 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
|
||||
@@ -92,9 +92,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2020.08
|
||||
export BR2_VERSION := 2019.08.1
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1598992000
|
||||
BR2_VERSION_EPOCH = 1570086600
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@@ -113,13 +113,7 @@ DATE := $(shell date +%Y%m%d)
|
||||
|
||||
# Compute the full local version string so packages can use it as-is
|
||||
# Need to export it, so it can be got from environment in children (eg. mconf)
|
||||
|
||||
BR2_LOCALVERSION := $(shell $(TOPDIR)/support/scripts/setlocalversion)
|
||||
ifeq ($(BR2_LOCALVERSION),)
|
||||
export BR2_VERSION_FULL := $(BR2_VERSION)
|
||||
else
|
||||
export BR2_VERSION_FULL := $(BR2_LOCALVERSION)
|
||||
endif
|
||||
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 \
|
||||
@@ -194,9 +188,6 @@ ifneq ($(BR2_EXTERNAL_ERROR),)
|
||||
$(error $(BR2_EXTERNAL_ERROR))
|
||||
endif
|
||||
|
||||
# Workaround bug in make-4.3: https://savannah.gnu.org/bugs/?57676
|
||||
$(BASE_DIR)/.br2-external.mk:;
|
||||
|
||||
# To make sure that the environment variable overrides the .config option,
|
||||
# set this before including .config.
|
||||
ifneq ($(BR2_DL_DIR),)
|
||||
@@ -213,7 +204,6 @@ BR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf)
|
||||
BUILD_DIR := $(BASE_DIR)/build
|
||||
BINARIES_DIR := $(BASE_DIR)/images
|
||||
BASE_TARGET_DIR := $(BASE_DIR)/target
|
||||
PER_PACKAGE_DIR := $(BASE_DIR)/per-package
|
||||
# initial definition so that 'make clean' works for most users, even without
|
||||
# .config. HOST_DIR will be overwritten later when .config is included.
|
||||
HOST_DIR := $(BASE_DIR)/host
|
||||
@@ -236,12 +226,21 @@ ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
|
||||
-include $(BR2_CONFIG)
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),)
|
||||
# Disable top-level parallel build if per-package directories is not
|
||||
# used. Indeed, per-package directories is necessary to guarantee
|
||||
# determinism and reproducibility with top-level parallel build.
|
||||
# Parallel execution of this Makefile is disabled because it changes
|
||||
# the packages building order, that can be a problem for two reasons:
|
||||
# - If a package has an unspecified optional dependency and that
|
||||
# dependency is present when the package is built, it is used,
|
||||
# otherwise it isn't (but compilation happily proceeds) so the end
|
||||
# result will differ if the order is swapped due to parallel
|
||||
# building.
|
||||
# - Also changing the building order can be a problem if two packages
|
||||
# manipulate the same file in the target directory.
|
||||
#
|
||||
# Taking into account the above considerations, if you still want to execute
|
||||
# this top-level Makefile in parallel comment the ".NOTPARALLEL" line and
|
||||
# use the -j<jobs> option when building, e.g:
|
||||
# make -j$((`getconf _NPROCESSORS_ONLN`+1))
|
||||
.NOTPARALLEL:
|
||||
endif
|
||||
|
||||
# timezone and locale may affect build output
|
||||
ifeq ($(BR2_REPRODUCIBLE),y)
|
||||
@@ -349,7 +348,7 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \
|
||||
|
||||
# When adding a new host gcc version in Config.in,
|
||||
# update the HOSTCC_MAX_VERSION variable:
|
||||
HOSTCC_MAX_VERSION := 9
|
||||
HOSTCC_MAX_VERSION := 8
|
||||
|
||||
HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \
|
||||
sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \
|
||||
@@ -453,24 +452,19 @@ XZCAT := $(call qstrip,$(BR2_XZCAT))
|
||||
LZCAT := $(call qstrip,$(BR2_LZCAT))
|
||||
TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xf
|
||||
|
||||
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
|
||||
HOST_DIR = $(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/host,$(call qstrip,$(BR2_HOST_DIR)))
|
||||
TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/target,$(BASE_TARGET_DIR)))
|
||||
else
|
||||
# packages compiled for the host go here
|
||||
HOST_DIR := $(call qstrip,$(BR2_HOST_DIR))
|
||||
|
||||
# The target directory is common to all packages,
|
||||
# but there is one that is specific to each filesystem.
|
||||
TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR))
|
||||
endif
|
||||
|
||||
ifneq ($(HOST_DIR),$(BASE_DIR)/host)
|
||||
HOST_DIR_SYMLINK = $(BASE_DIR)/host
|
||||
$(HOST_DIR_SYMLINK): | $(BASE_DIR)
|
||||
ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK)
|
||||
$(HOST_DIR_SYMLINK): $(BASE_DIR)
|
||||
ln -snf $(HOST_DIR) $(BASE_DIR)/host
|
||||
endif
|
||||
|
||||
STAGING_DIR_SYMLINK = $(BASE_DIR)/staging
|
||||
$(STAGING_DIR_SYMLINK): | $(BASE_DIR)
|
||||
ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK)
|
||||
|
||||
# Quotes are needed for spaces and all in the original PATH content.
|
||||
BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)"
|
||||
|
||||
@@ -599,8 +593,8 @@ world: target-post-image
|
||||
.PHONY: prepare-sdk
|
||||
prepare-sdk: world
|
||||
@$(call MESSAGE,"Rendering the SDK relocatable")
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
|
||||
$(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
|
||||
mkdir -p $(HOST_DIR)/share/buildroot
|
||||
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
|
||||
@@ -701,11 +695,11 @@ LOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))
|
||||
# in the whitelist file. If it doesn't, kill it.
|
||||
# Finally, specifically for X11, regenerate locale.dir from the whitelist.
|
||||
define PURGE_LOCALES
|
||||
printf '%s\n' $(LOCALE_NOPURGE) locale-archive > $(LOCALE_WHITELIST)
|
||||
rm -f $(LOCALE_WHITELIST)
|
||||
for i in $(LOCALE_NOPURGE) locale-archive; do echo $$i >> $(LOCALE_WHITELIST); done
|
||||
|
||||
for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \
|
||||
for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale)); \
|
||||
do \
|
||||
if [ ! -d $$dir ]; then continue; fi; \
|
||||
for langdir in $$dir/*; \
|
||||
do \
|
||||
if [ -e "$${langdir}" ]; \
|
||||
@@ -733,36 +727,31 @@ $(TARGETS_ROOTFS): target-finalize
|
||||
# Avoid the rootfs name leaking down the dependency chain
|
||||
target-finalize: ROOTFS=
|
||||
|
||||
TARGET_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list.txt))
|
||||
HOST_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-host.txt))
|
||||
STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.txt))
|
||||
|
||||
.PHONY: host-finalize
|
||||
host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK)
|
||||
@$(call MESSAGE,"Finalizing host directory")
|
||||
$(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR))
|
||||
host-finalize: $(HOST_DIR_SYMLINK)
|
||||
|
||||
.PHONY: staging-finalize
|
||||
staging-finalize: $(STAGING_DIR_SYMLINK)
|
||||
staging-finalize:
|
||||
@ln -snf $(STAGING_DIR) $(BASE_DIR)/staging
|
||||
|
||||
.PHONY: target-finalize
|
||||
target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize
|
||||
target-finalize: $(PACKAGES) host-finalize
|
||||
@$(call MESSAGE,"Finalizing target directory")
|
||||
$(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR))
|
||||
# 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))
|
||||
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/cmake $(TARGET_DIR)/usr/share/cmake \
|
||||
$(TARGET_DIR)/usr/doc
|
||||
$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
|
||||
find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
|
||||
find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \
|
||||
\( -name '*.a' -o -name '*.la' -o -name '*.prl' \) -print0 | xargs -0 rm -f
|
||||
\( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
|
||||
ifneq ($(BR2_PACKAGE_GDB),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/gdb
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_BASH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/bash-completion
|
||||
rm -rf $(TARGET_DIR)/etc/bash_completion.d
|
||||
endif
|
||||
ifneq ($(BR2_PACKAGE_ZSH),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/zsh
|
||||
@@ -772,9 +761,6 @@ endif
|
||||
rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
|
||||
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
|
||||
rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
|
||||
ifneq ($(BR2_ENABLE_DEBUG):$(BR2_STRIP_strip),y:)
|
||||
rm -rf $(TARGET_DIR)/lib/debug $(TARGET_DIR)/usr/lib/debug
|
||||
endif
|
||||
$(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
|
||||
$(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true
|
||||
|
||||
@@ -793,15 +779,15 @@ endif
|
||||
ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc
|
||||
|
||||
@$(call MESSAGE,"Sanitizing RPATH in target tree")
|
||||
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath target
|
||||
$(TOPDIR)/support/scripts/fix-rpath target
|
||||
|
||||
# For a merged /usr, ensure that /lib, /bin and /sbin and their /usr
|
||||
# counterparts are appropriately setup as symlinks ones to the others.
|
||||
ifeq ($(BR2_ROOTFS_MERGED_USR),y)
|
||||
|
||||
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
@$(call MESSAGE,"Sanity check in overlay $(d)")$(sep) \
|
||||
$(Q)not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \
|
||||
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
$(call MESSAGE,"Sanity check in overlay $(d)"); \
|
||||
not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \
|
||||
test -n "$$not_merged_dirs" && { \
|
||||
echo "ERROR: The overlay in $(d) is not" \
|
||||
"using a merged /usr for the following directories:" \
|
||||
@@ -811,20 +797,13 @@ ifeq ($(BR2_ROOTFS_MERGED_USR),y)
|
||||
|
||||
endif # merged /usr
|
||||
|
||||
$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
@$(call MESSAGE,"Copying overlay $(d)")$(sep) \
|
||||
$(Q)$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))
|
||||
@$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \
|
||||
$(call MESSAGE,"Copying overlay $(d)"); \
|
||||
$(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))
|
||||
|
||||
$(Q)$(if $(TARGET_DIR_FILES_LISTS), \
|
||||
cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt
|
||||
$(Q)$(if $(HOST_DIR_FILES_LISTS), \
|
||||
cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt
|
||||
$(Q)$(if $(STAGING_DIR_FILES_LISTS), \
|
||||
cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt
|
||||
|
||||
$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
|
||||
@$(call MESSAGE,"Executing post-build script $(s)")$(sep) \
|
||||
$(Q)$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
@$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \
|
||||
$(call MESSAGE,"Executing post-build script $(s)"); \
|
||||
$(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))
|
||||
|
||||
touch $(TARGET_DIR)/usr
|
||||
|
||||
@@ -913,8 +892,7 @@ graph-size:
|
||||
$(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \
|
||||
--graph $(GRAPHS_DIR)/graph-size.$(BR_GRAPH_OUT) \
|
||||
--file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \
|
||||
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv \
|
||||
$(BR2_GRAPH_SIZE_OPTS)
|
||||
--package-size-csv $(GRAPHS_DIR)/package-size-stats.csv
|
||||
|
||||
.PHONY: check-dependencies
|
||||
check-dependencies:
|
||||
@@ -1038,7 +1016,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
|
||||
|
||||
# staging and target directories do NOT list these as
|
||||
# dependencies anywhere else
|
||||
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
|
||||
$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST):
|
||||
@mkdir -p $@
|
||||
|
||||
# outputmakefile generates a Makefile in the output directory, if using a
|
||||
@@ -1070,7 +1048,7 @@ printvars:
|
||||
clean:
|
||||
rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \
|
||||
$(BUILD_DIR) $(BASE_DIR)/staging \
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR)
|
||||
$(LEGAL_INFO_DIR) $(GRAPHS_DIR)
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
@@ -1199,7 +1177,7 @@ release: OUT = buildroot-$(BR2_VERSION)
|
||||
release:
|
||||
git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar
|
||||
$(MAKE) O=$(OUT) manual-html manual-text manual-pdf
|
||||
$(MAKE) O=$(OUT) distclean
|
||||
$(MAKE) O=$(OUT) clean
|
||||
tar rf $(OUT).tar $(OUT)
|
||||
gzip -9 -c < $(OUT).tar > $(OUT).tar.gz
|
||||
bzip2 -9 -c < $(OUT).tar > $(OUT).tar.bz2
|
||||
@@ -1212,6 +1190,10 @@ check-package:
|
||||
find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \
|
||||
-exec ./utils/check-package {} +
|
||||
|
||||
.PHONY: .gitlab-ci.yml
|
||||
.gitlab-ci.yml: .gitlab-ci.yml.in
|
||||
./support/scripts/generate-gitlab-ci-yml $< > $@
|
||||
|
||||
include docs/manual/manual.mk
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
|
||||
|
||||
|
||||
@@ -308,10 +308,6 @@ config BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
||||
|
||||
config BR2_ARCH_NEEDS_GCC_AT_LEAST_10
|
||||
bool
|
||||
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
||||
|
||||
# The following string values are defined by the individual
|
||||
# Config.in.$ARCH files
|
||||
config BR2_ARCH
|
||||
|
||||
@@ -15,17 +15,11 @@ config BR2_archs38
|
||||
bool "ARC HS38"
|
||||
help
|
||||
Generic ARC HS capable of running Linux, i.e. with MMU,
|
||||
caches and 32-bit multiplier. Also it corresponds to the
|
||||
default configuration in older GNU toolchain versions.
|
||||
caches and multiplier. Also it corresponds to the default
|
||||
configuration in older GNU toolchain versions.
|
||||
|
||||
config BR2_archs38_64mpy
|
||||
bool "ARC HS38 with 64-bit mpy"
|
||||
help
|
||||
Fully featured ARC HS capable of running Linux, i.e. with
|
||||
MMU, caches and 64-bit multiplier.
|
||||
|
||||
If you're not sure which version of ARC HS core you build
|
||||
for use this one.
|
||||
If you're not sure which version of ARC HS core you build for
|
||||
keep this one.
|
||||
|
||||
config BR2_archs38_full
|
||||
bool "ARC HS38 with Quad MAC & FPU"
|
||||
@@ -49,7 +43,7 @@ endchoice
|
||||
# Choice of atomic instructions presence
|
||||
config BR2_ARC_ATOMIC_EXT
|
||||
bool "Atomic extension (LLOCK/SCOND instructions)"
|
||||
default y if BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
default y if BR2_arc770d || BR2_archs38 || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARCH
|
||||
default "arc" if BR2_arcle
|
||||
@@ -67,13 +61,12 @@ config BR2_GCC_TARGET_CPU
|
||||
default "arc700" if BR2_arc750d
|
||||
default "arc700" if BR2_arc770d
|
||||
default "archs" if BR2_archs38
|
||||
default "hs38" if BR2_archs38_64mpy
|
||||
default "hs38_linux" if BR2_archs38_full
|
||||
default "hs4x_rel31" if BR2_archs4x_rel31
|
||||
|
||||
config BR2_READELF_ARCH_NAME
|
||||
default "ARCompact" if BR2_arc750d || BR2_arc770d
|
||||
default "ARCv2" if BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
default "ARCv2" if BR2_archs38 || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
choice
|
||||
prompt "MMU Page Size"
|
||||
@@ -93,7 +86,7 @@ choice
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_4K
|
||||
bool "4KB"
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_8K
|
||||
bool "8KB"
|
||||
@@ -103,7 +96,7 @@ config BR2_ARC_PAGE_SIZE_8K
|
||||
|
||||
config BR2_ARC_PAGE_SIZE_16K
|
||||
bool "16KB"
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_64mpy || BR2_archs38_full || BR2_archs4x_rel31
|
||||
depends on BR2_arc770d || BR2_archs38 || BR2_archs38_full || BR2_archs4x_rel31
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
@@ -80,12 +80,8 @@ endchoice
|
||||
|
||||
choice
|
||||
prompt "Target ABI"
|
||||
default BR2_RISCV_ABI_ILP32D if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD
|
||||
default BR2_RISCV_ABI_ILP32F if !BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
|
||||
default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64
|
||||
default BR2_RISCV_ABI_LP64D if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVD
|
||||
default BR2_RISCV_ABI_LP64F if BR2_ARCH_IS_64 && BR2_RISCV_ISA_RVF
|
||||
default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64
|
||||
default BR2_RISCV_ABI_ILP32 if !BR2_ARCH_IS_64
|
||||
default BR2_RISCV_ABI_LP64 if BR2_ARCH_IS_64
|
||||
|
||||
config BR2_RISCV_ABI_ILP32
|
||||
bool "ilp32"
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# i386/x86_64 cpu features
|
||||
config BR2_X86_CPU_HAS_MMX
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_3DNOW
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE
|
||||
bool
|
||||
config BR2_X86_CPU_HAS_SSE2
|
||||
@@ -157,18 +155,15 @@ config BR2_x86_k6_2
|
||||
bool "k6-2"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon
|
||||
bool "athlon"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_athlon_4
|
||||
bool "athlon-4"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_SSE
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_opteron
|
||||
bool "opteron"
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
@@ -214,7 +209,6 @@ config BR2_x86_c3
|
||||
bool "Via/Cyrix C3 (Samuel/Ezra cores)"
|
||||
depends on !BR2_x86_64
|
||||
select BR2_X86_CPU_HAS_MMX
|
||||
select BR2_X86_CPU_HAS_3DNOW
|
||||
config BR2_x86_c32
|
||||
bool "Via C3-2 (Nehemiah cores)"
|
||||
depends on !BR2_x86_64
|
||||
|
||||
@@ -1,17 +1,4 @@
|
||||
ifeq ($(BR2_arc),y)
|
||||
|
||||
# -matomic is always required when the ARC core has the atomic extensions
|
||||
ifeq ($(BR2_ARC_ATOMIC_EXT),y)
|
||||
ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS = -matomic
|
||||
endif
|
||||
|
||||
# Explicitly set LD's "max-page-size" instead of relying on some defaults
|
||||
ifeq ($(BR2_ARC_PAGE_SIZE_4K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096
|
||||
else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192
|
||||
else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
|
||||
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p ${TARGET_DIR}/lib/firmware
|
||||
cp -f ${BUILD_DIR}/linux-custom/firmware/ppfe/* ${TARGET_DIR}/lib/firmware/
|
||||
cp -f ${BUILD_DIR}/linux-custom/br2-ucls1012a.its ${BINARIES_DIR}/
|
||||
@@ -1,6 +1,6 @@
|
||||
This document explains how to set up a basic Buildroot system on
|
||||
various Atmel/Microchip boards. Additional details can also be found
|
||||
on the Linux4SAM website: http://www.linux4sam.org
|
||||
This document explains how to set up a basic Buildroot system on various
|
||||
Atmel boards. Additional details can also be found on the Linux4SAM website:
|
||||
http://www.at91.com/linux4sam/bin/view/Linux4SAM/
|
||||
|
||||
This guide covers the following configurations:
|
||||
- at91sam9g45m10ek_defconfig
|
||||
@@ -19,8 +19,6 @@ This guide covers the following configurations:
|
||||
- atmel_sama5d4_xplained_mmc_dev_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_defconfig
|
||||
- atmel_sama5d2_xplained_mmc_dev_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_defconfig
|
||||
- microchip_sama5d27_wlsom1_ek_mmc_dev_defconfig
|
||||
|
||||
These configurations will use AT91Bootstrap, u-boot and a linux kernel from
|
||||
the git trees maintained by Atmel.
|
||||
@@ -31,23 +29,23 @@ tests the features of the SoC:
|
||||
- FFMPEG to record video from the ISI/ISC
|
||||
- I2C, SPI, CAN, etc. tools
|
||||
- modetest for LCD screens, HDMI
|
||||
- Wilc1000/Wilc3000 firmware for the Atmel Wireless sdio module
|
||||
- Wilc1000 firmware for the Atmel Wireless sdio module
|
||||
- SSH for convenience
|
||||
- GDB/GDB server for debug
|
||||
|
||||
Configuring and building Buildroot
|
||||
==================================
|
||||
|
||||
For the Xplained/Evaluation Kit boards, the Buildroot configuration is
|
||||
provided to boot from an SD card. Those configurations are labeled as
|
||||
'mmc'. In this case, after building Buildroot, follow the instructions
|
||||
in the "Preparing the SD card" section.
|
||||
|
||||
For the other configurations listed above, the Buildroot configuration
|
||||
For most configurations listed above, the Buildroot configuration
|
||||
assumes the system will be flashed on NAND. In this case, after
|
||||
building Buildroot, follow the instructions in the "Flashing the NAND
|
||||
using SAM-BA" section below.
|
||||
|
||||
For the Xplained boards, an alternative Buildroot configuration is
|
||||
provided to boot from an SD card. Those configurations are labeled as
|
||||
'mmc'. In this case, after building Buildroot, follow the instructions
|
||||
in the "Preparing the SD card" section.
|
||||
|
||||
To configure and build Buildroot, run:
|
||||
|
||||
make <board>_defconfig
|
||||
@@ -146,10 +144,10 @@ lost. To copy the image on the SD card:
|
||||
|
||||
dd if=output/images/sdcard.img of=/dev/mmcblk0
|
||||
|
||||
Insert your SD card in your Xplained/Evaluation Kit board, and
|
||||
enjoy. The default U-Boot environment will load properly the kernel
|
||||
and Device Tree blob from the first partition of the SD card, so
|
||||
everything works automatically.
|
||||
Insert your SD card in your Xplained board, and enjoy. The default
|
||||
U-Boot environment will load properly the kernel and Device Tree blob
|
||||
from the first partition of the SD card, so everything works
|
||||
automatically.
|
||||
|
||||
By default a 16MB FAT partition is created. It contains at91bootstrap,
|
||||
u-boot, the kernel image and all dtb variants for your board. The dtb
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
# Image for SD card boot on Microchip SAMA5D27 WLSOM1 EK
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"at91-sama5d27_wlsom1_ek.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
|
||||
}
|
||||
}
|
||||
@@ -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 sun8i-h2-plus-bananapi-m2-zero.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
||||
@@ -1,33 +0,0 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h2-plus-bananapi-m2-zero.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"
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
Buildroot environment for the Bananapi M2 Zero. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
Bananapi M2 Zero link:
|
||||
http://www.banana-pi.org/m2z.html
|
||||
|
||||
This configuration uses U-Boot mainline and kernel mainline.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make bananapi_m2_zero_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
|
||||
$ sync
|
||||
|
||||
Insert the micro SDcard in your Bananapi M2 Zero and power it up. The console
|
||||
is on the Debug UART on the CON3 header, with serial settings 115200 8N1.
|
||||
15
board/beagleboardx15/post-image.sh
Executable file
15
board/beagleboardx15/post-image.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/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}"
|
||||
12
board/beaglebone/linux-4.1-sgx.fragment
Normal file
12
board/beaglebone/linux-4.1-sgx.fragment
Normal file
@@ -0,0 +1,12 @@
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_COUNT=y
|
||||
CONFIG_OMAP2_DSS_INIT=y
|
||||
CONFIG_OMAP_DSS_BASE=y
|
||||
CONFIG_OMAP2_DSS=y
|
||||
CONFIG_OMAP2_DSS_DPI=y
|
||||
CONFIG_DRM_OMAP=y
|
||||
CONFIG_DRM_OMAP_NUM_CRTCS=2
|
||||
CONFIG_DRM_OMAP_WB_M2M=y
|
||||
CONFIG_DRM_TILCDC=y
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=y
|
||||
CONFIG_DRM=y
|
||||
@@ -1,13 +0,0 @@
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_COUNT=y
|
||||
CONFIG_OMAP2_DSS_INIT=y
|
||||
CONFIG_OMAP_DSS_BASE=y
|
||||
CONFIG_OMAP2_DSS=y
|
||||
CONFIG_OMAP2_DSS_DPI=y
|
||||
CONFIG_DRM_OMAP=y
|
||||
CONFIG_DRM_OMAP_NUM_CRTCS=2
|
||||
CONFIG_DRM_OMAP_WB_M2M=y
|
||||
CONFIG_DRM_TILCDC=y
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_LEGACY=y
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
cp $BOARD_DIR/uEnv.txt $BINARIES_DIR/uEnv.txt
|
||||
29
board/beaglebone/post-image.sh
Executable file
29
board/beaglebone/post-image.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# post-image.sh for CircuitCo BeagleBone and TI am335x-evm
|
||||
# 2014, Marcin Jabrzyk <marcin.jabrzyk@gmail.com>
|
||||
# 2016, Lothar Felten <lothar.felten@gmail.com>
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
# copy the uEnv.txt to the output/images directory
|
||||
cp board/beaglebone/uEnv.txt $BINARIES_DIR/uEnv.txt
|
||||
|
||||
# the 4.1 kernel does not provide a dtb for beaglebone green, so we
|
||||
# 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"
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
@@ -3,9 +3,6 @@ devtype=mmc
|
||||
bootdir=
|
||||
bootfile=zImage
|
||||
bootpartition=mmcblk0p2
|
||||
console=ttyS0,115200n8
|
||||
loadaddr=0x82000000
|
||||
fdtaddr=0x88000000
|
||||
set_mmc1=if test $board_name = A33515BB; then setenv bootpartition mmcblk1p2; fi
|
||||
set_bootargs=setenv bootargs console=${console} root=/dev/${bootpartition} rw rootfstype=ext4 rootwait
|
||||
set_bootargs=setenv bootargs console=ttyO0,115200n8 root=/dev/${bootpartition} rw rootfstype=ext4 rootwait
|
||||
uenvcmd=run set_mmc1; run set_bootargs;run loadimage;run loadfdt;printenv bootargs;bootz ${loadaddr} - ${fdtaddr}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"MLO",
|
||||
"u-boot.img",
|
||||
"zImage",
|
||||
"am5729-beagleboneai.dtb",
|
||||
"uEnv.txt"
|
||||
}
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
cp board/beagleboneai/uEnv.txt $BINARIES_DIR/uEnv.txt
|
||||
@@ -1,28 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This configuration will build a basic image for the BeagleBoard.org
|
||||
BeagleBone AI. For more details about the board, visit:
|
||||
|
||||
https://beagleboard.org/ai
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make beagleboneai_defconfig
|
||||
|
||||
Compile everything and build the USB flash drive image:
|
||||
|
||||
$ make
|
||||
|
||||
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
|
||||
@@ -1,6 +0,0 @@
|
||||
bootpart=0:1
|
||||
bootdir=/
|
||||
bootargs=console=ttyS0,115200n8 root=/dev/mmcblk0p2 ro rootwait
|
||||
devtype=mmc
|
||||
fdtfile=am5729-beagleboneai.dtb
|
||||
uenvcmd=run loadimage; run loadfdt; printenv bootargs; bootz ${loadaddr} - ${fdtaddr}
|
||||
@@ -1,4 +0,0 @@
|
||||
label linux
|
||||
kernel /Image
|
||||
devicetree /sun50i-h6-beelink-gs1.dtb
|
||||
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
@@ -1,33 +0,0 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"sun50i-h6-beelink-gs1.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
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"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
@@ -9,9 +9,9 @@ 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 x6ULL == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x80000000
|
||||
elif itest.s x8MQ == "x${imx_cpu}" || itest.s x8MM == "x${imx_cpu}" || itest.s x8MMQ == "x${imx_cpu}" || itest.s x8MNano == "x${imx_cpu}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
a_base=0x40000000
|
||||
kernelimage=Image
|
||||
bootcommand=booti
|
||||
@@ -43,18 +43,10 @@ if itest.s "x" == "x${fdt_file}" ; then
|
||||
fdt_file=imx6qp-${board}.dtb;
|
||||
elif itest.s x6SX == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6sx-${board}${m4}.dtb;
|
||||
elif itest.s x6ULL == "x${imx_cpu}" ; then
|
||||
fdt_file=imx6ull-${board}.dtb;
|
||||
elif itest.s x7D == "x${imx_cpu}" ; then
|
||||
fdt_file=imx7d-${board}${m4}.dtb;
|
||||
elif itest.s x8MQ == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mq-${board}${m4}.dtb;
|
||||
elif itest.s x8MM == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mm-${board}${m4}.dtb;
|
||||
elif itest.s x8MMQ == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mm-${board}${m4}.dtb;
|
||||
elif itest.s x8MNano == "x${imx_cpu}" ; then
|
||||
fdt_file=imx8mn-${board}${m4}.dtb;
|
||||
elif itest.s x51 == "x${imx_cpu}" ; then
|
||||
fdt_file=imx51-${board}.dtb;
|
||||
elif itest.s x53 == "x${imx_cpu}" ; then
|
||||
@@ -71,6 +63,7 @@ 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
|
||||
@@ -81,20 +74,21 @@ else
|
||||
exit;
|
||||
fi
|
||||
|
||||
fdt resize 4096
|
||||
if itest.s "x" != "x${cmd_board}" ; then
|
||||
run cmd_board
|
||||
fi
|
||||
fdt resize
|
||||
if itest.s "x" != "x${cmd_custom}" ; then
|
||||
run cmd_custom
|
||||
fi
|
||||
if itest.s "x" != "x${cmd_hdmi}" ; then
|
||||
run cmd_hdmi
|
||||
if itest.s x != x${allow_noncea} ; then
|
||||
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
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg
|
||||
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}"
|
||||
|
||||
exit $?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Buildroot for Boundary Devices platforms:
|
||||
|
||||
https://boundarydevices.com/nitrogen-sbcs-and-soms/
|
||||
https://boundarydevices.com/product-category/popular-sbc-and-som-modules/
|
||||
|
||||
Here is the list of targeted platforms per defconfig:
|
||||
|
||||
@@ -19,19 +19,7 @@ Here is the list of targeted platforms per defconfig:
|
||||
- nitrogen7_defconfig
|
||||
- Nitrogen7
|
||||
|
||||
- nitrogen8m_defconfig
|
||||
- Nitrogen8M
|
||||
- Nitrogen8M_SOM
|
||||
|
||||
- nitrogen8mm_defconfig
|
||||
- Nitrogen8MMini
|
||||
- Nitrogen8MMini_SOM
|
||||
|
||||
- nitrogen8mn_defconfig
|
||||
- Nitrogen8MNano
|
||||
- Nitrogen8MNano_SOM
|
||||
|
||||
To install, simply copy the image to your storage (SD, eMMC, USB):
|
||||
To install, simply copy the image to a uSD card:
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
|
||||
@@ -13,14 +13,11 @@ 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 x6ULL == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
elif itest.s x6SX == "x${imx_cpu}" || itest.s x7D == "x${imx_cpu}"; then
|
||||
a_base=0x82000000
|
||||
elif itest.s x8MQ == "x${imx_cpu}" || itest.s x8MM == "x${imx_cpu}" || itest.s x8MMQ == "x${imx_cpu}"; then
|
||||
elif itest.s x8MQ == "x${imx_cpu}"; then
|
||||
a_base=0x42000000
|
||||
offset=0x8400
|
||||
elif itest.s x8MNano == "x${imx_cpu}"; then
|
||||
a_base=0x42000000
|
||||
offset=0x8000
|
||||
fi
|
||||
|
||||
qspi_match=1
|
||||
@@ -59,7 +56,6 @@ mmc dev ${env_dev} ${env_part}
|
||||
mmc read ${a_uImage2} ${cntoffset} ${cntfile}
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} ${filesize} ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
exit ;
|
||||
fi
|
||||
|
||||
@@ -138,7 +134,7 @@ fi
|
||||
if cmp.b ${a_uImage1} ${a_uImage2} $filesize ; then
|
||||
echo "------- U-Boot versions match" ;
|
||||
if itest.s "${qspi_match}" == "1" ; then
|
||||
echo "------- U-Boot upgrade NOT needed" ;
|
||||
echo "------- upgrade not needed" ;
|
||||
if itest.s "x" != "x${next}" ; then
|
||||
if ${fs}load ${devtype} ${devnum}:${distro_bootpart} ${a_script} ${next} ; then
|
||||
source ${a_script}
|
||||
@@ -210,12 +206,6 @@ if itest.s "x" != "x${next}" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if itest.s "xno" == "x${reset}" ; then
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
done
|
||||
fi
|
||||
echo "---- U-Boot upgraded. The board will now reset."
|
||||
sleep 1
|
||||
reset
|
||||
while echo "---- U-Boot upgraded. Please reset the board" ; do
|
||||
sleep 120
|
||||
done
|
||||
|
||||
@@ -24,5 +24,6 @@ image sdcard.img {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
offset = 2M
|
||||
size = 60M
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"pbuffers": true,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LVDS1",
|
||||
"name": "LVDS-1",
|
||||
"mode": "1280x800"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"pbuffers": true,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LVDS1",
|
||||
"name": "LVDS-1",
|
||||
"mode": "1280x480"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"pbuffers": true,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "LVDS1",
|
||||
"name": "LVDS-1",
|
||||
"mode": "800x480"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
label RK3399RocPC linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/rk3399-roc-pc.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p1 rootwait
|
||||
@@ -1,22 +0,0 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
@@ -1,40 +0,0 @@
|
||||
Libre Computer Board ROC-RK3399-PC
|
||||
===================================
|
||||
|
||||
Build:
|
||||
|
||||
$ make roc_pc_rk3399_defconfig
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.elf
|
||||
├── idbloader.img
|
||||
├── Image
|
||||
├── rk3399-roc-pc.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
└── u-boot.itb
|
||||
|
||||
Creating bootable SD card:
|
||||
==========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
|
||||
Wiki link:
|
||||
https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/roc-rk3399-pc.html
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,12 +9,11 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
}
|
||||
size = 64M
|
||||
size = 32M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -9,36 +9,26 @@ main ()
|
||||
fi
|
||||
|
||||
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin ATF_LOAD_ADDR=0x00910000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -fit -signed_hdmi ${BINARIES_DIR}/signed_hdmi_imx8m.bin -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/lpddr4_pmu_train_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin ATF_LOAD_ADDR=0x00920000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
|
||||
cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/ddr_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
|
||||
BL31=${BINARIES_DIR}/bl31.bin BL33=${BINARIES_DIR}/u-boot-nodtb.bin ATF_LOAD_ADDR=0x00960000 ${HOST_DIR}/bin/mkimage_fit_atf.sh ${UBOOT_DTB} > ${BINARIES_DIR}/u-boot.its
|
||||
${HOST_DIR}/bin/mkimage -E -p 0x3000 -f ${BINARIES_DIR}/u-boot.its ${BINARIES_DIR}/u-boot.itb
|
||||
rm -f ${BINARIES_DIR}/u-boot.its
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -v v2 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x912000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
else
|
||||
${HOST_DIR}/bin/mkimage_imx8 -commit > ${BINARIES_DIR}/mkimg.commit
|
||||
cat ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/mkimg.commit > ${BINARIES_DIR}/u-boot-hash.bin
|
||||
cp ${BINARIES_DIR}/bl31.bin ${BINARIES_DIR}/u-boot-atf.bin
|
||||
dd if=${BINARIES_DIR}/u-boot-hash.bin of=${BINARIES_DIR}/u-boot-atf.bin bs=1K seek=128
|
||||
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y$" ${BR2_CONFIG}; then
|
||||
${HOST_DIR}/bin/mkimage_imx8 -soc QM -rev B0 -append ${BINARIES_DIR}/ahab-container.img -c -scfw ${BINARIES_DIR}/mx8qm-mek-scfw-tcm.bin -ap ${BINARIES_DIR}/u-boot-atf.bin a53 0x80000000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
else
|
||||
${HOST_DIR}/bin/mkimage_imx8 -soc QX -rev B0 -append ${BINARIES_DIR}/ahab-container.img -c -scfw ${BINARIES_DIR}/mx8qx-mek-scfw-tcm.bin -ap ${BINARIES_DIR}/u-boot-atf.bin a35 0x80000000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
fi
|
||||
|
||||
${HOST_DIR}/bin/mkimage_imx8 -soc QX -rev B0 -append ${BINARIES_DIR}/ahab-container.img -c -scfw ${BINARIES_DIR}/mx8qx-mek-scfw-tcm.bin -ap ${BINARIES_DIR}/u-boot-atf.bin a35 0x80000000 -out ${BINARIES_DIR}/imx8-boot-sd.bin
|
||||
fi
|
||||
|
||||
exit $?
|
||||
|
||||
@@ -32,14 +32,10 @@ linux_image()
|
||||
|
||||
genimage_type()
|
||||
{
|
||||
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
|
||||
if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then
|
||||
echo "genimage.cfg.template_imx8"
|
||||
elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
label = "boot"
|
||||
files = {
|
||||
%FILES%
|
||||
}
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
# ondemand governor with a mainline kernel.
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
CONFIG_VIDEO_CODA=m
|
||||
|
||||
@@ -80,7 +80,6 @@ Running kmscube application:
|
||||
Running Qt5 Cinematic Demo:
|
||||
|
||||
# export QT_QPA_EGLFS_KMS_CONFIG=/root/sabresd.json
|
||||
# export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
|
||||
# /usr/share/Qt5/CinematicExperience/Qt5_CinematicExperience
|
||||
|
||||
Running gl2mark benchmark:
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
"pbuffers": true,
|
||||
"outputs": [
|
||||
{
|
||||
"name": "HDMI1",
|
||||
"name": "HDMI-1",
|
||||
"mode": "off"
|
||||
},
|
||||
{
|
||||
"name": "LVDS1",
|
||||
"name": "LVDS-1",
|
||||
"mode": "1024x768"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
From e9a88fddc149fc52cdc5a8997f9fd3a29416c643 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= <vincent.stehle@freescale.com>
|
||||
Date: Tue, 12 Aug 2014 10:17:31 +0200
|
||||
Subject: [PATCH] mx6qsabre_common: boot Linux to /init in mfgtools mode
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Buildroot supplies a nice /init wrapper script to use when booting from a
|
||||
ramdisk.
|
||||
|
||||
This patch tells u-boot to tell the kernel to boot into /init (instead of
|
||||
/linuxrc) on i.MX6, when booting in mfgtools mode. This way we can boot a
|
||||
buildroot system entirely through USB.
|
||||
|
||||
Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
|
||||
Signed-off-by: Julien Olivain <julien.olivain@oss.nxp.com>
|
||||
---
|
||||
include/configs/imx_env.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/configs/imx_env.h b/include/configs/imx_env.h
|
||||
index c03748d93f..aa1a8bf488 100644
|
||||
--- a/include/configs/imx_env.h
|
||||
+++ b/include/configs/imx_env.h
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#define CONFIG_MFG_ENV_SETTINGS_DEFAULT \
|
||||
"mfgtool_args=setenv bootargs console=${console},${baudrate} " \
|
||||
- "rdinit=/linuxrc " \
|
||||
+ "rdinit=/init " \
|
||||
"clk_ignore_unused "\
|
||||
"\0" \
|
||||
"kboot="MFG_BOOT_CMD"\0"\
|
||||
--
|
||||
2.26.2
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
From 27a2cd6a1980adf3002412678c8fdec6528dc47d Mon Sep 17 00:00:00 2001
|
||||
From: Trent Piepho <tpiepho@impinj.com>
|
||||
Date: Fri, 6 Apr 2018 17:11:27 -0700
|
||||
Subject: [PATCH] imx: Create distinct pre-processed mkimage config files
|
||||
|
||||
Each imx image is created by a separate sub-make and during this process
|
||||
the mkimage config file is run though cpp.
|
||||
|
||||
The cpp output is to the same file no matter what imx image is being
|
||||
created.
|
||||
|
||||
This means if two imx images are generated in parallel they will attempt
|
||||
to independently produce the same pre-processed mkimage config file at
|
||||
the same time.
|
||||
|
||||
Avoid the problem by making the pre-processed config file name unique
|
||||
based on the imx image it will be used in. This way each image will
|
||||
create a unique config file and they won't clobber each other when run
|
||||
in parallel.
|
||||
|
||||
This should fixed the build bug referenced in b5b0e4e3 ("imximage:
|
||||
Remove failure when no IVT offset is found").
|
||||
|
||||
Cc: Breno Lima <breno.lima@nxp.com>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Cc: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
|
||||
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
[fabio: Adapted to imx_v2017.03_4.9.11_1.0.0_ga]
|
||||
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
||||
---
|
||||
arch/arm/imx-common/Makefile | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
|
||||
index d862258..f1bae8d 100644
|
||||
--- a/arch/arm/imx-common/Makefile
|
||||
+++ b/arch/arm/imx-common/Makefile
|
||||
@@ -69,9 +69,11 @@ endif
|
||||
quiet_cmd_cpp_cfg = CFGS $@
|
||||
cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
|
||||
|
||||
-IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
|
||||
+# mkimage source config file
|
||||
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
|
||||
|
||||
-$(IMX_CONFIG): %.cfgtmp: % FORCE
|
||||
+# How to create a cpp processed config file, they all use the same source
|
||||
+%.cfgout: $(IMX_CONFIG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
@@ -79,7 +81,7 @@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imxim
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
|
||||
|
||||
-u-boot.imx: u-boot.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
ifeq ($(CONFIG_OF_SEPARATE),y)
|
||||
@@ -87,16 +89,15 @@ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T i
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
|
||||
|
||||
-u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
|
||||
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imximage \
|
||||
-e $(CONFIG_SPL_TEXT_BASE)
|
||||
-
|
||||
SPL: MKIMAGEOUTPUT = SPL.log
|
||||
|
||||
-SPL: spl/u-boot-spl.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
@@ -124,4 +125,4 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
|
||||
spl/u-boot-nand-spl.imx: SPL FORCE
|
||||
$(call if_changed,u-boot-nand-spl_imx)
|
||||
|
||||
-targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
+targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From 90ecc0ad14337898b75843efc6530fc4a34f7808 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Vincent=20Stehl=C3=A9?= <vincent.stehle@freescale.com>
|
||||
Date: Tue, 12 Aug 2014 10:17:31 +0200
|
||||
Subject: [PATCH] mx6qsabre_common: boot Linux to /init in mfgtools mode
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Buildroot supplies a nice /init wrapper script to use when booting from a
|
||||
ramdisk.
|
||||
|
||||
This patch tells u-boot to tell the kernel to boot into /init (instead of
|
||||
/linuxrc) on i.MX6, when booting in mfgtools mode. This way we can boot a
|
||||
buildroot system entirely through USB.
|
||||
|
||||
Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
|
||||
---
|
||||
include/configs/mx6sabre_common.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h
|
||||
index 93d4c4b..d2e7efd 100644
|
||||
--- a/include/configs/mx6sabre_common.h
|
||||
+++ b/include/configs/mx6sabre_common.h
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
#define CONFIG_MFG_ENV_SETTINGS \
|
||||
"mfgtool_args=setenv bootargs console=" CONSOLE_DEV ",115200 " \
|
||||
- "rdinit=/linuxrc " \
|
||||
+ "rdinit=/init " \
|
||||
"g_mass_storage.stall=0 g_mass_storage.removable=1 " \
|
||||
"g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF "\
|
||||
"g_mass_storage.iSerialNumber=\"\" "\
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
****************************
|
||||
Freescale i.MX6ULL EVK board
|
||||
****************************
|
||||
|
||||
This file documents the Buildroot support for the Freescale i.MX6ULL EVK board.
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for your i.MX6ULL EVK board:
|
||||
|
||||
In order to to do so there are two supported options:
|
||||
|
||||
make freescale_imx6ullevk_defconfig
|
||||
|
||||
if you plan to use NXP provided U-Boot and kernel.
|
||||
|
||||
or
|
||||
|
||||
make imx6ullevk_defconfig
|
||||
|
||||
if you plan to use mainline U-Boot and mainline kernel.
|
||||
|
||||
Build all components:
|
||||
|
||||
make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- boot.vfat
|
||||
- imx6ull-14x14-evk.dtb
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot.bin
|
||||
- u-boot.imx
|
||||
- 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
|
||||
|
||||
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>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template.
|
||||
|
||||
Boot the i.MX6ULL EVK board
|
||||
===========================
|
||||
|
||||
To boot your newly created system (refer to the i.MX 6ULL EVK Quick Start Guide [1] for guidance):
|
||||
- insert the SD card in the micro SD slot of the board;
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
|
||||
References
|
||||
==========
|
||||
[1] https://www.nxp.com/files-static/32bit/doc/brochure/IMX6ULLQSG.pdf
|
||||
@@ -0,0 +1,89 @@
|
||||
From 27a2cd6a1980adf3002412678c8fdec6528dc47d Mon Sep 17 00:00:00 2001
|
||||
From: Trent Piepho <tpiepho@impinj.com>
|
||||
Date: Fri, 6 Apr 2018 17:11:27 -0700
|
||||
Subject: [PATCH] imx: Create distinct pre-processed mkimage config files
|
||||
|
||||
Each imx image is created by a separate sub-make and during this process
|
||||
the mkimage config file is run though cpp.
|
||||
|
||||
The cpp output is to the same file no matter what imx image is being
|
||||
created.
|
||||
|
||||
This means if two imx images are generated in parallel they will attempt
|
||||
to independently produce the same pre-processed mkimage config file at
|
||||
the same time.
|
||||
|
||||
Avoid the problem by making the pre-processed config file name unique
|
||||
based on the imx image it will be used in. This way each image will
|
||||
create a unique config file and they won't clobber each other when run
|
||||
in parallel.
|
||||
|
||||
This should fixed the build bug referenced in b5b0e4e3 ("imximage:
|
||||
Remove failure when no IVT offset is found").
|
||||
|
||||
Cc: Breno Lima <breno.lima@nxp.com>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Cc: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
|
||||
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
|
||||
[fabio: Adapted to imx_v2017.03_4.9.11_1.0.0_ga]
|
||||
Signed-off-by: Fabio Estevam <festevam@gmail.com>
|
||||
---
|
||||
arch/arm/imx-common/Makefile | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
|
||||
index d862258..f1bae8d 100644
|
||||
--- a/arch/arm/imx-common/Makefile
|
||||
+++ b/arch/arm/imx-common/Makefile
|
||||
@@ -69,9 +69,11 @@ endif
|
||||
quiet_cmd_cpp_cfg = CFGS $@
|
||||
cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
|
||||
|
||||
-IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
|
||||
+# mkimage source config file
|
||||
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%)
|
||||
|
||||
-$(IMX_CONFIG): %.cfgtmp: % FORCE
|
||||
+# How to create a cpp processed config file, they all use the same source
|
||||
+%.cfgout: $(IMX_CONFIG) FORCE
|
||||
$(Q)mkdir -p $(dir $@)
|
||||
$(call if_changed_dep,cpp_cfg)
|
||||
|
||||
@@ -79,7 +81,7 @@ MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imxim
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot.imx: MKIMAGEOUTPUT = u-boot.imx.log
|
||||
|
||||
-u-boot.imx: u-boot.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot.imx: u-boot.bin u-boot.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
ifeq ($(CONFIG_OF_SEPARATE),y)
|
||||
@@ -87,16 +89,15 @@ MKIMAGEFLAGS_u-boot-dtb.imx = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T i
|
||||
-e $(CONFIG_SYS_TEXT_BASE)
|
||||
u-boot-dtb.imx: MKIMAGEOUTPUT = u-boot-dtb.imx.log
|
||||
|
||||
-u-boot-dtb.imx: u-boot-dtb.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+u-boot-dtb.imx: u-boot-dtb.bin u-boot-dtb.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
endif
|
||||
|
||||
MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) -T imximage \
|
||||
-e $(CONFIG_SPL_TEXT_BASE)
|
||||
-
|
||||
SPL: MKIMAGEOUTPUT = SPL.log
|
||||
|
||||
-SPL: spl/u-boot-spl.bin $(IMX_CONFIG) $(PLUGIN).bin FORCE
|
||||
+SPL: spl/u-boot-spl.bin spl/u-boot-spl.cfgout $(PLUGIN).bin FORCE
|
||||
$(call if_changed,mkimage)
|
||||
|
||||
MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
@@ -124,4 +125,4 @@ cmd_u-boot-nand-spl_imx = (printf '\000\000\000\000\106\103\102\040\001' && \
|
||||
spl/u-boot-nand-spl.imx: SPL FORCE
|
||||
$(call if_changed,u-boot-nand-spl_imx)
|
||||
|
||||
-targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
+targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
***************************
|
||||
Freescale i.MX8MN EVK board
|
||||
***************************
|
||||
|
||||
This file documents the Buildroot support for the i.MX8M Nano EVK board.
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for the i.MX8MN EVK board:
|
||||
|
||||
make freescale_imx8mnevk_defconfig
|
||||
|
||||
Build all components:
|
||||
|
||||
make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- bl31.bin
|
||||
- boot.vfat
|
||||
- ddr4_201810_fw.bin
|
||||
- ddr_fw.bin
|
||||
- fsl-imx8mn-ddr4-evk.dtb
|
||||
- Image
|
||||
- imx8-boot-sd.bin
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot.bin
|
||||
- u-boot.imx
|
||||
- u-boot.itb
|
||||
- u-boot-nodtb.bin
|
||||
- u-boot-spl.bin
|
||||
- u-boot-spl-ddr.bin
|
||||
|
||||
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>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template_imx8.
|
||||
|
||||
Boot the i.MX8MN EVK board
|
||||
==========================
|
||||
|
||||
To boot your newly created system (refer to the i.MX8MNano EVK Quick Start Guide
|
||||
[1] for guidance):
|
||||
- insert the SD card in the SD slot of the board;
|
||||
- Configure the switches as follows (X = "don't care"):
|
||||
SW1101: 1100XXXXXX [D1-D10]
|
||||
SW1102: XXXXXXXXXX [D1-D10]
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
|
||||
References
|
||||
==========
|
||||
[1] https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
|
||||
@@ -1,76 +0,0 @@
|
||||
***************************
|
||||
Freescale i.MX8QM MEK board
|
||||
***************************
|
||||
|
||||
This file documents the Buildroot support for the NXP i.MX8QM MEK board.
|
||||
|
||||
You will find a reference to the board on nxp.com:
|
||||
https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-8quadmax-multisensory-enablement-kit-mek:MCIMX8QM-CPU
|
||||
|
||||
You can also find the get started guide here:
|
||||
https://www.nxp.com/document/guide/get-started-with-the-i.mx-8quadmax-mek:GS-iMX-8QM-MEK
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
First, configure Buildroot for the i.MX8QM MEK board:
|
||||
|
||||
$ make freescale_imx8qmmek_defconfig
|
||||
|
||||
Build all components:
|
||||
|
||||
$ make
|
||||
|
||||
You will find in output/images/ the following files:
|
||||
- ahab-container.img
|
||||
- bl31.bin
|
||||
- boot.vfat
|
||||
- fsl-imx8qm-mek.dtb
|
||||
- Image
|
||||
- imx8-boot-sd.bin
|
||||
- mkimg.commit
|
||||
- mx8qm-mek-scfw-tcm.bin
|
||||
- mx8qm-val-scfw-tcm.bin
|
||||
- mx8qm-a0-ddr4-scfw-tcm.bin
|
||||
- mx8qm-a0-mek-scfw-tcm.bin
|
||||
- mx8qm-a0-val-scfw-tcm.bin
|
||||
- mx8qm-ddr4-scfw-tcm.bin
|
||||
- rootfs.ext2
|
||||
- rootfs.ext4
|
||||
- rootfs.tar
|
||||
- sdcard.img
|
||||
- u-boot-atf.bin
|
||||
- u-boot.bin
|
||||
- u-boot-hash.bin
|
||||
|
||||
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>
|
||||
|
||||
*** WARNING! This will destroy all the card content. Use with care! ***
|
||||
|
||||
For details about the medium image layout, see the definition in
|
||||
board/freescale/common/imx/genimage.cfg.template_imx8.
|
||||
|
||||
Boot the i.MX8QM MEK board
|
||||
==========================
|
||||
|
||||
To boot your newly created system:
|
||||
- insert the SD card in the SD slot of the board;
|
||||
- Configure the boot switch as follows:
|
||||
SW2: OFF OFF ON ON OFF OFF
|
||||
- put a micro USB cable into the Debug USB Port and connect using a terminal
|
||||
emulator at 115200 bps, 8n1;
|
||||
- power on the board.
|
||||
|
||||
Enjoy!
|
||||
@@ -1,4 +0,0 @@
|
||||
label linux
|
||||
kernel /Image
|
||||
devicetree /sun50i-h5-nanopi-neo-plus2.dtb
|
||||
append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
@@ -1,39 +0,0 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"Image",
|
||||
"sun50i-h5-nanopi-neo-plus2.dtb",
|
||||
"extlinux"
|
||||
}
|
||||
}
|
||||
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"
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
# wireless core
|
||||
CONFIG_WIRELESS=y
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
|
||||
# wireless drivers
|
||||
CONFIG_WLAN=y
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
CONFIG_BRCMFMAC=m
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
|
||||
@@ -1,37 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
buildroot environment for the Nanopi NEO Plus2. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
Nanopi NEO2 link:
|
||||
http://nanopi.io/nanopi-neo-plus2.html
|
||||
|
||||
Wiki link:
|
||||
http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Plus2
|
||||
|
||||
This configuration uses U-Boot mainline and kernel mainline.
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
$ make friendlyarm_nanopi_neo_plus2_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 Nanopi NEO Plus2 and power it up. The console
|
||||
is on the serial line, 115200 8N1.
|
||||
@@ -1,53 +0,0 @@
|
||||
#AP6212_NVRAM_V1.0.1_20160606
|
||||
# 2.4 GHz, 20 MHz BW mode
|
||||
# The following parameter values are just placeholders, need to be updated.
|
||||
manfid=0x2d0
|
||||
prodid=0x0726
|
||||
vendid=0x14e4
|
||||
devid=0x43e2
|
||||
boardtype=0x0726
|
||||
boardrev=0x1101
|
||||
boardnum=22
|
||||
macaddr=00:90:4c:c5:12:38
|
||||
sromrev=11
|
||||
boardflags=0x00404201
|
||||
xtalfreq=26000
|
||||
nocrc=1
|
||||
ag0=255
|
||||
aa2g=1
|
||||
ccode=ALL
|
||||
|
||||
pa0itssit=0x20
|
||||
extpagain2g=0
|
||||
|
||||
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
|
||||
pa2ga0=-168,7161,-820
|
||||
AvVmid_c0=0x0,0xc8
|
||||
cckpwroffset0=5
|
||||
|
||||
# PPR params
|
||||
maxp2ga0=90
|
||||
txpwrbckof=6
|
||||
cckbw202gpo=0x5555
|
||||
legofdmbw202gpo=0x77777777
|
||||
mcsbw202gpo=0xaaaaaaaa
|
||||
|
||||
# OFDM IIR :
|
||||
ofdmdigfilttype=7
|
||||
# PAPD mode:
|
||||
papdmode=2
|
||||
|
||||
il0macaddr=00:90:4c:c5:12:38
|
||||
wl0id=0x431b
|
||||
|
||||
#OOB parameters
|
||||
hostwake=0x40
|
||||
hostrdy=0x41
|
||||
usbrdy=0x03
|
||||
usbrdydelay=100
|
||||
deadman_to=0xffffffff
|
||||
# muxenab: 0x1 for UART enable, 0x10 for Host awake
|
||||
muxenab=0x10
|
||||
# CLDO PWM voltage settings - 0x4 - 1.1 volt
|
||||
#cldo_pwm=0x4
|
||||
glitch_based_crsmin=1
|
||||
@@ -29,5 +29,6 @@ image sdcard.img {
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 32M
|
||||
}
|
||||
}
|
||||
|
||||
12
board/friendlyarm/nanopi-neo/post-build.sh
Executable file
12
board/friendlyarm/nanopi-neo/post-build.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
# post-build.sh for Nanopi NEO, based on the Orange Pi PC
|
||||
# 2013, Carlo Caione <carlo.caione@gmail.com>
|
||||
# 2016, "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
BOARD_DIR="$( dirname "${0}" )"
|
||||
MKIMAGE="${HOST_DIR}/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}"
|
||||
15
board/friendlyarm/nanopi-neo/post-image.sh
Executable file
15
board/friendlyarm/nanopi-neo/post-image.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
# post-image.sh for Nanopi NEO, based on the Orange Pi PC
|
||||
|
||||
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}"
|
||||
@@ -1,4 +0,0 @@
|
||||
label NanoPi Neo4 linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/rk3399-nanopi-neo4.dtb
|
||||
append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p1 rootwait
|
||||
@@ -1,22 +0,0 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition u-boot-tpl-spl-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "idbloader.img"
|
||||
offset = 32K
|
||||
}
|
||||
|
||||
partition u-boot-dtb {
|
||||
in-partition-table = "no"
|
||||
image = "u-boot.itb"
|
||||
offset = 8M
|
||||
size = 30M
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf
|
||||
@@ -1,53 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
NanoPi Neo4 is a RK3399 SoC based ARM64 board.
|
||||
|
||||
|
||||
Official wiki: http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO4
|
||||
Mainline wiki: https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/neo4.html
|
||||
|
||||
Build
|
||||
=====
|
||||
|
||||
Run NanoPi Neo4 configuration
|
||||
|
||||
$ make nanopi_neo4_defconfig
|
||||
|
||||
To build, run make comamnd.
|
||||
|
||||
$ make
|
||||
|
||||
Files created in output directory
|
||||
=================================
|
||||
|
||||
output/images
|
||||
|
||||
├── bl31.bin
|
||||
├── bl31.elf
|
||||
├── Image
|
||||
├── rk3399-nanopi-neo4.dtb
|
||||
├── rootfs.ext2
|
||||
├── rootfs.ext4 -> rootfs.ext2
|
||||
├── rootfs.tar
|
||||
├── sdcard.img
|
||||
├── u-boot.bin
|
||||
├── u-boot.itb
|
||||
├── u-boot-spl-dtb.bin
|
||||
├── u-boot-tpl-dtb.bin
|
||||
├── u-boot-tpl-dtb.img
|
||||
└── u-boot-tpl-spl-dtb.img
|
||||
|
||||
Creating bootable SD card:
|
||||
=========================
|
||||
|
||||
Simply invoke (as root)
|
||||
|
||||
# dd if=output/images/sdcard.img of=/dev/sdX && sync
|
||||
|
||||
Where X is your SD card device
|
||||
|
||||
Serial console
|
||||
--------------
|
||||
|
||||
Baudrate for this board is 1500000
|
||||
@@ -1,8 +0,0 @@
|
||||
setenv fdt_high ffffffff
|
||||
|
||||
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
|
||||
|
||||
fatload mmc 0 $kernel_addr_r zImage
|
||||
fatload mmc 0 $fdt_addr_r sun8i-h3-nanopi-r1.dtb
|
||||
|
||||
bootz $kernel_addr_r - $fdt_addr_r
|
||||
@@ -1,36 +0,0 @@
|
||||
# Minimal SD card image for the NanoPi M1
|
||||
#
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"zImage",
|
||||
"sun8i-h3-nanopi-r1.dtb",
|
||||
"boot.scr"
|
||||
}
|
||||
}
|
||||
size = 10M
|
||||
}
|
||||
|
||||
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"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
# USB ethernet
|
||||
CONFIG_USB_RTL8152=y
|
||||
@@ -1,170 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "sun8i-h3-nanopi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FriendlyElec NanoPi-R1";
|
||||
compatible = "friendlyarm,nanopi-r1", "allwinner,sun8i-h3";
|
||||
|
||||
aliases {
|
||||
serial1 = &uart3;
|
||||
ethernet0 = &emac;
|
||||
ethernet1 = &emac;
|
||||
ethernet2 = &sdio_wifi;
|
||||
};
|
||||
|
||||
wifi_pwrseq: wifi_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
pinctrl-names = "default";
|
||||
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
|
||||
};
|
||||
|
||||
reg_gmac_3v3: gmac-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "gmac-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
startup-delay-us = <100000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
leds {
|
||||
/delete-node/ status;
|
||||
/delete-node/ pwr;
|
||||
led1 {
|
||||
label = "LED1";
|
||||
gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led2 {
|
||||
label = "LED2";
|
||||
gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
|
||||
led3 {
|
||||
label = "LED3";
|
||||
gpios = <&pio 0 9 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
linux,default-trigger = "netdev";
|
||||
};
|
||||
};
|
||||
|
||||
r_gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
input-name = "k1";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sw_r_npi>;
|
||||
|
||||
/delete-node/ k1;
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <BTN_1>;
|
||||
gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&external_mdio {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <7>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc3v3>;
|
||||
mmc-pwrseq = <&wifi_pwrseq>;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
|
||||
sdio_wifi: sdio_wifi@1 {
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
vqmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "peripheral";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -1,29 +0,0 @@
|
||||
NanoPi R1
|
||||
|
||||
Intro
|
||||
=====
|
||||
|
||||
This default configuration will allow you to start experimenting with the
|
||||
buildroot environment for the NanoPi R1. With the current configuration
|
||||
it will bring-up the board, and allow access through the serial console.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make nanopi_r1_defconfig
|
||||
|
||||
Compile everything and build the SD card image:
|
||||
|
||||
$ make
|
||||
|
||||
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
|
||||
@@ -1,22 +0,0 @@
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_SPL=y
|
||||
CONFIG_MACH_SUN8I_H3=y
|
||||
CONFIG_DRAM_CLK=408
|
||||
CONFIG_DRAM_ZQ=3881979
|
||||
CONFIG_DRAM_ODT_EN=y
|
||||
CONFIG_MACPWR="PD6"
|
||||
# CONFIG_VIDEO_DE2 is not set
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
CONFIG_CONSOLE_MUX=y
|
||||
CONFIG_SYS_CLK_FREQ=480000000
|
||||
# CONFIG_CMD_FLASH is not set
|
||||
# CONFIG_SPL_DOS_PARTITION is not set
|
||||
# CONFIG_SPL_EFI_PARTITION is not set
|
||||
CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-r1"
|
||||
CONFIG_SUN8I_EMAC=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
|
||||
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
@@ -1,102 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Igor Pecovnik <igor@armbian.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "sun8i-h3-nanopi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "FriendlyARM NanoPi R1";
|
||||
compatible = "friendlyarm,nanopi-neo", "allwinner,sun8i-h3";
|
||||
|
||||
reg_gmac_3v3: gmac-3v3 {
|
||||
compatible = "regulator-fixed";
|
||||
pinctrl-names = "default";
|
||||
regulator-name = "gmac-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
startup-delay-us = <100000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pio {
|
||||
gmac_power_pin_nanopi: gmac_power_pin@0 {
|
||||
pins = "PD6";
|
||||
function = "gpio_out";
|
||||
};
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||
vmmc-supply = <®_vcc3v3>;
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
cap-mmc-hw-reset;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emac_rgmii_pins>;
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-mode = "rgmii";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&external_mdio {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <7>;
|
||||
};
|
||||
};
|
||||
@@ -1,11 +0,0 @@
|
||||
# Minimal image, no U-boot since v3/v5 cannot boot from sdcard, see
|
||||
# readme.txt for details on configuring the on-board u-boot.
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
#
|
||||
# The Espressobin has a switchcore with full support in the kernel.
|
||||
# This fragment enables DSA and its drivers, inclding VLAN aware bridge
|
||||
# support to allow users to easily set up a LAN switch + WAN interface.
|
||||
#
|
||||
CONFIG_NET_DSA=m
|
||||
CONFIG_VLAN_8021Q=y
|
||||
|
||||
CONFIG_BRIDGE=m
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
CONFIG_BRIDGE_VLAN_FILTERING=y
|
||||
|
||||
CONFIG_NET_DSA_MV88E6XXX=m
|
||||
CONFIG_NET_DSA_MV88E6XXX_PTP=y
|
||||
@@ -1,90 +0,0 @@
|
||||
Marvell ESPRESSObin
|
||||
===================
|
||||
|
||||
This default configuration allows you to quickly get up and running with
|
||||
the Marvell ESPRESSObin board by Globalscale Technologies Inc.
|
||||
|
||||
The ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with
|
||||
a Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports.
|
||||
|
||||
_________________________
|
||||
|# U W L L U #|
|
||||
|# S A A A S #|
|
||||
|# B N N N B #|
|
||||
|# 0 1 #|
|
||||
|# Mini #|
|
||||
|# -PCI #|
|
||||
|# #|
|
||||
|# 5 #|
|
||||
|#__V___usb_PWR_SATA__SW_#|
|
||||
|
||||
Fig 1: Overview of board
|
||||
|
||||
Notice difference in Ethernet port layout compared to the Globalscale
|
||||
docs. They order the ports; LAN2, LAN1, WAN (left to right in figure
|
||||
above). For more information, see http://espressobin.net
|
||||
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
$ make globalscale_espressobin_defconfig
|
||||
$ make
|
||||
|
||||
This generates the kernel image, the devicetree binary, the rootfs as a
|
||||
tar.gz, and a filesystem image containing everything.
|
||||
|
||||
All build artifacts are located in `output/images/`
|
||||
|
||||
|
||||
Booting
|
||||
-------
|
||||
|
||||
To boot, you need a UART connection, using the on-board micro USB port
|
||||
set to 115200 8N1.
|
||||
|
||||
By default, the ESPRESSObin comes with a pre-flashed U-Boot set up to
|
||||
load the kernel, device-tree and rootfs from SPI NOR flash. The board
|
||||
jumpers can be changed to boot from different sources, see the quick
|
||||
start guide for each board revision for details:
|
||||
|
||||
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/
|
||||
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/
|
||||
|
||||
Note: the v5, and earlier, cannot boot from sdcard, so you have to set
|
||||
up the factory U-Boot to boot into Buildroot:
|
||||
|
||||
1. Flash rootfs image to sdcard drive, your `of=` device may differ:
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M
|
||||
$ sync
|
||||
|
||||
2. Boot board from SPI NOR, interrupt boot by pressing any key ...
|
||||
3. Check with `printenv` that the default setup is OK, otherwise ensure
|
||||
the following are set, and define `bootcmd` for automatic boot:
|
||||
|
||||
> setenv kernel_addr 0x5000000
|
||||
> setenv fdt_addr 0x1800000
|
||||
> setenv fdt_name boot/armada-3720-espressobin.dtb
|
||||
> setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
|
||||
> setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
|
||||
|
||||
4. Call the boot command, or `reset` the board to start:
|
||||
|
||||
> run bootcmd
|
||||
|
||||
|
||||
Networking
|
||||
----------
|
||||
|
||||
To enable Ethernet networking, load the `mv88e6xxx` kernel module, and
|
||||
bring up each respective interface needed:
|
||||
|
||||
# modprobe mv88e6xxx
|
||||
# ifconfig wan up
|
||||
|
||||
A more advanced scenario is setting up switching between the ports using
|
||||
the Linux bridge. The kernel switchdev layer, and DSA driver, ensure
|
||||
switch functions are "offloaded" to the HW switch, i.e., all traffic
|
||||
between LAN ports never reach the CPU. For this you need the iproute2
|
||||
suite of tools.
|
||||
14
board/grinn/chiliboard/post-image.sh
Executable file
14
board/grinn/chiliboard/post-image.sh
Executable 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}"
|
||||
14
board/grinn/liteboard/post-image.sh
Executable file
14
board/grinn/liteboard/post-image.sh
Executable 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}"
|
||||
176
board/hardkernel/odroidc2/boot.ini
Normal file
176
board/hardkernel/odroidc2/boot.ini
Normal file
@@ -0,0 +1,176 @@
|
||||
ODROIDC2-UBOOT-CONFIG
|
||||
|
||||
########################################################################
|
||||
# Changes made to this are overwritten every time there's a new upgrade
|
||||
# To make your changes permanent change it on
|
||||
# boot.ini.default
|
||||
# After changing it on boot.ini.default run the bootini command to
|
||||
# rewrite this file with your personal permanent settings.
|
||||
# Documentation: http://odroid.com/dokuwiki/doku.php?id=en:c2_persistent_bootini
|
||||
########################################################################
|
||||
|
||||
# Possible screen resolutions
|
||||
# Uncomment only a single Line! The line with setenv written.
|
||||
# At least one mode must be selected.
|
||||
|
||||
# Custom modeline!
|
||||
# To use custom modeline you need to disable all the below resolutions
|
||||
# and setup your own!
|
||||
# For more information check our wiki:
|
||||
# http://odroid.com/dokuwiki/doku.php?id=en:c2_hdmi_autosetting
|
||||
# Example below:
|
||||
# setenv m "custombuilt"
|
||||
# setenv modeline "1920,1200,154000,74040,60,1920,1968,2000,2080,1200,1202,1208,1235,1,0,1"
|
||||
|
||||
# 480 Lines (720x480)
|
||||
# setenv m "480i60hz" # Interlaced 60Hz
|
||||
# setenv m "480i_rpt" # Interlaced for Rear Projection Televisions 60Hz
|
||||
# setenv m "480p60hz" # 480 Progressive 60Hz
|
||||
# setenv m "480p_rpt" # 480 Progressive for Rear Projection Televisions 60Hz
|
||||
|
||||
# 576 Lines (720x576)
|
||||
# setenv m "576i50hz" # Interlaced 50Hz
|
||||
# setenv m "576i_rpt" # Interlaced for Rear Projection Televisions 50Hz
|
||||
# setenv m "576p50hz" # Progressive 50Hz
|
||||
# setenv m "576p_rpt" # Progressive for Rear Projection Televisions 50Hz
|
||||
|
||||
# 720 Lines (1280x720)
|
||||
# setenv m "720p50hz" # 50Hz
|
||||
# setenv m "720p60hz" # 60Hz
|
||||
|
||||
# 1080 Lines (1920x1080)
|
||||
# setenv m "1080i60hz" # Interlaced 60Hz
|
||||
setenv m "1080p60hz" # Progressive 60Hz
|
||||
# setenv m "1080i50hz" # Interlaced 50Hz
|
||||
# setenv m "1080p50hz" # Progressive 50Hz
|
||||
# setenv m "1080p24hz" # Progressive 24Hz
|
||||
|
||||
# 4K (3840x2160)
|
||||
# setenv m "2160p30hz" # Progressive 30Hz
|
||||
# setenv m "2160p25hz" # Progressive 25Hz
|
||||
# setenv m "2160p24hz" # Progressive 24Hz
|
||||
# setenv m "smpte24hz" # Progressive 24Hz SMPTE
|
||||
# setenv m "2160p50hz" # Progressive 50Hz
|
||||
# setenv m "2160p60hz" # Progressive 60Hz
|
||||
# setenv m "2160p50hz420" # Progressive 50Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
|
||||
# setenv m "2160p60hz420" # Progressive 60Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
|
||||
|
||||
### VESA modes ###
|
||||
# setenv m "640x480p60hz"
|
||||
# setenv m "800x480p60hz"
|
||||
# setenv m "480x800p60hz"
|
||||
# setenv m "800x600p60hz"
|
||||
# setenv m "1024x600p60hz"
|
||||
# setenv m "1024x768p60hz"
|
||||
# setenv m "1280x800p60hz"
|
||||
# setenv m "1280x1024p60hz"
|
||||
# setenv m "1360x768p60hz"
|
||||
# setenv m "1440x900p60hz"
|
||||
# setenv m "1600x900p60hz"
|
||||
# setenv m "1680x1050p60hz"
|
||||
# setenv m "1600x1200p60hz"
|
||||
# setenv m "1920x1200p60hz"
|
||||
# setenv m "2560x1080p60hz"
|
||||
# setenv m "2560x1440p60hz"
|
||||
# setenv m "2560x1600p60hz"
|
||||
# setenv m "3440x1440p60hz"
|
||||
|
||||
# HDMI BPP Mode
|
||||
setenv m_bpp "32"
|
||||
# setenv m_bpp "24"
|
||||
# setenv m_bpp "16"
|
||||
|
||||
# HDMI DVI/VGA modes
|
||||
# By default its set to HDMI, if needed change below.
|
||||
# Uncomment only a single Line.
|
||||
# setenv vout "dvi"
|
||||
# setenv vout "vga"
|
||||
|
||||
# HDMI HotPlug Detection control
|
||||
# Allows you to force HDMI thinking that the cable is connected.
|
||||
# true = HDMI will believe that cable is always connected
|
||||
# false = will let board/monitor negotiate the connection status
|
||||
setenv hpd "true"
|
||||
# setenv hpd "false"
|
||||
|
||||
# Monitor output
|
||||
# Controls if HDMI PHY should output anything to the monitor
|
||||
setenv monitor_onoff "false" # true or false
|
||||
|
||||
# Server Mode (aka. No Graphics)
|
||||
# Setting nographics to 1 will disable all video subsystem
|
||||
# This mode is ideal of server type usage. (Saves ~300Mb of RAM)
|
||||
setenv nographics "0"
|
||||
|
||||
# Meson Timer
|
||||
# 1 - Meson Timer
|
||||
# 0 - Arch Timer
|
||||
# Using meson_timer improves the video playback however it breaks KVM (virtualization).
|
||||
# Using arch timer allows KVM/Virtualization to work however you'll experience poor video
|
||||
setenv mesontimer "1"
|
||||
|
||||
# UHS (Ultra High Speed) MicroSD mode enable/disable
|
||||
setenv disableuhs "false"
|
||||
|
||||
# MicroSD Card Detection enable/disable
|
||||
# Force the MMC controlled to believe that a card is connected.
|
||||
setenv mmc_removable "true"
|
||||
|
||||
# USB Multi WebCam tweak
|
||||
# Only enable this if you use it.
|
||||
setenv usbmulticam "false"
|
||||
|
||||
# Default Console Device Setting
|
||||
setenv condev "console=ttyS0,115200n8 console=tty0" # on both
|
||||
|
||||
# CPU Frequency / Cores control
|
||||
###########################################
|
||||
### WARNING!!! WARNING!!! WARNING!!!
|
||||
# Before changing anything here please read the wiki entry:
|
||||
# http://odroid.com/dokuwiki/doku.php?id=en:c2_set_cpu_freq
|
||||
#
|
||||
# MAX CPU's
|
||||
# setenv maxcpus "1"
|
||||
# setenv maxcpus "2"
|
||||
# setenv maxcpus "3"
|
||||
setenv maxcpus "4"
|
||||
|
||||
# MAX Frequency
|
||||
# setenv max_freq "2016" # 2.016GHz
|
||||
# setenv max_freq "1944" # 1.944GHz
|
||||
# setenv max_freq "1944" # 1.944GHz
|
||||
# setenv max_freq "1920" # 1.920GHz
|
||||
# setenv max_freq "1896" # 1.896GHz
|
||||
# setenv max_freq "1752" # 1.752GHz
|
||||
# setenv max_freq "1680" # 1.680GHz
|
||||
# setenv max_freq "1656" # 1.656GHz
|
||||
setenv max_freq "1536" # 1.536GHz
|
||||
|
||||
|
||||
|
||||
###########################################
|
||||
|
||||
# Boot Arguments
|
||||
if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
|
||||
|
||||
setenv bootargs "root=/dev/mmcblk0p2 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam}"
|
||||
|
||||
# Booting
|
||||
|
||||
setenv loadaddr "0x11000000"
|
||||
setenv dtb_loadaddr "0x1000000"
|
||||
setenv initrd_loadaddr "0x13000000"
|
||||
|
||||
fatload mmc 0:1 ${loadaddr} Image
|
||||
fatload mmc 0:1 ${dtb_loadaddr} meson64_odroidc2.dtb
|
||||
fdt addr ${dtb_loadaddr}
|
||||
|
||||
if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@3/timer; fi
|
||||
if test "${mesontimer}" = "1"; then fdt rm /timer; fi
|
||||
|
||||
if test "${nographics}" = "1"; then fdt rm /reserved-memory; fdt rm /aocec; fi
|
||||
if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fi
|
||||
if test "${nographics}" = "1"; then fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /meson-fb; fi
|
||||
if test "${nographics}" = "1"; then fdt rm /deinterlace; fdt rm /codec_mm; fi
|
||||
|
||||
booti ${loadaddr} - ${dtb_loadaddr}
|
||||
27
board/hardkernel/odroidc2/genimage.cfg
Normal file
27
board/hardkernel/odroidc2/genimage.cfg
Normal file
@@ -0,0 +1,27 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"boot.ini",
|
||||
"Image",
|
||||
"meson64_odroidc2.dtb"
|
||||
}
|
||||
}
|
||||
size = 32M
|
||||
}
|
||||
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition vfat {
|
||||
partition-type = 0xC
|
||||
image = "boot.vfat"
|
||||
offset = 1048576
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
19
board/hardkernel/odroidc2/post-image.sh
Executable file
19
board/hardkernel/odroidc2/post-image.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
|
||||
GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
|
||||
|
||||
cp ${BOARD_DIR}/boot.ini ${BINARIES_DIR}/
|
||||
|
||||
rm -rf "${GENIMAGE_TMP}"
|
||||
|
||||
genimage \
|
||||
--rootpath "${TARGET_DIR}" \
|
||||
--tmppath "${GENIMAGE_TMP}" \
|
||||
--inputpath "${BINARIES_DIR}" \
|
||||
--outputpath "${BINARIES_DIR}" \
|
||||
--config "${GENIMAGE_CFG}"
|
||||
|
||||
dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=1 count=442 conv=sync,notrunc
|
||||
dd if=${BINARIES_DIR}/u-boot.bin of=${BINARIES_DIR}/sdcard.img bs=512 skip=1 seek=1 conv=fsync,notrunc
|
||||
53
board/hardkernel/odroidc2/readme.txt
Normal file
53
board/hardkernel/odroidc2/readme.txt
Normal file
@@ -0,0 +1,53 @@
|
||||
ODROID-C2
|
||||
|
||||
Intro
|
||||
=====
|
||||
To be able to use ODROID-C2 board with the images generated by
|
||||
Buildroot, you have to prepare the SDCard or eMMC.
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
$ make odroidc2_defconfig
|
||||
|
||||
Then you can edit the build options using
|
||||
|
||||
$ make menuconfig
|
||||
|
||||
Compile all and build rootfs image:
|
||||
|
||||
$ make
|
||||
|
||||
Note: you will need to have access to the network, since Buildroot will
|
||||
download the packages' sources.
|
||||
|
||||
Result of the build
|
||||
-------------------
|
||||
|
||||
After building, you should obtain this tree:
|
||||
|
||||
output/images/
|
||||
+-- Image
|
||||
+-- boot.ini [1]
|
||||
+-- boot.vfat
|
||||
+-- meson64_odroidc2.dtb
|
||||
+-- rootfs.ext2
|
||||
+-- rootfs.ext4
|
||||
+-- rootfs.tar
|
||||
+-- sdcard.img
|
||||
`-- u-boot.bin
|
||||
|
||||
[1] This is the ODROID-C2 configuration file used in u-boot.
|
||||
|
||||
How to write the SD card or eMMC
|
||||
================================
|
||||
|
||||
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 or eMMC with "dd":
|
||||
|
||||
$ sudo dd if=output/images/sdcard.img of=/dev/sdX
|
||||
|
||||
Insert the SDcard into your ODROID-C2, and power it up. Your new system
|
||||
should come up now.
|
||||
@@ -1,10 +0,0 @@
|
||||
image usb.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
label linux
|
||||
kernel /boot/Image
|
||||
devicetree /boot/meson-gxl-s805x-libretech-ac.dtb
|
||||
append console=ttyAML0,115200 earlyprintk root=/dev/sda1 rootwait
|
||||
@@ -1,34 +0,0 @@
|
||||
Intro
|
||||
=====
|
||||
|
||||
Libre Computer "La Frite" is a low cost SBC based around an Amlogic
|
||||
s805x SoC (quad A53), 512MB/1GB DDR4 and a 16MB SPI NOR flash:
|
||||
|
||||
https://libre.computer/products/boards/aml-s805x-ac/
|
||||
|
||||
How to build it
|
||||
===============
|
||||
|
||||
Configure Buildroot:
|
||||
|
||||
$ make lafrite_defconfig
|
||||
|
||||
Compile everything and build the USB flash drive image:
|
||||
|
||||
$ make
|
||||
|
||||
How to write the USB flash drive image
|
||||
======================================
|
||||
|
||||
Once the build process is finished you will have an image called "usb.img"
|
||||
in the output/images/ directory.
|
||||
|
||||
Copy the bootable "usb.img" onto a USB flash drive with "dd":
|
||||
|
||||
$ sudo dd if=output/images/usb.img of=/dev/sdX
|
||||
|
||||
How to boot
|
||||
===========
|
||||
|
||||
Insert flash drive to the USB connector furthest away from the IR
|
||||
receiver and power up board. The system will boot automatically.
|
||||
13
board/minnowboard/post-image.sh
Executable file
13
board/minnowboard/post-image.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
GENIMAGE_CFG="board/minnowboard/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}"
|
||||
@@ -1,9 +0,0 @@
|
||||
image sdcard.img {
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_CFG80211_WEXT=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_LIBERTAS=m
|
||||
CONFIG_INPUT_MOUSEDEV=y
|
||||
CONFIG_INPUT_MOUSEDEV_PSAUX=y
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1200
|
||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=900
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_TABLET=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_BATTERY_OLPC=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_MEDIA_CAMERA_SUPPORT=y
|
||||
CONFIG_MEDIA_CONTROLLER=y
|
||||
CONFIG_VIDEO_V4L2_SUBDEV_API=y
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
CONFIG_USB_VIDEO_CLASS=m
|
||||
CONFIG_V4L_PLATFORM_DRIVERS=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_LCD_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_SDHCI=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_TER16x32=y
|
||||
@@ -1,47 +0,0 @@
|
||||
\ OLPC XO boot script
|
||||
|
||||
: (visible) " unfreeze visible" evaluate ;
|
||||
' (visible) catch drop forget (visible)
|
||||
|
||||
" /aliases" find-device " last" get-property
|
||||
abort" No last alias"
|
||||
" /pci/sd@c" 2over substring? if " root=/dev/mmcblk0p1 " to boot-file then
|
||||
" /sd/sdhci@d4280000" 2over substring? if " root=/dev/mmcblk1p1 " to boot-file then
|
||||
" /pci/usb@" 2over substring? if " root=/dev/sda1 " to boot-file then
|
||||
" /usb@" 2over substring? if " root=/dev/sda1 " to boot-file then
|
||||
" /pci/nandflash@c" 2over substring? if " root=/dev/mtdblock0 rootfstype=jffs2 " to boot-file then
|
||||
2drop
|
||||
|
||||
root-device " compatible" get-property dend if 0 0 then ( compatible$ )
|
||||
" olpc,xo-1.75" 2over sindex -1 > if ( compatible$ )
|
||||
\ Version check on XO-1.75
|
||||
" mrvl,mmp2" 2over sindex -1 = if ( compatible$ )
|
||||
2drop ( )
|
||||
cr
|
||||
." Firmware Q4E00 or newer is needed to boot a Devicetree enabled kernel." cr
|
||||
cr
|
||||
." One way to update is to copy http://dev.laptop.org/~quozl/q4e00ja.rom" cr
|
||||
." to a FAT partition on a USB flash stick and run ""flash u:\q4e00ja.rom""" cr
|
||||
cr
|
||||
." Aborting boot." cr
|
||||
" show-sad" evaluate
|
||||
abort
|
||||
then
|
||||
then ( compatible$ )
|
||||
|
||||
" mmp" 2swap sindex -1 > if
|
||||
\ A Marvell MMP-based machine
|
||||
" last:\boot\zImage" to boot-device
|
||||
boot-file " console=ttyS2,115200 " $cat2 to boot-file
|
||||
else
|
||||
\ Assume XO-1
|
||||
" last:\boot\bzImage" to boot-device
|
||||
boot-file " console=ttyS0,115200 reboot=pci " $cat2 to boot-file
|
||||
then
|
||||
|
||||
\ Pick a terminal that looks better on the XO screen
|
||||
root-device " architecture" get-property dend if 0 0 else 1- then
|
||||
" OLPC" $= if boot-file " fbcon=font:TER16x32 vt.color=0xf0 " $cat2 to boot-file then
|
||||
|
||||
boot-file " console=tty0 rootwait" $cat2 to boot-file
|
||||
boot
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
install -m 0644 -D $BOARD_DIR/olpc.fth $TARGET_DIR/boot/olpc.fth
|
||||
@@ -1,98 +0,0 @@
|
||||
OLPC XO Laptops
|
||||
===============
|
||||
|
||||
This document explains how to build and run images that run on the OLPC
|
||||
XO laptops.
|
||||
|
||||
Supported models
|
||||
----------------
|
||||
|
||||
* OLPC XO-1
|
||||
The original NS Geode based OLPC laptop, uses the x86 architecture.
|
||||
Can be booted either from an internal MTD device formatted with JFFS2
|
||||
or from a FAT or EXT4 partition on a SD card or a USB flash stick.
|
||||
|
||||
* OLPC XO-7.5
|
||||
The ARM-based laptop. Needs a recent enough firmware to provide a good
|
||||
enough flattened device tree to the kernel. Can be from a FAT or EXT4
|
||||
partition on a internal eMMC, a SD card or a USB flash stick.
|
||||
|
||||
Configure and build
|
||||
===================
|
||||
|
||||
$ make olpc_xo1_defconfig # Configure for XO-1
|
||||
|
||||
or:
|
||||
|
||||
$ make olpc_xo175_defconfig # Configure for XO-1.75
|
||||
|
||||
Then:
|
||||
|
||||
$ make menuconfig # Customize the build configuration
|
||||
$ make # Build
|
||||
|
||||
Preparing the machine
|
||||
=====================
|
||||
|
||||
Firmware security
|
||||
-----------------
|
||||
|
||||
Most OLPC machines were shipped with the security system that disallows
|
||||
booting unsigned software. If this is the case with your machine, in order
|
||||
to run the image you've built on it you'll need to get a developer key and
|
||||
deactivate the security system.
|
||||
|
||||
The procedure is descriped in the OLPC wiki:
|
||||
http://wiki.laptop.org/go/Activation_and_Developer_Keys
|
||||
|
||||
Firmware upgrade
|
||||
----------------
|
||||
|
||||
It is always preferrable to use an up to date firmware. The firmware images
|
||||
are available at http://wiki.laptop.org/go/Firmware. For the XO-1.75 laptop
|
||||
to boot the mainline kernel a firmware Q4E00JA or newer is needed. You can
|
||||
get it at http://dev.laptop.org/~quozl/q4e00ja.rom.
|
||||
|
||||
To update the firmware, place the .rom file on to your bootable media,
|
||||
connect a charged battery pack and a wall adapter, and enter the Open
|
||||
Firmware prompt by pressing ESC during the early boot (needs an unlocked
|
||||
laptop -- see "Firmware security" above). Then use the "flash" command
|
||||
to update the firmware:
|
||||
|
||||
ok flash ext:\q4e00ja.rom \ Flash the "q4e00ja.rom" from the SD card
|
||||
ok flash u:\q4e00ja.rom \ Flash the "q4e00ja.rom" from USB stick
|
||||
|
||||
Create the bootable SD card or USB flash stick
|
||||
==============================================
|
||||
|
||||
When the build is finished, an image file called "sdcard.img" will be created.
|
||||
It is suitable for writing directly to a SD card, USB flash stick or (on a
|
||||
XO-1.75) the internal eMMC flash.
|
||||
|
||||
Before writing the image, please double check that you're using the right
|
||||
device (e.g. with "lsblk" command). Doing the following will DESTROY ALL DATA
|
||||
that's currently on the media.
|
||||
|
||||
# cat output/images/sdcard.img >/dev/<device>
|
||||
|
||||
Flashing the JFFS2 image (XO-1 only)
|
||||
====================================
|
||||
|
||||
Unlike XO-1.75, the internal NAND flash on XO-1 is accessed without a
|
||||
FTL and needs a flash-friendly filesystem. A build configured for XO-1
|
||||
creates a file named "root.jffs2" that can be written to it.
|
||||
|
||||
One way to write it is from the Open Firmware prompt. First, partition
|
||||
and format a USB flash disk with a FAT file system and place the
|
||||
"root.jffs2" file onto it. Then power on the machine, enter the
|
||||
Open Firmware port by pressing the ESC key and run the following:
|
||||
|
||||
ok patch noop ?open-crcs copy-nand \ Disable CRC check
|
||||
ok copy-nand u:\root.jffs2
|
||||
|
||||
Booting the machine
|
||||
===================
|
||||
|
||||
Once your machine is unlocked, it will automatically boot from your media
|
||||
wherever it will detect it attached to the USB bus or the SD card slot,
|
||||
otherwise it will proceed booting from the internal flash.
|
||||
@@ -1,46 +0,0 @@
|
||||
CONFIG_ARCH_MMP=y
|
||||
CONFIG_MACH_MMP2_DT=y
|
||||
CONFIG_MACH_MMP3_DT=y
|
||||
CONFIG_USB_EHCI_MV_U2O=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_FORCE_MAX_ZONEORDER=16
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_SENSORS_LIS3_SPI=y
|
||||
CONFIG_SERIO_OLPC_APSP=y
|
||||
CONFIG_REGULATOR_88PG86X=m
|
||||
CONFIG_VIDEO_MMP_CAMERA=y
|
||||
CONFIG_DRM_ARMADA=y
|
||||
CONFIG_DRM_DISPLAY_CONNECTOR=m
|
||||
CONFIG_DRM_SIMPLE_BRIDGE=m
|
||||
CONFIG_DRM_ETNAVIV=m
|
||||
CONFIG_USB_EHCI_MV=y
|
||||
CONFIG_MMC_SDHCI_PLTFM=y
|
||||
CONFIG_MMC_SDHCI_PXAV3=y
|
||||
CONFIG_OLPC_XO175=y
|
||||
CONFIG_OLPC_XO175_EC=y
|
||||
CONFIG_PHY_PXA_USB=y
|
||||
CONFIG_PHY_MMP3_USB=y
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
CONFIG_LIBERTAS_SDIO=m
|
||||
CONFIG_LIBERTAS_THINFIRM=m
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
CONFIG_I2C_PXA=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PXA2XX=y
|
||||
CONFIG_SPI_SLAVE=y
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_SND_SOC_RT5631=y
|
||||
CONFIG_PWRSEQ_SD8787=m
|
||||
CONFIG_RTC_DRV_DS1307=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_ZFORCE=y
|
||||
@@ -1,80 +0,0 @@
|
||||
# CONFIG_64BIT is not set
|
||||
CONFIG_IOSF_MBI=y
|
||||
CONFIG_MGEODE_LX=y
|
||||
CONFIG_X86_MSR=y
|
||||
CONFIG_HZ_100=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||
CONFIG_OLPC=y
|
||||
CONFIG_OLPC_XO1_PM=y
|
||||
CONFIG_OLPC_XO1_RTC=y
|
||||
CONFIG_OLPC_XO1_SCI=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_REDBOOT_PARTS=y
|
||||
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=0
|
||||
CONFIG_MTD_ONENAND=y
|
||||
CONFIG_MTD_ONENAND_GENERIC=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_NAND_CAFE=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_CS5535_MFGPT=y
|
||||
CONFIG_CS5535_CLOCK_EVENT_SRC=y
|
||||
CONFIG_MOUSE_PS2_OLPC=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=1
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HW_RANDOM_VIA is not set
|
||||
CONFIG_NVRAM=y
|
||||
CONFIG_SCx200_ACB=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_GPIO_CS5535=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_GEODE_WDT=y
|
||||
CONFIG_MFD_CS5535=y
|
||||
CONFIG_MFD_MAX8925=y
|
||||
CONFIG_VIDEO_CAFE_CCIC=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_VESA=y
|
||||
CONFIG_FB_GEODE=y
|
||||
CONFIG_FB_GEODE_LX=y
|
||||
CONFIG_BACKLIGHT_MAX8925=y
|
||||
CONFIG_VGACON_SOFT_SCROLLBACK=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
|
||||
CONFIG_SND_OSSEMUL=y
|
||||
CONFIG_SND_DYNAMIC_MINORS=y
|
||||
CONFIG_SND_AC97_POWER_SAVE=y
|
||||
CONFIG_SND_CS5535AUDIO=y
|
||||
CONFIG_USB_EHCI_ROOT_HUB_TT=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_MMC_SDHCI_PCI=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_FB_OLPC_DCON=y
|
||||
CONFIG_XO1_RFKILL=y
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_JFFS2_FS_WBUF_VERIFY=y
|
||||
CONFIG_JFFS2_SUMMARY=y
|
||||
CONFIG_JFFS2_FS_XATTR=y
|
||||
CONFIG_JFFS2_COMPRESSION_OPTIONS=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_LIBERTAS_USB=m
|
||||
CONFIG_LIBERTAS_MESH=y
|
||||
CONFIG_LIBERTAS_THINFIRM=m
|
||||
CONFIG_LIBERTAS_THINFIRM_USB=m
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user