mirror of
https://github.com/smaeul/u-boot.git
synced 2025-09-14 14:06:02 +01:00
Compare commits
88 Commits
allwinner
...
d1-2022-05
Author | SHA1 | Date | |
---|---|---|---|
|
afc07cec42 | ||
|
2c4589c563 | ||
|
fe5085b463 | ||
|
a1bf6bb614 | ||
|
9f9ee4816a | ||
|
e3a2628d25 | ||
|
e71381530b | ||
|
09e4ce4e25 | ||
|
69101a16e8 | ||
|
75207ede77 | ||
|
45f2d10154 | ||
|
aaa79d79c3 | ||
|
38cf2637b2 | ||
|
9adaadd1a1 | ||
|
ec769db776 | ||
|
aa27bb201b | ||
|
60dd27bcc8 | ||
|
a81373a77d | ||
|
15f52babc9 | ||
|
d8d52c48b9 | ||
|
06522d448e | ||
|
98333eb77f | ||
|
ae77de6048 | ||
|
01b80d6166 | ||
|
e608887e69 | ||
|
28ab59492e | ||
|
83456cc1ad | ||
|
22e47962d4 | ||
|
535d476ed8 | ||
|
d0e956e3ce | ||
|
5156f612f4 | ||
|
e82102a5b1 | ||
|
d5173c07ea | ||
|
4e23083b98 | ||
|
23a5b617c4 | ||
|
a2f36d53cc | ||
|
f43454b613 | ||
|
39f25027cc | ||
|
2d99cb9a6a | ||
|
a8395a0415 | ||
|
8c48e40c20 | ||
|
0acff93abb | ||
|
6d76a27ced | ||
|
794bc95ccf | ||
|
02392f7482 | ||
|
f8b1d4fcb6 | ||
|
05552f2ef0 | ||
|
6e46bf87dd | ||
|
b1f8206841 | ||
|
1c9b8a9003 | ||
|
ed83b33ef1 | ||
|
94bfb90b25 | ||
|
720b170d72 | ||
|
ef89a1f535 | ||
|
09c947ed66 | ||
|
dd39a95941 | ||
|
51f91585f0 | ||
|
e531bb3dd8 | ||
|
deb33625c7 | ||
|
faaffd833f | ||
|
4f66b1241b | ||
|
02c7df8638 | ||
|
ba31fc9dd7 | ||
|
9e6e63010e | ||
|
44711b6485 | ||
|
d4a4d63a0b | ||
|
7c576b083b | ||
|
5d7ee0828e | ||
|
bec089a890 | ||
|
4849e7e3be | ||
|
c85ab45a95 | ||
|
a56b87a0b6 | ||
|
ca557c807b | ||
|
a48abdd8f6 | ||
|
ae885f7c7b | ||
|
0869ef0c74 | ||
|
ce830d0f09 | ||
|
21a63610cc | ||
|
c71c588f3b | ||
|
9903022de1 | ||
|
2dee8941d7 | ||
|
8dd7e45d32 | ||
|
949aa5d7db | ||
|
83e2ebe7ef | ||
|
bba77f5f29 | ||
|
2f009c2925 | ||
|
a0e60335ae | ||
|
9640beb67c |
@ -1,8 +1,8 @@
|
|||||||
variables:
|
variables:
|
||||||
windows_vm: windows-2019
|
windows_vm: windows-2019
|
||||||
ubuntu_vm: ubuntu-22.04
|
ubuntu_vm: ubuntu-18.04
|
||||||
macos_vm: macOS-12
|
macos_vm: macOS-10.15
|
||||||
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20221003-17Oct2022
|
ci_runner_image: trini/u-boot-gitlab-ci-runner:focal-20220302-15Mar2022
|
||||||
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
|
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
|
||||||
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
|
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
|
||||||
# since our $(ci_runner_image) user is not root.
|
# since our $(ci_runner_image) user is not root.
|
||||||
@ -140,7 +140,7 @@ stages:
|
|||||||
options: $(container_option)
|
options: $(container_option)
|
||||||
steps:
|
steps:
|
||||||
- script: |
|
- script: |
|
||||||
./tools/buildman/buildman -R
|
if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
- job: tools_only
|
- job: tools_only
|
||||||
displayName: 'Ensure host tools build'
|
displayName: 'Ensure host tools build'
|
||||||
@ -170,11 +170,13 @@ stages:
|
|||||||
vmImage: $(ubuntu_vm)
|
vmImage: $(ubuntu_vm)
|
||||||
steps:
|
steps:
|
||||||
- script: |
|
- script: |
|
||||||
cat << "EOF" > build.sh
|
cat << EOF > build.sh
|
||||||
cd $(work_dir)
|
set -ex
|
||||||
|
cd ${WORK_DIR}
|
||||||
|
EOF
|
||||||
|
cat << "EOF" >> build.sh
|
||||||
git config --global user.name "Azure Pipelines"
|
git config --global user.name "Azure Pipelines"
|
||||||
git config --global user.email bmeng.cn@gmail.com
|
git config --global user.email bmeng.cn@gmail.com
|
||||||
git config --global --add safe.directory $(work_dir)
|
|
||||||
export USER=azure
|
export USER=azure
|
||||||
virtualenv -p /usr/bin/python3 /tmp/venv
|
virtualenv -p /usr/bin/python3 /tmp/venv
|
||||||
. /tmp/venv/bin/activate
|
. /tmp/venv/bin/activate
|
||||||
@ -183,7 +185,6 @@ stages:
|
|||||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||||
export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
|
export PATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}
|
||||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
||||||
set -ex
|
|
||||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
|
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test
|
||||||
./tools/buildman/buildman -t
|
./tools/buildman/buildman -t
|
||||||
./tools/dtoc/dtoc -t
|
./tools/dtoc/dtoc -t
|
||||||
@ -216,7 +217,7 @@ stages:
|
|||||||
options: $(container_option)
|
options: $(container_option)
|
||||||
steps:
|
steps:
|
||||||
- script: |
|
- script: |
|
||||||
git config --global --add safe.directory $(work_dir)
|
cd ${WORK_DIR}
|
||||||
export USER=azure
|
export USER=azure
|
||||||
pip install -r test/py/requirements.txt
|
pip install -r test/py/requirements.txt
|
||||||
pip install asteval pylint==2.12.2 pyopenssl
|
pip install asteval pylint==2.12.2 pyopenssl
|
||||||
@ -225,7 +226,6 @@ stages:
|
|||||||
echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
||||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
|
||||||
set -ex
|
|
||||||
pylint --version
|
pylint --version
|
||||||
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
|
||||||
make pylint_err
|
make pylint_err
|
||||||
@ -243,9 +243,6 @@ stages:
|
|||||||
sandbox_clang:
|
sandbox_clang:
|
||||||
TEST_PY_BD: "sandbox"
|
TEST_PY_BD: "sandbox"
|
||||||
OVERRIDE: "-O clang-13"
|
OVERRIDE: "-O clang-13"
|
||||||
sandbox_nolto:
|
|
||||||
TEST_PY_BD: "sandbox"
|
|
||||||
BUILD_ENV: "NO_LTO=1"
|
|
||||||
sandbox_spl:
|
sandbox_spl:
|
||||||
TEST_PY_BD: "sandbox_spl"
|
TEST_PY_BD: "sandbox_spl"
|
||||||
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
TEST_PY_TEST_SPEC: "test_ofplatdata or test_handoff or test_spl"
|
||||||
@ -264,9 +261,6 @@ stages:
|
|||||||
evb_ast2500:
|
evb_ast2500:
|
||||||
TEST_PY_BD: "evb-ast2500"
|
TEST_PY_BD: "evb-ast2500"
|
||||||
TEST_PY_ID: "--id qemu"
|
TEST_PY_ID: "--id qemu"
|
||||||
evb_ast2600:
|
|
||||||
TEST_PY_BD: "evb-ast2600"
|
|
||||||
TEST_PY_ID: "--id qemu"
|
|
||||||
vexpress_ca9x4:
|
vexpress_ca9x4:
|
||||||
TEST_PY_BD: "vexpress_ca9x4"
|
TEST_PY_BD: "vexpress_ca9x4"
|
||||||
TEST_PY_ID: "--id qemu"
|
TEST_PY_ID: "--id qemu"
|
||||||
@ -357,7 +351,6 @@ stages:
|
|||||||
export TEST_PY_ID="${TEST_PY_ID}"
|
export TEST_PY_ID="${TEST_PY_ID}"
|
||||||
export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}"
|
export TEST_PY_TEST_SPEC="${TEST_PY_TEST_SPEC}"
|
||||||
export OVERRIDE="${OVERRIDE}"
|
export OVERRIDE="${OVERRIDE}"
|
||||||
export BUILD_ENV="${BUILD_ENV}"
|
|
||||||
EOF
|
EOF
|
||||||
cat << "EOF" >> test.sh
|
cat << "EOF" >> test.sh
|
||||||
# the below corresponds to .gitlab-ci.yml "before_script"
|
# the below corresponds to .gitlab-ci.yml "before_script"
|
||||||
@ -480,12 +473,6 @@ stages:
|
|||||||
BUILDMAN: "imx8"
|
BUILDMAN: "imx8"
|
||||||
keystone2_keystone3:
|
keystone2_keystone3:
|
||||||
BUILDMAN: "k2 k3"
|
BUILDMAN: "k2 k3"
|
||||||
sandbox_asan:
|
|
||||||
BUILDMAN: "sandbox"
|
|
||||||
OVERRIDE: "-a ASAN"
|
|
||||||
sandbox_clang_asan:
|
|
||||||
BUILDMAN: "sandbox"
|
|
||||||
OVERRIDE: "-O clang-13 -a ASAN"
|
|
||||||
samsung_socfpga:
|
samsung_socfpga:
|
||||||
BUILDMAN: "samsung socfpga"
|
BUILDMAN: "samsung socfpga"
|
||||||
sun4i:
|
sun4i:
|
||||||
@ -518,8 +505,20 @@ stages:
|
|||||||
BUILDMAN: "m68k"
|
BUILDMAN: "m68k"
|
||||||
mips:
|
mips:
|
||||||
BUILDMAN: "mips"
|
BUILDMAN: "mips"
|
||||||
powerpc:
|
non_fsl_ppc:
|
||||||
BUILDMAN: "powerpc"
|
BUILDMAN: "powerpc -x freescale"
|
||||||
|
mpc85xx_freescale:
|
||||||
|
BUILDMAN: "mpc85xx&freescale -x t208xrdb -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x bsc91*"
|
||||||
|
t208xrdb_corenet_ds:
|
||||||
|
BUILDMAN: "t208xrdb corenet_ds"
|
||||||
|
fsl_ppc:
|
||||||
|
BUILDMAN: "mpc83xx&freescale"
|
||||||
|
t102x:
|
||||||
|
BUILDMAN: "t102*"
|
||||||
|
p1_p2_rdb_pc:
|
||||||
|
BUILDMAN: "p1_p2_rdb_pc"
|
||||||
|
p1010rdb_bsc91:
|
||||||
|
BUILDMAN: "p1010rdb bsc91"
|
||||||
siemens:
|
siemens:
|
||||||
BUILDMAN: "siemens"
|
BUILDMAN: "siemens"
|
||||||
tegra:
|
tegra:
|
||||||
|
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@ -1,6 +1,6 @@
|
|||||||
Please do not submit a Pull Request via github. Our project makes use of
|
Please do not submit a Pull Request via github. Our project makes use of
|
||||||
mailing lists for patch submission and review. For more details please
|
mailing lists for patch submission and review. For more details please
|
||||||
see https://u-boot.readthedocs.io/en/latest/develop/sending_patches.html
|
see https://www.denx.de/wiki/U-Boot/Patches
|
||||||
|
|
||||||
The only exception to this is in order to trigger a CI loop on Azure prior
|
The only exception to this is in order to trigger a CI loop on Azure prior
|
||||||
to posting of patches.
|
to posting of patches.
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -10,7 +10,6 @@
|
|||||||
*.asn1.[ch]
|
*.asn1.[ch]
|
||||||
*.bin
|
*.bin
|
||||||
*.cfgout
|
*.cfgout
|
||||||
*.cover
|
|
||||||
*.dtb
|
*.dtb
|
||||||
*.dtbo
|
*.dtbo
|
||||||
*.dtb.S
|
*.dtb.S
|
||||||
@ -23,7 +22,6 @@
|
|||||||
*.lex.c
|
*.lex.c
|
||||||
*.lst
|
*.lst
|
||||||
*.mod.c
|
*.mod.c
|
||||||
*.mbx
|
|
||||||
*.o
|
*.o
|
||||||
*.o.*
|
*.o.*
|
||||||
*.order
|
*.order
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
# Grab our configured image. The source for this is found
|
# Grab our configured image. The source for this is found at:
|
||||||
# in the u-boot tree at tools/docker/Dockerfile
|
# https://source.denx.de/u-boot/gitlab-ci-runner
|
||||||
image: trini/u-boot-gitlab-ci-runner:jammy-20221003-17Oct2022
|
image: trini/u-boot-gitlab-ci-runner:focal-20220302-15Mar2022
|
||||||
|
|
||||||
# We run some tests in different order, to catch some failures quicker.
|
# We run some tests in different order, to catch some failures quicker.
|
||||||
stages:
|
stages:
|
||||||
@ -33,7 +33,6 @@ stages:
|
|||||||
script:
|
script:
|
||||||
# If we've been asked to use clang only do one configuration.
|
# If we've been asked to use clang only do one configuration.
|
||||||
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}
|
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/${TEST_PY_BD}
|
||||||
- echo BUILD_ENV ${BUILD_ENV}
|
|
||||||
- tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
|
- tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
|
||||||
--board ${TEST_PY_BD} ${OVERRIDE}
|
--board ${TEST_PY_BD} ${OVERRIDE}
|
||||||
- cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/
|
- cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/
|
||||||
@ -92,6 +91,7 @@ build all 64bit ARM platforms:
|
|||||||
script:
|
script:
|
||||||
- virtualenv -p /usr/bin/python3 /tmp/venv
|
- virtualenv -p /usr/bin/python3 /tmp/venv
|
||||||
- . /tmp/venv/bin/activate
|
- . /tmp/venv/bin/activate
|
||||||
|
- pip install pyelftools
|
||||||
- ret=0;
|
- ret=0;
|
||||||
./tools/buildman/buildman -o /tmp -P -E -W aarch64 || ret=$?;
|
./tools/buildman/buildman -o /tmp -P -E -W aarch64 || ret=$?;
|
||||||
if [[ $ret -ne 0 ]]; then
|
if [[ $ret -ne 0 ]]; then
|
||||||
@ -180,7 +180,7 @@ sloccount:
|
|||||||
Check for configs without MAINTAINERS entry:
|
Check for configs without MAINTAINERS entry:
|
||||||
stage: testsuites
|
stage: testsuites
|
||||||
script:
|
script:
|
||||||
- ./tools/buildman/buildman -R
|
- if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
# Ensure host tools build
|
# Ensure host tools build
|
||||||
Build tools-only:
|
Build tools-only:
|
||||||
@ -199,7 +199,6 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
|||||||
script:
|
script:
|
||||||
- git config --global user.name "GitLab CI Runner";
|
- git config --global user.name "GitLab CI Runner";
|
||||||
git config --global user.email trini@konsulko.com;
|
git config --global user.email trini@konsulko.com;
|
||||||
git config --global --add safe.directory "${CI_PROJECT_DIR}";
|
|
||||||
export USER=gitlab;
|
export USER=gitlab;
|
||||||
virtualenv -p /usr/bin/python3 /tmp/venv;
|
virtualenv -p /usr/bin/python3 /tmp/venv;
|
||||||
. /tmp/venv/bin/activate;
|
. /tmp/venv/bin/activate;
|
||||||
@ -207,10 +206,8 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites:
|
|||||||
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl;
|
||||||
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
|
||||||
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
|
||||||
set +e;
|
|
||||||
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
||||||
--board sandbox_spl;
|
--board sandbox_spl;
|
||||||
set -e;
|
|
||||||
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
|
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
|
||||||
./tools/buildman/buildman -t;
|
./tools/buildman/buildman -t;
|
||||||
./tools/dtoc/dtoc -t;
|
./tools/dtoc/dtoc -t;
|
||||||
@ -227,17 +224,14 @@ Run tests for Nokia RX-51 (aka N900):
|
|||||||
Run pylint:
|
Run pylint:
|
||||||
stage: testsuites
|
stage: testsuites
|
||||||
script:
|
script:
|
||||||
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
|
|
||||||
- pip install -r test/py/requirements.txt
|
- pip install -r test/py/requirements.txt
|
||||||
- pip install asteval pylint==2.12.2 pyopenssl
|
- pip install asteval pylint==2.12.2 pyopenssl
|
||||||
- export PATH=${PATH}:~/.local/bin
|
- export PATH=${PATH}:~/.local/bin
|
||||||
- echo "[MASTER]" >> .pylintrc
|
- echo "[MASTER]" >> .pylintrc
|
||||||
- echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
- echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
|
||||||
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
- export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
|
||||||
- set +e
|
|
||||||
- ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
- ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
|
||||||
--board sandbox_spl
|
--board sandbox_spl
|
||||||
- set -e
|
|
||||||
- pylint --version
|
- pylint --version
|
||||||
- export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"
|
- export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"
|
||||||
- make pylint_err
|
- make pylint_err
|
||||||
@ -254,12 +248,6 @@ sandbox with clang test.py:
|
|||||||
OVERRIDE: "-O clang-13"
|
OVERRIDE: "-O clang-13"
|
||||||
<<: *buildman_and_testpy_dfn
|
<<: *buildman_and_testpy_dfn
|
||||||
|
|
||||||
sandbox without LTO test.py:
|
|
||||||
variables:
|
|
||||||
TEST_PY_BD: "sandbox"
|
|
||||||
BUILD_ENV: "NO_LTO=1"
|
|
||||||
<<: *buildman_and_testpy_dfn
|
|
||||||
|
|
||||||
sandbox_spl test.py:
|
sandbox_spl test.py:
|
||||||
variables:
|
variables:
|
||||||
TEST_PY_BD: "sandbox_spl"
|
TEST_PY_BD: "sandbox_spl"
|
||||||
@ -284,12 +272,6 @@ evb-ast2500 test.py:
|
|||||||
TEST_PY_ID: "--id qemu"
|
TEST_PY_ID: "--id qemu"
|
||||||
<<: *buildman_and_testpy_dfn
|
<<: *buildman_and_testpy_dfn
|
||||||
|
|
||||||
evb-ast2600 test.py:
|
|
||||||
variables:
|
|
||||||
TEST_PY_BD: "evb-ast2600"
|
|
||||||
TEST_PY_ID: "--id qemu"
|
|
||||||
<<: *buildman_and_testpy_dfn
|
|
||||||
|
|
||||||
sandbox_flattree test.py:
|
sandbox_flattree test.py:
|
||||||
variables:
|
variables:
|
||||||
TEST_PY_BD: "sandbox_flattree"
|
TEST_PY_BD: "sandbox_flattree"
|
||||||
|
3
.mailmap
3
.mailmap
@ -37,8 +37,6 @@ Jagan Teki <jagannadha.sutradharudu-teki@xilinx.com>
|
|||||||
Jernej Skrabec <jernej.skrabec@gmail.com> <jernej.skrabec@siol.net>
|
Jernej Skrabec <jernej.skrabec@gmail.com> <jernej.skrabec@siol.net>
|
||||||
Igor Opaniuk <igor.opaniuk@gmail.com> <igor.opaniuk@linaro.org>
|
Igor Opaniuk <igor.opaniuk@gmail.com> <igor.opaniuk@linaro.org>
|
||||||
Igor Opaniuk <igor.opaniuk@gmail.com> <igor.opaniuk@toradex.com>
|
Igor Opaniuk <igor.opaniuk@gmail.com> <igor.opaniuk@toradex.com>
|
||||||
Marek Behún <kabel@kernel.org> <marek.behun@nic.cz>
|
|
||||||
Marek Behún <kabel@kernel.org> Marek Behun <marek.behun@nic.cz>
|
|
||||||
Marek Vasut <marex@denx.de> <marek.vasut+renesas@gmail.com>
|
Marek Vasut <marex@denx.de> <marek.vasut+renesas@gmail.com>
|
||||||
Marek Vasut <marex@denx.de> <marek.vasut@gmail.com>
|
Marek Vasut <marex@denx.de> <marek.vasut@gmail.com>
|
||||||
Marek Vasut <marex@denx.de> <marex at denx.de>
|
Marek Vasut <marex@denx.de> <marex at denx.de>
|
||||||
@ -49,7 +47,6 @@ Michal Simek <michal.simek@amd.com> <michal.simek@xilinx.com>
|
|||||||
Michal Simek <michal.simek@xilinx.com> <monstr@monstr.eu>
|
Michal Simek <michal.simek@xilinx.com> <monstr@monstr.eu>
|
||||||
Michal Simek <michal.simek@xilinx.com> <Monstr@seznam.cz>
|
Michal Simek <michal.simek@xilinx.com> <Monstr@seznam.cz>
|
||||||
Michal Simek <michal.simek@xilinx.com> <root@monstr.eu>
|
Michal Simek <michal.simek@xilinx.com> <root@monstr.eu>
|
||||||
Neil Armstrong <neil.armstrong@linaro.org> <narmstrong@baylibre.com>
|
|
||||||
Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.de>
|
Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.de>
|
||||||
Patrice Chotard <patrice.chotard@foss.st.com> <patrice.chotard@st.com>
|
Patrice Chotard <patrice.chotard@foss.st.com> <patrice.chotard@st.com>
|
||||||
Patrick Delaunay <patrick.delaunay@foss.st.com> <patrick.delaunay@st.com>
|
Patrick Delaunay <patrick.delaunay@foss.st.com> <patrick.delaunay@st.com>
|
||||||
|
59
Kconfig
59
Kconfig
@ -12,6 +12,8 @@ source "scripts/Kconfig.include"
|
|||||||
# Allow defaults in arch-specific code to override any given here
|
# Allow defaults in arch-specific code to override any given here
|
||||||
source "arch/Kconfig"
|
source "arch/Kconfig"
|
||||||
|
|
||||||
|
source "board/sunxi/Kconfig"
|
||||||
|
|
||||||
menu "General setup"
|
menu "General setup"
|
||||||
|
|
||||||
config BROKEN
|
config BROKEN
|
||||||
@ -154,22 +156,6 @@ config CC_COVERAGE
|
|||||||
Enabling this option will pass "--coverage" to gcc to compile
|
Enabling this option will pass "--coverage" to gcc to compile
|
||||||
and link code instrumented for coverage analysis.
|
and link code instrumented for coverage analysis.
|
||||||
|
|
||||||
config ASAN
|
|
||||||
bool "Enable AddressSanitizer"
|
|
||||||
depends on SANDBOX
|
|
||||||
help
|
|
||||||
Enables AddressSanitizer to discover out-of-bounds accesses,
|
|
||||||
use-after-free, double-free and memory leaks.
|
|
||||||
|
|
||||||
config FUZZ
|
|
||||||
bool "Enable fuzzing"
|
|
||||||
depends on CC_IS_CLANG
|
|
||||||
depends on DM_FUZZING_ENGINE
|
|
||||||
select ASAN
|
|
||||||
help
|
|
||||||
Enables the fuzzing infrastructure to generate fuzzing data and run
|
|
||||||
fuzz tests.
|
|
||||||
|
|
||||||
config CC_HAS_ASM_INLINE
|
config CC_HAS_ASM_INLINE
|
||||||
def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
|
def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
|
||||||
|
|
||||||
@ -244,38 +230,12 @@ config SYS_BOOT_GET_CMDLINE
|
|||||||
Enables allocating and saving kernel cmdline in space between
|
Enables allocating and saving kernel cmdline in space between
|
||||||
"bootm_low" and "bootm_low" + BOOTMAPSZ.
|
"bootm_low" and "bootm_low" + BOOTMAPSZ.
|
||||||
|
|
||||||
config SYS_BARGSIZE
|
|
||||||
int "Size of kernel command line buffer in bytes"
|
|
||||||
depends on SYS_BOOT_GET_CMDLINE
|
|
||||||
default 512
|
|
||||||
help
|
|
||||||
Buffer size for Boot Arguments which are passed to the application
|
|
||||||
(usually a Linux kernel) when it is booted
|
|
||||||
|
|
||||||
config SYS_BOOT_GET_KBD
|
config SYS_BOOT_GET_KBD
|
||||||
bool "Enable kernel board information setup"
|
bool "Enable kernel board information setup"
|
||||||
help
|
help
|
||||||
Enables allocating and saving a kernel copy of the bd_info in
|
Enables allocating and saving a kernel copy of the bd_info in
|
||||||
space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
|
space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
|
||||||
|
|
||||||
config HAS_CUSTOM_SYS_INIT_SP_ADDR
|
|
||||||
bool "Use a custom location for the initial stack pointer address"
|
|
||||||
depends on ARC || (ARM && !INIT_SP_RELATIVE) || MIPS || PPC || RISCV
|
|
||||||
default y if TFABOOT
|
|
||||||
help
|
|
||||||
Typically, we use an initial stack pointer address that is calculated
|
|
||||||
by taking the statically defined CONFIG_SYS_INIT_RAM_ADDR, adding the
|
|
||||||
statically defined CONFIG_SYS_INIT_RAM_SIZE and then subtracting the
|
|
||||||
build-time constant of GENERATED_GBL_DATA_SIZE. On MIPS a different
|
|
||||||
but statica calculation is performed. However, some platforms will
|
|
||||||
take a different approach. Say Y here to define the address statically
|
|
||||||
instead.
|
|
||||||
|
|
||||||
config CUSTOM_SYS_INIT_SP_ADDR
|
|
||||||
hex "Static location for the initial stack pointer"
|
|
||||||
depends on HAS_CUSTOM_SYS_INIT_SP_ADDR
|
|
||||||
default TEXT_BASE if TFABOOT
|
|
||||||
|
|
||||||
config SYS_MALLOC_F
|
config SYS_MALLOC_F
|
||||||
bool "Enable malloc() pool before relocation"
|
bool "Enable malloc() pool before relocation"
|
||||||
default y if DM
|
default y if DM
|
||||||
@ -299,7 +259,7 @@ config SYS_MALLOC_F_LEN
|
|||||||
default 0x4000 if SANDBOX || RISCV || ARCH_APPLE || ROCKCHIP_RK3368 || \
|
default 0x4000 if SANDBOX || RISCV || ARCH_APPLE || ROCKCHIP_RK3368 || \
|
||||||
ROCKCHIP_RK3399
|
ROCKCHIP_RK3399
|
||||||
default 0x8000 if RCAR_GEN3
|
default 0x8000 if RCAR_GEN3
|
||||||
default 0x10000 if ARCH_IMX8 || ARCH_IMX8M
|
default 0x10000 if ARCH_IMX8 || (ARCH_IMX8M && !IMX8MQ)
|
||||||
default 0x2000
|
default 0x2000
|
||||||
help
|
help
|
||||||
Before relocation, memory is very limited on many platforms. Still,
|
Before relocation, memory is very limited on many platforms. Still,
|
||||||
@ -312,9 +272,9 @@ config SYS_MALLOC_LEN
|
|||||||
default 0x4000000 if SANDBOX
|
default 0x4000000 if SANDBOX
|
||||||
default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
|
default 0x2000000 if ARCH_ROCKCHIP || ARCH_OMAP2PLUS || ARCH_MESON
|
||||||
default 0x200000 if ARCH_BMIPS || X86
|
default 0x200000 if ARCH_BMIPS || X86
|
||||||
default 0x4020000 if SUNXI_MINIMUM_DRAM_MB >= 256
|
default 0x120000 if MACH_SUNIV
|
||||||
default 0x220000 if SUNXI_MINIMUM_DRAM_MB >= 64
|
default 0x220000 if MACH_SUN8I_V3S
|
||||||
default 0x120000 if SUNXI_MINIMUM_DRAM_MB >= 32
|
default 0x4020000 if ARCH_SUNXI
|
||||||
default 0x400000
|
default 0x400000
|
||||||
help
|
help
|
||||||
This defines memory to be allocated for Dynamic allocation
|
This defines memory to be allocated for Dynamic allocation
|
||||||
@ -325,7 +285,6 @@ config SPL_SYS_MALLOC_F_LEN
|
|||||||
depends on SYS_MALLOC_F && SPL
|
depends on SYS_MALLOC_F && SPL
|
||||||
default 0 if !SPL_FRAMEWORK
|
default 0 if !SPL_FRAMEWORK
|
||||||
default 0x2800 if RCAR_GEN3
|
default 0x2800 if RCAR_GEN3
|
||||||
default 0x2000 if IMX8MQ
|
|
||||||
default SYS_MALLOC_F_LEN
|
default SYS_MALLOC_F_LEN
|
||||||
help
|
help
|
||||||
In SPL memory is very limited on many platforms. Still,
|
In SPL memory is very limited on many platforms. Still,
|
||||||
@ -348,7 +307,6 @@ config TPL_SYS_MALLOC_F_LEN
|
|||||||
|
|
||||||
config VALGRIND
|
config VALGRIND
|
||||||
bool "Inform valgrind about memory allocations"
|
bool "Inform valgrind about memory allocations"
|
||||||
depends on !RISCV
|
|
||||||
help
|
help
|
||||||
Valgrind is an instrumentation framework for building dynamic analysis
|
Valgrind is an instrumentation framework for building dynamic analysis
|
||||||
tools. In particular, it may be used to detect memory management bugs
|
tools. In particular, it may be used to detect memory management bugs
|
||||||
@ -508,6 +466,9 @@ config SYS_LOAD_ADDR
|
|||||||
hex "Address in memory to use by default"
|
hex "Address in memory to use by default"
|
||||||
default 0x01000000 if ARCH_SOCFPGA
|
default 0x01000000 if ARCH_SOCFPGA
|
||||||
default 0x02000000 if PPC || X86
|
default 0x02000000 if PPC || X86
|
||||||
|
default 0x81000000 if MACH_SUNIV
|
||||||
|
default 0x22000000 if MACH_SUN9I
|
||||||
|
default 0x42000000 if ARCH_SUNXI
|
||||||
default 0x82000000 if ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
|
default 0x82000000 if ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
|
||||||
default 0x82000000 if ARCH_MX6 && (MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
|
default 0x82000000 if ARCH_MX6 && (MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
|
||||||
default 0x12000000 if ARCH_MX6 && !(MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
|
default 0x12000000 if ARCH_MX6 && !(MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
|
||||||
@ -537,7 +498,7 @@ config PLATFORM_ELFENTRY
|
|||||||
|
|
||||||
config STACK_SIZE
|
config STACK_SIZE
|
||||||
hex "Define max stack size that can be used by U-Boot"
|
hex "Define max stack size that can be used by U-Boot"
|
||||||
default 0x4000000 if ARCH_VERSAL_NET || ARCH_VERSAL || ARCH_ZYNQMP
|
default 0x4000000 if ARCH_VERSAL || ARCH_ZYNQMP
|
||||||
default 0x200000 if MICROBLAZE
|
default 0x200000 if MICROBLAZE
|
||||||
default 0x1000000
|
default 0x1000000
|
||||||
help
|
help
|
||||||
|
@ -7,13 +7,9 @@ use U-Boot services by means of the jump table provided by U-Boot
|
|||||||
exactly for this purpose - this is merely considered normal use of
|
exactly for this purpose - this is merely considered normal use of
|
||||||
U-Boot, and does *not* fall under the heading of "derived work".
|
U-Boot, and does *not* fall under the heading of "derived work".
|
||||||
|
|
||||||
The following files define interfaces to U-Boot:
|
The header files "include/image.h" and "arch/*/include/asm/u-boot.h"
|
||||||
* include/image.h
|
define interfaces to U-Boot. Including these (unmodified) header
|
||||||
* include/export.h
|
files in another file is considered normal use of U-Boot, and does
|
||||||
* arch/*/include/asm/u-boot.h
|
*not* fall under the heading of "derived work".
|
||||||
* examples/standalone/stubs.c
|
|
||||||
|
|
||||||
Including these (unmodified) files in another file is considered normal
|
|
||||||
use of U-Boot, and does *not* fall under the heading of "derived work".
|
|
||||||
-- Wolfgang Denk
|
-- Wolfgang Denk
|
||||||
|
|
||||||
|
182
MAINTAINERS
182
MAINTAINERS
@ -121,7 +121,6 @@ F: arch/arm/include/asm/arch-m1/
|
|||||||
F: arch/arm/mach-apple/
|
F: arch/arm/mach-apple/
|
||||||
F: configs/apple_m1_defconfig
|
F: configs/apple_m1_defconfig
|
||||||
F: drivers/iommu/apple_dart.c
|
F: drivers/iommu/apple_dart.c
|
||||||
F: drivers/nvme/nvme_apple.c
|
|
||||||
F: drivers/pinctrl/pinctrl-apple.c
|
F: drivers/pinctrl/pinctrl-apple.c
|
||||||
F: drivers/watchdog/apple_wdt.c
|
F: drivers/watchdog/apple_wdt.c
|
||||||
F: include/configs/apple.h
|
F: include/configs/apple.h
|
||||||
@ -143,7 +142,7 @@ F: arch/arm/mach-socfpga/
|
|||||||
F: drivers/sysreset/sysreset_socfpga*
|
F: drivers/sysreset/sysreset_socfpga*
|
||||||
|
|
||||||
ARM AMLOGIC SOC SUPPORT
|
ARM AMLOGIC SOC SUPPORT
|
||||||
M: Neil Armstrong <neil.armstrong@linaro.org>
|
M: Neil Armstrong <narmstrong@baylibre.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
L: u-boot-amlogic@groups.io
|
L: u-boot-amlogic@groups.io
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-amlogic.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-amlogic.git
|
||||||
@ -161,7 +160,6 @@ F: drivers/spi/meson_spifc.c
|
|||||||
F: drivers/pinctrl/meson/
|
F: drivers/pinctrl/meson/
|
||||||
F: drivers/power/domain/meson-gx-pwrc-vpu.c
|
F: drivers/power/domain/meson-gx-pwrc-vpu.c
|
||||||
F: drivers/video/meson/
|
F: drivers/video/meson/
|
||||||
F: drivers/watchdog/meson_gxbb_wdt.c
|
|
||||||
F: include/configs/meson64.h
|
F: include/configs/meson64.h
|
||||||
F: include/configs/meson64_android.h
|
F: include/configs/meson64_android.h
|
||||||
F: doc/board/amlogic/
|
F: doc/board/amlogic/
|
||||||
@ -171,23 +169,12 @@ ARM ASPEED
|
|||||||
M: Ryan Chen <ryan_chen@aspeedtech.com>
|
M: Ryan Chen <ryan_chen@aspeedtech.com>
|
||||||
M: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
|
M: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
|
||||||
R: Aspeed BMC SW team <BMC-SW@aspeedtech.com>
|
R: Aspeed BMC SW team <BMC-SW@aspeedtech.com>
|
||||||
R: Joel Stanley <joel@jms.id.au>
|
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: arch/arm/mach-aspeed/
|
F: arch/arm/mach-aspeed/
|
||||||
F: arch/arm/include/asm/arch-aspeed/
|
F: arch/arm/include/asm/arch-aspeed/
|
||||||
F: board/aspeed/
|
F: board/aspeed/
|
||||||
F: drivers/clk/aspeed/
|
F: drivers/clk/aspeed/
|
||||||
F: drivers/crypto/aspeed/
|
|
||||||
F: drivers/gpio/gpio-aspeed.c
|
|
||||||
F: drivers/i2c/ast_i2c.[ch]
|
|
||||||
F: drivers/mmc/aspeed_sdhci.c
|
|
||||||
F: drivers/net/aspeed_mdio.c
|
|
||||||
F: drivers/net/ftgmac100.[ch]
|
|
||||||
F: drivers/pinctrl/aspeed/
|
F: drivers/pinctrl/aspeed/
|
||||||
F: drivers/pwm/pwm-aspeed.c
|
|
||||||
F: drivers/ram/aspeed/
|
|
||||||
F: drivers/reset/reset-ast2500.c
|
|
||||||
F: drivers/watchdog/ast_wdt.c
|
|
||||||
N: aspeed
|
N: aspeed
|
||||||
|
|
||||||
ARM BROADCOM BCM283X / BCM27XX
|
ARM BROADCOM BCM283X / BCM27XX
|
||||||
@ -208,32 +195,6 @@ F: drivers/pinctrl/broadcom/
|
|||||||
F: configs/rpi_*
|
F: configs/rpi_*
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-arm.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-arm.git
|
||||||
|
|
||||||
ARM BROADCOM BCMBCA
|
|
||||||
M: Anand Gore <anand.gore@broadcom.com>
|
|
||||||
M: William Zhang <william.zhang@broadcom.com>
|
|
||||||
M: Kursad Oney <kursad.oney@broadcom.com>
|
|
||||||
M: Joel Peshkin <joel.peshkin@broadcom.com>
|
|
||||||
M: Philippe Reynes <philippe.reynes@softathome.com>
|
|
||||||
S: Maintained
|
|
||||||
F: arch/arm/mach-bcmbca/
|
|
||||||
F: board/broadcom/bcmbca/
|
|
||||||
N: bcmbca
|
|
||||||
N: bcm[9]?47622
|
|
||||||
N: bcm[9]?4908
|
|
||||||
N: bcm[9]?4912
|
|
||||||
N: bcm[9]?63138
|
|
||||||
N: bcm[9]?63146
|
|
||||||
N: bcm[9]?63148
|
|
||||||
N: bcm[9]?63158
|
|
||||||
N: bcm[9]?63178
|
|
||||||
N: bcm[9]?6756
|
|
||||||
N: bcm[9]?6813
|
|
||||||
N: bcm[9]?6846
|
|
||||||
N: bcm[9]?6855
|
|
||||||
N: bcm[9]?6856
|
|
||||||
N: bcm[9]?6858
|
|
||||||
N: bcm[9]?6878
|
|
||||||
|
|
||||||
ARM BROADCOM BCMSTB
|
ARM BROADCOM BCMSTB
|
||||||
M: Thomas Fitzsimmons <fitzsim@fitzsim.org>
|
M: Thomas Fitzsimmons <fitzsim@fitzsim.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -263,6 +224,14 @@ F: drivers/net/cortina_ni.h
|
|||||||
F: drivers/net/phy/ca_phy.c
|
F: drivers/net/phy/ca_phy.c
|
||||||
F: configs/cortina_presidio-asic-pnand_defconfig
|
F: configs/cortina_presidio-asic-pnand_defconfig
|
||||||
|
|
||||||
|
ARM/CZ.NIC TURRIS MOX SUPPORT
|
||||||
|
M: Marek Behun <marek.behun@nic.cz>
|
||||||
|
S: Maintained
|
||||||
|
F: arch/arm/dts/armada-3720-turris-mox.dts
|
||||||
|
F: board/CZ.NIC/
|
||||||
|
F: configs/turris_*_defconfig
|
||||||
|
F: include/configs/turris_*.h
|
||||||
|
|
||||||
ARM FREESCALE IMX
|
ARM FREESCALE IMX
|
||||||
M: Stefano Babic <sbabic@denx.de>
|
M: Stefano Babic <sbabic@denx.de>
|
||||||
M: Fabio Estevam <festevam@gmail.com>
|
M: Fabio Estevam <festevam@gmail.com>
|
||||||
@ -274,12 +243,11 @@ F: arch/arm/cpu/arm926ejs/mx*/
|
|||||||
F: arch/arm/cpu/armv7/vf610/
|
F: arch/arm/cpu/armv7/vf610/
|
||||||
F: arch/arm/dts/*imx*
|
F: arch/arm/dts/*imx*
|
||||||
F: arch/arm/mach-imx/
|
F: arch/arm/mach-imx/
|
||||||
F: arch/arm/include/asm/arch-imx*/
|
F: arch/arm/include/asm/arch-imx/
|
||||||
F: arch/arm/include/asm/arch-mx*/
|
F: arch/arm/include/asm/arch-mx*/
|
||||||
F: arch/arm/include/asm/arch-vf610/
|
F: arch/arm/include/asm/arch-vf610/
|
||||||
F: arch/arm/include/asm/mach-imx/
|
F: arch/arm/include/asm/mach-imx/
|
||||||
F: board/freescale/*mx*/
|
F: board/freescale/*mx*/
|
||||||
F: drivers/serial/serial_mxc.c
|
|
||||||
|
|
||||||
ARM HISILICON
|
ARM HISILICON
|
||||||
M: Peter Griffin <peter.griffin@linaro.org>
|
M: Peter Griffin <peter.griffin@linaro.org>
|
||||||
@ -289,19 +257,6 @@ F: arch/arm/cpu/armv8/hisilicon
|
|||||||
F: arch/arm/include/asm/arch-hi6220/
|
F: arch/arm/include/asm/arch-hi6220/
|
||||||
F: arch/arm/include/asm/arch-hi3660/
|
F: arch/arm/include/asm/arch-hi3660/
|
||||||
|
|
||||||
ARM HPE GXP ARCHITECTURE
|
|
||||||
M: Jean-Marie Verdun <verdun@hpe.com>
|
|
||||||
M: Nick Hawkins <nick.hawkins@hpe.com>
|
|
||||||
S: Maintained
|
|
||||||
F: arch/arm/dts/hpe-bmc*
|
|
||||||
F: arch/arm/dts/hpe-gxp*
|
|
||||||
F: arch/arm/mach-hpe/
|
|
||||||
F: board/hpe/
|
|
||||||
F: configs/gxp_defconfig
|
|
||||||
F: doc/device-tree-bindings/spi/hpe,gxp-spi.yaml
|
|
||||||
F: drivers/timer/gxp-timer.c
|
|
||||||
F: drivers/spi/gxp_spi.c
|
|
||||||
|
|
||||||
ARM IPQ40XX
|
ARM IPQ40XX
|
||||||
M: Robert Marko <robert.marko@sartura.hr>
|
M: Robert Marko <robert.marko@sartura.hr>
|
||||||
M: Luka Kovacic <luka.kovacic@sartura.hr>
|
M: Luka Kovacic <luka.kovacic@sartura.hr>
|
||||||
@ -316,11 +271,6 @@ F: drivers/spi/spi-qup.c
|
|||||||
F: drivers/net/mdio-ipq4019.c
|
F: drivers/net/mdio-ipq4019.c
|
||||||
F: drivers/rng/msm_rng.c
|
F: drivers/rng/msm_rng.c
|
||||||
|
|
||||||
ARM LAYERSCAPE SFP
|
|
||||||
M: Sean Anderson <sean.anderson@seco.com>
|
|
||||||
S: Maintained
|
|
||||||
F: drivers/misc/ls2_sfp.c
|
|
||||||
|
|
||||||
ARM MARVELL KIRKWOOD ARMADA-XP ARMADA-38X ARMADA-37XX ARMADA-7K/8K
|
ARM MARVELL KIRKWOOD ARMADA-XP ARMADA-38X ARMADA-37XX ARMADA-7K/8K
|
||||||
M: Stefan Roese <sr@denx.de>
|
M: Stefan Roese <sr@denx.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -358,6 +308,13 @@ S: Maintained
|
|||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
|
||||||
F: drivers/serial/serial_mvebu_a3700.c
|
F: drivers/serial/serial_mvebu_a3700.c
|
||||||
|
|
||||||
|
ARM MARVELL PXA
|
||||||
|
M: Marek Vasut <marex@denx.de>
|
||||||
|
S: Maintained
|
||||||
|
T: git https://source.denx.de/u-boot/custodians/u-boot-pxa.git
|
||||||
|
F: arch/arm/cpu/pxa/
|
||||||
|
F: arch/arm/include/asm/arch-pxa/
|
||||||
|
|
||||||
ARM MEDIATEK
|
ARM MEDIATEK
|
||||||
M: Ryder Lee <ryder.lee@mediatek.com>
|
M: Ryder Lee <ryder.lee@mediatek.com>
|
||||||
M: Weijie Gao <weijie.gao@mediatek.com>
|
M: Weijie Gao <weijie.gao@mediatek.com>
|
||||||
@ -371,36 +328,22 @@ F: doc/device-tree-bindings/phy/phy-mtk-*
|
|||||||
F: doc/device-tree-bindings/usb/mediatek,*
|
F: doc/device-tree-bindings/usb/mediatek,*
|
||||||
F: doc/README.mediatek
|
F: doc/README.mediatek
|
||||||
F: drivers/clk/mediatek/
|
F: drivers/clk/mediatek/
|
||||||
F: drivers/cpu/mtk_cpu.c
|
|
||||||
F: drivers/i2c/mtk_i2c.c
|
|
||||||
F: drivers/mmc/mtk-sd.c
|
F: drivers/mmc/mtk-sd.c
|
||||||
F: drivers/phy/phy-mtk-*
|
F: drivers/phy/phy-mtk-*
|
||||||
F: drivers/pinctrl/mediatek/
|
F: drivers/pinctrl/mediatek/
|
||||||
F: drivers/power/domain/mtk-power-domain.c
|
F: drivers/power/domain/mtk-power-domain.c
|
||||||
F: drivers/ram/mediatek/
|
F: drivers/ram/mediatek/
|
||||||
F: drivers/spi/mtk_snfi_spi.c
|
F: drivers/spi/mtk_snfi_spi.c
|
||||||
F: drivers/spi/mtk_spim.c
|
|
||||||
F: drivers/timer/mtk_timer.c
|
F: drivers/timer/mtk_timer.c
|
||||||
F: drivers/usb/host/xhci-mtk.c
|
F: drivers/usb/host/xhci-mtk.c
|
||||||
F: drivers/usb/mtu3/
|
F: drivers/usb/mtu3/
|
||||||
F: drivers/watchdog/mtk_wdt.c
|
F: drivers/watchdog/mtk_wdt.c
|
||||||
F: drivers/net/mtk_eth.c
|
F: drivers/net/mtk_eth.c
|
||||||
F: drivers/net/mtk_eth.h
|
|
||||||
F: drivers/reset/reset-mediatek.c
|
F: drivers/reset/reset-mediatek.c
|
||||||
F: tools/mtk_image.c
|
F: tools/mtk_image.c
|
||||||
F: tools/mtk_image.h
|
F: tools/mtk_image.h
|
||||||
F: tools/mtk_nand_headers.c
|
|
||||||
F: tools/mtk_nand_headers.h
|
|
||||||
N: mediatek
|
N: mediatek
|
||||||
|
|
||||||
ARM METHODE SUPPORT
|
|
||||||
M: Robert Marko <robert.marko@sartura.hr>
|
|
||||||
S: Maintained
|
|
||||||
F: arch/arm/dts/armada-3720-eDPU*
|
|
||||||
F: arch/arm/dts/armada-3720-uDPU*
|
|
||||||
F: configs/eDPU_defconfig
|
|
||||||
F: configs/uDPU_defconfig
|
|
||||||
|
|
||||||
ARM MICROCHIP/ATMEL AT91
|
ARM MICROCHIP/ATMEL AT91
|
||||||
M: Eugen Hristev <eugen.hristev@microchip.com>
|
M: Eugen Hristev <eugen.hristev@microchip.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -510,7 +453,7 @@ F: drivers/mmc/sti_sdhci.c
|
|||||||
F: drivers/reset/sti-reset.c
|
F: drivers/reset/sti-reset.c
|
||||||
F: drivers/serial/serial_sti_asc.c
|
F: drivers/serial/serial_sti_asc.c
|
||||||
F: drivers/sysreset/sysreset_sti.c
|
F: drivers/sysreset/sysreset_sti.c
|
||||||
F: drivers/timer/arm_global_timer.c
|
F: drivers/timer/sti-timer.c
|
||||||
F: drivers/usb/host/dwc3-sti-glue.c
|
F: drivers/usb/host/dwc3-sti-glue.c
|
||||||
F: include/dwc3-sti-glue.h
|
F: include/dwc3-sti-glue.h
|
||||||
F: include/dt-bindings/clock/stih407-clks.h
|
F: include/dt-bindings/clock/stih407-clks.h
|
||||||
@ -526,7 +469,7 @@ S: Maintained
|
|||||||
F: arch/arm/mach-stm32mp/
|
F: arch/arm/mach-stm32mp/
|
||||||
F: doc/board/st/
|
F: doc/board/st/
|
||||||
F: drivers/adc/stm32-adc*
|
F: drivers/adc/stm32-adc*
|
||||||
F: drivers/clk/stm32/
|
F: drivers/clk/clk_stm32mp1.c
|
||||||
F: drivers/gpio/stm32_gpio.c
|
F: drivers/gpio/stm32_gpio.c
|
||||||
F: drivers/hwspinlock/stm32_hwspinlock.c
|
F: drivers/hwspinlock/stm32_hwspinlock.c
|
||||||
F: drivers/i2c/stm32f7_i2c.c
|
F: drivers/i2c/stm32f7_i2c.c
|
||||||
@ -650,13 +593,6 @@ F: arch/arm/mach-uniphier/
|
|||||||
F: configs/uniphier_*_defconfig
|
F: configs/uniphier_*_defconfig
|
||||||
N: uniphier
|
N: uniphier
|
||||||
|
|
||||||
ARM VERSAL NET
|
|
||||||
M: Michal Simek <michal.simek@amd.com>
|
|
||||||
S: Maintained
|
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
|
|
||||||
F: arch/arm/mach-versal-net/
|
|
||||||
N: (?<!uni)versal-net
|
|
||||||
|
|
||||||
ARM VERSAL
|
ARM VERSAL
|
||||||
M: Michal Simek <michal.simek@amd.com>
|
M: Michal Simek <michal.simek@amd.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -664,7 +600,6 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
|
|||||||
F: arch/arm/mach-versal/
|
F: arch/arm/mach-versal/
|
||||||
F: drivers/net/xilinx_axi_mrmac.*
|
F: drivers/net/xilinx_axi_mrmac.*
|
||||||
F: drivers/soc/soc_xilinx_versal.c
|
F: drivers/soc/soc_xilinx_versal.c
|
||||||
F: drivers/spi/cadence_ospi_versal.c
|
|
||||||
F: drivers/watchdog/xilinx_wwdt.c
|
F: drivers/watchdog/xilinx_wwdt.c
|
||||||
N: (?<!uni)versal
|
N: (?<!uni)versal
|
||||||
|
|
||||||
@ -753,13 +688,6 @@ S: Maintained
|
|||||||
F: drivers/pci/pcie_phytium.c
|
F: drivers/pci/pcie_phytium.c
|
||||||
F: arch/arm/dts/phytium-durian.dts
|
F: arch/arm/dts/phytium-durian.dts
|
||||||
|
|
||||||
ASPEED FMC SPI DRIVER
|
|
||||||
M: Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
|
|
||||||
M: Cédric Le Goater <clg@kaod.org>
|
|
||||||
R: Aspeed BMC SW team <BMC-SW@aspeedtech.com>
|
|
||||||
S: Maintained
|
|
||||||
F: drivers/spi/spi-aspeed-smc.c
|
|
||||||
|
|
||||||
BINMAN
|
BINMAN
|
||||||
M: Simon Glass <sjg@chromium.org>
|
M: Simon Glass <sjg@chromium.org>
|
||||||
M: Alper Nebi Yasak <alpernebiyasak@gmail.com>
|
M: Alper Nebi Yasak <alpernebiyasak@gmail.com>
|
||||||
@ -788,7 +716,7 @@ F: net/eth_bootdevice.c
|
|||||||
F: test/boot/
|
F: test/boot/
|
||||||
|
|
||||||
BTRFS
|
BTRFS
|
||||||
M: Marek Behún <kabel@kernel.org>
|
M: Marek Behun <marek.behun@nic.cz>
|
||||||
R: Qu Wenruo <wqu@suse.com>
|
R: Qu Wenruo <wqu@suse.com>
|
||||||
L: linux-btrfs@vger.kernel.org
|
L: linux-btrfs@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -801,11 +729,6 @@ M: Simon Glass <sjg@chromium.org>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: tools/buildman/
|
F: tools/buildman/
|
||||||
|
|
||||||
CAT
|
|
||||||
M: Roger Knecht <rknecht@pm.me>
|
|
||||||
S: Maintained
|
|
||||||
F: cmd/cat.c
|
|
||||||
|
|
||||||
CFI FLASH
|
CFI FLASH
|
||||||
M: Stefan Roese <sr@denx.de>
|
M: Stefan Roese <sr@denx.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -829,13 +752,6 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-coldfire.git
|
|||||||
F: arch/m68k/
|
F: arch/m68k/
|
||||||
F: doc/arch/m68k.rst
|
F: doc/arch/m68k.rst
|
||||||
|
|
||||||
CYCLIC
|
|
||||||
M: Stefan Roese <sr@denx.de>
|
|
||||||
S: Maintained
|
|
||||||
F: cmd/cyclic.c
|
|
||||||
F: common/cyclic.c
|
|
||||||
F: include/cyclic.h
|
|
||||||
|
|
||||||
DFU
|
DFU
|
||||||
M: Lukasz Majewski <lukma@denx.de>
|
M: Lukasz Majewski <lukma@denx.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -876,7 +792,6 @@ F: test/dm/efi_media.c
|
|||||||
|
|
||||||
EFI PAYLOAD
|
EFI PAYLOAD
|
||||||
M: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
M: Heinrich Schuchardt <xypron.glpk@gmx.de>
|
||||||
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-efi.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-efi.git
|
||||||
F: doc/api/efi.rst
|
F: doc/api/efi.rst
|
||||||
@ -891,7 +806,6 @@ F: include/cp437.h
|
|||||||
F: include/efi*
|
F: include/efi*
|
||||||
F: include/pe.h
|
F: include/pe.h
|
||||||
F: include/asm-generic/pe.h
|
F: include/asm-generic/pe.h
|
||||||
F: include/mm_communication.h
|
|
||||||
F: lib/charset.c
|
F: lib/charset.c
|
||||||
F: lib/efi*/
|
F: lib/efi*/
|
||||||
F: test/lib/efi_*
|
F: test/lib/efi_*
|
||||||
@ -905,6 +819,12 @@ F: tools/efivar.py
|
|||||||
F: tools/file2include.c
|
F: tools/file2include.c
|
||||||
F: tools/mkeficapsule.c
|
F: tools/mkeficapsule.c
|
||||||
|
|
||||||
|
EFI VARIABLES VIA OP-TEE
|
||||||
|
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
||||||
|
S: Maintained
|
||||||
|
F: lib/efi_loader/efi_variable_tee.c
|
||||||
|
F: include/mm_communication.h
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
M: Joe Hershberger <joe.hershberger@ni.com>
|
M: Joe Hershberger <joe.hershberger@ni.com>
|
||||||
R: Wolfgang Denk <wd@denx.de>
|
R: Wolfgang Denk <wd@denx.de>
|
||||||
@ -960,7 +880,6 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
|
|||||||
F: drivers/fpga/
|
F: drivers/fpga/
|
||||||
F: cmd/fpga.c
|
F: cmd/fpga.c
|
||||||
F: include/fpga.h
|
F: include/fpga.h
|
||||||
F: test/dm/fpga.c
|
|
||||||
|
|
||||||
FLATTENED DEVICE TREE
|
FLATTENED DEVICE TREE
|
||||||
M: Simon Glass <sjg@chromium.org>
|
M: Simon Glass <sjg@chromium.org>
|
||||||
@ -1000,7 +919,7 @@ F: drivers/i2c/
|
|||||||
|
|
||||||
KWBIMAGE / KWBOOT TOOLS
|
KWBIMAGE / KWBOOT TOOLS
|
||||||
M: Pali Rohár <pali@kernel.org>
|
M: Pali Rohár <pali@kernel.org>
|
||||||
M: Marek Behún <kabel@kernel.org>
|
M: Marek Behún <marek.behun@nic.cz>
|
||||||
M: Stefan Roese <sr@denx.de>
|
M: Stefan Roese <sr@denx.de>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
|
||||||
@ -1045,7 +964,6 @@ F: drivers/net/xilinx_emaclite.c
|
|||||||
F: drivers/serial/serial_xuartlite.c
|
F: drivers/serial/serial_xuartlite.c
|
||||||
F: drivers/spi/xilinx_spi.c
|
F: drivers/spi/xilinx_spi.c
|
||||||
F: drivers/sysreset/sysreset_gpio.c
|
F: drivers/sysreset/sysreset_gpio.c
|
||||||
F: drivers/timer/xilinx-timer.c
|
|
||||||
F: drivers/watchdog/xilinx_tb_wdt.c
|
F: drivers/watchdog/xilinx_tb_wdt.c
|
||||||
N: xilinx
|
N: xilinx
|
||||||
|
|
||||||
@ -1077,23 +995,15 @@ R: GSS_MTK_Uboot_upstream <GSS_MTK_Uboot_upstream@mediatek.com>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: arch/mips/mach-mtmips/
|
F: arch/mips/mach-mtmips/
|
||||||
F: arch/mips/dts/mt7620.dtsi
|
F: arch/mips/dts/mt7620.dtsi
|
||||||
F: arch/mips/dts/mt7621.dtsi
|
|
||||||
F: arch/mips/dts/mt7620-u-boot.dtsi
|
F: arch/mips/dts/mt7620-u-boot.dtsi
|
||||||
F: arch/mips/dts/mt7621-u-boot.dtsi
|
|
||||||
F: include/configs/mt7620.h
|
F: include/configs/mt7620.h
|
||||||
F: include/configs/mt7621.h
|
|
||||||
F: include/dt-bindings/clock/mt7620-clk.h
|
F: include/dt-bindings/clock/mt7620-clk.h
|
||||||
F: include/dt-bindings/clock/mt7621-clk.h
|
|
||||||
F: include/dt-bindings/clock/mt7628-clk.h
|
F: include/dt-bindings/clock/mt7628-clk.h
|
||||||
F: include/dt-bindings/reset/mt7620-reset.h
|
F: include/dt-bindings/reset/mt7620-reset.h
|
||||||
F: include/dt-bindings/reset/mt7621-reset.h
|
|
||||||
F: include/dt-bindings/reset/mt7628-reset.h
|
F: include/dt-bindings/reset/mt7628-reset.h
|
||||||
F: drivers/clk/mtmips/
|
F: drivers/clk/mtmips/
|
||||||
F: drivers/pinctrl/mtmips/
|
F: drivers/pinctrl/mtmips/
|
||||||
F: drivers/gpio/mt7620_gpio.c
|
F: drivers/gpio/mt7620_gpio.c
|
||||||
F: drivers/mtd/nand/raw/mt7621_nand.c
|
|
||||||
F: drivers/mtd/nand/raw/mt7621_nand.h
|
|
||||||
F: drivers/mtd/nand/raw/mt7621_nand_spl.c
|
|
||||||
F: drivers/net/mt7620-eth.c
|
F: drivers/net/mt7620-eth.c
|
||||||
F: drivers/phy/mt7620-usb-phy.c
|
F: drivers/phy/mt7620-usb-phy.c
|
||||||
F: drivers/reset/reset-mtmips.c
|
F: drivers/reset/reset-mtmips.c
|
||||||
@ -1142,9 +1052,8 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-mmc.git
|
|||||||
F: drivers/mmc/
|
F: drivers/mmc/
|
||||||
|
|
||||||
NAND FLASH
|
NAND FLASH
|
||||||
M: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
#M: Scott Wood <oss@buserror.net>
|
||||||
M: Michael Trimarchi <michael@amarulasolutions.com>
|
S: Orphaned (Since 2018-07)
|
||||||
S: Maintained
|
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-nand-flash.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-nand-flash.git
|
||||||
F: drivers/mtd/nand/raw/
|
F: drivers/mtd/nand/raw/
|
||||||
|
|
||||||
@ -1171,13 +1080,6 @@ F: cmd/nvme.c
|
|||||||
F: include/nvme.h
|
F: include/nvme.h
|
||||||
F: doc/develop/driver-model/nvme.rst
|
F: doc/develop/driver-model/nvme.rst
|
||||||
|
|
||||||
NVMEM
|
|
||||||
M: Sean Anderson <seanga2@gmail.com>
|
|
||||||
S: Maintained
|
|
||||||
F: doc/api/nvmem.rst
|
|
||||||
F: drivers/misc/nvmem.c
|
|
||||||
F: include/nvmem.h
|
|
||||||
|
|
||||||
NXP C45 TJA11XX PHY DRIVER
|
NXP C45 TJA11XX PHY DRIVER
|
||||||
M: Radu Pirea <radu-nicolae.pirea@oss.nxp.com>
|
M: Radu Pirea <radu-nicolae.pirea@oss.nxp.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -1253,7 +1155,7 @@ F: arch/powerpc/cpu/mpc83xx/
|
|||||||
F: arch/powerpc/include/asm/arch-mpc83xx/
|
F: arch/powerpc/include/asm/arch-mpc83xx/
|
||||||
|
|
||||||
POWERPC MPC85XX
|
POWERPC MPC85XX
|
||||||
M: Marek Behún <kabel@kernel.org>
|
M: Priyanka Jain <priyanka.jain@nxp.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-mpc85xx.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-mpc85xx.git
|
||||||
F: arch/powerpc/cpu/mpc85xx/
|
F: arch/powerpc/cpu/mpc85xx/
|
||||||
@ -1329,11 +1231,6 @@ F: drivers/gpio/sl28cpld-gpio.c
|
|||||||
F: drivers/misc/sl28cpld.c
|
F: drivers/misc/sl28cpld.c
|
||||||
F: drivers/watchdog/sl28cpld-wdt.c
|
F: drivers/watchdog/sl28cpld-wdt.c
|
||||||
|
|
||||||
SMCCC TRNG
|
|
||||||
M: Etienne Carriere <etienne.carriere@linaro.org>
|
|
||||||
S: Maintained
|
|
||||||
F: drivers/rng/smccc_trng.c
|
|
||||||
|
|
||||||
SPI
|
SPI
|
||||||
M: Jagan Teki <jagan@amarulasolutions.com>
|
M: Jagan Teki <jagan@amarulasolutions.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -1357,7 +1254,7 @@ F: drivers/spmi/
|
|||||||
F: include/spmi/
|
F: include/spmi/
|
||||||
|
|
||||||
SQUASHFS
|
SQUASHFS
|
||||||
M: Joao Marcos Costa <jmcosta944@gmail.com>
|
M: Joao Marcos Costa <joaomarcos.costa@bootlin.com>
|
||||||
R: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
R: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||||
R: Miquel Raynal <miquel.raynal@bootlin.com>
|
R: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -1408,7 +1305,6 @@ F: arch/arm/mach-k3/config_secure.mk
|
|||||||
F: configs/am335x_hs_evm_defconfig
|
F: configs/am335x_hs_evm_defconfig
|
||||||
F: configs/am335x_hs_evm_uart_defconfig
|
F: configs/am335x_hs_evm_uart_defconfig
|
||||||
F: configs/am43xx_hs_evm_defconfig
|
F: configs/am43xx_hs_evm_defconfig
|
||||||
F: configs/am43xx_hs_evm_qspi_defconfig
|
|
||||||
F: configs/am57xx_hs_evm_defconfig
|
F: configs/am57xx_hs_evm_defconfig
|
||||||
F: configs/am57xx_hs_evm_usb_defconfig
|
F: configs/am57xx_hs_evm_usb_defconfig
|
||||||
F: configs/dra7xx_hs_evm_defconfig
|
F: configs/dra7xx_hs_evm_defconfig
|
||||||
@ -1419,12 +1315,8 @@ F: configs/k2g_hs_evm_defconfig
|
|||||||
F: configs/k2l_hs_evm_defconfig
|
F: configs/k2l_hs_evm_defconfig
|
||||||
F: configs/am65x_hs_evm_r5_defconfig
|
F: configs/am65x_hs_evm_r5_defconfig
|
||||||
F: configs/am65x_hs_evm_a53_defconfig
|
F: configs/am65x_hs_evm_a53_defconfig
|
||||||
F: configs/j7200_hs_evm_a72_defconfig
|
|
||||||
F: configs/j7200_hs_evm_r5_defconfig
|
|
||||||
F: configs/j721e_hs_evm_a72_defconfig
|
|
||||||
F: configs/j721e_hs_evm_r5_defconfig
|
F: configs/j721e_hs_evm_r5_defconfig
|
||||||
F: configs/j721s2_hs_evm_a72_defconfig
|
F: configs/j721e_hs_evm_a72_defconfig
|
||||||
F: configs/j721s2_hs_evm_r5_defconfig
|
|
||||||
|
|
||||||
TPM DRIVERS
|
TPM DRIVERS
|
||||||
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
M: Ilias Apalodimas <ilias.apalodimas@linaro.org>
|
||||||
@ -1481,6 +1373,8 @@ M: Anatolij Gustschin <agust@denx.de>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
T: git https://source.denx.de/u-boot/custodians/u-boot-video.git
|
T: git https://source.denx.de/u-boot/custodians/u-boot-video.git
|
||||||
F: drivers/video/
|
F: drivers/video/
|
||||||
|
F: common/lcd*.c
|
||||||
|
F: include/lcd*.h
|
||||||
F: include/video*.h
|
F: include/video*.h
|
||||||
|
|
||||||
VirtIO
|
VirtIO
|
||||||
@ -1532,13 +1426,6 @@ M: Max Filippov <jcmvbkbc@gmail.com>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: arch/xtensa/
|
F: arch/xtensa/
|
||||||
|
|
||||||
XXD
|
|
||||||
M: Roger Knecht <rknecht@pm.me>
|
|
||||||
S: Maintained
|
|
||||||
F: cmd/xxd.c
|
|
||||||
F: doc/usage/cmd/xxd.rst
|
|
||||||
F: test/py/tests/test_xxd/
|
|
||||||
|
|
||||||
THE REST
|
THE REST
|
||||||
M: Tom Rini <trini@konsulko.com>
|
M: Tom Rini <trini@konsulko.com>
|
||||||
L: u-boot@lists.denx.de
|
L: u-boot@lists.denx.de
|
||||||
@ -1552,6 +1439,5 @@ F: */
|
|||||||
CAAM
|
CAAM
|
||||||
M: Gaurav Jain <gaurav.jain@nxp.com>
|
M: Gaurav Jain <gaurav.jain@nxp.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: arch/arm/dts/ls1021a-twr-u-boot.dtsi
|
|
||||||
F: drivers/crypto/fsl/
|
F: drivers/crypto/fsl/
|
||||||
F: include/fsl_sec.h
|
F: include/fsl_sec.h
|
||||||
|
162
Makefile
162
Makefile
@ -1,9 +1,9 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
VERSION = 2022
|
VERSION = 2022
|
||||||
PATCHLEVEL = 10
|
PATCHLEVEL = 07
|
||||||
SUBLEVEL =
|
SUBLEVEL =
|
||||||
EXTRAVERSION =
|
EXTRAVERSION = -rc3
|
||||||
NAME =
|
NAME =
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
@ -521,8 +521,8 @@ env_h := include/generated/environment.h
|
|||||||
|
|
||||||
no-dot-config-targets := clean clobber mrproper distclean \
|
no-dot-config-targets := clean clobber mrproper distclean \
|
||||||
help %docs check% coccicheck \
|
help %docs check% coccicheck \
|
||||||
ubootversion backup tests check pcheck qcheck tcheck \
|
ubootversion backup tests check qcheck tcheck pylint \
|
||||||
pylint pylint_err
|
pylint_err
|
||||||
|
|
||||||
config-targets := 0
|
config-targets := 0
|
||||||
mixed-targets := 0
|
mixed-targets := 0
|
||||||
@ -643,13 +643,6 @@ export CFLAGS_EFI # Compiler flags to add when building EFI app
|
|||||||
export CFLAGS_NON_EFI # Compiler flags to remove when building EFI app
|
export CFLAGS_NON_EFI # Compiler flags to remove when building EFI app
|
||||||
export EFI_TARGET # binutils target if EFI is natively supported
|
export EFI_TARGET # binutils target if EFI is natively supported
|
||||||
|
|
||||||
export LTO_ENABLE
|
|
||||||
|
|
||||||
# This is y if LTO is enabled for this build. See NO_LTO=1 to disable LTO
|
|
||||||
ifeq ($(NO_LTO),)
|
|
||||||
LTO_ENABLE=$(if $(CONFIG_LTO),y)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
|
# If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
|
||||||
# that (or fail if absent). Otherwise, search for a linker script in a
|
# that (or fail if absent). Otherwise, search for a linker script in a
|
||||||
# standard location.
|
# standard location.
|
||||||
@ -680,15 +673,6 @@ else
|
|||||||
include/config/auto.conf: ;
|
include/config/auto.conf: ;
|
||||||
endif # $(dot-config)
|
endif # $(dot-config)
|
||||||
|
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_DEBUG
|
|
||||||
KBUILD_HOSTCFLAGS := -Wall -Wstrict-prototypes -Og -g -fomit-frame-pointer \
|
|
||||||
$(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
|
|
||||||
# Avoid false positives -Wmaybe-uninitialized
|
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78394
|
|
||||||
KBUILD_HOSTCFLAGS += -Wno-maybe-uninitialized
|
|
||||||
KBUILD_HOSTCXXFLAGS := -Og -g $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Xtensa linker script cannot be preprocessed with -ansi because of
|
# Xtensa linker script cannot be preprocessed with -ansi because of
|
||||||
# preprocessor operations on strings that don't make C identifiers.
|
# preprocessor operations on strings that don't make C identifiers.
|
||||||
@ -706,25 +690,22 @@ KBUILD_CFLAGS += -O2
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_DEBUG
|
ifdef CONFIG_CC_OPTIMIZE_FOR_DEBUG
|
||||||
KBUILD_CFLAGS += -Og -Wno-maybe-uninitialized
|
KBUILD_CFLAGS += -Og
|
||||||
# Avoid false positives -Wmaybe-uninitialized
|
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78394
|
|
||||||
KBUILD_CFLAGS += -Wno-maybe-uninitialized
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LTO_CFLAGS :=
|
LTO_CFLAGS :=
|
||||||
LTO_FINAL_LDFLAGS :=
|
LTO_FINAL_LDFLAGS :=
|
||||||
export LTO_CFLAGS LTO_FINAL_LDFLAGS
|
export LTO_CFLAGS LTO_FINAL_LDFLAGS
|
||||||
ifeq ($(LTO_ENABLE),y)
|
ifdef CONFIG_LTO
|
||||||
ifeq ($(cc-name),clang)
|
ifeq ($(cc-name),clang)
|
||||||
LTO_CFLAGS += -DLTO_ENABLE -flto
|
LTO_CFLAGS += -flto
|
||||||
LTO_FINAL_LDFLAGS += -flto
|
LTO_FINAL_LDFLAGS += -flto
|
||||||
|
|
||||||
AR = $(shell $(CC) -print-prog-name=llvm-ar)
|
AR = $(shell $(CC) -print-prog-name=llvm-ar)
|
||||||
NM = $(shell $(CC) -print-prog-name=llvm-nm)
|
NM = $(shell $(CC) -print-prog-name=llvm-nm)
|
||||||
else
|
else
|
||||||
NPROC := $(shell nproc 2>/dev/null || echo 1)
|
NPROC := $(shell nproc 2>/dev/null || echo 1)
|
||||||
LTO_CFLAGS += -DLTO_ENABLE -flto=$(NPROC)
|
LTO_CFLAGS += -flto=$(NPROC)
|
||||||
LTO_FINAL_LDFLAGS += -fuse-linker-plugin -flto=$(NPROC)
|
LTO_FINAL_LDFLAGS += -fuse-linker-plugin -flto=$(NPROC)
|
||||||
|
|
||||||
# use plugin aware tools
|
# use plugin aware tools
|
||||||
@ -860,7 +841,6 @@ libs-y += drivers/usb/host/
|
|||||||
libs-y += drivers/usb/mtu3/
|
libs-y += drivers/usb/mtu3/
|
||||||
libs-y += drivers/usb/musb/
|
libs-y += drivers/usb/musb/
|
||||||
libs-y += drivers/usb/musb-new/
|
libs-y += drivers/usb/musb-new/
|
||||||
libs-y += drivers/usb/isp1760/
|
|
||||||
libs-y += drivers/usb/phy/
|
libs-y += drivers/usb/phy/
|
||||||
libs-y += drivers/usb/ulpi/
|
libs-y += drivers/usb/ulpi/
|
||||||
ifdef CONFIG_POST
|
ifdef CONFIG_POST
|
||||||
@ -942,10 +922,12 @@ endif
|
|||||||
# the raw binary, but certain simulators only accept an ELF file (but don't
|
# the raw binary, but certain simulators only accept an ELF file (but don't
|
||||||
# do the relocation).
|
# do the relocation).
|
||||||
ifneq ($(CONFIG_STATIC_RELA),)
|
ifneq ($(CONFIG_STATIC_RELA),)
|
||||||
# $(2) is u-boot ELF, $(3) is u-boot bin, $(4) is text base
|
# $(1) is u-boot ELF, $(2) is u-boot bin, $(3) is text base
|
||||||
quiet_cmd_static_rela = RELOC $@
|
quiet_cmd_static_rela = RELOC $@
|
||||||
cmd_static_rela = \
|
cmd_static_rela = \
|
||||||
tools/relocate-rela $(3) $(2)
|
start=$$($(NM) $(2) | grep __rel_dyn_start | cut -f 1 -d ' '); \
|
||||||
|
end=$$($(NM) $(2) | grep __rel_dyn_end | cut -f 1 -d ' '); \
|
||||||
|
tools/relocate-rela $(3) $(4) $$start $$end
|
||||||
else
|
else
|
||||||
quiet_cmd_static_rela =
|
quiet_cmd_static_rela =
|
||||||
cmd_static_rela =
|
cmd_static_rela =
|
||||||
@ -1004,12 +986,22 @@ ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy)
|
|||||||
INPUTS-y += init_sp_bss_offset_check
|
INPUTS-y += init_sp_bss_offset_check
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_ROCKCHIP)$(CONFIG_SPL),yy)
|
ifeq ($(CONFIG_MPC85xx)$(CONFIG_OF_SEPARATE),yy)
|
||||||
# Binman image dependencies
|
INPUTS-y += u-boot-with-dtb.bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_ROCKCHIP),y)
|
||||||
|
# On ARM64 this target is produced by binman so we don't need this dep
|
||||||
ifeq ($(CONFIG_ARM64),y)
|
ifeq ($(CONFIG_ARM64),y)
|
||||||
INPUTS-y += u-boot.itb
|
ifeq ($(CONFIG_SPL),y)
|
||||||
|
# TODO: Get binman to generate this too
|
||||||
|
INPUTS-y += u-boot-rockchip.bin
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
INPUTS-y += u-boot.img
|
ifeq ($(CONFIG_SPL),y)
|
||||||
|
# Generate these inputs for binman which will create the output files
|
||||||
|
INPUTS-y += idbloader.img u-boot.img
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -1040,12 +1032,12 @@ LDFLAGS_u-boot += $(LDFLAGS_FINAL)
|
|||||||
LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker)
|
LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker)
|
||||||
|
|
||||||
# ld.lld support
|
# ld.lld support
|
||||||
LDFLAGS_u-boot += -z notext $(call ld-option,--apply-dynamic-relocs)
|
LDFLAGS_u-boot += -z notext
|
||||||
|
|
||||||
LDFLAGS_u-boot += --build-id=none
|
LDFLAGS_u-boot += --build-id=none
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),)
|
ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),)
|
||||||
LDFLAGS_u-boot += -Ttext $(CONFIG_TEXT_BASE)
|
LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# insure the checker run with the right endianness
|
# insure the checker run with the right endianness
|
||||||
@ -1154,10 +1146,20 @@ ifneq ($(CONFIG_SPL_FIT_GENERATOR),)
|
|||||||
@echo >&2 "to binman instead, to avoid the proliferation of"
|
@echo >&2 "to binman instead, to avoid the proliferation of"
|
||||||
@echo >&2 "arch-specific scripts with no tests."
|
@echo >&2 "arch-specific scripts with no tests."
|
||||||
@echo >&2 "===================================================="
|
@echo >&2 "===================================================="
|
||||||
|
endif
|
||||||
|
ifneq ($(CONFIG_DM),y)
|
||||||
|
@echo >&2 "===================== WARNING ======================"
|
||||||
|
@echo >&2 "This board does not use CONFIG_DM. CONFIG_DM will be"
|
||||||
|
@echo >&2 "compulsory starting with the v2020.01 release."
|
||||||
|
@echo >&2 "Failure to update may result in board removal."
|
||||||
|
@echo >&2 "See doc/develop/driver-model/migration.rst for more info."
|
||||||
|
@echo >&2 "===================================================="
|
||||||
endif
|
endif
|
||||||
$(call deprecated,CONFIG_WDT,DM watchdog,v2019.10,\
|
$(call deprecated,CONFIG_WDT,DM watchdog,v2019.10,\
|
||||||
$(CONFIG_WATCHDOG)$(CONFIG_HW_WATCHDOG))
|
$(CONFIG_WATCHDOG)$(CONFIG_HW_WATCHDOG))
|
||||||
|
$(call deprecated,CONFIG_DM_ETH,Ethernet drivers,v2020.07,$(CONFIG_NET))
|
||||||
$(call deprecated,CONFIG_DM_I2C,I2C drivers,v2022.04,$(CONFIG_SYS_I2C_LEGACY))
|
$(call deprecated,CONFIG_DM_I2C,I2C drivers,v2022.04,$(CONFIG_SYS_I2C_LEGACY))
|
||||||
|
$(call deprecated,CONFIG_DM_KEYBOARD,Keyboard drivers,v2022.10,$(CONFIG_KEYBOARD))
|
||||||
@# CONFIG_SYS_TIMER_RATE has brackets in it for some boards which
|
@# CONFIG_SYS_TIMER_RATE has brackets in it for some boards which
|
||||||
@# confuses this rule. Use if() to send just a single character which
|
@# confuses this rule. Use if() to send just a single character which
|
||||||
@# is enable to tell 'deprecated' that one of these symbols exists
|
@# is enable to tell 'deprecated' that one of these symbols exists
|
||||||
@ -1228,12 +1230,9 @@ else ifeq ($(CONFIG_OF_SEPARATE).$(CONFIG_OF_OMIT_DTB),y.)
|
|||||||
u-boot-dtb.bin: u-boot-nodtb.bin dts/dt.dtb FORCE
|
u-boot-dtb.bin: u-boot-nodtb.bin dts/dt.dtb FORCE
|
||||||
$(call if_changed,cat)
|
$(call if_changed,cat)
|
||||||
|
|
||||||
ifneq ($(CONFIG_MPC85XX_HAVE_RESET_VECTOR)$(CONFIG_OF_SEPARATE),yy)
|
|
||||||
u-boot.bin: u-boot-dtb.bin FORCE
|
u-boot.bin: u-boot-dtb.bin FORCE
|
||||||
$(call if_changed,copy)
|
$(call if_changed,copy)
|
||||||
endif
|
else
|
||||||
|
|
||||||
else ifneq ($(CONFIG_MPC85XX_HAVE_RESET_VECTOR)$(CONFIG_OF_SEPARATE),yy)
|
|
||||||
u-boot.bin: u-boot-nodtb.bin FORCE
|
u-boot.bin: u-boot-nodtb.bin FORCE
|
||||||
$(call if_changed,copy)
|
$(call if_changed,copy)
|
||||||
endif
|
endif
|
||||||
@ -1281,7 +1280,7 @@ spl/u-boot-spl.srec: spl/u-boot-spl FORCE
|
|||||||
|
|
||||||
OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \
|
OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \
|
||||||
$(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \
|
$(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) \
|
||||||
$(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),$(if $(CONFIG_OF_SEPARATE),-R .bootpg -R .resetvec))
|
$(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR),$(if $(CONFIG_OF_EMBED),,-R .bootpg -R .resetvec))
|
||||||
|
|
||||||
binary_size_check: u-boot-nodtb.bin FORCE
|
binary_size_check: u-boot-nodtb.bin FORCE
|
||||||
@file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \
|
@file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \
|
||||||
@ -1328,7 +1327,7 @@ shell_cmd = { $(call echo-cmd,$(1)) $(cmd_$(1)); }
|
|||||||
|
|
||||||
quiet_cmd_objcopy_uboot = OBJCOPY $@
|
quiet_cmd_objcopy_uboot = OBJCOPY $@
|
||||||
ifdef cmd_static_rela
|
ifdef cmd_static_rela
|
||||||
cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_TEXT_BASE)) || { rm -f $@; false; }
|
cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE)) || { rm -f $@; false; }
|
||||||
else
|
else
|
||||||
cmd_objcopy_uboot = $(cmd_objcopy)
|
cmd_objcopy_uboot = $(cmd_objcopy)
|
||||||
endif
|
endif
|
||||||
@ -1382,7 +1381,7 @@ u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
|
|||||||
# from the SPL U-Boot version.
|
# from the SPL U-Boot version.
|
||||||
#
|
#
|
||||||
ifndef CONFIG_SYS_UBOOT_START
|
ifndef CONFIG_SYS_UBOOT_START
|
||||||
CONFIG_SYS_UBOOT_START := $(CONFIG_TEXT_BASE)
|
CONFIG_SYS_UBOOT_START := $(CONFIG_SYS_TEXT_BASE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Boards with more complex image requirements can provide an .its source file
|
# Boards with more complex image requirements can provide an .its source file
|
||||||
@ -1407,7 +1406,7 @@ endif
|
|||||||
|
|
||||||
ifdef CONFIG_SPL_LOAD_FIT
|
ifdef CONFIG_SPL_LOAD_FIT
|
||||||
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
||||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||||
-p $(CONFIG_FIT_EXTERNAL_OFFSET) \
|
-p $(CONFIG_FIT_EXTERNAL_OFFSET) \
|
||||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
|
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board" -E \
|
||||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \
|
$(patsubst %,-b arch/$(ARCH)/dts/%.dtb,$(subst ",,$(DEVICE_TREE))) \
|
||||||
@ -1415,10 +1414,10 @@ MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
|
|||||||
$(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST)))
|
$(patsubst %,-b arch/$(ARCH)/dts/%.dtbo,$(subst ",,$(CONFIG_OF_OVERLAY_LIST)))
|
||||||
else
|
else
|
||||||
MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
|
MKIMAGEFLAGS_u-boot.img = -A $(ARCH) -T firmware -C none -O u-boot \
|
||||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||||
MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \
|
MKIMAGEFLAGS_u-boot-ivt.img = -A $(ARCH) -T firmware_ivt -C none -O u-boot \
|
||||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||||
u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log
|
u-boot-ivt.img: MKIMAGEOUTPUT = u-boot-ivt.img.log
|
||||||
endif
|
endif
|
||||||
@ -1437,19 +1436,23 @@ KWD_CONFIG_FILE = $(shell \
|
|||||||
fi)
|
fi)
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
|
MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
|
||||||
-T kwbimage -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE)
|
-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
|
MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
|
||||||
-T kwbimage -a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE) \
|
-T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
|
||||||
$(if $(KEYDIR),-k $(KEYDIR))
|
$(if $(KEYDIR),-k $(KEYDIR))
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
|
MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
|
||||||
-R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -A $(ARCH) -T pblimage
|
-R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -A $(ARCH) -T pblimage
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_MPC85xx)$(CONFIG_OF_SEPARATE),yy)
|
||||||
|
UBOOT_BIN := u-boot-with-dtb.bin
|
||||||
|
else
|
||||||
UBOOT_BIN := u-boot.bin
|
UBOOT_BIN := u-boot.bin
|
||||||
|
endif
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \
|
MKIMAGEFLAGS_u-boot-lzma.img = -A $(ARCH) -T standalone -C lzma -O u-boot \
|
||||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
|
||||||
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
-n "U-Boot $(UBOOTRELEASE) for $(BOARD) board"
|
||||||
|
|
||||||
u-boot.bin.lzma: u-boot.bin FORCE
|
u-boot.bin.lzma: u-boot.bin FORCE
|
||||||
@ -1482,7 +1485,6 @@ endif
|
|||||||
|
|
||||||
u-boot-spl.kwb: u-boot.bin spl/u-boot-spl.bin FORCE
|
u-boot-spl.kwb: u-boot.bin spl/u-boot-spl.bin FORCE
|
||||||
$(call if_changed,mkimage)
|
$(call if_changed,mkimage)
|
||||||
$(BOARD_SIZE_CHECK)
|
|
||||||
|
|
||||||
u-boot.sha1: u-boot.bin
|
u-boot.sha1: u-boot.bin
|
||||||
tools/ubsha1 u-boot.bin
|
tools/ubsha1 u-boot.bin
|
||||||
@ -1503,6 +1505,29 @@ OBJCOPYFLAGS_u-boot-with-spl.bin = -I binary -O binary \
|
|||||||
u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE
|
u-boot-with-spl.bin: $(SPL_IMAGE) $(SPL_PAYLOAD) FORCE
|
||||||
$(call if_changed,pad_cat)
|
$(call if_changed,pad_cat)
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARCH_ROCKCHIP),y)
|
||||||
|
|
||||||
|
# TPL + SPL
|
||||||
|
ifeq ($(CONFIG_SPL)$(CONFIG_TPL),yy)
|
||||||
|
MKIMAGEFLAGS_u-boot-tpl-rockchip.bin = -n $(CONFIG_SYS_SOC) -T rksd
|
||||||
|
tpl/u-boot-tpl-rockchip.bin: tpl/u-boot-tpl.bin FORCE
|
||||||
|
$(call if_changed,mkimage)
|
||||||
|
idbloader.img: tpl/u-boot-tpl-rockchip.bin spl/u-boot-spl.bin FORCE
|
||||||
|
$(call if_changed,cat)
|
||||||
|
else
|
||||||
|
MKIMAGEFLAGS_idbloader.img = -n $(CONFIG_SYS_SOC) -T rksd
|
||||||
|
idbloader.img: spl/u-boot-spl.bin FORCE
|
||||||
|
$(call if_changed,mkimage)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARM64),y)
|
||||||
|
OBJCOPYFLAGS_u-boot-rockchip.bin = -I binary -O binary \
|
||||||
|
--pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
|
||||||
|
u-boot-rockchip.bin: idbloader.img u-boot.itb FORCE
|
||||||
|
$(call if_changed,pad_cat)
|
||||||
|
endif # CONFIG_ARM64
|
||||||
|
|
||||||
|
endif # CONFIG_ARCH_ROCKCHIP
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy)
|
ifeq ($(CONFIG_ARCH_LPC32XX)$(CONFIG_SPL),yy)
|
||||||
MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE)
|
MKIMAGEFLAGS_lpc32xx-spl.img = -T lpc32xximage -a $(CONFIG_SPL_TEXT_BASE)
|
||||||
@ -1533,7 +1558,7 @@ tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE
|
|||||||
SPL: spl/u-boot-spl.bin FORCE
|
SPL: spl/u-boot-spl.bin FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||||
|
|
||||||
#ifeq ($(CONFIG_ARCH_IMX8M)$(CONFIG_ARCH_IMX8), y)
|
ifeq ($(CONFIG_ARCH_IMX8M)$(CONFIG_ARCH_IMX8), y)
|
||||||
ifeq ($(CONFIG_SPL_LOAD_IMX_CONTAINER), y)
|
ifeq ($(CONFIG_SPL_LOAD_IMX_CONTAINER), y)
|
||||||
u-boot.cnt: u-boot.bin FORCE
|
u-boot.cnt: u-boot.bin FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||||
@ -1549,7 +1574,7 @@ flash.bin: spl/u-boot-spl.bin u-boot.itb FORCE
|
|||||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
#endif
|
endif
|
||||||
|
|
||||||
u-boot.uim: u-boot.bin FORCE
|
u-boot.uim: u-boot.bin FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||||
@ -1557,7 +1582,7 @@ u-boot.uim: u-boot.bin FORCE
|
|||||||
u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL $(if $(CONFIG_OF_SEPARATE),u-boot.img,u-boot.uim) FORCE
|
u-boot-with-spl.imx u-boot-with-nand-spl.imx: SPL $(if $(CONFIG_OF_SEPARATE),u-boot.img,u-boot.uim) FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
$(Q)$(MAKE) $(build)=arch/arm/mach-imx $@
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_TEXT_BASE)
|
MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE)
|
||||||
|
|
||||||
u-boot.ubl: u-boot-with-spl.bin FORCE
|
u-boot.ubl: u-boot-with-spl.bin FORCE
|
||||||
$(call if_changed,mkimage)
|
$(call if_changed,mkimage)
|
||||||
@ -1614,14 +1639,17 @@ u-boot-with-nand-spl.sfp: u-boot-spl-padx4.sfp u-boot.img FORCE
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_MPC85XX_HAVE_RESET_VECTOR)$(CONFIG_OF_SEPARATE),yy)
|
ifeq ($(CONFIG_MPC85xx)$(CONFIG_OF_SEPARATE),yy)
|
||||||
u-boot.bin: u-boot-nodtb.bin u-boot.dtb u-boot-br.bin FORCE
|
u-boot-with-dtb.bin: u-boot.bin u-boot.dtb \
|
||||||
|
$(if $(CONFIG_MPC85XX_HAVE_RESET_VECTOR), u-boot-br.bin) FORCE
|
||||||
$(call if_changed,binman)
|
$(call if_changed,binman)
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_MPC85XX_HAVE_RESET_VECTOR),y)
|
||||||
OBJCOPYFLAGS_u-boot-br.bin := -O binary -j .bootpg -j .resetvec
|
OBJCOPYFLAGS_u-boot-br.bin := -O binary -j .bootpg -j .resetvec
|
||||||
u-boot-br.bin: u-boot FORCE
|
u-boot-br.bin: u-boot FORCE
|
||||||
$(call if_changed,objcopy)
|
$(call if_changed,objcopy)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
quiet_cmd_ldr = LD $@
|
quiet_cmd_ldr = LD $@
|
||||||
cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \
|
cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \
|
||||||
@ -1678,8 +1706,12 @@ spl/u-boot-spl.pbl: spl/u-boot-spl.bin FORCE
|
|||||||
ifeq ($(ARCH),arm)
|
ifeq ($(ARCH),arm)
|
||||||
UBOOT_BINLOAD := u-boot.img
|
UBOOT_BINLOAD := u-boot.img
|
||||||
else
|
else
|
||||||
|
ifeq ($(CONFIG_MPC85xx)$(CONFIG_OF_SEPARATE),yy)
|
||||||
|
UBOOT_BINLOAD := u-boot-with-dtb.bin
|
||||||
|
else
|
||||||
UBOOT_BINLOAD := u-boot.bin
|
UBOOT_BINLOAD := u-boot.bin
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
|
OBJCOPYFLAGS_u-boot-with-spl-pbl.bin = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
|
||||||
--gap-fill=0xff
|
--gap-fill=0xff
|
||||||
@ -1701,8 +1733,8 @@ u-boot-img-spl-at-end.bin: u-boot.img spl/u-boot-spl.bin FORCE
|
|||||||
quiet_cmd_u-boot-elf ?= LD $@
|
quiet_cmd_u-boot-elf ?= LD $@
|
||||||
cmd_u-boot-elf ?= $(LD) u-boot-elf.o -o $@ \
|
cmd_u-boot-elf ?= $(LD) u-boot-elf.o -o $@ \
|
||||||
$(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \
|
$(if $(CONFIG_SYS_BIG_ENDIAN),-EB,-EL) \
|
||||||
-T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_TEXT_BASE) \
|
-T u-boot-elf.lds --defsym=$(CONFIG_PLATFORM_ELFENTRY)=$(CONFIG_SYS_TEXT_BASE) \
|
||||||
-Ttext=$(CONFIG_TEXT_BASE)
|
-Ttext=$(CONFIG_SYS_TEXT_BASE)
|
||||||
u-boot.elf: u-boot.bin u-boot-elf.lds
|
u-boot.elf: u-boot.bin u-boot-elf.lds
|
||||||
$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o
|
$(Q)$(OBJCOPY) -I binary $(PLATFORM_ELFFLAGS) $< u-boot-elf.o
|
||||||
$(call if_changed,u-boot-elf)
|
$(call if_changed,u-boot-elf)
|
||||||
@ -1723,7 +1755,7 @@ u-boot-mtk.bin: u-boot-with-spl.bin
|
|||||||
$(call if_changed,copy)
|
$(call if_changed,copy)
|
||||||
else
|
else
|
||||||
MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \
|
MKIMAGEFLAGS_u-boot-mtk.bin = -T mtk_image \
|
||||||
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_TEXT_BASE) \
|
-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
|
||||||
-n "$(patsubst "%",%,$(CONFIG_MTK_BROM_HEADER_INFO))"
|
-n "$(patsubst "%",%,$(CONFIG_MTK_BROM_HEADER_INFO))"
|
||||||
|
|
||||||
u-boot-mtk.bin: u-boot.bin FORCE
|
u-boot-mtk.bin: u-boot.bin FORCE
|
||||||
@ -1740,7 +1772,7 @@ ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(ARCH)/Makefile.postlink)
|
|||||||
|
|
||||||
# Generate linker list symbols references to force compiler to not optimize
|
# Generate linker list symbols references to force compiler to not optimize
|
||||||
# them away when compiling with LTO
|
# them away when compiling with LTO
|
||||||
ifeq ($(LTO_ENABLE),y)
|
ifdef CONFIG_LTO
|
||||||
u-boot-keep-syms-lto := keep-syms-lto.o
|
u-boot-keep-syms-lto := keep-syms-lto.o
|
||||||
u-boot-keep-syms-lto_c := $(patsubst %.o,%.c,$(u-boot-keep-syms-lto))
|
u-boot-keep-syms-lto_c := $(patsubst %.o,%.c,$(u-boot-keep-syms-lto))
|
||||||
|
|
||||||
@ -1762,7 +1794,7 @@ endif
|
|||||||
|
|
||||||
# Rule to link u-boot
|
# Rule to link u-boot
|
||||||
# May be overridden by arch/$(ARCH)/config.mk
|
# May be overridden by arch/$(ARCH)/config.mk
|
||||||
ifeq ($(LTO_ENABLE),y)
|
ifdef CONFIG_LTO
|
||||||
quiet_cmd_u-boot__ ?= LTO $@
|
quiet_cmd_u-boot__ ?= LTO $@
|
||||||
cmd_u-boot__ ?= \
|
cmd_u-boot__ ?= \
|
||||||
$(CC) -nostdlib -nostartfiles \
|
$(CC) -nostdlib -nostartfiles \
|
||||||
@ -2194,15 +2226,13 @@ CLEAN_DIRS += $(MODVERDIR) \
|
|||||||
$(filter-out include, $(shell ls -1 $d 2>/dev/null))))
|
$(filter-out include, $(shell ls -1 $d 2>/dev/null))))
|
||||||
|
|
||||||
CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h \
|
CLEAN_FILES += include/bmp_logo.h include/bmp_logo_data.h \
|
||||||
include/generated/env.* drivers/video/u_boot_logo.S \
|
include/generated/env.in drivers/video/u_boot_logo.S \
|
||||||
tools/version.h u-boot* MLO* SPL System.map fit-dtb.blob* \
|
tools/version.h u-boot* MLO* SPL System.map fit-dtb.blob* \
|
||||||
u-boot-ivt.img.log u-boot-dtb.imx.log SPL.log u-boot.imx.log \
|
u-boot-ivt.img.log u-boot-dtb.imx.log SPL.log u-boot.imx.log \
|
||||||
lpc32xx-* bl31.c bl31.elf bl31_*.bin image.map tispl.bin* \
|
lpc32xx-* bl31.c bl31.elf bl31_*.bin image.map tispl.bin* \
|
||||||
idbloader.img flash.bin flash.log defconfig keep-syms-lto.c \
|
idbloader.img flash.bin flash.log defconfig keep-syms-lto.c \
|
||||||
mkimage-out.spl.mkimage mkimage.spl.mkimage imx-boot.map \
|
mkimage-out.spl.mkimage mkimage.spl.mkimage imx-boot.map \
|
||||||
itb.fit.fit itb.fit.itb itb.map spl.map mkimage-out.rom.mkimage \
|
itb.fit.fit itb.fit.itb itb.map spl.map
|
||||||
mkimage.rom.mkimage rom.map simple-bin.map simple-bin-spi.map \
|
|
||||||
idbloader-spi.img
|
|
||||||
|
|
||||||
# Directories & files removed with 'make mrproper'
|
# Directories & files removed with 'make mrproper'
|
||||||
MRPROPER_DIRS += include/config include/generated spl tpl \
|
MRPROPER_DIRS += include/config include/generated spl tpl \
|
||||||
@ -2334,7 +2364,6 @@ help:
|
|||||||
@echo 'Test targets:'
|
@echo 'Test targets:'
|
||||||
@echo ''
|
@echo ''
|
||||||
@echo ' check - Run all automated tests that use sandbox'
|
@echo ' check - Run all automated tests that use sandbox'
|
||||||
@echo ' pcheck - Run quick automated tests in parallel'
|
|
||||||
@echo ' qcheck - Run quick automated tests that use sandbox'
|
@echo ' qcheck - Run quick automated tests that use sandbox'
|
||||||
@echo ' tcheck - Run quick automated tests on tools'
|
@echo ' tcheck - Run quick automated tests on tools'
|
||||||
@echo ' pylint - Run pylint on all Python files'
|
@echo ' pylint - Run pylint on all Python files'
|
||||||
@ -2380,9 +2409,6 @@ help:
|
|||||||
tests check:
|
tests check:
|
||||||
$(srctree)/test/run
|
$(srctree)/test/run
|
||||||
|
|
||||||
pcheck:
|
|
||||||
$(srctree)/test/run parallel
|
|
||||||
|
|
||||||
qcheck:
|
qcheck:
|
||||||
$(srctree)/test/run quick
|
$(srctree)/test/run quick
|
||||||
|
|
||||||
|
497
README
497
README
@ -166,6 +166,27 @@ Directory Hierarchy:
|
|||||||
Software Configuration:
|
Software Configuration:
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
Configuration is usually done using C preprocessor defines; the
|
||||||
|
rationale behind that is to avoid dead code whenever possible.
|
||||||
|
|
||||||
|
There are two classes of configuration variables:
|
||||||
|
|
||||||
|
* Configuration _OPTIONS_:
|
||||||
|
These are selectable by the user and have names beginning with
|
||||||
|
"CONFIG_".
|
||||||
|
|
||||||
|
* Configuration _SETTINGS_:
|
||||||
|
These depend on the hardware etc. and should not be meddled with if
|
||||||
|
you don't know what you're doing; they have names beginning with
|
||||||
|
"CONFIG_SYS_".
|
||||||
|
|
||||||
|
Previously, all configuration was done by hand, which involved creating
|
||||||
|
symbolic links and editing configuration files manually. More recently,
|
||||||
|
U-Boot has added the Kbuild infrastructure used by the Linux kernel,
|
||||||
|
allowing you to use the "make menuconfig" command to configure your
|
||||||
|
build.
|
||||||
|
|
||||||
|
|
||||||
Selection of Processor Architecture and Board Type:
|
Selection of Processor Architecture and Board Type:
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|
||||||
@ -272,6 +293,33 @@ board_init_r():
|
|||||||
|
|
||||||
SPL-specific notes:
|
SPL-specific notes:
|
||||||
- stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
|
- stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
|
||||||
|
CONFIG_SPL_STACK_R_ADDR points into SDRAM
|
||||||
|
- preloader_console_init() can be called here - typically this is
|
||||||
|
done by selecting CONFIG_SPL_BOARD_INIT and then supplying a
|
||||||
|
spl_board_init() function containing this call
|
||||||
|
- loads U-Boot or (in falcon mode) Linux
|
||||||
|
|
||||||
|
|
||||||
|
Configuration Options:
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Configuration depends on the combination of board and CPU type; all
|
||||||
|
such information is kept in a configuration file
|
||||||
|
"include/configs/<board_name>.h".
|
||||||
|
|
||||||
|
Example: For a TQM823L module, all configuration settings are in
|
||||||
|
"include/configs/TQM823L.h".
|
||||||
|
|
||||||
|
|
||||||
|
Many of the options are named exactly as the corresponding Linux
|
||||||
|
kernel configuration options. The intention is to make it easier to
|
||||||
|
build a config tool - later.
|
||||||
|
|
||||||
|
- ARM Platform Bus Type(CCI):
|
||||||
|
CoreLink Cache Coherent Interconnect (CCI) is ARM BUS which
|
||||||
|
provides full cache coherency between two clusters of multi-core
|
||||||
|
CPUs and I/O coherency for devices and I/O masters
|
||||||
|
|
||||||
CONFIG_SYS_FSL_HAS_CCI400
|
CONFIG_SYS_FSL_HAS_CCI400
|
||||||
|
|
||||||
Defined For SoC that has cache coherent interconnect
|
Defined For SoC that has cache coherent interconnect
|
||||||
@ -294,6 +342,17 @@ The following options need to be configured:
|
|||||||
the "64" category of the Power ISA). This is necessary for ePAPR
|
the "64" category of the Power ISA). This is necessary for ePAPR
|
||||||
compliance, among other possible reasons.
|
compliance, among other possible reasons.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_TBCLK_DIV
|
||||||
|
|
||||||
|
Defines the core time base clock divider ratio compared to the
|
||||||
|
system clock. On most PQ3 devices this is 8, on newer QorIQ
|
||||||
|
devices it can be 16 or 32. The ratio varies from SoC to Soc.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_PCIE_COMPAT
|
||||||
|
|
||||||
|
Defines the string to utilize when trying to match PCIe device
|
||||||
|
tree nodes for the given platform.
|
||||||
|
|
||||||
CONFIG_SYS_FSL_ERRATUM_A004510
|
CONFIG_SYS_FSL_ERRATUM_A004510
|
||||||
|
|
||||||
Enables a workaround for erratum A004510. If set,
|
Enables a workaround for erratum A004510. If set,
|
||||||
@ -319,12 +378,35 @@ The following options need to be configured:
|
|||||||
This is the value to write into CCSR offset 0x18600
|
This is the value to write into CCSR offset 0x18600
|
||||||
according to the A004510 workaround.
|
according to the A004510 workaround.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DSP_DDR_ADDR
|
||||||
|
This value denotes start offset of DDR memory which is
|
||||||
|
connected exclusively to the DSP cores.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DSP_M2_RAM_ADDR
|
||||||
|
This value denotes start offset of M2 memory
|
||||||
|
which is directly connected to the DSP core.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DSP_M3_RAM_ADDR
|
||||||
|
This value denotes start offset of M3 memory which is directly
|
||||||
|
connected to the DSP core.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT
|
||||||
|
This value denotes start offset of DSP CCSR space.
|
||||||
|
|
||||||
CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
|
CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
|
||||||
Single Source Clock is clocking mode present in some of FSL SoC's.
|
Single Source Clock is clocking mode present in some of FSL SoC's.
|
||||||
In this mode, a single differential clock is used to supply
|
In this mode, a single differential clock is used to supply
|
||||||
clocks to the sysclock, ddrclock and usbclock.
|
clocks to the sysclock, ddrclock and usbclock.
|
||||||
|
|
||||||
|
CONFIG_SYS_CPC_REINIT_F
|
||||||
|
This CONFIG is defined when the CPC is configured as SRAM at the
|
||||||
|
time of U-Boot entry and is required to be re-initialized.
|
||||||
|
|
||||||
- Generic CPU options:
|
- Generic CPU options:
|
||||||
|
CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
|
||||||
|
|
||||||
|
Defines the endianess of the CPU. Implementation of those
|
||||||
|
values is arch specific.
|
||||||
|
|
||||||
CONFIG_SYS_FSL_DDR
|
CONFIG_SYS_FSL_DDR
|
||||||
Freescale DDR driver in use. This type of DDR controller is
|
Freescale DDR driver in use. This type of DDR controller is
|
||||||
@ -333,18 +415,90 @@ The following options need to be configured:
|
|||||||
CONFIG_SYS_FSL_DDR_ADDR
|
CONFIG_SYS_FSL_DDR_ADDR
|
||||||
Freescale DDR memory-mapped register base.
|
Freescale DDR memory-mapped register base.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR_EMU
|
||||||
|
Specify emulator support for DDR. Some DDR features such as
|
||||||
|
deskew training are not available.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDRC_GEN1
|
||||||
|
Freescale DDR1 controller.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDRC_GEN2
|
||||||
|
Freescale DDR2 controller.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDRC_GEN3
|
||||||
|
Freescale DDR3 controller.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDRC_GEN4
|
||||||
|
Freescale DDR4 controller.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDRC_ARM_GEN3
|
||||||
|
Freescale DDR3 controller for ARM-based SoCs.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR1
|
||||||
|
Board config to use DDR1. It can be enabled for SoCs with
|
||||||
|
Freescale DDR1 or DDR2 controllers, depending on the board
|
||||||
|
implemetation.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR2
|
||||||
|
Board config to use DDR2. It can be enabled for SoCs with
|
||||||
|
Freescale DDR2 or DDR3 controllers, depending on the board
|
||||||
|
implementation.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR3
|
||||||
|
Board config to use DDR3. It can be enabled for SoCs with
|
||||||
|
Freescale DDR3 or DDR3L controllers.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR3L
|
||||||
|
Board config to use DDR3L. It can be enabled for SoCs with
|
||||||
|
DDR3L controllers.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_IFC_BE
|
||||||
|
Defines the IFC controller register space as Big Endian
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_IFC_LE
|
||||||
|
Defines the IFC controller register space as Little Endian
|
||||||
|
|
||||||
CONFIG_SYS_FSL_IFC_CLK_DIV
|
CONFIG_SYS_FSL_IFC_CLK_DIV
|
||||||
Defines divider of platform clock(clock input to IFC controller).
|
Defines divider of platform clock(clock input to IFC controller).
|
||||||
|
|
||||||
CONFIG_SYS_FSL_LBC_CLK_DIV
|
CONFIG_SYS_FSL_LBC_CLK_DIV
|
||||||
Defines divider of platform clock(clock input to eLBC controller).
|
Defines divider of platform clock(clock input to eLBC controller).
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR_BE
|
||||||
|
Defines the DDR controller register space as Big Endian
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR_LE
|
||||||
|
Defines the DDR controller register space as Little Endian
|
||||||
|
|
||||||
CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY
|
CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY
|
||||||
Physical address from the view of DDR controllers. It is the
|
Physical address from the view of DDR controllers. It is the
|
||||||
same as CONFIG_SYS_DDR_SDRAM_BASE for all Power SoCs. But
|
same as CONFIG_SYS_DDR_SDRAM_BASE for all Power SoCs. But
|
||||||
it could be different for ARM SoCs.
|
it could be different for ARM SoCs.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR_INTLV_256B
|
||||||
|
DDR controller interleaving on 256-byte. This is a special
|
||||||
|
interleaving mode, handled by Dickens for Freescale layerscape
|
||||||
|
SoCs with ARM core.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS
|
||||||
|
Number of controllers used as main memory.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS
|
||||||
|
Number of controllers used for other than main memory.
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_SEC_BE
|
||||||
|
Defines the SEC controller register space as Big Endian
|
||||||
|
|
||||||
|
CONFIG_SYS_FSL_SEC_LE
|
||||||
|
Defines the SEC controller register space as Little Endian
|
||||||
|
|
||||||
- MIPS CPU options:
|
- MIPS CPU options:
|
||||||
|
CONFIG_SYS_INIT_SP_OFFSET
|
||||||
|
|
||||||
|
Offset relative to CONFIG_SYS_SDRAM_BASE for initial stack
|
||||||
|
pointer. This is needed for the temporary stack before
|
||||||
|
relocation.
|
||||||
|
|
||||||
CONFIG_XWAY_SWAP_BYTES
|
CONFIG_XWAY_SWAP_BYTES
|
||||||
|
|
||||||
Enable compilation of tools/xway-swap-bytes needed for Lantiq
|
Enable compilation of tools/xway-swap-bytes needed for Lantiq
|
||||||
@ -415,6 +569,8 @@ The following options need to be configured:
|
|||||||
the defaults discussed just above.
|
the defaults discussed just above.
|
||||||
|
|
||||||
- Cache Configuration for ARM:
|
- Cache Configuration for ARM:
|
||||||
|
CONFIG_SYS_L2_PL310 - Enable support for ARM PL310 L2 cache
|
||||||
|
controller
|
||||||
CONFIG_SYS_PL310_BASE - Physical base address of PL310
|
CONFIG_SYS_PL310_BASE - Physical base address of PL310
|
||||||
controller register space
|
controller register space
|
||||||
|
|
||||||
@ -541,6 +697,18 @@ The following options need to be configured:
|
|||||||
CONFIG_SCSI) you must configure support for at
|
CONFIG_SCSI) you must configure support for at
|
||||||
least one non-MTD partition type as well.
|
least one non-MTD partition type as well.
|
||||||
|
|
||||||
|
- LBA48 Support
|
||||||
|
CONFIG_LBA48
|
||||||
|
|
||||||
|
Set this to enable support for disks larger than 137GB
|
||||||
|
Also look at CONFIG_SYS_64BIT_LBA.
|
||||||
|
Whithout these , LBA48 support uses 32bit variables and will 'only'
|
||||||
|
support disks up to 2.1TB.
|
||||||
|
|
||||||
|
CONFIG_SYS_64BIT_LBA:
|
||||||
|
When enabled, makes the IDE subsystem use 64bit sector addresses.
|
||||||
|
Default is 32bit.
|
||||||
|
|
||||||
- NETWORK Support (PCI):
|
- NETWORK Support (PCI):
|
||||||
CONFIG_E1000_SPI
|
CONFIG_E1000_SPI
|
||||||
Utility code for direct access to the SPI bus on Intel 8257x.
|
Utility code for direct access to the SPI bus on Intel 8257x.
|
||||||
@ -563,6 +731,20 @@ The following options need to be configured:
|
|||||||
CONFIG_LAN91C96_USE_32_BIT
|
CONFIG_LAN91C96_USE_32_BIT
|
||||||
Define this to enable 32 bit addressing
|
Define this to enable 32 bit addressing
|
||||||
|
|
||||||
|
CONFIG_SMC91111
|
||||||
|
Support for SMSC's LAN91C111 chip
|
||||||
|
|
||||||
|
CONFIG_SMC91111_BASE
|
||||||
|
Define this to hold the physical address
|
||||||
|
of the device (I/O space)
|
||||||
|
|
||||||
|
CONFIG_SMC_USE_32_BIT
|
||||||
|
Define this if data bus is 32 bits
|
||||||
|
|
||||||
|
CONFIG_SMC_USE_IOFUNCS
|
||||||
|
Define this to use i/o functions instead of macros
|
||||||
|
(some hardware wont work with macros)
|
||||||
|
|
||||||
CONFIG_SYS_DAVINCI_EMAC_PHY_COUNT
|
CONFIG_SYS_DAVINCI_EMAC_PHY_COUNT
|
||||||
Define this if you have more then 3 PHYs.
|
Define this if you have more then 3 PHYs.
|
||||||
|
|
||||||
@ -644,6 +826,9 @@ The following options need to be configured:
|
|||||||
Supported are USB Keyboards and USB Floppy drives
|
Supported are USB Keyboards and USB Floppy drives
|
||||||
(TEAC FD-05PUB).
|
(TEAC FD-05PUB).
|
||||||
|
|
||||||
|
CONFIG_USB_EHCI_TXFIFO_THRESH enables setting of the
|
||||||
|
txfilltuning field in the EHCI controller on reset.
|
||||||
|
|
||||||
CONFIG_USB_DWC2_REG_ADDR the physical CPU address of the DWC2
|
CONFIG_USB_DWC2_REG_ADDR the physical CPU address of the DWC2
|
||||||
HW module registers.
|
HW module registers.
|
||||||
|
|
||||||
@ -717,6 +902,13 @@ The following options need to be configured:
|
|||||||
the appropriate value in Hz.
|
the appropriate value in Hz.
|
||||||
|
|
||||||
- MMC Support:
|
- MMC Support:
|
||||||
|
The MMC controller on the Intel PXA is supported. To
|
||||||
|
enable this define CONFIG_MMC. The MMC can be
|
||||||
|
accessed from the boot prompt by mapping the device
|
||||||
|
to physical memory similar to flash. Command line is
|
||||||
|
enabled with CONFIG_CMD_MMC. The MMC driver also works with
|
||||||
|
the FAT fs. This is enabled with CONFIG_CMD_FAT.
|
||||||
|
|
||||||
CONFIG_SH_MMCIF
|
CONFIG_SH_MMCIF
|
||||||
Support for Renesas on-chip MMCIF controller
|
Support for Renesas on-chip MMCIF controller
|
||||||
|
|
||||||
@ -770,6 +962,80 @@ The following options need to be configured:
|
|||||||
- Keyboard Support:
|
- Keyboard Support:
|
||||||
See Kconfig help for available keyboard drivers.
|
See Kconfig help for available keyboard drivers.
|
||||||
|
|
||||||
|
- LCD Support: CONFIG_LCD
|
||||||
|
|
||||||
|
Define this to enable LCD support (for output to LCD
|
||||||
|
display); also select one of the supported displays
|
||||||
|
by defining one of these:
|
||||||
|
|
||||||
|
CONFIG_NEC_NL6448AC33:
|
||||||
|
|
||||||
|
NEC NL6448AC33-18. Active, color, single scan.
|
||||||
|
|
||||||
|
CONFIG_NEC_NL6448BC20
|
||||||
|
|
||||||
|
NEC NL6448BC20-08. 6.5", 640x480.
|
||||||
|
Active, color, single scan.
|
||||||
|
|
||||||
|
CONFIG_NEC_NL6448BC33_54
|
||||||
|
|
||||||
|
NEC NL6448BC33-54. 10.4", 640x480.
|
||||||
|
Active, color, single scan.
|
||||||
|
|
||||||
|
CONFIG_SHARP_16x9
|
||||||
|
|
||||||
|
Sharp 320x240. Active, color, single scan.
|
||||||
|
It isn't 16x9, and I am not sure what it is.
|
||||||
|
|
||||||
|
CONFIG_SHARP_LQ64D341
|
||||||
|
|
||||||
|
Sharp LQ64D341 display, 640x480.
|
||||||
|
Active, color, single scan.
|
||||||
|
|
||||||
|
CONFIG_HLD1045
|
||||||
|
|
||||||
|
HLD1045 display, 640x480.
|
||||||
|
Active, color, single scan.
|
||||||
|
|
||||||
|
CONFIG_OPTREX_BW
|
||||||
|
|
||||||
|
Optrex CBL50840-2 NF-FW 99 22 M5
|
||||||
|
or
|
||||||
|
Hitachi LMG6912RPFC-00T
|
||||||
|
or
|
||||||
|
Hitachi SP14Q002
|
||||||
|
|
||||||
|
320x240. Black & white.
|
||||||
|
|
||||||
|
CONFIG_LCD_ALIGNMENT
|
||||||
|
|
||||||
|
Normally the LCD is page-aligned (typically 4KB). If this is
|
||||||
|
defined then the LCD will be aligned to this value instead.
|
||||||
|
For ARM it is sometimes useful to use MMU_SECTION_SIZE
|
||||||
|
here, since it is cheaper to change data cache settings on
|
||||||
|
a per-section basis.
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG_LCD_ROTATION
|
||||||
|
|
||||||
|
Sometimes, for example if the display is mounted in portrait
|
||||||
|
mode or even if it's mounted landscape but rotated by 180degree,
|
||||||
|
we need to rotate our content of the display relative to the
|
||||||
|
framebuffer, so that user can read the messages which are
|
||||||
|
printed out.
|
||||||
|
Once CONFIG_LCD_ROTATION is defined, the lcd_console will be
|
||||||
|
initialized with a given rotation from "vl_rot" out of
|
||||||
|
"vidinfo_t" which is provided by the board specific code.
|
||||||
|
The value for vl_rot is coded as following (matching to
|
||||||
|
fbcon=rotate:<n> linux-kernel commandline):
|
||||||
|
0 = no rotation respectively 0 degree
|
||||||
|
1 = 90 degree rotation
|
||||||
|
2 = 180 degree rotation
|
||||||
|
3 = 270 degree rotation
|
||||||
|
|
||||||
|
If CONFIG_LCD_ROTATION is not defined, the console will be
|
||||||
|
initialized with 0degree rotation.
|
||||||
|
|
||||||
- MII/PHY support:
|
- MII/PHY support:
|
||||||
CONFIG_PHY_CLOCK_FREQ (ppc4xx)
|
CONFIG_PHY_CLOCK_FREQ (ppc4xx)
|
||||||
|
|
||||||
@ -1088,6 +1354,11 @@ The following options need to be configured:
|
|||||||
|
|
||||||
will skip addresses 0x50 and 0x68 on bus 0 and address 0x54 on bus 1
|
will skip addresses 0x50 and 0x68 on bus 0 and address 0x54 on bus 1
|
||||||
|
|
||||||
|
CONFIG_SYS_SPD_BUS_NUM
|
||||||
|
|
||||||
|
If defined, then this indicates the I2C bus number for DDR SPD.
|
||||||
|
If not defined, then U-Boot assumes that SPD is on I2C bus 0.
|
||||||
|
|
||||||
CONFIG_SYS_RTC_BUS_NUM
|
CONFIG_SYS_RTC_BUS_NUM
|
||||||
|
|
||||||
If defined, then this indicates the I2C bus number for the RTC.
|
If defined, then this indicates the I2C bus number for the RTC.
|
||||||
@ -1127,6 +1398,14 @@ The following options need to be configured:
|
|||||||
Enables support for FPGA family.
|
Enables support for FPGA family.
|
||||||
(SPARTAN2, SPARTAN3, VIRTEX2, CYCLONE2, ACEX1K, ACEX)
|
(SPARTAN2, SPARTAN3, VIRTEX2, CYCLONE2, ACEX1K, ACEX)
|
||||||
|
|
||||||
|
CONFIG_FPGA_COUNT
|
||||||
|
|
||||||
|
Specify the number of FPGA devices to support.
|
||||||
|
|
||||||
|
CONFIG_SYS_FPGA_PROG_FEEDBACK
|
||||||
|
|
||||||
|
Enable printing of hash marks during FPGA configuration.
|
||||||
|
|
||||||
CONFIG_SYS_FPGA_CHECK_BUSY
|
CONFIG_SYS_FPGA_CHECK_BUSY
|
||||||
|
|
||||||
Enable checks on FPGA configuration interface busy
|
Enable checks on FPGA configuration interface busy
|
||||||
@ -1139,6 +1418,9 @@ The following options need to be configured:
|
|||||||
If defined, a function that provides delays in the FPGA
|
If defined, a function that provides delays in the FPGA
|
||||||
configuration driver.
|
configuration driver.
|
||||||
|
|
||||||
|
CONFIG_SYS_FPGA_CHECK_CTRLC
|
||||||
|
Allow Control-C to interrupt FPGA configuration
|
||||||
|
|
||||||
CONFIG_SYS_FPGA_CHECK_ERROR
|
CONFIG_SYS_FPGA_CHECK_ERROR
|
||||||
|
|
||||||
Check for configuration errors during FPGA bitfile
|
Check for configuration errors during FPGA bitfile
|
||||||
@ -1288,6 +1570,20 @@ The following options need to be configured:
|
|||||||
overwriting the architecture dependent default
|
overwriting the architecture dependent default
|
||||||
settings.
|
settings.
|
||||||
|
|
||||||
|
- Frame Buffer Address:
|
||||||
|
CONFIG_FB_ADDR
|
||||||
|
|
||||||
|
Define CONFIG_FB_ADDR if you want to use specific
|
||||||
|
address for frame buffer. This is typically the case
|
||||||
|
when using a graphics controller has separate video
|
||||||
|
memory. U-Boot will then place the frame buffer at
|
||||||
|
the given address instead of dynamically reserving it
|
||||||
|
in system RAM by calling lcd_setmem(), which grabs
|
||||||
|
the memory for the frame buffer depending on the
|
||||||
|
configured panel size.
|
||||||
|
|
||||||
|
Please see board_init_f function.
|
||||||
|
|
||||||
- Automatic software updates via TFTP server
|
- Automatic software updates via TFTP server
|
||||||
CONFIG_UPDATE_TFTP
|
CONFIG_UPDATE_TFTP
|
||||||
CONFIG_UPDATE_TFTP_CNT_MAX
|
CONFIG_UPDATE_TFTP_CNT_MAX
|
||||||
@ -1362,6 +1658,36 @@ The following options need to be configured:
|
|||||||
CONFIG_SPL
|
CONFIG_SPL
|
||||||
Enable building of SPL globally.
|
Enable building of SPL globally.
|
||||||
|
|
||||||
|
CONFIG_SPL_MAX_FOOTPRINT
|
||||||
|
Maximum size in memory allocated to the SPL, BSS included.
|
||||||
|
When defined, the linker checks that the actual memory
|
||||||
|
used by SPL from _start to __bss_end does not exceed it.
|
||||||
|
CONFIG_SPL_MAX_FOOTPRINT and CONFIG_SPL_BSS_MAX_SIZE
|
||||||
|
must not be both defined at the same time.
|
||||||
|
|
||||||
|
CONFIG_SPL_MAX_SIZE
|
||||||
|
Maximum size of the SPL image (text, data, rodata, and
|
||||||
|
linker lists sections), BSS excluded.
|
||||||
|
When defined, the linker checks that the actual size does
|
||||||
|
not exceed it.
|
||||||
|
|
||||||
|
CONFIG_SPL_RELOC_TEXT_BASE
|
||||||
|
Address to relocate to. If unspecified, this is equal to
|
||||||
|
CONFIG_SPL_TEXT_BASE (i.e. no relocation is done).
|
||||||
|
|
||||||
|
CONFIG_SPL_BSS_START_ADDR
|
||||||
|
Link address for the BSS within the SPL binary.
|
||||||
|
|
||||||
|
CONFIG_SPL_BSS_MAX_SIZE
|
||||||
|
Maximum size in memory allocated to the SPL BSS.
|
||||||
|
When defined, the linker checks that the actual memory used
|
||||||
|
by SPL from __bss_start to __bss_end does not exceed it.
|
||||||
|
CONFIG_SPL_MAX_FOOTPRINT and CONFIG_SPL_BSS_MAX_SIZE
|
||||||
|
must not be both defined at the same time.
|
||||||
|
|
||||||
|
CONFIG_SPL_STACK
|
||||||
|
Adress of the start of the stack SPL will use
|
||||||
|
|
||||||
CONFIG_SPL_PANIC_ON_RAW_IMAGE
|
CONFIG_SPL_PANIC_ON_RAW_IMAGE
|
||||||
When defined, SPL will panic() if the image it has
|
When defined, SPL will panic() if the image it has
|
||||||
loaded does not have a signature.
|
loaded does not have a signature.
|
||||||
@ -1372,20 +1698,65 @@ The following options need to be configured:
|
|||||||
consider that a completely unreadable NAND block is bad,
|
consider that a completely unreadable NAND block is bad,
|
||||||
and thus should be skipped silently.
|
and thus should be skipped silently.
|
||||||
|
|
||||||
|
CONFIG_SPL_RELOC_STACK
|
||||||
|
Adress of the start of the stack SPL will use after
|
||||||
|
relocation. If unspecified, this is equal to
|
||||||
|
CONFIG_SPL_STACK.
|
||||||
|
|
||||||
|
CONFIG_SYS_SPL_MALLOC_START
|
||||||
|
Starting address of the malloc pool used in SPL.
|
||||||
|
When this option is set the full malloc is used in SPL and
|
||||||
|
it is set up by spl_init() and before that, the simple malloc()
|
||||||
|
can be used if CONFIG_SYS_MALLOC_F is defined.
|
||||||
|
|
||||||
|
CONFIG_SYS_SPL_MALLOC_SIZE
|
||||||
|
The size of the malloc pool used in SPL.
|
||||||
|
|
||||||
CONFIG_SPL_DISPLAY_PRINT
|
CONFIG_SPL_DISPLAY_PRINT
|
||||||
For ARM, enable an optional function to print more information
|
For ARM, enable an optional function to print more information
|
||||||
about the running system.
|
about the running system.
|
||||||
|
|
||||||
|
CONFIG_SPL_INIT_MINIMAL
|
||||||
|
Arch init code should be built for a very small image
|
||||||
|
|
||||||
|
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
|
||||||
|
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS
|
||||||
|
Sector and number of sectors to load kernel argument
|
||||||
|
parameters from when MMC is being used in raw mode
|
||||||
|
(for falcon mode)
|
||||||
|
|
||||||
|
CONFIG_SPL_FS_LOAD_PAYLOAD_NAME
|
||||||
|
Filename to read to load U-Boot when reading from filesystem
|
||||||
|
|
||||||
|
CONFIG_SPL_FS_LOAD_KERNEL_NAME
|
||||||
|
Filename to read to load kernel uImage when reading
|
||||||
|
from filesystem (for Falcon mode)
|
||||||
|
|
||||||
|
CONFIG_SPL_FS_LOAD_ARGS_NAME
|
||||||
|
Filename to read to load kernel argument parameters
|
||||||
|
when reading from filesystem (for Falcon mode)
|
||||||
|
|
||||||
CONFIG_SPL_MPC83XX_WAIT_FOR_NAND
|
CONFIG_SPL_MPC83XX_WAIT_FOR_NAND
|
||||||
Set this for NAND SPL on PPC mpc83xx targets, so that
|
Set this for NAND SPL on PPC mpc83xx targets, so that
|
||||||
start.S waits for the rest of the SPL to load before
|
start.S waits for the rest of the SPL to load before
|
||||||
continuing (the hardware starts execution after just
|
continuing (the hardware starts execution after just
|
||||||
loading the first page rather than the full 4K).
|
loading the first page rather than the full 4K).
|
||||||
|
|
||||||
|
CONFIG_SPL_SKIP_RELOCATE
|
||||||
|
Avoid SPL relocation
|
||||||
|
|
||||||
CONFIG_SPL_UBI
|
CONFIG_SPL_UBI
|
||||||
Support for a lightweight UBI (fastmap) scanner and
|
Support for a lightweight UBI (fastmap) scanner and
|
||||||
loader
|
loader
|
||||||
|
|
||||||
|
CONFIG_SPL_NAND_RAW_ONLY
|
||||||
|
Support to boot only raw u-boot.bin images. Use this only
|
||||||
|
if you need to save space.
|
||||||
|
|
||||||
|
CONFIG_SPL_COMMON_INIT_DDR
|
||||||
|
Set for common ddr init with serial presence detect in
|
||||||
|
SPL binary.
|
||||||
|
|
||||||
CONFIG_SYS_NAND_5_ADDR_CYCLE, CONFIG_SYS_NAND_PAGE_COUNT,
|
CONFIG_SYS_NAND_5_ADDR_CYCLE, CONFIG_SYS_NAND_PAGE_COUNT,
|
||||||
CONFIG_SYS_NAND_PAGE_SIZE, CONFIG_SYS_NAND_OOBSIZE,
|
CONFIG_SYS_NAND_PAGE_SIZE, CONFIG_SYS_NAND_OOBSIZE,
|
||||||
CONFIG_SYS_NAND_BLOCK_SIZE, CONFIG_SYS_NAND_BAD_BLOCK_POS,
|
CONFIG_SYS_NAND_BLOCK_SIZE, CONFIG_SYS_NAND_BAD_BLOCK_POS,
|
||||||
@ -1410,12 +1781,35 @@ The following options need to be configured:
|
|||||||
CONFIG_SPL_RAM_DEVICE
|
CONFIG_SPL_RAM_DEVICE
|
||||||
Support for running image already present in ram, in SPL binary
|
Support for running image already present in ram, in SPL binary
|
||||||
|
|
||||||
|
CONFIG_SPL_PAD_TO
|
||||||
|
Image offset to which the SPL should be padded before appending
|
||||||
|
the SPL payload. By default, this is defined as
|
||||||
|
CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
|
||||||
|
CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
|
||||||
|
payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
|
||||||
|
|
||||||
|
CONFIG_SPL_TARGET
|
||||||
|
Final target image containing SPL and payload. Some SPLs
|
||||||
|
use an arch-specific makefile fragment instead, for
|
||||||
|
example if more than one image needs to be produced.
|
||||||
|
|
||||||
CONFIG_SPL_FIT_PRINT
|
CONFIG_SPL_FIT_PRINT
|
||||||
Printing information about a FIT image adds quite a bit of
|
Printing information about a FIT image adds quite a bit of
|
||||||
code to SPL. So this is normally disabled in SPL. Use this
|
code to SPL. So this is normally disabled in SPL. Use this
|
||||||
option to re-enable it. This will affect the output of the
|
option to re-enable it. This will affect the output of the
|
||||||
bootm command when booting a FIT image.
|
bootm command when booting a FIT image.
|
||||||
|
|
||||||
|
- TPL framework
|
||||||
|
CONFIG_TPL
|
||||||
|
Enable building of TPL globally.
|
||||||
|
|
||||||
|
CONFIG_TPL_PAD_TO
|
||||||
|
Image offset to which the TPL should be padded before appending
|
||||||
|
the TPL payload. By default, this is defined as
|
||||||
|
CONFIG_SPL_MAX_SIZE, or 0 if CONFIG_SPL_MAX_SIZE is undefined.
|
||||||
|
CONFIG_SPL_PAD_TO must be either 0, meaning to append the SPL
|
||||||
|
payload without any padding, or >= CONFIG_SPL_MAX_SIZE.
|
||||||
|
|
||||||
- Interrupt support (PPC):
|
- Interrupt support (PPC):
|
||||||
|
|
||||||
There are common interrupt_init() and timer_interrupt()
|
There are common interrupt_init() and timer_interrupt()
|
||||||
@ -1459,6 +1853,16 @@ Configuration Settings:
|
|||||||
- CONFIG_SYS_PROMPT: This is what U-Boot prints on the console to
|
- CONFIG_SYS_PROMPT: This is what U-Boot prints on the console to
|
||||||
prompt for user input.
|
prompt for user input.
|
||||||
|
|
||||||
|
- CONFIG_SYS_CBSIZE: Buffer size for input from the Console
|
||||||
|
|
||||||
|
- CONFIG_SYS_PBSIZE: Buffer size for Console output
|
||||||
|
|
||||||
|
- CONFIG_SYS_MAXARGS: max. Number of arguments accepted for monitor commands
|
||||||
|
|
||||||
|
- CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
|
||||||
|
the application (usually a Linux kernel) when it is
|
||||||
|
booted
|
||||||
|
|
||||||
- CONFIG_SYS_BAUDRATE_TABLE:
|
- CONFIG_SYS_BAUDRATE_TABLE:
|
||||||
List of legal baudrate settings for this board.
|
List of legal baudrate settings for this board.
|
||||||
|
|
||||||
@ -1505,7 +1909,7 @@ Configuration Settings:
|
|||||||
- CONFIG_SYS_MALLOC_SIMPLE
|
- CONFIG_SYS_MALLOC_SIMPLE
|
||||||
Provides a simple and small malloc() and calloc() for those
|
Provides a simple and small malloc() and calloc() for those
|
||||||
boards which do not use the full malloc in SPL (which is
|
boards which do not use the full malloc in SPL (which is
|
||||||
enabled with CONFIG_SYS_SPL_MALLOC).
|
enabled with CONFIG_SYS_SPL_MALLOC_START).
|
||||||
|
|
||||||
- CONFIG_SYS_NONCACHED_MEMORY:
|
- CONFIG_SYS_NONCACHED_MEMORY:
|
||||||
Size of non-cached memory area. This area of memory will be
|
Size of non-cached memory area. This area of memory will be
|
||||||
@ -1526,6 +1930,12 @@ Configuration Settings:
|
|||||||
|
|
||||||
Non-cached memory is only supported on 32-bit ARM at present.
|
Non-cached memory is only supported on 32-bit ARM at present.
|
||||||
|
|
||||||
|
- CONFIG_SYS_BOOTM_LEN:
|
||||||
|
Normally compressed uImages are limited to an
|
||||||
|
uncompressed size of 8 MBytes. If this is not enough,
|
||||||
|
you can define CONFIG_SYS_BOOTM_LEN in your board config file
|
||||||
|
to adjust this setting to your needs.
|
||||||
|
|
||||||
- CONFIG_SYS_BOOTMAPSZ:
|
- CONFIG_SYS_BOOTMAPSZ:
|
||||||
Maximum size of memory mapped by the startup code of
|
Maximum size of memory mapped by the startup code of
|
||||||
the Linux kernel; all data that must be processed by
|
the Linux kernel; all data that must be processed by
|
||||||
@ -1538,6 +1948,11 @@ Configuration Settings:
|
|||||||
CONFIG_SYS_BOOTMAPSZ. If CONFIG_SYS_BOOTMAPSZ is undefined,
|
CONFIG_SYS_BOOTMAPSZ. If CONFIG_SYS_BOOTMAPSZ is undefined,
|
||||||
then the value in "bootm_size" will be used instead.
|
then the value in "bootm_size" will be used instead.
|
||||||
|
|
||||||
|
- CONFIG_SYS_BOOT_RAMDISK_HIGH:
|
||||||
|
Enable initrd_high functionality. If defined then the
|
||||||
|
initrd_high feature is enabled and the bootm ramdisk subcommand
|
||||||
|
is enabled.
|
||||||
|
|
||||||
- CONFIG_SYS_BOOT_GET_CMDLINE:
|
- CONFIG_SYS_BOOT_GET_CMDLINE:
|
||||||
Enables allocating and saving kernel cmdline in space between
|
Enables allocating and saving kernel cmdline in space between
|
||||||
"bootm_low" and "bootm_low" + BOOTMAPSZ.
|
"bootm_low" and "bootm_low" + BOOTMAPSZ.
|
||||||
@ -1546,10 +1961,38 @@ Configuration Settings:
|
|||||||
Enables allocating and saving a kernel copy of the bd_info in
|
Enables allocating and saving a kernel copy of the bd_info in
|
||||||
space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
|
space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
|
||||||
|
|
||||||
|
- CONFIG_SYS_MAX_FLASH_SECT:
|
||||||
|
Max number of sectors on a Flash chip
|
||||||
|
|
||||||
|
- CONFIG_SYS_FLASH_ERASE_TOUT:
|
||||||
|
Timeout for Flash erase operations (in ms)
|
||||||
|
|
||||||
|
- CONFIG_SYS_FLASH_WRITE_TOUT:
|
||||||
|
Timeout for Flash write operations (in ms)
|
||||||
|
|
||||||
|
- CONFIG_SYS_FLASH_LOCK_TOUT
|
||||||
|
Timeout for Flash set sector lock bit operation (in ms)
|
||||||
|
|
||||||
|
- CONFIG_SYS_FLASH_UNLOCK_TOUT
|
||||||
|
Timeout for Flash clear lock bits operation (in ms)
|
||||||
|
|
||||||
- CONFIG_SYS_FLASH_PROTECTION
|
- CONFIG_SYS_FLASH_PROTECTION
|
||||||
If defined, hardware flash sectors protection is used
|
If defined, hardware flash sectors protection is used
|
||||||
instead of U-Boot software protection.
|
instead of U-Boot software protection.
|
||||||
|
|
||||||
|
- CONFIG_SYS_DIRECT_FLASH_TFTP:
|
||||||
|
|
||||||
|
Enable TFTP transfers directly to flash memory;
|
||||||
|
without this option such a download has to be
|
||||||
|
performed in two steps: (1) download to RAM, and (2)
|
||||||
|
copy from RAM to flash.
|
||||||
|
|
||||||
|
The two-step approach is usually more reliable, since
|
||||||
|
you can check if the download worked before you erase
|
||||||
|
the flash, but in some situations (when system RAM is
|
||||||
|
too limited to allow for a temporary copy of the
|
||||||
|
downloaded image) this option may be very useful.
|
||||||
|
|
||||||
- CONFIG_SYS_FLASH_CFI:
|
- CONFIG_SYS_FLASH_CFI:
|
||||||
Define if the flash driver uses extra elements in the
|
Define if the flash driver uses extra elements in the
|
||||||
common flash structure for storing flash geometry.
|
common flash structure for storing flash geometry.
|
||||||
@ -1570,6 +2013,12 @@ Configuration Settings:
|
|||||||
s29ws-n MirrorBit flash has non-standard addresses for buffered
|
s29ws-n MirrorBit flash has non-standard addresses for buffered
|
||||||
write commands.
|
write commands.
|
||||||
|
|
||||||
|
- CONFIG_SYS_FLASH_QUIET_TEST
|
||||||
|
If this option is defined, the common CFI flash doesn't
|
||||||
|
print it's warning upon not recognized FLASH banks. This
|
||||||
|
is useful, if some of the configured banks are only
|
||||||
|
optionally available.
|
||||||
|
|
||||||
- CONFIG_FLASH_SHOW_PROGRESS
|
- CONFIG_FLASH_SHOW_PROGRESS
|
||||||
If defined (must be an integer), print out countdown
|
If defined (must be an integer), print out countdown
|
||||||
digits and dots. Recommended value: 45 (9..1) for 80
|
digits and dots. Recommended value: 45 (9..1) for 80
|
||||||
@ -1584,6 +2033,14 @@ Configuration Settings:
|
|||||||
while unprotecting/erasing/programming. Please only enable
|
while unprotecting/erasing/programming. Please only enable
|
||||||
this option if you really know what you are doing.
|
this option if you really know what you are doing.
|
||||||
|
|
||||||
|
- CONFIG_ENV_MAX_ENTRIES
|
||||||
|
|
||||||
|
Maximum number of entries in the hash table that is used
|
||||||
|
internally to store the environment settings. The default
|
||||||
|
setting is supposed to be generous and should work in most
|
||||||
|
cases. This setting can be used to tune behaviour; see
|
||||||
|
lib/hashtable.c for details.
|
||||||
|
|
||||||
- CONFIG_ENV_FLAGS_LIST_DEFAULT
|
- CONFIG_ENV_FLAGS_LIST_DEFAULT
|
||||||
- CONFIG_ENV_FLAGS_LIST_STATIC
|
- CONFIG_ENV_FLAGS_LIST_STATIC
|
||||||
Enable validation of the values given to environment variables when
|
Enable validation of the values given to environment variables when
|
||||||
@ -1729,6 +2186,10 @@ Low Level (hardware related) configuration options:
|
|||||||
used in assembly code, so it must not contain typecasts or
|
used in assembly code, so it must not contain typecasts or
|
||||||
integer size suffixes (e.g. "ULL").
|
integer size suffixes (e.g. "ULL").
|
||||||
|
|
||||||
|
- CONFIG_SYS_CCSR_DO_NOT_RELOCATE:
|
||||||
|
If this macro is defined, then CONFIG_SYS_CCSRBAR_PHYS will be
|
||||||
|
forced to a value that ensures that CCSR is not relocated.
|
||||||
|
|
||||||
- CONFIG_SYS_IMMR: Physical address of the Internal Memory.
|
- CONFIG_SYS_IMMR: Physical address of the Internal Memory.
|
||||||
DO NOT CHANGE unless you know exactly what you're
|
DO NOT CHANGE unless you know exactly what you're
|
||||||
doing! (11-4) [MPC8xx systems only]
|
doing! (11-4) [MPC8xx systems only]
|
||||||
@ -1746,6 +2207,24 @@ Low Level (hardware related) configuration options:
|
|||||||
U-Boot uses the following memory types:
|
U-Boot uses the following memory types:
|
||||||
- MPC8xx: IMMR (internal memory of the CPU)
|
- MPC8xx: IMMR (internal memory of the CPU)
|
||||||
|
|
||||||
|
- CONFIG_SYS_GBL_DATA_OFFSET:
|
||||||
|
|
||||||
|
Offset of the initial data structure in the memory
|
||||||
|
area defined by CONFIG_SYS_INIT_RAM_ADDR. Usually
|
||||||
|
CONFIG_SYS_GBL_DATA_OFFSET is chosen such that the initial
|
||||||
|
data is located at the end of the available space
|
||||||
|
(sometimes written as (CONFIG_SYS_INIT_RAM_SIZE -
|
||||||
|
GENERATED_GBL_DATA_SIZE), and the initial stack is just
|
||||||
|
below that area (growing from (CONFIG_SYS_INIT_RAM_ADDR +
|
||||||
|
CONFIG_SYS_GBL_DATA_OFFSET) downward.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
On the MPC824X (or other systems that use the data
|
||||||
|
cache for initial memory) the address chosen for
|
||||||
|
CONFIG_SYS_INIT_RAM_ADDR is basically arbitrary - it must
|
||||||
|
point to an otherwise UNUSED address space between
|
||||||
|
the top of RAM and the start of the PCI space.
|
||||||
|
|
||||||
- CONFIG_SYS_SCCR: System Clock and reset Control Register (15-27)
|
- CONFIG_SYS_SCCR: System Clock and reset Control Register (15-27)
|
||||||
|
|
||||||
- CONFIG_SYS_OR_TIMING_SDRAM:
|
- CONFIG_SYS_OR_TIMING_SDRAM:
|
||||||
@ -1799,6 +2278,12 @@ Low Level (hardware related) configuration options:
|
|||||||
one, specify here. Note that the value must resolve
|
one, specify here. Note that the value must resolve
|
||||||
to something your driver can deal with.
|
to something your driver can deal with.
|
||||||
|
|
||||||
|
- CONFIG_SYS_DDR_RAW_TIMING
|
||||||
|
Get DDR timing information from other than SPD. Common with
|
||||||
|
soldered DDR chips onboard without SPD. DDR raw timing
|
||||||
|
parameters are extracted from datasheet and hard-coded into
|
||||||
|
header files or board specific files.
|
||||||
|
|
||||||
- CONFIG_FSL_DDR_INTERACTIVE
|
- CONFIG_FSL_DDR_INTERACTIVE
|
||||||
Enable interactive DDR debugging. See doc/README.fsl-ddr.
|
Enable interactive DDR debugging. See doc/README.fsl-ddr.
|
||||||
|
|
||||||
@ -1808,6 +2293,10 @@ Low Level (hardware related) configuration options:
|
|||||||
- CONFIG_FSL_DDR_BIST
|
- CONFIG_FSL_DDR_BIST
|
||||||
Enable built-in memory test for Freescale DDR controllers.
|
Enable built-in memory test for Freescale DDR controllers.
|
||||||
|
|
||||||
|
- CONFIG_SYS_83XX_DDR_USES_CS0
|
||||||
|
Only for 83xx systems. If specified, then DDR should
|
||||||
|
be configured using CS0 and CS1 instead of CS2 and CS3.
|
||||||
|
|
||||||
- CONFIG_RMII
|
- CONFIG_RMII
|
||||||
Enable RMII mode for all FECs.
|
Enable RMII mode for all FECs.
|
||||||
Note that this is a global option, we can't
|
Note that this is a global option, we can't
|
||||||
@ -1853,6 +2342,11 @@ Low Level (hardware related) configuration options:
|
|||||||
proper). Code that needs stage-specific behavior should check
|
proper). Code that needs stage-specific behavior should check
|
||||||
this.
|
this.
|
||||||
|
|
||||||
|
- CONFIG_SYS_MPC85XX_NO_RESETVEC
|
||||||
|
Only for 85xx systems. If this variable is specified, the section
|
||||||
|
.resetvec is not kept and the section .bootpg is placed in the
|
||||||
|
previous 4k of the .text section.
|
||||||
|
|
||||||
- CONFIG_ARCH_MAP_SYSMEM
|
- CONFIG_ARCH_MAP_SYSMEM
|
||||||
Generally U-Boot (and in particular the md command) uses
|
Generally U-Boot (and in particular the md command) uses
|
||||||
effective address. It is therefore not necessary to regard
|
effective address. It is therefore not necessary to regard
|
||||||
@ -2084,7 +2578,6 @@ rarpboot- boot image via network using RARP/TFTP protocol
|
|||||||
diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd'
|
diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd'
|
||||||
loads - load S-Record file over serial line
|
loads - load S-Record file over serial line
|
||||||
loadb - load binary file over serial line (kermit mode)
|
loadb - load binary file over serial line (kermit mode)
|
||||||
loadm - load binary blob from source address to destination address
|
|
||||||
md - memory display
|
md - memory display
|
||||||
mm - memory modify (auto-incrementing)
|
mm - memory modify (auto-incrementing)
|
||||||
nm - memory modify (constant address)
|
nm - memory modify (constant address)
|
||||||
|
@ -5,7 +5,14 @@
|
|||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <api_public.h>
|
#include <api_public.h>
|
||||||
|
#include <lcd.h>
|
||||||
#include <log.h>
|
#include <log.h>
|
||||||
|
#include <video_font.h> /* Get font width and height */
|
||||||
|
|
||||||
|
/* lcd.h needs BMP_LOGO_HEIGHT to calculate CONSOLE_ROWS */
|
||||||
|
#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
|
||||||
|
#include <bmp_logo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* TODO(clchiou): add support of video device */
|
/* TODO(clchiou): add support of video device */
|
||||||
|
|
||||||
@ -19,6 +26,14 @@ int display_get_info(int type, struct display_info *di)
|
|||||||
debug("%s: unsupport display device type: %d\n",
|
debug("%s: unsupport display device type: %d\n",
|
||||||
__FILE__, type);
|
__FILE__, type);
|
||||||
return API_ENODEV;
|
return API_ENODEV;
|
||||||
|
#ifdef CONFIG_LCD
|
||||||
|
case DISPLAY_TYPE_LCD:
|
||||||
|
di->pixel_width = panel_info.vl_col;
|
||||||
|
di->pixel_height = panel_info.vl_row;
|
||||||
|
di->screen_rows = lcd_get_screen_rows();
|
||||||
|
di->screen_cols = lcd_get_screen_columns();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
di->type = type;
|
di->type = type;
|
||||||
@ -29,9 +44,16 @@ int display_draw_bitmap(ulong bitmap, int x, int y)
|
|||||||
{
|
{
|
||||||
if (!bitmap)
|
if (!bitmap)
|
||||||
return API_EINVAL;
|
return API_EINVAL;
|
||||||
|
#ifdef CONFIG_LCD
|
||||||
|
return lcd_display_bitmap(bitmap, x, y);
|
||||||
|
#else
|
||||||
return API_ENODEV;
|
return API_ENODEV;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_clear(void)
|
void display_clear(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_LCD
|
||||||
|
lcd_clear();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
50
arch/Kconfig
50
arch/Kconfig
@ -8,6 +8,9 @@ config CREATE_ARCH_SYMLINK
|
|||||||
config HAVE_ARCH_IOREMAP
|
config HAVE_ARCH_IOREMAP
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config NEEDS_MANUAL_RELOC
|
||||||
|
bool
|
||||||
|
|
||||||
config SYS_CACHE_SHIFT_4
|
config SYS_CACHE_SHIFT_4
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@ -53,8 +56,6 @@ config ARC
|
|||||||
select SUPPORT_OF_CONTROL
|
select SUPPORT_OF_CONTROL
|
||||||
select SYS_CACHE_SHIFT_7
|
select SYS_CACHE_SHIFT_7
|
||||||
select TIMER
|
select TIMER
|
||||||
select SYS_BIG_ENDIAN if CPU_BIG_ENDIAN
|
|
||||||
select SYS_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
|
|
||||||
|
|
||||||
config ARM
|
config ARM
|
||||||
bool "ARM architecture"
|
bool "ARM architecture"
|
||||||
@ -75,12 +76,9 @@ config M68K
|
|||||||
|
|
||||||
config MICROBLAZE
|
config MICROBLAZE
|
||||||
bool "MicroBlaze architecture"
|
bool "MicroBlaze architecture"
|
||||||
|
select NEEDS_MANUAL_RELOC
|
||||||
select SUPPORT_OF_CONTROL
|
select SUPPORT_OF_CONTROL
|
||||||
imply CMD_TIMER
|
imply CMD_IRQ
|
||||||
imply SPL_REGMAP if SPL
|
|
||||||
imply SPL_TIMER if SPL
|
|
||||||
imply TIMER
|
|
||||||
imply XILINX_TIMER
|
|
||||||
|
|
||||||
config MIPS
|
config MIPS
|
||||||
bool "MIPS architecture"
|
bool "MIPS architecture"
|
||||||
@ -137,7 +135,6 @@ config SANDBOX
|
|||||||
select BZIP2
|
select BZIP2
|
||||||
select CMD_POWEROFF
|
select CMD_POWEROFF
|
||||||
select DM
|
select DM
|
||||||
select DM_FUZZING_ENGINE
|
|
||||||
select DM_GPIO
|
select DM_GPIO
|
||||||
select DM_I2C
|
select DM_I2C
|
||||||
select DM_KEYBOARD
|
select DM_KEYBOARD
|
||||||
@ -146,6 +143,7 @@ config SANDBOX
|
|||||||
select DM_SPI
|
select DM_SPI
|
||||||
select DM_SPI_FLASH
|
select DM_SPI_FLASH
|
||||||
select GZIP_COMPRESSED
|
select GZIP_COMPRESSED
|
||||||
|
select HAVE_BLOCK_DEVICE
|
||||||
select LZO
|
select LZO
|
||||||
select OF_BOARD_SETUP
|
select OF_BOARD_SETUP
|
||||||
select PCI_ENDPOINT
|
select PCI_ENDPOINT
|
||||||
@ -166,12 +164,12 @@ config SANDBOX
|
|||||||
imply CMD_IO
|
imply CMD_IO
|
||||||
imply CMD_IOTRACE
|
imply CMD_IOTRACE
|
||||||
imply CMD_LZMADEC
|
imply CMD_LZMADEC
|
||||||
|
imply CMD_SATA
|
||||||
imply CMD_SF
|
imply CMD_SF
|
||||||
imply CMD_SF_TEST
|
imply CMD_SF_TEST
|
||||||
imply CRC32_VERIFY
|
imply CRC32_VERIFY
|
||||||
imply FAT_WRITE
|
imply FAT_WRITE
|
||||||
imply FIRMWARE
|
imply FIRMWARE
|
||||||
imply FUZZING_ENGINE_SANDBOX
|
|
||||||
imply HASH_VERIFY
|
imply HASH_VERIFY
|
||||||
imply LZMA
|
imply LZMA
|
||||||
imply TEE
|
imply TEE
|
||||||
@ -251,7 +249,7 @@ config X86
|
|||||||
imply DM_SPI
|
imply DM_SPI
|
||||||
imply DM_SPI_FLASH
|
imply DM_SPI_FLASH
|
||||||
imply DM_USB
|
imply DM_USB
|
||||||
imply VIDEO
|
imply DM_VIDEO
|
||||||
imply SYSRESET
|
imply SYSRESET
|
||||||
imply SPL_SYSRESET
|
imply SPL_SYSRESET
|
||||||
imply SYSRESET_X86
|
imply SYSRESET_X86
|
||||||
@ -373,9 +371,6 @@ config SYS_IMMR
|
|||||||
default 0xF0000000 if ARCH_MPC8313
|
default 0xF0000000 if ARCH_MPC8313
|
||||||
default 0xE0000000 if MPC83xx && !ARCH_MPC8313
|
default 0xE0000000 if MPC83xx && !ARCH_MPC8313
|
||||||
default 0x01000000 if ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
default 0x01000000 if ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
||||||
default 0xFFE00000 if ARCH_P1010 || ARCH_P1011 || ARCH_P1020 || \
|
|
||||||
ARCH_P1021 || ARCH_P1024 || ARCH_P1025 || \
|
|
||||||
ARCH_P2020
|
|
||||||
default SYS_CCSRBAR_DEFAULT
|
default SYS_CCSRBAR_DEFAULT
|
||||||
help
|
help
|
||||||
Address for the Internal Memory-Mapped Registers (IMMR) window used
|
Address for the Internal Memory-Mapped Registers (IMMR) window used
|
||||||
@ -451,33 +446,4 @@ source "arch/x86/Kconfig"
|
|||||||
source "arch/xtensa/Kconfig"
|
source "arch/xtensa/Kconfig"
|
||||||
source "arch/riscv/Kconfig"
|
source "arch/riscv/Kconfig"
|
||||||
|
|
||||||
if ARM || M68K || PPC
|
|
||||||
|
|
||||||
source "arch/Kconfig.nxp"
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
source "board/keymile/Kconfig"
|
source "board/keymile/Kconfig"
|
||||||
source "board/sunxi/Kconfig"
|
|
||||||
|
|
||||||
if MIPS || MICROBLAZE
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Endianness selection"
|
|
||||||
help
|
|
||||||
Some MIPS boards can be configured for either little or big endian
|
|
||||||
byte order. These modes require different U-Boot images. In general there
|
|
||||||
is one preferred byteorder for a particular system but some systems are
|
|
||||||
just as commonly used in the one or the other endianness.
|
|
||||||
|
|
||||||
config SYS_BIG_ENDIAN
|
|
||||||
bool "Big endian"
|
|
||||||
depends on (SUPPORTS_BIG_ENDIAN && MIPS) || MICROBLAZE
|
|
||||||
|
|
||||||
config SYS_LITTLE_ENDIAN
|
|
||||||
bool "Little endian"
|
|
||||||
depends on (SUPPORTS_LITTLE_ENDIAN && MIPS) || MICROBLAZE
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
253
arch/Kconfig.nxp
253
arch/Kconfig.nxp
@ -1,253 +0,0 @@
|
|||||||
config NXP_ESBC
|
|
||||||
bool "NXP ESBC (secure boot) functionality"
|
|
||||||
help
|
|
||||||
Enable Freescale Secure Boot feature. Normally selected by defconfig.
|
|
||||||
If unsure, do not change.
|
|
||||||
|
|
||||||
menu "Chain of trust / secure boot options"
|
|
||||||
depends on !FIT_SIGNATURE && NXP_ESBC
|
|
||||||
|
|
||||||
config CHAIN_OF_TRUST
|
|
||||||
select FSL_CAAM
|
|
||||||
select ARCH_MISC_INIT
|
|
||||||
select FSL_SEC_MON
|
|
||||||
select SPL_BOARD_INIT if (ARM && SPL)
|
|
||||||
select SPL_HASH if (ARM && SPL)
|
|
||||||
select SHA_HW_ACCEL
|
|
||||||
select SHA_PROG_HW_ACCEL
|
|
||||||
select ENV_IS_NOWHERE
|
|
||||||
select SYS_CPC_REINIT_F if MPC85xx && !SYS_RAMBOOT
|
|
||||||
select CMD_EXT4 if ARM
|
|
||||||
select CMD_EXT4_WRITE if ARM
|
|
||||||
imply CMD_BLOB
|
|
||||||
imply CMD_HASH if ARM
|
|
||||||
def_bool y
|
|
||||||
|
|
||||||
config CMD_ESBC_VALIDATE
|
|
||||||
bool "Enable the 'esbc_validate' and 'esbc_halt' commands"
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
This option enables two commands used for secure booting:
|
|
||||||
|
|
||||||
esbc_validate - validate signature using RSA verification
|
|
||||||
esbc_halt - put the core in spin loop (Secure Boot Only)
|
|
||||||
|
|
||||||
config ESBC_HDR_LS
|
|
||||||
bool
|
|
||||||
|
|
||||||
config ESBC_ADDR_64BIT
|
|
||||||
def_bool y
|
|
||||||
depends on ESBC_HDR_LS && FSL_LAYERSCAPE
|
|
||||||
help
|
|
||||||
For Layerscape based platforms, ESBC image Address in Header is 64bit.
|
|
||||||
|
|
||||||
config SYS_FSL_SFP_BE
|
|
||||||
def_bool y
|
|
||||||
depends on PPC || FSL_LSCH2 || ARCH_LS1021A
|
|
||||||
|
|
||||||
config SYS_FSL_SFP_LE
|
|
||||||
def_bool y
|
|
||||||
depends on !SYS_FSL_SFP_BE
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "SFP IP revision"
|
|
||||||
default SYS_FSL_SFP_VER_3_0 if PPC
|
|
||||||
default SYS_FSL_SFP_VER_3_4
|
|
||||||
|
|
||||||
config SYS_FSL_SFP_VER_3_0
|
|
||||||
bool "SFP version 3.0"
|
|
||||||
|
|
||||||
config SYS_FSL_SFP_VER_3_2
|
|
||||||
bool "SFP version 3.2"
|
|
||||||
|
|
||||||
config SYS_FSL_SFP_VER_3_4
|
|
||||||
bool "SFP version 3.4"
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config SPL_UBOOT_KEY_HASH
|
|
||||||
string "Non-SRK key hash for U-Boot public/private key pair"
|
|
||||||
depends on SPL
|
|
||||||
default ""
|
|
||||||
help
|
|
||||||
Set the key hash for U-Boot here if public/private key pair used to
|
|
||||||
sign U-boot are different from the SRK hash put in the fuse. Example
|
|
||||||
of a key hash is
|
|
||||||
41066b564c6ffcef40ccbc1e0a5d0d519604000c785d97bbefd25e4d288d1c8b.
|
|
||||||
Otherwise leave this empty.
|
|
||||||
|
|
||||||
if PPC
|
|
||||||
|
|
||||||
config BOOTSCRIPT_COPY_RAM
|
|
||||||
bool "Secure boot copies boot script to RAM"
|
|
||||||
help
|
|
||||||
On systems that support chain of trust booting, a number of addresses
|
|
||||||
are required to set variables that are used in the copying and then
|
|
||||||
verification of different parts of the system. If enabled, the subsequent
|
|
||||||
options are for what location to use in each step.
|
|
||||||
|
|
||||||
config BS_ADDR_DEVICE
|
|
||||||
hex "Address in RAM for bs_device"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BS_SIZE
|
|
||||||
hex "The size of bs_size which is the amount read from bs_device"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BS_ADDR_RAM
|
|
||||||
hex "Address in RAM for bs_ram"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BS_HDR_ADDR_DEVICE
|
|
||||||
hex "Address in RAM for bs_hdr_device"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BS_HDR_SIZE
|
|
||||||
hex "The size of bs_hdr_size which is the amount read from bs_hdr_device"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BS_HDR_ADDR_RAM
|
|
||||||
hex "Address in RAM for bs_hdr_ram"
|
|
||||||
depends on BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
config BOOTSCRIPT_HDR_ADDR
|
|
||||||
hex "CONFIG_BOOTSCRIPT_HDR_ADDR"
|
|
||||||
default BS_ADDR_RAM if BOOTSCRIPT_COPY_RAM
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config SYS_FSL_SRK_LE
|
|
||||||
def_bool y
|
|
||||||
depends on ARM
|
|
||||||
|
|
||||||
config KEY_REVOCATION
|
|
||||||
def_bool y
|
|
||||||
|
|
||||||
endmenu
|
|
||||||
|
|
||||||
comment "Other functionality shared between NXP SoCs"
|
|
||||||
|
|
||||||
config DEEP_SLEEP
|
|
||||||
bool "Enable SoC deep sleep feature"
|
|
||||||
depends on ARCH_T1024 || ARCH_T1040 || ARCH_T1042 || ARCH_LS1021A
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
Indicates this SoC supports deep sleep feature. If deep sleep is
|
|
||||||
supported, core will start to execute uboot when wakes up.
|
|
||||||
|
|
||||||
config LAYERSCAPE_NS_ACCESS
|
|
||||||
bool "Layerscape non-secure access support"
|
|
||||||
depends on ARCH_LS1021A || FSL_LSCH2
|
|
||||||
|
|
||||||
config PCIE1
|
|
||||||
bool "PCIe controller #1"
|
|
||||||
depends on LAYERSCAPE_NS_ACCESS || PPC
|
|
||||||
|
|
||||||
config PCIE2
|
|
||||||
bool "PCIe controller #2"
|
|
||||||
depends on LAYERSCAPE_NS_ACCESS || PPC
|
|
||||||
|
|
||||||
config PCIE3
|
|
||||||
bool "PCIe controller #3"
|
|
||||||
depends on LAYERSCAPE_NS_ACCESS || PPC
|
|
||||||
|
|
||||||
config PCIE4
|
|
||||||
bool "PCIe controller #4"
|
|
||||||
depends on LAYERSCAPE_NS_ACCESS || PPC
|
|
||||||
|
|
||||||
config FSL_USE_PCA9547_MUX
|
|
||||||
bool "Enable PCA9547 I2C Mux on Freescale boards"
|
|
||||||
depends on PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
|
||||||
help
|
|
||||||
This option enables the PCA9547 I2C mux on Freescale boards.
|
|
||||||
|
|
||||||
config VID
|
|
||||||
bool "Enable Freescale VID"
|
|
||||||
depends on (PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3) && (I2C || DM_I2C)
|
|
||||||
help
|
|
||||||
This option enables setting core voltage based on individual
|
|
||||||
values saved in SoC fuses.
|
|
||||||
|
|
||||||
config SPL_VID
|
|
||||||
bool "Enable Freescale VID in SPL"
|
|
||||||
depends on (PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3) && (SPL_I2C || DM_SPL_I2C)
|
|
||||||
help
|
|
||||||
This option enables setting core voltage based on individual
|
|
||||||
values saved in SoC fuses, in SPL.
|
|
||||||
|
|
||||||
if VID || SPL_VID
|
|
||||||
|
|
||||||
config VID_FLS_ENV
|
|
||||||
string "Environment variable for overriding VDD"
|
|
||||||
help
|
|
||||||
This option allows for specifying the environment variable
|
|
||||||
to check to override VDD information.
|
|
||||||
|
|
||||||
config VOL_MONITOR_INA220
|
|
||||||
bool "Enable the INA220 voltage monitor read"
|
|
||||||
help
|
|
||||||
This option enables INA220 voltage monitor read
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_IR36021_READ
|
|
||||||
bool "Enable the IR36021 voltage monitor read"
|
|
||||||
help
|
|
||||||
This option enables IR36021 voltage monitor read
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_IR36021_SET
|
|
||||||
bool "Enable the IR36021 voltage monitor set"
|
|
||||||
help
|
|
||||||
This option enables IR36021 voltage monitor set
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_LTC3882_READ
|
|
||||||
bool "Enable the LTC3882 voltage monitor read"
|
|
||||||
help
|
|
||||||
This option enables LTC3882 voltage monitor read
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_LTC3882_SET
|
|
||||||
bool "Enable the LTC3882 voltage monitor set"
|
|
||||||
help
|
|
||||||
This option enables LTC3882 voltage monitor set
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_ISL68233_READ
|
|
||||||
bool "Enable the ISL68233 voltage monitor read"
|
|
||||||
help
|
|
||||||
This option enables ISL68233 voltage monitor read
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
config VOL_MONITOR_ISL68233_SET
|
|
||||||
bool "Enable the ISL68233 voltage monitor set"
|
|
||||||
help
|
|
||||||
This option enables ISL68233 voltage monitor set
|
|
||||||
functionality. It is used by the common VID driver.
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
config SYS_FSL_NUM_CC_PLLS
|
|
||||||
int "Number of clock control PLLs"
|
|
||||||
depends on MPC85xx || FSL_LSCH2 || FSL_LSCH3 || ARCH_LS1021A || ARCH_LS1028A
|
|
||||||
default 2 if ARCH_LS1021A || ARCH_LS1028A || FSL_LSCH2
|
|
||||||
default 6 if FSL_LSCH3 || MPC85xx
|
|
||||||
|
|
||||||
config SYS_FSL_ESDHC_BE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_IFC_BE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config FSL_QIXIS
|
|
||||||
bool "Enable QIXIS support"
|
|
||||||
depends on PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
|
||||||
|
|
||||||
config QIXIS_I2C_ACCESS
|
|
||||||
bool "Access to QIXIS is over i2c"
|
|
||||||
depends on FSL_QIXIS
|
|
||||||
default y
|
|
||||||
|
|
||||||
config HAS_FSL_DR_USB
|
|
||||||
def_bool y
|
|
||||||
depends on USB_EHCI_HCD && PPC
|
|
@ -2,6 +2,12 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
|
# Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
|
||||||
|
|
||||||
|
ifndef CONFIG_CPU_BIG_ENDIAN
|
||||||
|
CONFIG_SYS_LITTLE_ENDIAN = 1
|
||||||
|
else
|
||||||
|
CONFIG_SYS_BIG_ENDIAN = 1
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_SYS_LITTLE_ENDIAN
|
ifdef CONFIG_SYS_LITTLE_ENDIAN
|
||||||
KBUILD_LDFLAGS += -EL
|
KBUILD_LDFLAGS += -EL
|
||||||
PLATFORM_CPPFLAGS += -mlittle-endian
|
PLATFORM_CPPFLAGS += -mlittle-endian
|
||||||
|
@ -10,7 +10,7 @@ OUTPUT_ARCH(arc)
|
|||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = CONFIG_TEXT_BASE;
|
. = CONFIG_SYS_TEXT_BASE;
|
||||||
__image_copy_start = .;
|
__image_copy_start = .;
|
||||||
. = ALIGN(1024);
|
. = ALIGN(1024);
|
||||||
__ivt_start = .;
|
__ivt_start = .;
|
||||||
@ -39,8 +39,8 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -6,4 +6,6 @@
|
|||||||
#ifndef __ASM_ARC_CONFIG_H_
|
#ifndef __ASM_ARC_CONFIG_H_
|
||||||
#define __ASM_ARC_CONFIG_H_
|
#define __ASM_ARC_CONFIG_H_
|
||||||
|
|
||||||
|
#define CONFIG_SYS_BOOT_RAMDISK_HIGH
|
||||||
|
|
||||||
#endif /*__ASM_ARC_CONFIG_H_ */
|
#endif /*__ASM_ARC_CONFIG_H_ */
|
||||||
|
@ -22,18 +22,16 @@ static int cleanup_before_linux(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__weak int board_prep_linux(struct bootm_headers *images) { return 0; }
|
__weak int board_prep_linux(bootm_headers_t *images) { return 0; }
|
||||||
|
|
||||||
/* Subcommand: PREP */
|
/* Subcommand: PREP */
|
||||||
static int boot_prep_linux(struct bootm_headers *images)
|
static int boot_prep_linux(bootm_headers_t *images)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (CONFIG_IS_ENABLED(LMB)) {
|
ret = image_setup_linux(images);
|
||||||
ret = image_setup_linux(images);
|
if (ret)
|
||||||
if (ret)
|
return ret;
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return board_prep_linux(images);
|
return board_prep_linux(images);
|
||||||
}
|
}
|
||||||
@ -49,7 +47,7 @@ __weak void board_jump_and_run(ulong entry, int zero, int arch, uint params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Subcommand: GO */
|
/* Subcommand: GO */
|
||||||
static void boot_jump_linux(struct bootm_headers *images, int flag)
|
static void boot_jump_linux(bootm_headers_t *images, int flag)
|
||||||
{
|
{
|
||||||
ulong kernel_entry;
|
ulong kernel_entry;
|
||||||
unsigned int r0, r2;
|
unsigned int r0, r2;
|
||||||
@ -79,7 +77,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)
|
|||||||
board_jump_and_run(kernel_entry, r0, 0, r2);
|
board_jump_and_run(kernel_entry, r0, 0, r2);
|
||||||
}
|
}
|
||||||
|
|
||||||
int do_bootm_linux(int flag, int argc, char *argv[], struct bootm_headers *images)
|
int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
|
||||||
{
|
{
|
||||||
/* No need for those on ARC */
|
/* No need for those on ARC */
|
||||||
if ((flag & BOOTM_STATE_OS_BD_T) || (flag & BOOTM_STATE_OS_CMDLINE))
|
if ((flag & BOOTM_STATE_OS_BD_T) || (flag & BOOTM_STATE_OS_CMDLINE))
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/arcregs.h>
|
#include <asm/arcregs.h>
|
||||||
#include <system-constants.h>
|
|
||||||
|
|
||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
/* Setup interrupt vector base that matches "__text_start" */
|
/* Setup interrupt vector base that matches "__text_start" */
|
||||||
@ -87,7 +86,7 @@ ENTRY(_start)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Establish C runtime stack and frame */
|
/* Establish C runtime stack and frame */
|
||||||
mov %sp, SYS_INIT_SP_ADDR
|
mov %sp, CONFIG_SYS_INIT_SP_ADDR
|
||||||
mov %fp, %sp
|
mov %fp, %sp
|
||||||
|
|
||||||
/* Allocate reserved area from current top of stack */
|
/* Allocate reserved area from current top of stack */
|
||||||
|
218
arch/arm/Kconfig
218
arch/arm/Kconfig
@ -93,7 +93,7 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE
|
|||||||
depends on LINUX_KERNEL_IMAGE_HEADER
|
depends on LINUX_KERNEL_IMAGE_HEADER
|
||||||
hex
|
hex
|
||||||
help
|
help
|
||||||
The value subtracted from CONFIG_TEXT_BASE to calculate the
|
The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
|
||||||
TEXT_OFFSET value written to the Linux kernel image header.
|
TEXT_OFFSET value written to the Linux kernel image header.
|
||||||
|
|
||||||
config GICV2
|
config GICV2
|
||||||
@ -330,6 +330,20 @@ config CPU_V7R
|
|||||||
select SYS_ARM_MPU
|
select SYS_ARM_MPU
|
||||||
select SYS_CACHE_SHIFT_6
|
select SYS_CACHE_SHIFT_6
|
||||||
|
|
||||||
|
config CPU_PXA
|
||||||
|
bool
|
||||||
|
select SYS_CACHE_SHIFT_5
|
||||||
|
imply SYS_ARM_MMU
|
||||||
|
|
||||||
|
config CPU_PXA27X
|
||||||
|
bool
|
||||||
|
select CPU_PXA
|
||||||
|
|
||||||
|
config CPU_SA1100
|
||||||
|
bool
|
||||||
|
select SYS_CACHE_SHIFT_5
|
||||||
|
imply SYS_ARM_MMU
|
||||||
|
|
||||||
config SYS_CPU
|
config SYS_CPU
|
||||||
default "arm720t" if CPU_ARM720T
|
default "arm720t" if CPU_ARM720T
|
||||||
default "arm920t" if CPU_ARM920T
|
default "arm920t" if CPU_ARM920T
|
||||||
@ -340,6 +354,8 @@ config SYS_CPU
|
|||||||
default "armv7" if CPU_V7A
|
default "armv7" if CPU_V7A
|
||||||
default "armv7" if CPU_V7R
|
default "armv7" if CPU_V7R
|
||||||
default "armv7m" if CPU_V7M
|
default "armv7m" if CPU_V7M
|
||||||
|
default "pxa" if CPU_PXA
|
||||||
|
default "sa1100" if CPU_SA1100
|
||||||
default "armv8" if ARM64
|
default "armv8" if ARM64
|
||||||
|
|
||||||
config SYS_ARM_ARCH
|
config SYS_ARM_ARCH
|
||||||
@ -353,11 +369,14 @@ config SYS_ARM_ARCH
|
|||||||
default 7 if CPU_V7A
|
default 7 if CPU_V7A
|
||||||
default 7 if CPU_V7M
|
default 7 if CPU_V7M
|
||||||
default 7 if CPU_V7R
|
default 7 if CPU_V7R
|
||||||
|
default 5 if CPU_PXA
|
||||||
|
default 4 if CPU_SA1100
|
||||||
default 8 if ARM64
|
default 8 if ARM64
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Select the ARM data write cache policy"
|
prompt "Select the ARM data write cache policy"
|
||||||
default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || RZA1
|
default SYS_ARM_CACHE_WRITETHROUGH if TARGET_BCMCYGNUS || \
|
||||||
|
CPU_PXA || RZA1
|
||||||
default SYS_ARM_CACHE_WRITEBACK
|
default SYS_ARM_CACHE_WRITEBACK
|
||||||
|
|
||||||
config SYS_ARM_CACHE_WRITEBACK
|
config SYS_ARM_CACHE_WRITEBACK
|
||||||
@ -488,15 +507,6 @@ config TPL_SYS_THUMB_BUILD
|
|||||||
density. For ARM architectures that support Thumb2 this flag will
|
density. For ARM architectures that support Thumb2 this flag will
|
||||||
result in Thumb2 code generated by GCC.
|
result in Thumb2 code generated by GCC.
|
||||||
|
|
||||||
config SYS_L2_PL310
|
|
||||||
bool "ARM PL310 L2 cache controller"
|
|
||||||
help
|
|
||||||
Enable support for ARM PL310 L2 cache controller in U-Boot
|
|
||||||
|
|
||||||
config SPL_SYS_L2_PL310
|
|
||||||
bool "ARM PL310 L2 cache controller in SPL"
|
|
||||||
help
|
|
||||||
Enable support for ARM PL310 L2 cache controller in SPL
|
|
||||||
|
|
||||||
config SYS_L2CACHE_OFF
|
config SYS_L2CACHE_OFF
|
||||||
bool "L2cache off"
|
bool "L2cache off"
|
||||||
@ -599,9 +609,6 @@ config ARM64_SUPPORT_AARCH32
|
|||||||
help
|
help
|
||||||
This ARM64 system supports AArch32 execution state.
|
This ARM64 system supports AArch32 execution state.
|
||||||
|
|
||||||
config S5P
|
|
||||||
def_bool y if ARCH_EXYNOS || ARCH_S5PC1XX
|
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Target select"
|
prompt "Target select"
|
||||||
default TARGET_HIKEY
|
default TARGET_HIKEY
|
||||||
@ -627,7 +634,6 @@ config ARCH_KIRKWOOD
|
|||||||
select BOARD_EARLY_INIT_F
|
select BOARD_EARLY_INIT_F
|
||||||
select CPU_ARM926EJS
|
select CPU_ARM926EJS
|
||||||
select GPIO_EXTRA_HEADER
|
select GPIO_EXTRA_HEADER
|
||||||
select TIMER
|
|
||||||
|
|
||||||
config ARCH_MVEBU
|
config ARCH_MVEBU
|
||||||
bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
|
bool "Marvell MVEBU family (Armada XP/375/38x/3700/7K/8K)"
|
||||||
@ -639,8 +645,6 @@ config ARCH_MVEBU
|
|||||||
select GPIO_EXTRA_HEADER
|
select GPIO_EXTRA_HEADER
|
||||||
select SPL_DM_SPI if SPL
|
select SPL_DM_SPI if SPL
|
||||||
select SPL_DM_SPI_FLASH if SPL
|
select SPL_DM_SPI_FLASH if SPL
|
||||||
select SPL_TIMER if SPL
|
|
||||||
select TIMER
|
|
||||||
select OF_CONTROL
|
select OF_CONTROL
|
||||||
select OF_SEPARATE
|
select OF_SEPARATE
|
||||||
select SPI
|
select SPI
|
||||||
@ -651,7 +655,6 @@ config ARCH_ORION5X
|
|||||||
select CPU_ARM926EJS
|
select CPU_ARM926EJS
|
||||||
select GPIO_EXTRA_HEADER
|
select GPIO_EXTRA_HEADER
|
||||||
select SPL_SEPARATE_BSS if SPL
|
select SPL_SEPARATE_BSS if SPL
|
||||||
select TIMER
|
|
||||||
|
|
||||||
config TARGET_STV0991
|
config TARGET_STV0991
|
||||||
bool "Support stv0991"
|
bool "Support stv0991"
|
||||||
@ -678,6 +681,31 @@ config ARCH_BCM283X
|
|||||||
imply CMD_DM
|
imply CMD_DM
|
||||||
imply FAT_WRITE
|
imply FAT_WRITE
|
||||||
|
|
||||||
|
config ARCH_BCM63158
|
||||||
|
bool "Broadcom BCM63158 family"
|
||||||
|
select DM
|
||||||
|
select OF_CONTROL
|
||||||
|
imply CMD_DM
|
||||||
|
|
||||||
|
config ARCH_BCM6753
|
||||||
|
bool "Broadcom BCM6753 family"
|
||||||
|
select CPU_V7A
|
||||||
|
select DM
|
||||||
|
select OF_CONTROL
|
||||||
|
imply CMD_DM
|
||||||
|
|
||||||
|
config ARCH_BCM68360
|
||||||
|
bool "Broadcom BCM68360 family"
|
||||||
|
select DM
|
||||||
|
select OF_CONTROL
|
||||||
|
imply CMD_DM
|
||||||
|
|
||||||
|
config ARCH_BCM6858
|
||||||
|
bool "Broadcom BCM6858 family"
|
||||||
|
select DM
|
||||||
|
select OF_CONTROL
|
||||||
|
imply CMD_DM
|
||||||
|
|
||||||
config ARCH_BCMSTB
|
config ARCH_BCMSTB
|
||||||
bool "Broadcom BCM7XXX family"
|
bool "Broadcom BCM7XXX family"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -690,12 +718,6 @@ config ARCH_BCMSTB
|
|||||||
This enables support for Broadcom ARM-based set-top box
|
This enables support for Broadcom ARM-based set-top box
|
||||||
chipsets, including the 7445 family of chips.
|
chipsets, including the 7445 family of chips.
|
||||||
|
|
||||||
config ARCH_BCMBCA
|
|
||||||
bool "Broadcom broadband chip family"
|
|
||||||
select DM
|
|
||||||
select OF_CONTROL
|
|
||||||
imply CMD_DM
|
|
||||||
|
|
||||||
config TARGET_VEXPRESS_CA9X4
|
config TARGET_VEXPRESS_CA9X4
|
||||||
bool "Support vexpress_ca9x4"
|
bool "Support vexpress_ca9x4"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -799,6 +821,7 @@ config ARCH_KEYSTONE
|
|||||||
select CMD_POWEROFF
|
select CMD_POWEROFF
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
select DDR_SPD
|
select DDR_SPD
|
||||||
|
select GPIO_EXTRA_HEADER
|
||||||
select SUPPORT_SPL
|
select SUPPORT_SPL
|
||||||
select SYS_ARCH_TIMER
|
select SYS_ARCH_TIMER
|
||||||
select SYS_THUMB_BUILD
|
select SYS_THUMB_BUILD
|
||||||
@ -894,20 +917,6 @@ config ARCH_IMX8ULP
|
|||||||
select OF_CONTROL
|
select OF_CONTROL
|
||||||
select SUPPORT_SPL
|
select SUPPORT_SPL
|
||||||
select GPIO_EXTRA_HEADER
|
select GPIO_EXTRA_HEADER
|
||||||
select MISC
|
|
||||||
select IMX_SENTINEL
|
|
||||||
imply CMD_DM
|
|
||||||
imply DM_EVENT
|
|
||||||
|
|
||||||
config ARCH_IMX9
|
|
||||||
bool "NXP i.MX9 platform"
|
|
||||||
select ARM64
|
|
||||||
select DM
|
|
||||||
select MACH_IMX
|
|
||||||
select SUPPORT_SPL
|
|
||||||
select GPIO_EXTRA_HEADER
|
|
||||||
select MISC
|
|
||||||
select IMX_SENTINEL
|
|
||||||
imply CMD_DM
|
imply CMD_DM
|
||||||
imply DM_EVENT
|
imply DM_EVENT
|
||||||
|
|
||||||
@ -978,11 +987,15 @@ config ARCH_MX6
|
|||||||
select SYS_FSL_HAS_SEC
|
select SYS_FSL_HAS_SEC
|
||||||
select SYS_FSL_SEC_COMPAT_4
|
select SYS_FSL_SEC_COMPAT_4
|
||||||
select SYS_FSL_SEC_LE
|
select SYS_FSL_SEC_LE
|
||||||
select SYS_L2_PL310 if !SYS_L2CACHE_OFF
|
|
||||||
imply MXC_GPIO
|
imply MXC_GPIO
|
||||||
imply SYS_THUMB_BUILD
|
imply SYS_THUMB_BUILD
|
||||||
imply SPL_SEPARATE_BSS
|
imply SPL_SEPARATE_BSS
|
||||||
|
|
||||||
|
if ARCH_MX6
|
||||||
|
config SPL_LDSCRIPT
|
||||||
|
default "arch/arm/mach-omap2/u-boot-spl.lds"
|
||||||
|
endif
|
||||||
|
|
||||||
config ARCH_MX5
|
config ARCH_MX5
|
||||||
bool "Freescale MX5"
|
bool "Freescale MX5"
|
||||||
select BOARD_EARLY_INIT_F
|
select BOARD_EARLY_INIT_F
|
||||||
@ -1006,6 +1019,7 @@ config ARCH_NPCM
|
|||||||
config ARCH_APPLE
|
config ARCH_APPLE
|
||||||
bool "Apple SoCs"
|
bool "Apple SoCs"
|
||||||
select ARM64
|
select ARM64
|
||||||
|
select BLK
|
||||||
select CLK
|
select CLK
|
||||||
select CMD_USB
|
select CMD_USB
|
||||||
select DM
|
select DM
|
||||||
@ -1016,7 +1030,7 @@ config ARCH_APPLE
|
|||||||
select DM_SERIAL
|
select DM_SERIAL
|
||||||
select DM_SPI
|
select DM_SPI
|
||||||
select DM_USB
|
select DM_USB
|
||||||
select VIDEO
|
select DM_VIDEO
|
||||||
select IOMMU
|
select IOMMU
|
||||||
select LINUX_KERNEL_IMAGE_HEADER
|
select LINUX_KERNEL_IMAGE_HEADER
|
||||||
select OF_BOARD_SETUP
|
select OF_BOARD_SETUP
|
||||||
@ -1102,6 +1116,7 @@ config ARCH_SOCFPGA
|
|||||||
select SPL_DM_SERIAL
|
select SPL_DM_SERIAL
|
||||||
select SPL_LIBCOMMON_SUPPORT
|
select SPL_LIBCOMMON_SUPPORT
|
||||||
select SPL_LIBGENERIC_SUPPORT
|
select SPL_LIBGENERIC_SUPPORT
|
||||||
|
select SPL_NAND_SUPPORT if SPL_NAND_DENALI
|
||||||
select SPL_OF_CONTROL
|
select SPL_OF_CONTROL
|
||||||
select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
|
select SPL_SEPARATE_BSS if TARGET_SOCFPGA_SOC64
|
||||||
select SPL_SERIAL
|
select SPL_SERIAL
|
||||||
@ -1133,17 +1148,64 @@ config ARCH_SOCFPGA
|
|||||||
|
|
||||||
config ARCH_SUNXI
|
config ARCH_SUNXI
|
||||||
bool "Support sunxi (Allwinner) SoCs"
|
bool "Support sunxi (Allwinner) SoCs"
|
||||||
select BOARD_SUNXI
|
select BINMAN
|
||||||
|
select CMD_GPIO
|
||||||
|
select CMD_MMC if MMC
|
||||||
|
select CMD_USB if DISTRO_DEFAULTS && USB_HOST
|
||||||
|
select CLK
|
||||||
|
select DM
|
||||||
|
select DM_ETH
|
||||||
|
select DM_GPIO
|
||||||
|
select DM_I2C if I2C
|
||||||
|
select DM_SPI if SPI
|
||||||
|
select DM_SPI_FLASH if SPI
|
||||||
|
select DM_KEYBOARD
|
||||||
|
select DM_MMC if MMC
|
||||||
|
select DM_SCSI if SCSI
|
||||||
|
select DM_SERIAL
|
||||||
select GPIO_EXTRA_HEADER
|
select GPIO_EXTRA_HEADER
|
||||||
|
select OF_BOARD_SETUP
|
||||||
select OF_CONTROL
|
select OF_CONTROL
|
||||||
select OF_SEPARATE
|
select OF_SEPARATE
|
||||||
select SPECIFY_CONSOLE_INDEX if SERIAL
|
select PINCTRL
|
||||||
|
select SPECIFY_CONSOLE_INDEX
|
||||||
|
select SPL_SEPARATE_BSS if SPL
|
||||||
select SPL_STACK_R if SPL
|
select SPL_STACK_R if SPL
|
||||||
select SPL_SYS_MALLOC_SIMPLE if SPL
|
select SPL_SYS_MALLOC_SIMPLE if SPL
|
||||||
select SPL_SYS_THUMB_BUILD if !ARM64
|
select SPL_SYS_THUMB_BUILD if !ARM64
|
||||||
|
select SUNXI_GPIO
|
||||||
|
select SYS_NS16550
|
||||||
select SYS_THUMB_BUILD if !ARM64
|
select SYS_THUMB_BUILD if !ARM64
|
||||||
|
select USB if DISTRO_DEFAULTS
|
||||||
|
select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST
|
||||||
|
select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST
|
||||||
select SPL_USE_TINY_PRINTF
|
select SPL_USE_TINY_PRINTF
|
||||||
|
select USE_PREBOOT
|
||||||
|
select SYS_RELOC_GD_ENV_ADDR
|
||||||
|
imply BOARD_LATE_INIT
|
||||||
|
imply CMD_DM
|
||||||
|
imply CMD_GPT
|
||||||
|
imply CMD_UBI if MTD_RAW_NAND
|
||||||
|
imply DISTRO_DEFAULTS
|
||||||
|
imply FAT_WRITE
|
||||||
|
imply FIT
|
||||||
|
imply OF_LIBFDT_OVERLAY
|
||||||
|
imply PRE_CONSOLE_BUFFER
|
||||||
|
imply SPL_GPIO
|
||||||
|
imply SPL_LIBCOMMON_SUPPORT
|
||||||
|
imply SPL_LIBGENERIC_SUPPORT
|
||||||
imply SPL_LOAD_FIT
|
imply SPL_LOAD_FIT
|
||||||
|
imply SPL_MMC if MMC
|
||||||
|
imply SPL_POWER
|
||||||
|
imply SPL_SERIAL
|
||||||
|
imply SYSRESET
|
||||||
|
imply SYSRESET_WATCHDOG
|
||||||
|
imply SYSRESET_WATCHDOG_AUTO
|
||||||
|
imply USB_EHCI_GENERIC
|
||||||
|
imply USB_ETHER if USB_MUSB_GADGET
|
||||||
|
imply USB_GADGET
|
||||||
|
imply USB_OHCI_GENERIC
|
||||||
|
imply WDT
|
||||||
|
|
||||||
config ARCH_U8500
|
config ARCH_U8500
|
||||||
bool "ST-Ericsson U8500 Series"
|
bool "ST-Ericsson U8500 Series"
|
||||||
@ -1184,18 +1246,6 @@ config ARCH_VERSAL
|
|||||||
imply BOARD_LATE_INIT
|
imply BOARD_LATE_INIT
|
||||||
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||||
|
|
||||||
config ARCH_VERSAL_NET
|
|
||||||
bool "Support Xilinx Keystone Platform"
|
|
||||||
select ARM64
|
|
||||||
select CLK
|
|
||||||
select DM
|
|
||||||
select DM_ETH if NET
|
|
||||||
select DM_MMC if MMC
|
|
||||||
select DM_SERIAL
|
|
||||||
select OF_CONTROL
|
|
||||||
imply BOARD_LATE_INIT
|
|
||||||
imply ENV_VARS_UBOOT_RUNTIME_CONFIG
|
|
||||||
|
|
||||||
config ARCH_VF610
|
config ARCH_VF610
|
||||||
bool "Freescale Vybrid"
|
bool "Freescale Vybrid"
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -1207,7 +1257,6 @@ config ARCH_VF610
|
|||||||
|
|
||||||
config ARCH_ZYNQ
|
config ARCH_ZYNQ
|
||||||
bool "Xilinx Zynq based platform"
|
bool "Xilinx Zynq based platform"
|
||||||
select ARM_TWD_TIMER
|
|
||||||
select CLK
|
select CLK
|
||||||
select CLK_ZYNQ
|
select CLK_ZYNQ
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
@ -1227,9 +1276,7 @@ config ARCH_ZYNQ
|
|||||||
select SPL_DM_SPI_FLASH if SPL
|
select SPL_DM_SPI_FLASH if SPL
|
||||||
select SPL_OF_CONTROL if SPL
|
select SPL_OF_CONTROL if SPL
|
||||||
select SPL_SEPARATE_BSS if SPL
|
select SPL_SEPARATE_BSS if SPL
|
||||||
select SPL_TIMER if SPL
|
|
||||||
select SUPPORT_SPL
|
select SUPPORT_SPL
|
||||||
select TIMER
|
|
||||||
imply ARCH_EARLY_INIT_R
|
imply ARCH_EARLY_INIT_R
|
||||||
imply BOARD_LATE_INIT
|
imply BOARD_LATE_INIT
|
||||||
imply CMD_CLK
|
imply CMD_CLK
|
||||||
@ -1304,12 +1351,6 @@ config ARCH_VEXPRESS64
|
|||||||
select ENV_IS_IN_FLASH if MTD
|
select ENV_IS_IN_FLASH if MTD
|
||||||
imply DISTRO_DEFAULTS
|
imply DISTRO_DEFAULTS
|
||||||
|
|
||||||
config TARGET_CORSTONE1000
|
|
||||||
bool "Support Corstone1000 Platform"
|
|
||||||
select ARM64
|
|
||||||
select PL01X_SERIAL
|
|
||||||
select DM
|
|
||||||
|
|
||||||
config TARGET_TOTAL_COMPUTE
|
config TARGET_TOTAL_COMPUTE
|
||||||
bool "Support Total Compute Platform"
|
bool "Support Total Compute Platform"
|
||||||
select ARM64
|
select ARM64
|
||||||
@ -1886,7 +1927,7 @@ config ARCH_STM32
|
|||||||
imply CMD_DM
|
imply CMD_DM
|
||||||
|
|
||||||
config ARCH_STI
|
config ARCH_STI
|
||||||
bool "Support STMicroelectronics SoCs"
|
bool "Support STMicrolectronics SoCs"
|
||||||
select BLK
|
select BLK
|
||||||
select CPU_V7A
|
select CPU_V7A
|
||||||
select DM
|
select DM
|
||||||
@ -1914,6 +1955,7 @@ config ARCH_STM32MP
|
|||||||
select OF_SYSTEM_SETUP
|
select OF_SYSTEM_SETUP
|
||||||
select PINCTRL
|
select PINCTRL
|
||||||
select REGMAP
|
select REGMAP
|
||||||
|
select SUPPORT_SPL
|
||||||
select SYSCON
|
select SYSCON
|
||||||
select SYSRESET
|
select SYSRESET
|
||||||
select SYS_THUMB_BUILD
|
select SYS_THUMB_BUILD
|
||||||
@ -1935,7 +1977,7 @@ config ARCH_STM32MP
|
|||||||
config ARCH_ROCKCHIP
|
config ARCH_ROCKCHIP
|
||||||
bool "Support Rockchip SoCs"
|
bool "Support Rockchip SoCs"
|
||||||
select BLK
|
select BLK
|
||||||
select BINMAN if SPL_OPTEE || SPL
|
select BINMAN if SPL_OPTEE || (SPL && !ARM64)
|
||||||
select DM
|
select DM
|
||||||
select DM_GPIO
|
select DM_GPIO
|
||||||
select DM_I2C
|
select DM_I2C
|
||||||
@ -2047,12 +2089,6 @@ config TARGET_XENGUEST_ARM64
|
|||||||
select SSCANF
|
select SSCANF
|
||||||
imply OF_HAS_PRIOR_STAGE
|
imply OF_HAS_PRIOR_STAGE
|
||||||
|
|
||||||
config ARCH_GXP
|
|
||||||
bool "Support HPE GXP SoCs"
|
|
||||||
select DM
|
|
||||||
select OF_CONTROL
|
|
||||||
imply CMD_DM
|
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config SUPPORT_PASSING_ATAGS
|
config SUPPORT_PASSING_ATAGS
|
||||||
@ -2087,7 +2123,6 @@ config SERIAL_TAG
|
|||||||
|
|
||||||
config STATIC_MACH_TYPE
|
config STATIC_MACH_TYPE
|
||||||
bool "Statically define the Machine ID number"
|
bool "Statically define the Machine ID number"
|
||||||
default y if TARGET_DS109 || TARGET_NOKIA_RX51 || TARGET_DS414 || DEFAULT_DEVICE_TREE = "sun7i-a20-icnova-swac"
|
|
||||||
help
|
help
|
||||||
When booting via ATAGs, enable this option if we know the correct
|
When booting via ATAGs, enable this option if we know the correct
|
||||||
machine ID number to use at compile time. Some systems will be
|
machine ID number to use at compile time. Some systems will be
|
||||||
@ -2096,10 +2131,6 @@ config STATIC_MACH_TYPE
|
|||||||
config MACH_TYPE
|
config MACH_TYPE
|
||||||
int "Machine ID number"
|
int "Machine ID number"
|
||||||
depends on STATIC_MACH_TYPE
|
depends on STATIC_MACH_TYPE
|
||||||
default 527 if TARGET_DS109
|
|
||||||
default 1955 if TARGET_NOKIA_RX51
|
|
||||||
default 3036 if TARGET_DS414
|
|
||||||
default 4283 if DEFAULT_DEVICE_TREE = "sun7i-a20-icnova-swac"
|
|
||||||
help
|
help
|
||||||
When booting via ATAGs, the machine type must be passed as a number.
|
When booting via ATAGs, the machine type must be passed as a number.
|
||||||
For the full list see https://www.arm.linux.org.uk/developer/machines
|
For the full list see https://www.arm.linux.org.uk/developer/machines
|
||||||
@ -2129,6 +2160,21 @@ config TI_SECURE_DEVICE
|
|||||||
authenticated) and the code. See the doc/README.ti-secure
|
authenticated) and the code. See the doc/README.ti-secure
|
||||||
file for further details.
|
file for further details.
|
||||||
|
|
||||||
|
if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
|
||||||
|
config ISW_ENTRY_ADDR
|
||||||
|
hex "Address in memory or XIP address of bootloader entry point"
|
||||||
|
default 0x402F4000 if AM43XX
|
||||||
|
default 0x402F0400 if AM33XX
|
||||||
|
default 0x40301350 if OMAP54XX
|
||||||
|
help
|
||||||
|
After any reset, the boot ROM searches the boot media for a valid
|
||||||
|
boot image. For non-XIP devices, the ROM then copies the image into
|
||||||
|
internal memory. For all boot modes, after the ROM processes the
|
||||||
|
boot image it eventually computes the entry point address depending
|
||||||
|
on the device type (secure/non-secure), boot media (xip/non-xip) and
|
||||||
|
image headers.
|
||||||
|
endif
|
||||||
|
|
||||||
config SYS_KWD_CONFIG
|
config SYS_KWD_CONFIG
|
||||||
string "kwbimage config file path"
|
string "kwbimage config file path"
|
||||||
depends on ARCH_KIRKWOOD || ARCH_MVEBU
|
depends on ARCH_KIRKWOOD || ARCH_MVEBU
|
||||||
@ -2145,16 +2191,12 @@ source "arch/arm/mach-at91/Kconfig"
|
|||||||
|
|
||||||
source "arch/arm/mach-bcm283x/Kconfig"
|
source "arch/arm/mach-bcm283x/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-bcmbca/Kconfig"
|
|
||||||
|
|
||||||
source "arch/arm/mach-bcmstb/Kconfig"
|
source "arch/arm/mach-bcmstb/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-davinci/Kconfig"
|
source "arch/arm/mach-davinci/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-exynos/Kconfig"
|
source "arch/arm/mach-exynos/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-hpe/gxp/Kconfig"
|
|
||||||
|
|
||||||
source "arch/arm/mach-highbank/Kconfig"
|
source "arch/arm/mach-highbank/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-integrator/Kconfig"
|
source "arch/arm/mach-integrator/Kconfig"
|
||||||
@ -2193,8 +2235,6 @@ source "arch/arm/mach-imx/imx8m/Kconfig"
|
|||||||
|
|
||||||
source "arch/arm/mach-imx/imx8ulp/Kconfig"
|
source "arch/arm/mach-imx/imx8ulp/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-imx/imx9/Kconfig"
|
|
||||||
|
|
||||||
source "arch/arm/mach-imx/imxrt/Kconfig"
|
source "arch/arm/mach-imx/imxrt/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-imx/mxs/Kconfig"
|
source "arch/arm/mach-imx/mxs/Kconfig"
|
||||||
@ -2245,8 +2285,6 @@ source "arch/arm/mach-zynqmp/Kconfig"
|
|||||||
|
|
||||||
source "arch/arm/mach-versal/Kconfig"
|
source "arch/arm/mach-versal/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/mach-versal-net/Kconfig"
|
|
||||||
|
|
||||||
source "arch/arm/mach-zynqmp-r5/Kconfig"
|
source "arch/arm/mach-zynqmp-r5/Kconfig"
|
||||||
|
|
||||||
source "arch/arm/cpu/armv7/Kconfig"
|
source "arch/arm/cpu/armv7/Kconfig"
|
||||||
@ -2260,7 +2298,7 @@ source "arch/arm/mach-nexell/Kconfig"
|
|||||||
source "arch/arm/mach-npcm/Kconfig"
|
source "arch/arm/mach-npcm/Kconfig"
|
||||||
|
|
||||||
source "board/armltd/total_compute/Kconfig"
|
source "board/armltd/total_compute/Kconfig"
|
||||||
source "board/armltd/corstone1000/Kconfig"
|
|
||||||
source "board/bosch/shc/Kconfig"
|
source "board/bosch/shc/Kconfig"
|
||||||
source "board/bosch/guardian/Kconfig"
|
source "board/bosch/guardian/Kconfig"
|
||||||
source "board/Marvell/octeontx/Kconfig"
|
source "board/Marvell/octeontx/Kconfig"
|
||||||
@ -2268,6 +2306,10 @@ source "board/Marvell/octeontx2/Kconfig"
|
|||||||
source "board/armltd/vexpress/Kconfig"
|
source "board/armltd/vexpress/Kconfig"
|
||||||
source "board/armltd/vexpress64/Kconfig"
|
source "board/armltd/vexpress64/Kconfig"
|
||||||
source "board/cortina/presidio-asic/Kconfig"
|
source "board/cortina/presidio-asic/Kconfig"
|
||||||
|
source "board/broadcom/bcm963158/Kconfig"
|
||||||
|
source "board/broadcom/bcm96753ref/Kconfig"
|
||||||
|
source "board/broadcom/bcm968360bg/Kconfig"
|
||||||
|
source "board/broadcom/bcm968580xref/Kconfig"
|
||||||
source "board/broadcom/bcmns3/Kconfig"
|
source "board/broadcom/bcmns3/Kconfig"
|
||||||
source "board/cavium/thunderx/Kconfig"
|
source "board/cavium/thunderx/Kconfig"
|
||||||
source "board/eets/pdu001/Kconfig"
|
source "board/eets/pdu001/Kconfig"
|
||||||
@ -2296,7 +2338,6 @@ source "board/hisilicon/poplar/Kconfig"
|
|||||||
source "board/isee/igep003x/Kconfig"
|
source "board/isee/igep003x/Kconfig"
|
||||||
source "board/kontron/sl28/Kconfig"
|
source "board/kontron/sl28/Kconfig"
|
||||||
source "board/myir/mys_6ulx/Kconfig"
|
source "board/myir/mys_6ulx/Kconfig"
|
||||||
source "board/siemens/common/Kconfig"
|
|
||||||
source "board/seeed/npi_imx6ull/Kconfig"
|
source "board/seeed/npi_imx6ull/Kconfig"
|
||||||
source "board/socionext/developerbox/Kconfig"
|
source "board/socionext/developerbox/Kconfig"
|
||||||
source "board/st/stv0991/Kconfig"
|
source "board/st/stv0991/Kconfig"
|
||||||
@ -2311,3 +2352,8 @@ source "board/xen/xenguest_arm64/Kconfig"
|
|||||||
source "arch/arm/Kconfig.debug"
|
source "arch/arm/Kconfig.debug"
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
config SPL_LDSCRIPT
|
||||||
|
default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
|
||||||
|
default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
|
||||||
|
default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
|
||||||
|
@ -10,6 +10,8 @@ arch-$(CONFIG_CPU_ARM720T) =-march=armv4
|
|||||||
arch-$(CONFIG_CPU_ARM920T) =-march=armv4t
|
arch-$(CONFIG_CPU_ARM920T) =-march=armv4t
|
||||||
arch-$(CONFIG_CPU_ARM926EJS) =-march=armv5te
|
arch-$(CONFIG_CPU_ARM926EJS) =-march=armv5te
|
||||||
arch-$(CONFIG_CPU_ARM946ES) =-march=armv5te
|
arch-$(CONFIG_CPU_ARM946ES) =-march=armv5te
|
||||||
|
arch-$(CONFIG_CPU_SA1100) =-march=armv4
|
||||||
|
arch-$(CONFIG_CPU_PXA) =
|
||||||
arch-$(CONFIG_CPU_ARM1136) =-march=armv5t
|
arch-$(CONFIG_CPU_ARM1136) =-march=armv5t
|
||||||
arch-$(CONFIG_CPU_ARM1176) =-march=armv5t
|
arch-$(CONFIG_CPU_ARM1176) =-march=armv5t
|
||||||
arch-$(CONFIG_CPU_V7A) =$(call cc-option, -march=armv7-a, \
|
arch-$(CONFIG_CPU_V7A) =$(call cc-option, -march=armv7-a, \
|
||||||
@ -38,6 +40,8 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi
|
|||||||
tune-$(CONFIG_CPU_ARM920T) =
|
tune-$(CONFIG_CPU_ARM920T) =
|
||||||
tune-$(CONFIG_CPU_ARM926EJS) =
|
tune-$(CONFIG_CPU_ARM926EJS) =
|
||||||
tune-$(CONFIG_CPU_ARM946ES) =
|
tune-$(CONFIG_CPU_ARM946ES) =
|
||||||
|
tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100
|
||||||
|
tune-$(CONFIG_CPU_PXA) =-mcpu=xscale
|
||||||
tune-$(CONFIG_CPU_ARM1136) =
|
tune-$(CONFIG_CPU_ARM1136) =
|
||||||
tune-$(CONFIG_CPU_ARM1176) =
|
tune-$(CONFIG_CPU_ARM1176) =
|
||||||
tune-$(CONFIG_CPU_V7A) =-mtune=generic-armv7-a
|
tune-$(CONFIG_CPU_V7A) =-mtune=generic-armv7-a
|
||||||
@ -55,11 +59,9 @@ machine-$(CONFIG_ARCH_APPLE) += apple
|
|||||||
machine-$(CONFIG_ARCH_ASPEED) += aspeed
|
machine-$(CONFIG_ARCH_ASPEED) += aspeed
|
||||||
machine-$(CONFIG_ARCH_AT91) += at91
|
machine-$(CONFIG_ARCH_AT91) += at91
|
||||||
machine-$(CONFIG_ARCH_BCM283X) += bcm283x
|
machine-$(CONFIG_ARCH_BCM283X) += bcm283x
|
||||||
machine-$(CONFIG_ARCH_BCMBCA) += bcmbca
|
|
||||||
machine-$(CONFIG_ARCH_BCMSTB) += bcmstb
|
machine-$(CONFIG_ARCH_BCMSTB) += bcmstb
|
||||||
machine-$(CONFIG_ARCH_DAVINCI) += davinci
|
machine-$(CONFIG_ARCH_DAVINCI) += davinci
|
||||||
machine-$(CONFIG_ARCH_EXYNOS) += exynos
|
machine-$(CONFIG_ARCH_EXYNOS) += exynos
|
||||||
machine-$(CONFIG_ARCH_GXP) += hpe
|
|
||||||
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
|
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
|
||||||
machine-$(CONFIG_ARCH_IPQ40XX) += ipq40xx
|
machine-$(CONFIG_ARCH_IPQ40XX) += ipq40xx
|
||||||
machine-$(CONFIG_ARCH_K3) += k3
|
machine-$(CONFIG_ARCH_K3) += k3
|
||||||
@ -88,13 +90,10 @@ machine-$(CONFIG_ARCH_OCTEONTX) += octeontx
|
|||||||
machine-$(CONFIG_ARCH_OCTEONTX2) += octeontx2
|
machine-$(CONFIG_ARCH_OCTEONTX2) += octeontx2
|
||||||
machine-$(CONFIG_ARCH_UNIPHIER) += uniphier
|
machine-$(CONFIG_ARCH_UNIPHIER) += uniphier
|
||||||
machine-$(CONFIG_ARCH_VERSAL) += versal
|
machine-$(CONFIG_ARCH_VERSAL) += versal
|
||||||
machine-$(CONFIG_ARCH_VERSAL_NET) += versal-net
|
|
||||||
machine-$(CONFIG_ARCH_ZYNQ) += zynq
|
machine-$(CONFIG_ARCH_ZYNQ) += zynq
|
||||||
machine-$(CONFIG_ARCH_ZYNQMP) += zynqmp
|
machine-$(CONFIG_ARCH_ZYNQMP) += zynqmp
|
||||||
machine-$(CONFIG_ARCH_ZYNQMP_R5) += zynqmp-r5
|
machine-$(CONFIG_ARCH_ZYNQMP_R5) += zynqmp-r5
|
||||||
|
|
||||||
machine-$(CONFIG_MACH_IMX) += imx
|
|
||||||
|
|
||||||
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
|
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
|
||||||
|
|
||||||
PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
|
PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
|
||||||
@ -104,8 +103,8 @@ libs-y += $(machdirs)
|
|||||||
head-y := arch/arm/cpu/$(CPU)/start.o
|
head-y := arch/arm/cpu/$(CPU)/start.o
|
||||||
|
|
||||||
ifeq ($(CONFIG_SPL_BUILD),y)
|
ifeq ($(CONFIG_SPL_BUILD),y)
|
||||||
ifeq ($(CONFIG_SYS_SOC)$(CONFIG_SPL_FRAMEWORK),"mxs")
|
ifneq ($(CONFIG_SPL_START_S_PATH),)
|
||||||
head-y := arch/arm/cpu/arm926ejs/mxs/start.o
|
head-y := $(CONFIG_SPL_START_S_PATH:"%"=%)/start.o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -113,6 +112,16 @@ libs-y += arch/arm/cpu/$(CPU)/
|
|||||||
libs-y += arch/arm/cpu/
|
libs-y += arch/arm/cpu/
|
||||||
libs-y += arch/arm/lib/
|
libs-y += arch/arm/lib/
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_SPL_BUILD),y)
|
||||||
|
ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8 imx8ulp imxrt))
|
||||||
|
libs-y += arch/arm/mach-imx/
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs imx8m imx8 imx8ulp imxrt vf610))
|
||||||
|
libs-y += arch/arm/mach-imx/
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq (,$(filter $(SOC), kirkwood))
|
ifneq (,$(filter $(SOC), kirkwood))
|
||||||
libs-y += arch/arm/mach-mvebu/
|
libs-y += arch/arm/mach-mvebu/
|
||||||
endif
|
endif
|
||||||
|
@ -15,11 +15,11 @@ CFLAGS_NON_EFI := -fno-pic -ffixed-r9 -ffunction-sections -fdata-sections \
|
|||||||
-fstack-protector-strong
|
-fstack-protector-strong
|
||||||
CFLAGS_EFI := -fpic -fshort-wchar
|
CFLAGS_EFI := -fpic -fshort-wchar
|
||||||
|
|
||||||
ifneq ($(LTO_ENABLE)$(CONFIG_USE_PRIVATE_LIBGCC),yy)
|
ifneq ($(CONFIG_LTO)$(CONFIG_USE_PRIVATE_LIBGCC),yy)
|
||||||
LDFLAGS_FINAL += --gc-sections
|
LDFLAGS_FINAL += --gc-sections
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(LTO_ENABLE),y)
|
ifndef CONFIG_LTO
|
||||||
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
|
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -141,11 +141,11 @@ endif
|
|||||||
# limit ourselves to the sections we want in the .bin.
|
# limit ourselves to the sections we want in the .bin.
|
||||||
ifdef CONFIG_ARM64
|
ifdef CONFIG_ARM64
|
||||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
|
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \
|
||||||
-j __u_boot_list -j .rela.dyn -j .got -j .got.plt \
|
-j .u_boot_list -j .rela.dyn -j .got -j .got.plt \
|
||||||
-j .binman_sym_table -j .text_rest
|
-j .binman_sym_table -j .text_rest
|
||||||
else
|
else
|
||||||
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
|
OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .hash \
|
||||||
-j .data -j .got -j .got.plt -j __u_boot_list -j .rel.dyn \
|
-j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn \
|
||||||
-j .binman_sym_table -j .text_rest
|
-j .binman_sym_table -j .text_rest
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ cpu_init_crit:
|
|||||||
|
|
||||||
/* Prepare to disable the MMU */
|
/* Prepare to disable the MMU */
|
||||||
adr r2, mmu_disable_phys
|
adr r2, mmu_disable_phys
|
||||||
sub r2, r2, #(CONFIG_SYS_PHY_UBOOT_BASE - CONFIG_TEXT_BASE)
|
sub r2, r2, #(CONFIG_SYS_PHY_UBOOT_BASE - CONFIG_SYS_TEXT_BASE)
|
||||||
b mmu_disable
|
b mmu_disable
|
||||||
|
|
||||||
.align 5
|
.align 5
|
||||||
|
@ -60,14 +60,14 @@ spl/u-boot-spl.ivt: spl/u-boot-spl.bin
|
|||||||
|
|
||||||
u-boot.ivt: u-boot.bin
|
u-boot.ivt: u-boot.bin
|
||||||
$(call if_changed,mkalign_mxs)
|
$(call if_changed,mkalign_mxs)
|
||||||
$(call if_changed,mkivt_mxs,$(CONFIG_TEXT_BASE),\
|
$(call if_changed,mkivt_mxs,$(CONFIG_SYS_TEXT_BASE),\
|
||||||
0x40001000,0x40001040)
|
0x40001000,0x40001040)
|
||||||
|
|
||||||
spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf
|
spl/u-boot-spl.csf: spl/u-boot-spl.ivt spl/u-boot-spl.bin board/$(VENDOR)/$(BOARD)/sign/u-boot-spl.csf
|
||||||
$(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000)
|
$(call if_changed,mkcsfreq_mxs,$(CONFIG_SPL_TEXT_BASE),0x8000)
|
||||||
|
|
||||||
u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf
|
u-boot.csf: u-boot.ivt u-boot.bin board/$(VENDOR)/$(BOARD)/sign/u-boot.csf
|
||||||
$(call if_changed,mkcsfreq_mxs,$(CONFIG_TEXT_BASE),0x40001000)
|
$(call if_changed,mkcsfreq_mxs,$(CONFIG_SYS_TEXT_BASE),0x40001000)
|
||||||
|
|
||||||
%.sig: %.csf
|
%.sig: %.csf
|
||||||
$(call if_changed,mkcst_mxs)
|
$(call if_changed,mkcst_mxs)
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include <asm-offsets.h>
|
#include <asm-offsets.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <system-constants.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*************************************************************************
|
*************************************************************************
|
||||||
@ -45,7 +44,7 @@ reset:
|
|||||||
* it point to the end of OCRAM if the SP is zero.
|
* it point to the end of OCRAM if the SP is zero.
|
||||||
*/
|
*/
|
||||||
cmp sp, #0x00000000
|
cmp sp, #0x00000000
|
||||||
ldreq sp, =SYS_INIT_SP_ADDR
|
ldreq sp, =CONFIG_SYS_INIT_SP_ADDR
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Store all registers on old stack pointer, this will allow us later to
|
* Store all registers on old stack pointer, this will allow us later to
|
||||||
|
@ -29,8 +29,8 @@ SECTIONS
|
|||||||
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
|
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
} > .sram
|
} > .sram
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -75,8 +75,7 @@ config ARMV7_PSCI
|
|||||||
choice
|
choice
|
||||||
prompt "Supported PSCI version"
|
prompt "Supported PSCI version"
|
||||||
depends on ARMV7_PSCI
|
depends on ARMV7_PSCI
|
||||||
default ARMV7_PSCI_1_1 if MACH_SUN8I_A33 || MACH_SUN8I_H3
|
default ARMV7_PSCI_1_1 if ARCH_SUNXI
|
||||||
default ARMV7_PSCI_0_1 if ARCH_SUNXI
|
|
||||||
default ARMV7_PSCI_1_0
|
default ARMV7_PSCI_1_0
|
||||||
help
|
help
|
||||||
Select the supported PSCI version.
|
Select the supported PSCI version.
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
#include <asm-offsets.h>
|
#include <asm-offsets.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <system-constants.h>
|
|
||||||
|
|
||||||
.pushsection .text.s_init, "ax"
|
.pushsection .text.s_init, "ax"
|
||||||
WEAK(s_init)
|
WEAK(s_init)
|
||||||
@ -29,7 +28,7 @@ WEAK(lowlevel_init)
|
|||||||
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
||||||
ldr sp, =CONFIG_SPL_STACK
|
ldr sp, =CONFIG_SPL_STACK
|
||||||
#else
|
#else
|
||||||
ldr sp, =SYS_INIT_SP_ADDR
|
ldr sp, =CONFIG_SYS_INIT_SP_ADDR
|
||||||
#endif
|
#endif
|
||||||
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
|
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
|
||||||
#ifdef CONFIG_SPL_DM
|
#ifdef CONFIG_SPL_DM
|
||||||
|
@ -3,7 +3,6 @@ config ARCH_LS1021A
|
|||||||
select FSL_IFC if !QSPI_BOOT && !SD_BOOT_QSPI
|
select FSL_IFC if !QSPI_BOOT && !SD_BOOT_QSPI
|
||||||
select SYS_FSL_DDR_BE if SYS_FSL_DDR
|
select SYS_FSL_DDR_BE if SYS_FSL_DDR
|
||||||
select SYS_FSL_DDR_VER_50 if SYS_FSL_DDR
|
select SYS_FSL_DDR_VER_50 if SYS_FSL_DDR
|
||||||
select SYS_FSL_IFC_BE
|
|
||||||
select SYS_FSL_ERRATUM_A008378
|
select SYS_FSL_ERRATUM_A008378
|
||||||
select SYS_FSL_ERRATUM_A008407
|
select SYS_FSL_ERRATUM_A008407
|
||||||
select SYS_FSL_ERRATUM_A008850 if SYS_FSL_DDR
|
select SYS_FSL_ERRATUM_A008850 if SYS_FSL_DDR
|
||||||
@ -13,7 +12,6 @@ config ARCH_LS1021A
|
|||||||
select SYS_FSL_ERRATUM_A009798 if USB
|
select SYS_FSL_ERRATUM_A009798 if USB
|
||||||
select SYS_FSL_ERRATUM_A009942
|
select SYS_FSL_ERRATUM_A009942
|
||||||
select SYS_FSL_ERRATUM_A010315
|
select SYS_FSL_ERRATUM_A010315
|
||||||
select SYS_FSL_ESDHC_BE
|
|
||||||
select SYS_FSL_HAS_CCI400
|
select SYS_FSL_HAS_CCI400
|
||||||
select SYS_FSL_HAS_DDR3 if SYS_FSL_DDR
|
select SYS_FSL_HAS_DDR3 if SYS_FSL_DDR
|
||||||
select SYS_FSL_HAS_DDR4 if SYS_FSL_DDR
|
select SYS_FSL_HAS_DDR4 if SYS_FSL_DDR
|
||||||
@ -43,6 +41,12 @@ config MAX_CPUS
|
|||||||
cores, count the reserved ports. This will allocate enough memory
|
cores, count the reserved ports. This will allocate enough memory
|
||||||
in spin table to properly handle all cores.
|
in spin table to properly handle all cores.
|
||||||
|
|
||||||
|
config NXP_ESBC
|
||||||
|
bool "NXP_ESBC"
|
||||||
|
help
|
||||||
|
Enable Freescale Secure Boot feature. Normally selected
|
||||||
|
by defconfig. If unsure, do not change.
|
||||||
|
|
||||||
config SYS_CCI400_OFFSET
|
config SYS_CCI400_OFFSET
|
||||||
hex "Offset for CCI400 base"
|
hex "Offset for CCI400 base"
|
||||||
depends on SYS_FSL_HAS_CCI400
|
depends on SYS_FSL_HAS_CCI400
|
||||||
|
@ -13,6 +13,10 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
#ifndef CONFIG_SYS_FSL_NUM_CC_PLLS
|
||||||
|
#define CONFIG_SYS_FSL_NUM_CC_PLLS 2
|
||||||
|
#endif
|
||||||
|
|
||||||
void get_sys_info(struct sys_info *sys_info)
|
void get_sys_info(struct sys_info *sys_info)
|
||||||
{
|
{
|
||||||
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
||||||
|
@ -146,9 +146,9 @@ void ft_cpu_setup(void *blob, struct bd_info *bd)
|
|||||||
* Since second uboot binary has a head, that space need to be
|
* Since second uboot binary has a head, that space need to be
|
||||||
* reserved either(assuming its size is less than 0x1000).
|
* reserved either(assuming its size is less than 0x1000).
|
||||||
*/
|
*/
|
||||||
off = fdt_add_mem_rsv(blob, CONFIG_TEXT_BASE - UBOOT_HEAD_LEN,
|
off = fdt_add_mem_rsv(blob, CONFIG_SYS_TEXT_BASE - UBOOT_HEAD_LEN,
|
||||||
CONFIG_SYS_MONITOR_LEN +
|
CONFIG_SYS_MONITOR_LEN + CONFIG_SYS_SPL_MALLOC_SIZE +
|
||||||
CONFIG_SYS_SPL_MALLOC_SIZE + UBOOT_HEAD_LEN);
|
UBOOT_HEAD_LEN);
|
||||||
if (off < 0)
|
if (off < 0)
|
||||||
printf("Failed to reserve memory for SD boot deep sleep: %s\n",
|
printf("Failed to reserve memory for SD boot deep sleep: %s\n",
|
||||||
fdt_strerror(off));
|
fdt_strerror(off));
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
# Copyright (C) 2009 Samsung Electronics
|
# Copyright (C) 2009 Samsung Electronics
|
||||||
# Minkyu Kang <mk7.kang@samsung.com>
|
# Minkyu Kang <mk7.kang@samsung.com>
|
||||||
|
|
||||||
obj-$(CONFIG_PWM_S5P) += pwm.o
|
|
||||||
ifdef CONFIG_ARCH_NEXELL
|
ifdef CONFIG_ARCH_NEXELL
|
||||||
|
obj-$(CONFIG_PWM_NX) += pwm.o
|
||||||
obj-$(CONFIG_S5P4418_ONEWIRE) += pwm.o
|
obj-$(CONFIG_S5P4418_ONEWIRE) += pwm.o
|
||||||
else
|
else
|
||||||
obj-y += cpu_info.o
|
obj-y += cpu_info.o
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
obj-y += timer.o
|
obj-y += timer.o
|
||||||
obj-y += sromc.o
|
obj-y += sromc.o
|
||||||
|
obj-$(CONFIG_PWM) += pwm.o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
* Minkyu Kang <mk7.kang@samsung.com>
|
* Minkyu Kang <mk7.kang@samsung.com>
|
||||||
*/
|
*/
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <display_options.h>
|
|
||||||
#include <fdtdec.h>
|
#include <fdtdec.h>
|
||||||
#include <init.h>
|
#include <init.h>
|
||||||
#include <asm/global_data.h>
|
#include <asm/global_data.h>
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/armv7.h>
|
#include <asm/armv7.h>
|
||||||
#include <system-constants.h>
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
*
|
*
|
||||||
@ -255,7 +254,7 @@ ENTRY(cpu_init_cp15)
|
|||||||
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
|
||||||
ldr r0, =(CONFIG_SPL_STACK)
|
ldr r0, =(CONFIG_SPL_STACK)
|
||||||
#else
|
#else
|
||||||
ldr r0, =(SYS_INIT_SP_ADDR)
|
ldr r0, =(CONFIG_SYS_INIT_SP_ADDR)
|
||||||
#endif
|
#endif
|
||||||
bic r0, r0, #7 /* 8-byte alignment for ABI compliance */
|
bic r0, r0, #7 /* 8-byte alignment for ABI compliance */
|
||||||
mov sp, r0
|
mov sp, r0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
/*
|
/*
|
||||||
* (C) Copyright 2014 STMicroelectronics
|
* (C) Copyright 2014 stmicroelectronics
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -13,7 +13,7 @@ obj-$(CONFIG_MACH_SUN6I) += sram.o
|
|||||||
obj-$(CONFIG_MACH_SUN8I) += sram.o
|
obj-$(CONFIG_MACH_SUN8I) += sram.o
|
||||||
|
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
ifneq ($(CONFIG_MACH_SUN8I_A33)$(CONFIG_MACH_SUN8I_H3),)
|
ifdef CONFIG_MACH_SUN8I_H3
|
||||||
obj-$(CONFIG_ARMV7_PSCI) += psci-scpi.o
|
obj-$(CONFIG_ARMV7_PSCI) += psci-scpi.o
|
||||||
else
|
else
|
||||||
obj-$(CONFIG_ARMV7_PSCI) += psci.o
|
obj-$(CONFIG_ARMV7_PSCI) += psci.o
|
||||||
|
@ -24,11 +24,7 @@
|
|||||||
#define MPIDR_AFFLVL0(mpidr) (mpidr & 0xf)
|
#define MPIDR_AFFLVL0(mpidr) (mpidr & 0xf)
|
||||||
#define MPIDR_AFFLVL1(mpidr) (mpidr >> 8 & 0xf)
|
#define MPIDR_AFFLVL1(mpidr) (mpidr >> 8 & 0xf)
|
||||||
|
|
||||||
#if defined(CONFIG_MACH_SUN8I_H3)
|
|
||||||
#define SCPI_SHMEM_BASE 0x0004be00
|
#define SCPI_SHMEM_BASE 0x0004be00
|
||||||
#else
|
|
||||||
#define SCPI_SHMEM_BASE 0x00053e00
|
|
||||||
#endif
|
|
||||||
#define SCPI_SHMEM ((struct scpi_shmem *)SCPI_SHMEM_BASE)
|
#define SCPI_SHMEM ((struct scpi_shmem *)SCPI_SHMEM_BASE)
|
||||||
|
|
||||||
#define SCPI_RX_CHANNEL 1
|
#define SCPI_RX_CHANNEL 1
|
||||||
@ -402,12 +398,12 @@ static void __secure sunxi_set_entry_address(void *entry)
|
|||||||
|
|
||||||
writel((u32)entry, &cpucfg->priv0);
|
writel((u32)entry, &cpucfg->priv0);
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_SUN8I_H3
|
if (IS_ENABLED(CONFIG_MACH_SUN8I_H3)) {
|
||||||
/* Redirect CPU 0 to the secure monitor via the resume shim. */
|
/* Redirect CPU 0 to the secure monitor via the resume shim. */
|
||||||
writel(0x16aaefe8, &cpucfg->super_standy_flag);
|
writel(0x16aaefe8, &cpucfg->super_standy_flag);
|
||||||
writel(0xaa16efe8, &cpucfg->super_standy_flag);
|
writel(0xaa16efe8, &cpucfg->super_standy_flag);
|
||||||
writel(SUNXI_RESUME_BASE, &cpucfg->priv1);
|
writel(SUNXI_RESUME_BASE, &cpucfg->priv1);
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ static void __secure sunxi_cpu_set_power(int cpu, bool on)
|
|||||||
|
|
||||||
sunxi_power_switch((void *)cpucfg + SUN8I_R40_PWR_CLAMP(cpu),
|
sunxi_power_switch((void *)cpucfg + SUN8I_R40_PWR_CLAMP(cpu),
|
||||||
(void *)cpucfg + SUN8I_R40_PWROFF,
|
(void *)cpucfg + SUN8I_R40_PWROFF,
|
||||||
on, cpu);
|
on, 0);
|
||||||
}
|
}
|
||||||
#else /* ! CONFIG_MACH_SUN7I && ! CONFIG_MACH_SUN8I_R40 */
|
#else /* ! CONFIG_MACH_SUN7I && ! CONFIG_MACH_SUN8I_R40 */
|
||||||
static void __secure sunxi_cpu_set_power(int cpu, bool on)
|
static void __secure sunxi_cpu_set_power(int cpu, bool on)
|
||||||
|
@ -38,8 +38,8 @@ SECTIONS
|
|||||||
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
|
.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
} > .sram
|
} > .sram
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -76,7 +76,6 @@ config ARMV8_SEC_FIRMWARE_SUPPORT
|
|||||||
|
|
||||||
config SPL_ARMV8_SEC_FIRMWARE_SUPPORT
|
config SPL_ARMV8_SEC_FIRMWARE_SUPPORT
|
||||||
bool "Enable ARMv8 secure monitor firmware framework support for SPL"
|
bool "Enable ARMv8 secure monitor firmware framework support for SPL"
|
||||||
depends on SPL
|
|
||||||
select SPL_FIT
|
select SPL_FIT
|
||||||
select SPL_OF_LIBFDT
|
select SPL_OF_LIBFDT
|
||||||
help
|
help
|
||||||
@ -84,7 +83,6 @@ config SPL_ARMV8_SEC_FIRMWARE_SUPPORT
|
|||||||
|
|
||||||
config SPL_RECOVER_DATA_SECTION
|
config SPL_RECOVER_DATA_SECTION
|
||||||
bool "save/restore SPL data section"
|
bool "save/restore SPL data section"
|
||||||
depends on SPL
|
|
||||||
help
|
help
|
||||||
Say Y here to save SPL data section for cold boot, and restore
|
Say Y here to save SPL data section for cold boot, and restore
|
||||||
at warm boot in SPL phase.
|
at warm boot in SPL phase.
|
||||||
@ -187,19 +185,4 @@ config ARMV8_EA_EL3_FIRST
|
|||||||
Exception handling at all exception levels for External Abort and
|
Exception handling at all exception levels for External Abort and
|
||||||
SError interrupt exception are taken in EL3.
|
SError interrupt exception are taken in EL3.
|
||||||
|
|
||||||
menuconfig ARMV8_CRYPTO
|
|
||||||
bool "ARM64 Accelerated Cryptographic Algorithms"
|
|
||||||
|
|
||||||
if ARMV8_CRYPTO
|
|
||||||
|
|
||||||
config ARMV8_CE_SHA1
|
|
||||||
bool "SHA-1 digest algorithm (ARMv8 Crypto Extensions)"
|
|
||||||
default y if SHA1
|
|
||||||
|
|
||||||
config ARMV8_CE_SHA256
|
|
||||||
bool "SHA-256 digest algorithm (ARMv8 Crypto Extensions)"
|
|
||||||
default y if SHA256
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -44,5 +44,3 @@ obj-$(CONFIG_TARGET_HIKEY) += hisilicon/
|
|||||||
obj-$(CONFIG_ARMV8_PSCI) += psci.o
|
obj-$(CONFIG_ARMV8_PSCI) += psci.o
|
||||||
obj-$(CONFIG_TARGET_BCMNS3) += bcmns3/
|
obj-$(CONFIG_TARGET_BCMNS3) += bcmns3/
|
||||||
obj-$(CONFIG_XEN) += xen/
|
obj-$(CONFIG_XEN) += xen/
|
||||||
obj-$(CONFIG_ARMV8_CE_SHA1) += sha1_ce_glue.o sha1_ce_core.o
|
|
||||||
obj-$(CONFIG_ARMV8_CE_SHA256) += sha256_ce_glue.o sha256_ce_core.o
|
|
||||||
|
@ -39,28 +39,8 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||||||
* off: FFF
|
* off: FFF
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int get_effective_el(void)
|
u64 get_tcr(int el, u64 *pips, u64 *pva_bits)
|
||||||
{
|
{
|
||||||
int el = current_el();
|
|
||||||
|
|
||||||
if (el == 2) {
|
|
||||||
u64 hcr_el2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If we are using the EL2&0 translation regime, the TCR_EL2
|
|
||||||
* looks like the EL1 version, even though we are in EL2.
|
|
||||||
*/
|
|
||||||
__asm__ ("mrs %0, HCR_EL2\n" : "=r" (hcr_el2));
|
|
||||||
if (hcr_el2 & BIT(HCR_EL2_E2H_BIT))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
|
|
||||||
u64 get_tcr(u64 *pips, u64 *pva_bits)
|
|
||||||
{
|
|
||||||
int el = get_effective_el();
|
|
||||||
u64 max_addr = 0;
|
u64 max_addr = 0;
|
||||||
u64 ips, va_bits;
|
u64 ips, va_bits;
|
||||||
u64 tcr;
|
u64 tcr;
|
||||||
@ -135,7 +115,7 @@ static u64 *find_pte(u64 addr, int level)
|
|||||||
|
|
||||||
debug("addr=%llx level=%d\n", addr, level);
|
debug("addr=%llx level=%d\n", addr, level);
|
||||||
|
|
||||||
get_tcr(NULL, &va_bits);
|
get_tcr(0, NULL, &va_bits);
|
||||||
if (va_bits < 39)
|
if (va_bits < 39)
|
||||||
start_level = 1;
|
start_level = 1;
|
||||||
|
|
||||||
@ -363,7 +343,7 @@ __weak u64 get_page_table_size(void)
|
|||||||
u64 va_bits;
|
u64 va_bits;
|
||||||
int start_level = 0;
|
int start_level = 0;
|
||||||
|
|
||||||
get_tcr(NULL, &va_bits);
|
get_tcr(0, NULL, &va_bits);
|
||||||
if (va_bits < 39)
|
if (va_bits < 39)
|
||||||
start_level = 1;
|
start_level = 1;
|
||||||
|
|
||||||
@ -435,7 +415,7 @@ __weak void mmu_setup(void)
|
|||||||
setup_all_pgtables();
|
setup_all_pgtables();
|
||||||
|
|
||||||
el = current_el();
|
el = current_el();
|
||||||
set_ttbr_tcr_mair(el, gd->arch.tlb_addr, get_tcr(NULL, NULL),
|
set_ttbr_tcr_mair(el, gd->arch.tlb_addr, get_tcr(el, NULL, NULL),
|
||||||
MEMORY_ATTRIBUTES);
|
MEMORY_ATTRIBUTES);
|
||||||
|
|
||||||
/* enable the mmu */
|
/* enable the mmu */
|
||||||
@ -503,10 +483,6 @@ void dcache_enable(void)
|
|||||||
mmu_setup();
|
mmu_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set up page tables only once (it is done also by mmu_setup()) */
|
|
||||||
if (!gd->arch.tlb_fillptr)
|
|
||||||
setup_all_pgtables();
|
|
||||||
|
|
||||||
set_sctlr(get_sctlr() | CR_C);
|
set_sctlr(get_sctlr() | CR_C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
# (C) Copyright 2002
|
# (C) Copyright 2002
|
||||||
# Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
# Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
|
||||||
PLATFORM_RELFLAGS += -fno-common -ffixed-x18
|
PLATFORM_RELFLAGS += -fno-common -ffixed-x18
|
||||||
PLATFORM_RELFLAGS += $(call cc-option,-mbranch-protection=none)
|
|
||||||
|
|
||||||
PF_NO_UNALIGNED := $(call cc-option, -mstrict-align)
|
PF_NO_UNALIGNED := $(call cc-option, -mstrict-align)
|
||||||
PLATFORM_CPPFLAGS += $(PF_NO_UNALIGNED)
|
PLATFORM_CPPFLAGS += $(PF_NO_UNALIGNED)
|
||||||
|
@ -26,7 +26,6 @@ config ARCH_LS1012A
|
|||||||
config ARCH_LS1028A
|
config ARCH_LS1028A
|
||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select ESBC_HDR_LS if CHAIN_OF_TRUST
|
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
select FSL_LSCH3
|
select FSL_LSCH3
|
||||||
select GICV3
|
select GICV3
|
||||||
@ -63,7 +62,7 @@ config ARCH_LS1043A
|
|||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select ARM_ERRATA_855873 if !TFABOOT
|
select ARM_ERRATA_855873 if !TFABOOT
|
||||||
select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI && !SD_BOOT)
|
select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI)
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
select FSL_LSCH2
|
select FSL_LSCH2
|
||||||
select GICV2
|
select GICV2
|
||||||
@ -85,7 +84,6 @@ config ARCH_LS1043A
|
|||||||
select SYS_FSL_ERRATUM_A010539
|
select SYS_FSL_ERRATUM_A010539
|
||||||
select SYS_FSL_HAS_DDR3
|
select SYS_FSL_HAS_DDR3
|
||||||
select SYS_FSL_HAS_DDR4
|
select SYS_FSL_HAS_DDR4
|
||||||
select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
|
|
||||||
select ARCH_EARLY_INIT_R
|
select ARCH_EARLY_INIT_R
|
||||||
select BOARD_EARLY_INIT_F
|
select BOARD_EARLY_INIT_F
|
||||||
select SYS_I2C_MXC
|
select SYS_I2C_MXC
|
||||||
@ -100,7 +98,7 @@ config ARCH_LS1043A
|
|||||||
config ARCH_LS1046A
|
config ARCH_LS1046A
|
||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI && !SD_BOOT)
|
select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI)
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
select FSL_LSCH2
|
select FSL_LSCH2
|
||||||
select GICV2
|
select GICV2
|
||||||
@ -124,7 +122,6 @@ config ARCH_LS1046A
|
|||||||
select SYS_FSL_ERRATUM_A010539
|
select SYS_FSL_ERRATUM_A010539
|
||||||
select SYS_FSL_HAS_DDR4
|
select SYS_FSL_HAS_DDR4
|
||||||
select SYS_FSL_SRDS_2
|
select SYS_FSL_SRDS_2
|
||||||
select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
|
|
||||||
select ARCH_EARLY_INIT_R
|
select ARCH_EARLY_INIT_R
|
||||||
select BOARD_EARLY_INIT_F
|
select BOARD_EARLY_INIT_F
|
||||||
select SYS_I2C_MXC
|
select SYS_I2C_MXC
|
||||||
@ -141,7 +138,6 @@ config ARCH_LS1088A
|
|||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select ARM_ERRATA_855873 if !TFABOOT
|
select ARM_ERRATA_855873 if !TFABOOT
|
||||||
select ESBC_HDR_LS if CHAIN_OF_TRUST
|
|
||||||
select FSL_IFC
|
select FSL_IFC
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
select FSL_LSCH3
|
select FSL_LSCH3
|
||||||
@ -191,11 +187,9 @@ config ARCH_LS2080A
|
|||||||
select ARM_ERRATA_828024
|
select ARM_ERRATA_828024
|
||||||
select ARM_ERRATA_829520
|
select ARM_ERRATA_829520
|
||||||
select ARM_ERRATA_833471
|
select ARM_ERRATA_833471
|
||||||
select ESBC_HDR_LS if CHAIN_OF_TRUST
|
|
||||||
select FSL_IFC
|
select FSL_IFC
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
select FSL_LSCH3
|
select FSL_LSCH3
|
||||||
select SYS_FSL_OTHER_DDR_NUM_CTRLS
|
|
||||||
select GICV3
|
select GICV3
|
||||||
select SKIP_LOWLEVEL_INIT
|
select SKIP_LOWLEVEL_INIT
|
||||||
select SYS_FSL_SRDS_1
|
select SYS_FSL_SRDS_1
|
||||||
@ -245,7 +239,6 @@ config ARCH_LS2080A
|
|||||||
config ARCH_LX2162A
|
config ARCH_LX2162A
|
||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select ESBC_HDR_LS if CHAIN_OF_TRUST
|
|
||||||
select FSL_DDR_BIST
|
select FSL_DDR_BIST
|
||||||
select FSL_DDR_INTERACTIVE
|
select FSL_DDR_INTERACTIVE
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
@ -284,7 +277,6 @@ config ARCH_LX2162A
|
|||||||
config ARCH_LX2160A
|
config ARCH_LX2160A
|
||||||
bool
|
bool
|
||||||
select ARMV8_SET_SMPEN
|
select ARMV8_SET_SMPEN
|
||||||
select ESBC_HDR_LS if CHAIN_OF_TRUST
|
|
||||||
select FSL_DDR_BIST
|
select FSL_DDR_BIST
|
||||||
select FSL_DDR_INTERACTIVE
|
select FSL_DDR_INTERACTIVE
|
||||||
select FSL_LAYERSCAPE
|
select FSL_LAYERSCAPE
|
||||||
@ -326,11 +318,6 @@ config ARCH_LX2160A
|
|||||||
config FSL_LSCH2
|
config FSL_LSCH2
|
||||||
bool
|
bool
|
||||||
select SKIP_LOWLEVEL_INIT
|
select SKIP_LOWLEVEL_INIT
|
||||||
select SYS_FSL_CCSR_GUR_BE
|
|
||||||
select SYS_FSL_CCSR_SCFG_BE
|
|
||||||
select SYS_FSL_ESDHC_BE
|
|
||||||
select SYS_FSL_IFC_BE
|
|
||||||
select SYS_FSL_PEX_LUT_BE
|
|
||||||
select SYS_FSL_HAS_CCI400
|
select SYS_FSL_HAS_CCI400
|
||||||
select SYS_FSL_HAS_SEC
|
select SYS_FSL_HAS_SEC
|
||||||
select SYS_FSL_SEC_COMPAT_5
|
select SYS_FSL_SEC_COMPAT_5
|
||||||
@ -338,40 +325,11 @@ config FSL_LSCH2
|
|||||||
|
|
||||||
config FSL_LSCH3
|
config FSL_LSCH3
|
||||||
select ARCH_MISC_INIT
|
select ARCH_MISC_INIT
|
||||||
select SYS_FSL_CCSR_GUR_LE
|
|
||||||
select SYS_FSL_CCSR_SCFG_LE
|
|
||||||
select SYS_FSL_ESDHC_LE
|
|
||||||
select SYS_FSL_IFC_LE
|
|
||||||
select SYS_FSL_PEX_LUT_LE
|
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config NXP_LSCH3_2
|
config NXP_LSCH3_2
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config SYS_FSL_CCSR_GUR_BE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_CCSR_SCFG_BE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_PEX_LUT_BE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_CCSR_GUR_LE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_CCSR_SCFG_LE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_ESDHC_LE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_IFC_LE
|
|
||||||
bool
|
|
||||||
|
|
||||||
config SYS_FSL_PEX_LUT_LE
|
|
||||||
bool
|
|
||||||
|
|
||||||
menu "Layerscape architecture"
|
menu "Layerscape architecture"
|
||||||
depends on FSL_LSCH2 || FSL_LSCH3
|
depends on FSL_LSCH2 || FSL_LSCH3
|
||||||
|
|
||||||
@ -498,6 +456,11 @@ config EMC2305
|
|||||||
Enable the EMC2305 fan controller for configuration of fan
|
Enable the EMC2305 fan controller for configuration of fan
|
||||||
speed.
|
speed.
|
||||||
|
|
||||||
|
config NXP_ESBC
|
||||||
|
bool "NXP_ESBC"
|
||||||
|
help
|
||||||
|
Enable Freescale Secure Boot feature
|
||||||
|
|
||||||
config QSPI_AHB_INIT
|
config QSPI_AHB_INIT
|
||||||
bool "Init the QSPI AHB bus"
|
bool "Init the QSPI AHB bus"
|
||||||
help
|
help
|
||||||
@ -548,11 +511,6 @@ config DP_DDR_CTRL
|
|||||||
depends on SYS_FSL_HAS_DP_DDR
|
depends on SYS_FSL_HAS_DP_DDR
|
||||||
default 2 if ARCH_LS2080A
|
default 2 if ARCH_LS2080A
|
||||||
|
|
||||||
config DP_DDR_DIMM_SLOTS_PER_CTLR
|
|
||||||
int
|
|
||||||
depends on SYS_FSL_HAS_DP_DDR
|
|
||||||
default 1 if ARCH_LS2080A
|
|
||||||
|
|
||||||
config DP_DDR_NUM_CTRLS
|
config DP_DDR_NUM_CTRLS
|
||||||
int
|
int
|
||||||
depends on SYS_FSL_HAS_DP_DDR
|
depends on SYS_FSL_HAS_DP_DDR
|
||||||
@ -743,6 +701,9 @@ config SYS_FSL_HAS_RGMII
|
|||||||
bool
|
bool
|
||||||
depends on SYS_FSL_EC1 || SYS_FSL_EC2
|
depends on SYS_FSL_EC1 || SYS_FSL_EC2
|
||||||
|
|
||||||
|
config SPL_LDSCRIPT
|
||||||
|
default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
|
||||||
|
|
||||||
config HAS_FSL_XHCI_USB
|
config HAS_FSL_XHCI_USB
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
|
@ -454,7 +454,7 @@ static inline void early_mmu_setup(void)
|
|||||||
|
|
||||||
/* point TTBR to the new table */
|
/* point TTBR to the new table */
|
||||||
set_ttbr_tcr_mair(el, gd->arch.tlb_addr,
|
set_ttbr_tcr_mair(el, gd->arch.tlb_addr,
|
||||||
get_tcr(NULL, NULL) &
|
get_tcr(el, NULL, NULL) &
|
||||||
~(TCR_ORGN_MASK | TCR_IRGN_MASK),
|
~(TCR_ORGN_MASK | TCR_IRGN_MASK),
|
||||||
MEMORY_ATTRIBUTES);
|
MEMORY_ATTRIBUTES);
|
||||||
|
|
||||||
@ -609,7 +609,7 @@ static inline void final_mmu_setup(void)
|
|||||||
invalidate_icache_all();
|
invalidate_icache_all();
|
||||||
|
|
||||||
/* point TTBR to the new table */
|
/* point TTBR to the new table */
|
||||||
set_ttbr_tcr_mair(el, gd->arch.tlb_addr, get_tcr(NULL, NULL),
|
set_ttbr_tcr_mair(el, gd->arch.tlb_addr, get_tcr(el, NULL, NULL),
|
||||||
MEMORY_ATTRIBUTES);
|
MEMORY_ATTRIBUTES);
|
||||||
|
|
||||||
set_sctlr(get_sctlr() | CR_M);
|
set_sctlr(get_sctlr() | CR_M);
|
||||||
@ -1229,7 +1229,6 @@ int timer_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !CONFIG_IS_ENABLED(SYSRESET)
|
|
||||||
__efi_runtime_data u32 __iomem *rstcr = (u32 *)CONFIG_SYS_FSL_RST_ADDR;
|
__efi_runtime_data u32 __iomem *rstcr = (u32 *)CONFIG_SYS_FSL_RST_ADDR;
|
||||||
|
|
||||||
void __efi_runtime reset_cpu(void)
|
void __efi_runtime reset_cpu(void)
|
||||||
@ -1249,7 +1248,6 @@ void __efi_runtime reset_cpu(void)
|
|||||||
scfg_out32(rstcr, val);
|
scfg_out32(rstcr, val);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_EFI_LOADER) && !defined(CONFIG_PSCI_RESET)
|
#if defined(CONFIG_EFI_LOADER) && !defined(CONFIG_PSCI_RESET)
|
||||||
|
|
||||||
|
@ -671,7 +671,7 @@ void ft_cpu_setup(void *blob, struct bd_info *bd)
|
|||||||
"clock-frequency", get_qman_freq(), 1);
|
"clock-frequency", get_qman_freq(), 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_FMAN_ENET
|
#ifdef CONFIG_SYS_DPAA_FMAN
|
||||||
fdt_fixup_fman_firmware(blob);
|
fdt_fixup_fman_firmware(blob);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_FSL_PFE
|
#ifdef CONFIG_FSL_PFE
|
||||||
|
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
#ifndef CONFIG_SYS_FSL_NUM_CC_PLLS
|
||||||
|
#define CONFIG_SYS_FSL_NUM_CC_PLLS 2
|
||||||
|
#endif
|
||||||
|
|
||||||
void get_sys_info(struct sys_info *sys_info)
|
void get_sys_info(struct sys_info *sys_info)
|
||||||
{
|
{
|
||||||
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
||||||
@ -25,8 +29,8 @@ void get_sys_info(struct sys_info *sys_info)
|
|||||||
* mux 2 clock for LS1043A/LS1046A.
|
* mux 2 clock for LS1043A/LS1046A.
|
||||||
*/
|
*/
|
||||||
#if defined(CONFIG_SYS_DPAA_FMAN) || \
|
#if defined(CONFIG_SYS_DPAA_FMAN) || \
|
||||||
defined(CONFIG_ARCH_LS1046A) || \
|
defined(CONFIG_TARGET_LS1046ARDB) || \
|
||||||
defined(CONFIG_ARCH_LS1043A)
|
defined(CONFIG_TARGET_LS1043ARDB)
|
||||||
u32 rcw_tmp;
|
u32 rcw_tmp;
|
||||||
#endif
|
#endif
|
||||||
struct ccsr_clk *clk = (void *)(CONFIG_SYS_FSL_CLK_ADDR);
|
struct ccsr_clk *clk = (void *)(CONFIG_SYS_FSL_CLK_ADDR);
|
||||||
@ -125,13 +129,13 @@ void get_sys_info(struct sys_info *sys_info)
|
|||||||
|
|
||||||
#define HWA_CGA_M2_CLK_SEL 0x00000007
|
#define HWA_CGA_M2_CLK_SEL 0x00000007
|
||||||
#define HWA_CGA_M2_CLK_SHIFT 0
|
#define HWA_CGA_M2_CLK_SHIFT 0
|
||||||
#if defined(CONFIG_ARCH_LS1046A) || defined(CONFIG_ARCH_LS1043A)
|
#if defined(CONFIG_TARGET_LS1046ARDB) || defined(CONFIG_TARGET_LS1043ARDB)
|
||||||
rcw_tmp = in_be32(&gur->rcwsr[15]);
|
rcw_tmp = in_be32(&gur->rcwsr[15]);
|
||||||
switch ((rcw_tmp & HWA_CGA_M2_CLK_SEL) >> HWA_CGA_M2_CLK_SHIFT) {
|
switch ((rcw_tmp & HWA_CGA_M2_CLK_SEL) >> HWA_CGA_M2_CLK_SHIFT) {
|
||||||
case 1:
|
case 1:
|
||||||
sys_info->freq_cga_m2 = freq_c_pll[1];
|
sys_info->freq_cga_m2 = freq_c_pll[1];
|
||||||
break;
|
break;
|
||||||
#if defined(CONFIG_ARCH_LS1046A)
|
#if defined(CONFIG_TARGET_LS1046ARDB)
|
||||||
case 2:
|
case 2:
|
||||||
sys_info->freq_cga_m2 = freq_c_pll[1] / 2;
|
sys_info->freq_cga_m2 = freq_c_pll[1] / 2;
|
||||||
break;
|
break;
|
||||||
@ -139,7 +143,7 @@ void get_sys_info(struct sys_info *sys_info)
|
|||||||
case 3:
|
case 3:
|
||||||
sys_info->freq_cga_m2 = freq_c_pll[1] / 3;
|
sys_info->freq_cga_m2 = freq_c_pll[1] / 3;
|
||||||
break;
|
break;
|
||||||
#if defined(CONFIG_ARCH_LS1046A)
|
#if defined(CONFIG_TARGET_LS1046ARDB)
|
||||||
case 6:
|
case 6:
|
||||||
sys_info->freq_cga_m2 = freq_c_pll[0] / 2;
|
sys_info->freq_cga_m2 = freq_c_pll[0] / 2;
|
||||||
break;
|
break;
|
||||||
|
@ -21,6 +21,11 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
#ifndef CONFIG_SYS_FSL_NUM_CC_PLLS
|
||||||
|
#define CONFIG_SYS_FSL_NUM_CC_PLLS 6
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void get_sys_info(struct sys_info *sys_info)
|
void get_sys_info(struct sys_info *sys_info)
|
||||||
{
|
{
|
||||||
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
||||||
|
@ -46,7 +46,6 @@ void set_icids(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_SPL_BUILD
|
|
||||||
int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids)
|
int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids)
|
||||||
{
|
{
|
||||||
int i, ret;
|
int i, ret;
|
||||||
@ -191,4 +190,3 @@ void fdt_fixup_icid(void *blob)
|
|||||||
fdt_fixup_fman_icids(blob, smmu_ph);
|
fdt_fixup_fman_icids(blob, smmu_ph);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
@ -682,7 +682,7 @@ void fsl_lsch2_early_init_f(void)
|
|||||||
SCFG_SNPCNFGCR_USB1WRSNP | SCFG_SNPCNFGCR_USB2RDSNP |
|
SCFG_SNPCNFGCR_USB1WRSNP | SCFG_SNPCNFGCR_USB2RDSNP |
|
||||||
SCFG_SNPCNFGCR_USB2WRSNP | SCFG_SNPCNFGCR_USB3RDSNP |
|
SCFG_SNPCNFGCR_USB2WRSNP | SCFG_SNPCNFGCR_USB3RDSNP |
|
||||||
SCFG_SNPCNFGCR_USB3WRSNP | SCFG_SNPCNFGCR_SATARDSNP |
|
SCFG_SNPCNFGCR_USB3WRSNP | SCFG_SNPCNFGCR_SATARDSNP |
|
||||||
SCFG_SNPCNFGCR_SATAWRSNP | SCFG_SNPCNFGCR_EDMASNP);
|
SCFG_SNPCNFGCR_SATAWRSNP);
|
||||||
#elif defined(CONFIG_ARCH_LS1012A)
|
#elif defined(CONFIG_ARCH_LS1012A)
|
||||||
setbits_be32(&scfg->snpcnfgcr, SCFG_SNPCNFGCR_SECRDSNP |
|
setbits_be32(&scfg->snpcnfgcr, SCFG_SNPCNFGCR_SECRDSNP |
|
||||||
SCFG_SNPCNFGCR_SECWRSNP | SCFG_SNPCNFGCR_USB1RDSNP |
|
SCFG_SNPCNFGCR_SECWRSNP | SCFG_SNPCNFGCR_USB1RDSNP |
|
||||||
|
@ -67,24 +67,11 @@ void spl_board_init(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void tzpc_init(void)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Mark the whole OCRAM as non-secure, otherwise DMA devices cannot
|
|
||||||
* access it. This is for example necessary for MMC boot.
|
|
||||||
*/
|
|
||||||
#ifdef TZPCR0SIZE_BASE
|
|
||||||
out_le32(TZPCR0SIZE_BASE, 0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
icache_enable();
|
icache_enable();
|
||||||
tzpc_init();
|
|
||||||
|
|
||||||
/* Clear global data */
|
/* Clear global data */
|
||||||
memset((void *)gd, 0, sizeof(gd_t));
|
memset((void *)gd, 0, sizeof(gd_t));
|
||||||
if (IS_ENABLED(CONFIG_DEBUG_UART))
|
if (IS_ENABLED(CONFIG_DEBUG_UART))
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
(__HEAD_FLAG_PAGE_SIZE << 1) | \
|
(__HEAD_FLAG_PAGE_SIZE << 1) | \
|
||||||
(__HEAD_FLAG_PHYS_BASE << 3))
|
(__HEAD_FLAG_PHYS_BASE << 3))
|
||||||
|
|
||||||
#define TEXT_OFFSET (CONFIG_TEXT_BASE - \
|
#define TEXT_OFFSET (CONFIG_SYS_TEXT_BASE - \
|
||||||
CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE)
|
CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -36,6 +36,9 @@ phys_addr_t sec_firmware_addr;
|
|||||||
#ifndef SEC_FIRMWARE_FIT_IMAGE
|
#ifndef SEC_FIRMWARE_FIT_IMAGE
|
||||||
#define SEC_FIRMWARE_FIT_IMAGE "firmware"
|
#define SEC_FIRMWARE_FIT_IMAGE "firmware"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef SEC_FIRMWARE_FIT_CNF_NAME
|
||||||
|
#define SEC_FIRMWARE_FIT_CNF_NAME "config-1"
|
||||||
|
#endif
|
||||||
#ifndef SEC_FIRMWARE_TARGET_EL
|
#ifndef SEC_FIRMWARE_TARGET_EL
|
||||||
#define SEC_FIRMWARE_TARGET_EL 2
|
#define SEC_FIRMWARE_TARGET_EL 2
|
||||||
#endif
|
#endif
|
||||||
@ -43,8 +46,46 @@ phys_addr_t sec_firmware_addr;
|
|||||||
static int sec_firmware_get_data(const void *sec_firmware_img,
|
static int sec_firmware_get_data(const void *sec_firmware_img,
|
||||||
const void **data, size_t *size)
|
const void **data, size_t *size)
|
||||||
{
|
{
|
||||||
return fit_get_data_conf_prop(sec_firmware_img, SEC_FIRMWARE_FIT_IMAGE,
|
int conf_node_off, fw_node_off;
|
||||||
data, size);
|
char *conf_node_name = NULL;
|
||||||
|
char *desc;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
conf_node_name = SEC_FIRMWARE_FIT_CNF_NAME;
|
||||||
|
|
||||||
|
conf_node_off = fit_conf_get_node(sec_firmware_img, conf_node_name);
|
||||||
|
if (conf_node_off < 0) {
|
||||||
|
printf("SEC Firmware: %s: no such config\n", conf_node_name);
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
fw_node_off = fit_conf_get_prop_node(sec_firmware_img, conf_node_off,
|
||||||
|
SEC_FIRMWARE_FIT_IMAGE);
|
||||||
|
if (fw_node_off < 0) {
|
||||||
|
printf("SEC Firmware: No '%s' in config\n",
|
||||||
|
SEC_FIRMWARE_FIT_IMAGE);
|
||||||
|
return -ENOLINK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Verify secure firmware image */
|
||||||
|
if (!(fit_image_verify(sec_firmware_img, fw_node_off))) {
|
||||||
|
printf("SEC Firmware: Bad firmware image (bad CRC)\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fit_image_get_data(sec_firmware_img, fw_node_off, data, size)) {
|
||||||
|
printf("SEC Firmware: Can't get %s subimage data/size",
|
||||||
|
SEC_FIRMWARE_FIT_IMAGE);
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = fit_get_desc(sec_firmware_img, fw_node_off, &desc);
|
||||||
|
if (ret)
|
||||||
|
printf("SEC Firmware: Can't get description\n");
|
||||||
|
else
|
||||||
|
printf("%s\n", desc);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -83,15 +124,18 @@ static int sec_firmware_check_copy_loadable(const void *sec_firmware_img,
|
|||||||
{
|
{
|
||||||
phys_addr_t sec_firmware_loadable_addr = 0;
|
phys_addr_t sec_firmware_loadable_addr = 0;
|
||||||
int conf_node_off, ld_node_off, images;
|
int conf_node_off, ld_node_off, images;
|
||||||
|
char *conf_node_name = NULL;
|
||||||
const void *data;
|
const void *data;
|
||||||
size_t size;
|
size_t size;
|
||||||
ulong load;
|
ulong load;
|
||||||
const char *name, *str, *type;
|
const char *name, *str, *type;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
conf_node_off = fit_conf_get_node(sec_firmware_img, NULL);
|
conf_node_name = SEC_FIRMWARE_FIT_CNF_NAME;
|
||||||
|
|
||||||
|
conf_node_off = fit_conf_get_node(sec_firmware_img, conf_node_name);
|
||||||
if (conf_node_off < 0) {
|
if (conf_node_off < 0) {
|
||||||
puts("SEC Firmware: no config\n");
|
printf("SEC Firmware: %s: no such config\n", conf_node_name);
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,132 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
/*
|
|
||||||
* sha1_ce_core.S - SHA-1 secure hash using ARMv8 Crypto Extensions
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014 Linaro Ltd <ard.biesheuvel@linaro.org>
|
|
||||||
* Copyright (C) 2022 Linaro Ltd <loic.poulain@linaro.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <linux/linkage.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
#include <asm/macro.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.arch armv8-a+crypto
|
|
||||||
|
|
||||||
k0 .req v0
|
|
||||||
k1 .req v1
|
|
||||||
k2 .req v2
|
|
||||||
k3 .req v3
|
|
||||||
|
|
||||||
t0 .req v4
|
|
||||||
t1 .req v5
|
|
||||||
|
|
||||||
dga .req q6
|
|
||||||
dgav .req v6
|
|
||||||
dgb .req s7
|
|
||||||
dgbv .req v7
|
|
||||||
|
|
||||||
dg0q .req q12
|
|
||||||
dg0s .req s12
|
|
||||||
dg0v .req v12
|
|
||||||
dg1s .req s13
|
|
||||||
dg1v .req v13
|
|
||||||
dg2s .req s14
|
|
||||||
|
|
||||||
.macro add_only, op, ev, rc, s0, dg1
|
|
||||||
.ifc \ev, ev
|
|
||||||
add t1.4s, v\s0\().4s, \rc\().4s
|
|
||||||
sha1h dg2s, dg0s
|
|
||||||
.ifnb \dg1
|
|
||||||
sha1\op dg0q, \dg1, t0.4s
|
|
||||||
.else
|
|
||||||
sha1\op dg0q, dg1s, t0.4s
|
|
||||||
.endif
|
|
||||||
.else
|
|
||||||
.ifnb \s0
|
|
||||||
add t0.4s, v\s0\().4s, \rc\().4s
|
|
||||||
.endif
|
|
||||||
sha1h dg1s, dg0s
|
|
||||||
sha1\op dg0q, dg2s, t1.4s
|
|
||||||
.endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro add_update, op, ev, rc, s0, s1, s2, s3, dg1
|
|
||||||
sha1su0 v\s0\().4s, v\s1\().4s, v\s2\().4s
|
|
||||||
add_only \op, \ev, \rc, \s1, \dg1
|
|
||||||
sha1su1 v\s0\().4s, v\s3\().4s
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro loadrc, k, val, tmp
|
|
||||||
movz \tmp, :abs_g0_nc:\val
|
|
||||||
movk \tmp, :abs_g1:\val
|
|
||||||
dup \k, \tmp
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/*
|
|
||||||
* void sha1_armv8_ce_process(uint32_t state[5], uint8_t const *src,
|
|
||||||
* uint32_t blocks)
|
|
||||||
*/
|
|
||||||
ENTRY(sha1_armv8_ce_process)
|
|
||||||
/* load round constants */
|
|
||||||
loadrc k0.4s, 0x5a827999, w6
|
|
||||||
loadrc k1.4s, 0x6ed9eba1, w6
|
|
||||||
loadrc k2.4s, 0x8f1bbcdc, w6
|
|
||||||
loadrc k3.4s, 0xca62c1d6, w6
|
|
||||||
|
|
||||||
/* load state (4+1 digest states) */
|
|
||||||
ld1 {dgav.4s}, [x0]
|
|
||||||
ldr dgb, [x0, #16]
|
|
||||||
|
|
||||||
/* load input (64 bytes into v8->v11 16B vectors) */
|
|
||||||
0: ld1 {v8.4s-v11.4s}, [x1], #64
|
|
||||||
sub w2, w2, #1
|
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
||||||
rev32 v8.16b, v8.16b
|
|
||||||
rev32 v9.16b, v9.16b
|
|
||||||
rev32 v10.16b, v10.16b
|
|
||||||
rev32 v11.16b, v11.16b
|
|
||||||
#endif
|
|
||||||
|
|
||||||
1: add t0.4s, v8.4s, k0.4s
|
|
||||||
mov dg0v.16b, dgav.16b
|
|
||||||
|
|
||||||
add_update c, ev, k0, 8, 9, 10, 11, dgb
|
|
||||||
add_update c, od, k0, 9, 10, 11, 8
|
|
||||||
add_update c, ev, k0, 10, 11, 8, 9
|
|
||||||
add_update c, od, k0, 11, 8, 9, 10
|
|
||||||
add_update c, ev, k1, 8, 9, 10, 11
|
|
||||||
|
|
||||||
add_update p, od, k1, 9, 10, 11, 8
|
|
||||||
add_update p, ev, k1, 10, 11, 8, 9
|
|
||||||
add_update p, od, k1, 11, 8, 9, 10
|
|
||||||
add_update p, ev, k1, 8, 9, 10, 11
|
|
||||||
add_update p, od, k2, 9, 10, 11, 8
|
|
||||||
|
|
||||||
add_update m, ev, k2, 10, 11, 8, 9
|
|
||||||
add_update m, od, k2, 11, 8, 9, 10
|
|
||||||
add_update m, ev, k2, 8, 9, 10, 11
|
|
||||||
add_update m, od, k2, 9, 10, 11, 8
|
|
||||||
add_update m, ev, k3, 10, 11, 8, 9
|
|
||||||
|
|
||||||
add_update p, od, k3, 11, 8, 9, 10
|
|
||||||
add_only p, ev, k3, 9
|
|
||||||
add_only p, od, k3, 10
|
|
||||||
add_only p, ev, k3, 11
|
|
||||||
add_only p, od
|
|
||||||
|
|
||||||
/* update state */
|
|
||||||
add dgbv.2s, dgbv.2s, dg1v.2s
|
|
||||||
add dgav.4s, dgav.4s, dg0v.4s
|
|
||||||
|
|
||||||
/* loop on next block? */
|
|
||||||
cbz w2, 2f
|
|
||||||
b 0b
|
|
||||||
|
|
||||||
/* store new state */
|
|
||||||
2: st1 {dgav.4s}, [x0]
|
|
||||||
str dgb, [x0, #16]
|
|
||||||
mov w0, w2
|
|
||||||
ret
|
|
||||||
ENDPROC(sha1_armv8_ce_process)
|
|
@ -1,21 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* sha1_ce_glue.c - SHA-1 secure hash using ARMv8 Crypto Extensions
|
|
||||||
*
|
|
||||||
* Copyright (C) 2022 Linaro Ltd <loic.poulain@linaro.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <u-boot/sha1.h>
|
|
||||||
|
|
||||||
extern void sha1_armv8_ce_process(uint32_t state[5], uint8_t const *src,
|
|
||||||
uint32_t blocks);
|
|
||||||
|
|
||||||
void sha1_process(sha1_context *ctx, const unsigned char *data,
|
|
||||||
unsigned int blocks)
|
|
||||||
{
|
|
||||||
if (!blocks)
|
|
||||||
return;
|
|
||||||
|
|
||||||
sha1_armv8_ce_process(ctx->state, data, blocks);
|
|
||||||
}
|
|
@ -1,134 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
||||||
/*
|
|
||||||
* sha256-ce-core.S - core SHA-256 transform using v8 Crypto Extensions
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014 Linaro Ltd <ard.biesheuvel@linaro.org>
|
|
||||||
* Copyright (C) 2022 Linaro Ltd <loic.poulain@linaro.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
#include <linux/linkage.h>
|
|
||||||
#include <asm/system.h>
|
|
||||||
#include <asm/macro.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.arch armv8-a+crypto
|
|
||||||
|
|
||||||
dga .req q20
|
|
||||||
dgav .req v20
|
|
||||||
dgb .req q21
|
|
||||||
dgbv .req v21
|
|
||||||
|
|
||||||
t0 .req v22
|
|
||||||
t1 .req v23
|
|
||||||
|
|
||||||
dg0q .req q24
|
|
||||||
dg0v .req v24
|
|
||||||
dg1q .req q25
|
|
||||||
dg1v .req v25
|
|
||||||
dg2q .req q26
|
|
||||||
dg2v .req v26
|
|
||||||
|
|
||||||
.macro add_only, ev, rc, s0
|
|
||||||
mov dg2v.16b, dg0v.16b
|
|
||||||
.ifeq \ev
|
|
||||||
add t1.4s, v\s0\().4s, \rc\().4s
|
|
||||||
sha256h dg0q, dg1q, t0.4s
|
|
||||||
sha256h2 dg1q, dg2q, t0.4s
|
|
||||||
.else
|
|
||||||
.ifnb \s0
|
|
||||||
add t0.4s, v\s0\().4s, \rc\().4s
|
|
||||||
.endif
|
|
||||||
sha256h dg0q, dg1q, t1.4s
|
|
||||||
sha256h2 dg1q, dg2q, t1.4s
|
|
||||||
.endif
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro add_update, ev, rc, s0, s1, s2, s3
|
|
||||||
sha256su0 v\s0\().4s, v\s1\().4s
|
|
||||||
add_only \ev, \rc, \s1
|
|
||||||
sha256su1 v\s0\().4s, v\s2\().4s, v\s3\().4s
|
|
||||||
.endm
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The SHA-256 round constants
|
|
||||||
*/
|
|
||||||
.align 4
|
|
||||||
.Lsha2_rcon:
|
|
||||||
.word 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5
|
|
||||||
.word 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5
|
|
||||||
.word 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3
|
|
||||||
.word 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174
|
|
||||||
.word 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc
|
|
||||||
.word 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da
|
|
||||||
.word 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7
|
|
||||||
.word 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967
|
|
||||||
.word 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13
|
|
||||||
.word 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85
|
|
||||||
.word 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3
|
|
||||||
.word 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070
|
|
||||||
.word 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5
|
|
||||||
.word 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3
|
|
||||||
.word 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208
|
|
||||||
.word 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* void sha256_armv8_ce_process(struct sha256_ce_state *sst,
|
|
||||||
* uint8_t const *src, uint32_t blocks)
|
|
||||||
*/
|
|
||||||
ENTRY(sha256_armv8_ce_process)
|
|
||||||
/* load round constants */
|
|
||||||
adr x8, .Lsha2_rcon
|
|
||||||
ld1 { v0.4s- v3.4s}, [x8], #64
|
|
||||||
ld1 { v4.4s- v7.4s}, [x8], #64
|
|
||||||
ld1 { v8.4s-v11.4s}, [x8], #64
|
|
||||||
ld1 {v12.4s-v15.4s}, [x8]
|
|
||||||
|
|
||||||
/* load state */
|
|
||||||
ldp dga, dgb, [x0]
|
|
||||||
|
|
||||||
/* load input */
|
|
||||||
0: ld1 {v16.4s-v19.4s}, [x1], #64
|
|
||||||
sub w2, w2, #1
|
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
||||||
rev32 v16.16b, v16.16b
|
|
||||||
rev32 v17.16b, v17.16b
|
|
||||||
rev32 v18.16b, v18.16b
|
|
||||||
rev32 v19.16b, v19.16b
|
|
||||||
#endif
|
|
||||||
|
|
||||||
1: add t0.4s, v16.4s, v0.4s
|
|
||||||
mov dg0v.16b, dgav.16b
|
|
||||||
mov dg1v.16b, dgbv.16b
|
|
||||||
|
|
||||||
add_update 0, v1, 16, 17, 18, 19
|
|
||||||
add_update 1, v2, 17, 18, 19, 16
|
|
||||||
add_update 0, v3, 18, 19, 16, 17
|
|
||||||
add_update 1, v4, 19, 16, 17, 18
|
|
||||||
|
|
||||||
add_update 0, v5, 16, 17, 18, 19
|
|
||||||
add_update 1, v6, 17, 18, 19, 16
|
|
||||||
add_update 0, v7, 18, 19, 16, 17
|
|
||||||
add_update 1, v8, 19, 16, 17, 18
|
|
||||||
|
|
||||||
add_update 0, v9, 16, 17, 18, 19
|
|
||||||
add_update 1, v10, 17, 18, 19, 16
|
|
||||||
add_update 0, v11, 18, 19, 16, 17
|
|
||||||
add_update 1, v12, 19, 16, 17, 18
|
|
||||||
|
|
||||||
add_only 0, v13, 17
|
|
||||||
add_only 1, v14, 18
|
|
||||||
add_only 0, v15, 19
|
|
||||||
add_only 1
|
|
||||||
|
|
||||||
/* update state */
|
|
||||||
add dgav.4s, dgav.4s, dg0v.4s
|
|
||||||
add dgbv.4s, dgbv.4s, dg1v.4s
|
|
||||||
|
|
||||||
/* handled all input blocks? */
|
|
||||||
cbnz w2, 0b
|
|
||||||
|
|
||||||
/* store new state */
|
|
||||||
3: stp dga, dgb, [x0]
|
|
||||||
ret
|
|
||||||
ENDPROC(sha256_armv8_ce_process)
|
|
@ -1,21 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
/*
|
|
||||||
* sha256_ce_glue.c - SHA-256 secure hash using ARMv8 Crypto Extensions
|
|
||||||
*
|
|
||||||
* Copyright (C) 2022 Linaro Ltd <loic.poulain@linaro.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <common.h>
|
|
||||||
#include <u-boot/sha256.h>
|
|
||||||
|
|
||||||
extern void sha256_armv8_ce_process(uint32_t state[8], uint8_t const *src,
|
|
||||||
uint32_t blocks);
|
|
||||||
|
|
||||||
void sha256_process(sha256_context *ctx, const unsigned char *data,
|
|
||||||
unsigned int blocks)
|
|
||||||
{
|
|
||||||
if (!blocks)
|
|
||||||
return;
|
|
||||||
|
|
||||||
sha256_armv8_ce_process(ctx->state, data, blocks);
|
|
||||||
}
|
|
@ -35,7 +35,7 @@ _start:
|
|||||||
|
|
||||||
.globl _TEXT_BASE
|
.globl _TEXT_BASE
|
||||||
_TEXT_BASE:
|
_TEXT_BASE:
|
||||||
.quad CONFIG_TEXT_BASE
|
.quad CONFIG_SYS_TEXT_BASE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are defined in the linker script.
|
* These are defined in the linker script.
|
||||||
@ -125,7 +125,7 @@ pie_fixup_done:
|
|||||||
msr cptr_el3, xzr /* Enable FP/SIMD */
|
msr cptr_el3, xzr /* Enable FP/SIMD */
|
||||||
b 0f
|
b 0f
|
||||||
2: mrs x1, hcr_el2
|
2: mrs x1, hcr_el2
|
||||||
tbnz x1, #HCR_EL2_E2H_BIT, 1f /* HCR_EL2.E2H */
|
tbnz x1, #34, 1f /* HCR_EL2.E2H */
|
||||||
orr x1, x1, #HCR_EL2_AMO_EL2 /* Route SErrors to EL2 */
|
orr x1, x1, #HCR_EL2_AMO_EL2 /* Route SErrors to EL2 */
|
||||||
msr hcr_el2, x1
|
msr hcr_el2, x1
|
||||||
set_vbar vbar_el2, x0
|
set_vbar vbar_el2, x0
|
||||||
|
@ -23,7 +23,7 @@ SECTIONS
|
|||||||
{
|
{
|
||||||
.text : {
|
.text : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
__image_copy_start = .;
|
*(.__image_copy_start)
|
||||||
CPUDIR/start.o (.text*)
|
CPUDIR/start.o (.text*)
|
||||||
*(.text*)
|
*(.text*)
|
||||||
} >.sram
|
} >.sram
|
||||||
@ -46,9 +46,9 @@ SECTIONS
|
|||||||
} >.sram
|
} >.sram
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
} >.sram
|
} >.sram
|
||||||
|
|
||||||
.image_copy_end : {
|
.image_copy_end : {
|
||||||
|
@ -109,8 +109,8 @@ SECTIONS
|
|||||||
. = .;
|
. = .;
|
||||||
|
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(8);
|
. = ALIGN(8);
|
||||||
|
15
arch/arm/cpu/pxa/Makefile
Normal file
15
arch/arm/cpu/pxa/Makefile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# (C) Copyright 2000-2006
|
||||||
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
|
|
||||||
|
extra-y = start.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_CPU_PXA25X) += pxa2xx.o
|
||||||
|
obj-$(CONFIG_CPU_PXA27X) += pxa2xx.o
|
||||||
|
|
||||||
|
obj-y += cpuinfo.o
|
||||||
|
obj-y += timer.o
|
||||||
|
obj-y += usb.o
|
||||||
|
obj-y += relocate.o
|
||||||
|
obj-y += cache.o
|
58
arch/arm/cpu/pxa/cache.c
Normal file
58
arch/arm/cpu/pxa/cache.c
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2016 Vasily Khoruzhick <anarsoul@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <cpu_func.h>
|
||||||
|
#include <asm/cache.h>
|
||||||
|
#include <linux/types.h>
|
||||||
|
#include <common.h>
|
||||||
|
|
||||||
|
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
||||||
|
void invalidate_dcache_all(void)
|
||||||
|
{
|
||||||
|
/* Flush/Invalidate I cache */
|
||||||
|
asm volatile("mcr p15, 0, %0, c7, c5, 0\n" : : "r"(0));
|
||||||
|
/* Flush/Invalidate D cache */
|
||||||
|
asm volatile("mcr p15, 0, %0, c7, c6, 0\n" : : "r"(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
void flush_dcache_all(void)
|
||||||
|
{
|
||||||
|
return invalidate_dcache_all();
|
||||||
|
}
|
||||||
|
|
||||||
|
void invalidate_dcache_range(unsigned long start, unsigned long stop)
|
||||||
|
{
|
||||||
|
start &= ~(CONFIG_SYS_CACHELINE_SIZE - 1);
|
||||||
|
stop &= ~(CONFIG_SYS_CACHELINE_SIZE - 1);
|
||||||
|
|
||||||
|
while (start <= stop) {
|
||||||
|
asm volatile("mcr p15, 0, %0, c7, c6, 1\n" : : "r"(start));
|
||||||
|
start += CONFIG_SYS_CACHELINE_SIZE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void flush_dcache_range(unsigned long start, unsigned long stop)
|
||||||
|
{
|
||||||
|
return invalidate_dcache_range(start, stop);
|
||||||
|
}
|
||||||
|
#else /* #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) */
|
||||||
|
void invalidate_dcache_all(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void flush_dcache_all(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* #if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Stub implementations for l2 cache operations
|
||||||
|
*/
|
||||||
|
|
||||||
|
__weak void l2_cache_disable(void) {}
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
|
||||||
|
__weak void invalidate_l2_cache(void) {}
|
||||||
|
#endif
|
18
arch/arm/cpu/pxa/config.mk
Normal file
18
arch/arm/cpu/pxa/config.mk
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# (C) Copyright 2002
|
||||||
|
# Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
# Marius Groeger <mgroeger@sysgo.de>
|
||||||
|
|
||||||
|
#
|
||||||
|
# !WARNING!
|
||||||
|
# The PXA's OneNAND SPL uses .text.0 and .text.1 segments to allow booting from
|
||||||
|
# really small OneNAND memories where the mmap'd window is only 1KiB big. The
|
||||||
|
# .text.0 contains only the bare minimum needed to load the real SPL into SRAM.
|
||||||
|
# Add .text.0 and .text.1 into OBJFLAGS, so when the SPL is being objcopy'd,
|
||||||
|
# they are not discarded.
|
||||||
|
#
|
||||||
|
|
||||||
|
#ifdef CONFIG_SPL_BUILD
|
||||||
|
OBJCOPYFLAGS += -j .text.0 -j .text.1
|
||||||
|
#endif
|
145
arch/arm/cpu/pxa/cpuinfo.c
Normal file
145
arch/arm/cpu/pxa/cpuinfo.c
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* PXA CPU information display
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_CPU_PXA25X
|
||||||
|
#if ((CONFIG_SYS_INIT_SP_ADDR) != 0xfffff800)
|
||||||
|
#error "Init SP address must be set to 0xfffff800 for PXA250"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CPU_MASK_PXA_PRODID 0x000003f0
|
||||||
|
#define CPU_MASK_PXA_REVID 0x0000000f
|
||||||
|
|
||||||
|
#define CPU_MASK_PRODREV (CPU_MASK_PXA_PRODID | CPU_MASK_PXA_REVID)
|
||||||
|
|
||||||
|
#define CPU_VALUE_PXA25X 0x100
|
||||||
|
#define CPU_VALUE_PXA27X 0x110
|
||||||
|
|
||||||
|
static uint32_t pxa_get_cpuid(void)
|
||||||
|
{
|
||||||
|
uint32_t cpuid;
|
||||||
|
asm volatile("mrc p15, 0, %0, c0, c0, 0" : "=r"(cpuid));
|
||||||
|
return cpuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cpu_is_pxa25x(void)
|
||||||
|
{
|
||||||
|
uint32_t id = pxa_get_cpuid();
|
||||||
|
id &= CPU_MASK_PXA_PRODID;
|
||||||
|
return id == CPU_VALUE_PXA25X;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cpu_is_pxa27x(void)
|
||||||
|
{
|
||||||
|
uint32_t id = pxa_get_cpuid();
|
||||||
|
id &= CPU_MASK_PXA_PRODID;
|
||||||
|
return id == CPU_VALUE_PXA27X;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cpu_is_pxa27xm(void)
|
||||||
|
{
|
||||||
|
uint32_t id = pxa_get_cpuid();
|
||||||
|
return ((id & CPU_MASK_PXA_PRODID) == CPU_VALUE_PXA27X) &&
|
||||||
|
((id & CPU_MASK_PXA_REVID) == 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t pxa_get_cpu_revision(void)
|
||||||
|
{
|
||||||
|
return pxa_get_cpuid() & CPU_MASK_PRODREV;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_DISPLAY_CPUINFO
|
||||||
|
static const char *pxa25x_get_revision(void)
|
||||||
|
{
|
||||||
|
static __maybe_unused const char * const revs_25x[] = { "A0" };
|
||||||
|
static __maybe_unused const char * const revs_26x[] = {
|
||||||
|
"A0", "B0", "B1"
|
||||||
|
};
|
||||||
|
static const char *unknown = "Unknown";
|
||||||
|
uint32_t id;
|
||||||
|
|
||||||
|
if (!cpu_is_pxa25x())
|
||||||
|
return unknown;
|
||||||
|
|
||||||
|
id = pxa_get_cpuid() & CPU_MASK_PXA_REVID;
|
||||||
|
|
||||||
|
/* PXA26x is a sick special case as it can't be told apart from PXA25x :-( */
|
||||||
|
#ifdef CONFIG_CPU_PXA26X
|
||||||
|
switch (id) {
|
||||||
|
case 3: return revs_26x[0];
|
||||||
|
case 5: return revs_26x[1];
|
||||||
|
case 6: return revs_26x[2];
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (id == 6)
|
||||||
|
return revs_25x[0];
|
||||||
|
#endif
|
||||||
|
return unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *pxa27x_get_revision(void)
|
||||||
|
{
|
||||||
|
static const char *const rev[] = { "A0", "A1", "B0", "B1", "C0", "C5" };
|
||||||
|
static const char *unknown = "Unknown";
|
||||||
|
uint32_t id;
|
||||||
|
|
||||||
|
if (!cpu_is_pxa27x())
|
||||||
|
return unknown;
|
||||||
|
|
||||||
|
id = pxa_get_cpuid() & CPU_MASK_PXA_REVID;
|
||||||
|
|
||||||
|
if ((id == 5) || (id == 6) || (id > 8))
|
||||||
|
return unknown;
|
||||||
|
|
||||||
|
/* Cap the special PXA270 C5 case. */
|
||||||
|
if (id == 7)
|
||||||
|
id = 5;
|
||||||
|
|
||||||
|
/* Cap the special PXA270M A1 case. */
|
||||||
|
if (id == 8)
|
||||||
|
id = 1;
|
||||||
|
|
||||||
|
return rev[id];
|
||||||
|
}
|
||||||
|
|
||||||
|
static int print_cpuinfo_pxa2xx(void)
|
||||||
|
{
|
||||||
|
if (cpu_is_pxa25x()) {
|
||||||
|
puts("Marvell PXA25x rev. ");
|
||||||
|
puts(pxa25x_get_revision());
|
||||||
|
} else if (cpu_is_pxa27x()) {
|
||||||
|
puts("Marvell PXA27x");
|
||||||
|
if (cpu_is_pxa27xm()) puts("M");
|
||||||
|
puts(" rev. ");
|
||||||
|
puts(pxa27x_get_revision());
|
||||||
|
} else
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
puts("\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int print_cpuinfo(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
puts("CPU: ");
|
||||||
|
|
||||||
|
ret = print_cpuinfo_pxa2xx();
|
||||||
|
if (!ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#endif
|
295
arch/arm/cpu/pxa/pxa2xx.c
Normal file
295
arch/arm/cpu/pxa/pxa2xx.c
Normal file
@ -0,0 +1,295 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Marius Groeger <mgroeger@sysgo.de>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Alex Zuepke <azu@sysgo.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <cpu_func.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <irq_func.h>
|
||||||
|
#include <asm/arch/pxa-regs.h>
|
||||||
|
#include <asm/cache.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <asm/system.h>
|
||||||
|
#include <command.h>
|
||||||
|
|
||||||
|
/* Flush I/D-cache */
|
||||||
|
static void cache_flush(void)
|
||||||
|
{
|
||||||
|
unsigned long i = 0;
|
||||||
|
|
||||||
|
asm ("mcr p15, 0, %0, c7, c5, 0" : : "r" (i));
|
||||||
|
}
|
||||||
|
|
||||||
|
int cleanup_before_linux(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* This function is called just before we call Linux. It prepares
|
||||||
|
* the processor for Linux by just disabling everything that can
|
||||||
|
* disturb booting Linux.
|
||||||
|
*/
|
||||||
|
|
||||||
|
disable_interrupts();
|
||||||
|
icache_disable();
|
||||||
|
dcache_disable();
|
||||||
|
cache_flush();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void writelrb(uint32_t val, uint32_t addr)
|
||||||
|
{
|
||||||
|
writel(val, addr);
|
||||||
|
asm volatile("" : : : "memory");
|
||||||
|
readl(addr);
|
||||||
|
asm volatile("" : : : "memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
void pxa2xx_dram_init(void)
|
||||||
|
{
|
||||||
|
uint32_t tmp;
|
||||||
|
int i;
|
||||||
|
/*
|
||||||
|
* 1) Initialize Asynchronous static memory controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
writelrb(CONFIG_SYS_MSC0_VAL, MSC0);
|
||||||
|
writelrb(CONFIG_SYS_MSC1_VAL, MSC1);
|
||||||
|
writelrb(CONFIG_SYS_MSC2_VAL, MSC2);
|
||||||
|
/*
|
||||||
|
* 2) Initialize Card Interface
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* MECR: Memory Expansion Card Register */
|
||||||
|
writelrb(CONFIG_SYS_MECR_VAL, MECR);
|
||||||
|
/* MCMEM0: Card Interface slot 0 timing */
|
||||||
|
writelrb(CONFIG_SYS_MCMEM0_VAL, MCMEM0);
|
||||||
|
/* MCMEM1: Card Interface slot 1 timing */
|
||||||
|
writelrb(CONFIG_SYS_MCMEM1_VAL, MCMEM1);
|
||||||
|
/* MCATT0: Card Interface Attribute Space Timing, slot 0 */
|
||||||
|
writelrb(CONFIG_SYS_MCATT0_VAL, MCATT0);
|
||||||
|
/* MCATT1: Card Interface Attribute Space Timing, slot 1 */
|
||||||
|
writelrb(CONFIG_SYS_MCATT1_VAL, MCATT1);
|
||||||
|
/* MCIO0: Card Interface I/O Space Timing, slot 0 */
|
||||||
|
writelrb(CONFIG_SYS_MCIO0_VAL, MCIO0);
|
||||||
|
/* MCIO1: Card Interface I/O Space Timing, slot 1 */
|
||||||
|
writelrb(CONFIG_SYS_MCIO1_VAL, MCIO1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 3) Configure Fly-By DMA register
|
||||||
|
*/
|
||||||
|
|
||||||
|
writelrb(CONFIG_SYS_FLYCNFG_VAL, FLYCNFG);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 4) Initialize Timing for Sync Memory (SDCLK0)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Before accessing MDREFR we need a valid DRI field, so we set
|
||||||
|
* this to power on defaults + DRI field.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Read current MDREFR config and zero out DRI */
|
||||||
|
tmp = readl(MDREFR) & ~0xfff;
|
||||||
|
/* Add user-specified DRI */
|
||||||
|
tmp |= CONFIG_SYS_MDREFR_VAL & 0xfff;
|
||||||
|
/* Configure important bits */
|
||||||
|
tmp |= MDREFR_K0RUN | MDREFR_SLFRSH;
|
||||||
|
tmp &= ~(MDREFR_APD | MDREFR_E1PIN);
|
||||||
|
|
||||||
|
/* Write MDREFR back */
|
||||||
|
writelrb(tmp, MDREFR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 5) Initialize Synchronous Static Memory (Flash/Peripherals)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Initialize SXCNFG register. Assert the enable bits.
|
||||||
|
*
|
||||||
|
* Write SXMRS to cause an MRS command to all enabled banks of
|
||||||
|
* synchronous static memory. Note that SXLCR need not be written
|
||||||
|
* at this time.
|
||||||
|
*/
|
||||||
|
writelrb(CONFIG_SYS_SXCNFG_VAL, SXCNFG);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 6) Initialize SDRAM
|
||||||
|
*/
|
||||||
|
|
||||||
|
writelrb(CONFIG_SYS_MDREFR_VAL & ~MDREFR_SLFRSH, MDREFR);
|
||||||
|
writelrb(CONFIG_SYS_MDREFR_VAL | MDREFR_E1PIN, MDREFR);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 7) Write MDCNFG with MDCNFG:DEx deasserted (set to 0), to configure
|
||||||
|
* but not enable each SDRAM partition pair.
|
||||||
|
*/
|
||||||
|
|
||||||
|
writelrb(CONFIG_SYS_MDCNFG_VAL &
|
||||||
|
~(MDCNFG_DE0 | MDCNFG_DE1 | MDCNFG_DE2 | MDCNFG_DE3), MDCNFG);
|
||||||
|
|
||||||
|
/* Wait for the clock to the SDRAMs to stabilize, 100..200 usec. */
|
||||||
|
writel(0, OSCR);
|
||||||
|
while (readl(OSCR) < 0x300)
|
||||||
|
asm volatile("" : : : "memory");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 8) Trigger a number (usually 8) refresh cycles by attempting
|
||||||
|
* non-burst read or write accesses to disabled SDRAM, as commonly
|
||||||
|
* specified in the power up sequence documented in SDRAM data
|
||||||
|
* sheets. The address(es) used for this purpose must not be
|
||||||
|
* cacheable.
|
||||||
|
*/
|
||||||
|
for (i = 9; i >= 0; i--) {
|
||||||
|
writel(i, 0xa0000000);
|
||||||
|
asm volatile("" : : : "memory");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* 9) Write MDCNFG with enable bits asserted (MDCNFG:DEx set to 1).
|
||||||
|
*/
|
||||||
|
|
||||||
|
tmp = CONFIG_SYS_MDCNFG_VAL &
|
||||||
|
(MDCNFG_DE0 | MDCNFG_DE1 | MDCNFG_DE2 | MDCNFG_DE3);
|
||||||
|
tmp |= readl(MDCNFG);
|
||||||
|
writelrb(tmp, MDCNFG);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 10) Write MDMRS.
|
||||||
|
*/
|
||||||
|
|
||||||
|
writelrb(CONFIG_SYS_MDMRS_VAL, MDMRS);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 11) Enable APD
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (CONFIG_SYS_MDREFR_VAL & MDREFR_APD) {
|
||||||
|
tmp = readl(MDREFR);
|
||||||
|
tmp |= MDREFR_APD;
|
||||||
|
writelrb(tmp, MDREFR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void pxa_gpio_setup(void)
|
||||||
|
{
|
||||||
|
writel(CONFIG_SYS_GPSR0_VAL, GPSR0);
|
||||||
|
writel(CONFIG_SYS_GPSR1_VAL, GPSR1);
|
||||||
|
writel(CONFIG_SYS_GPSR2_VAL, GPSR2);
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(CONFIG_SYS_GPSR3_VAL, GPSR3);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(CONFIG_SYS_GPCR0_VAL, GPCR0);
|
||||||
|
writel(CONFIG_SYS_GPCR1_VAL, GPCR1);
|
||||||
|
writel(CONFIG_SYS_GPCR2_VAL, GPCR2);
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(CONFIG_SYS_GPCR3_VAL, GPCR3);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(CONFIG_SYS_GPDR0_VAL, GPDR0);
|
||||||
|
writel(CONFIG_SYS_GPDR1_VAL, GPDR1);
|
||||||
|
writel(CONFIG_SYS_GPDR2_VAL, GPDR2);
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(CONFIG_SYS_GPDR3_VAL, GPDR3);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(CONFIG_SYS_GAFR0_L_VAL, GAFR0_L);
|
||||||
|
writel(CONFIG_SYS_GAFR0_U_VAL, GAFR0_U);
|
||||||
|
writel(CONFIG_SYS_GAFR1_L_VAL, GAFR1_L);
|
||||||
|
writel(CONFIG_SYS_GAFR1_U_VAL, GAFR1_U);
|
||||||
|
writel(CONFIG_SYS_GAFR2_L_VAL, GAFR2_L);
|
||||||
|
writel(CONFIG_SYS_GAFR2_U_VAL, GAFR2_U);
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(CONFIG_SYS_GAFR3_L_VAL, GAFR3_L);
|
||||||
|
writel(CONFIG_SYS_GAFR3_U_VAL, GAFR3_U);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(CONFIG_SYS_PSSR_VAL, PSSR);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pxa_interrupt_setup(void)
|
||||||
|
{
|
||||||
|
writel(0, ICLR);
|
||||||
|
writel(0, ICMR);
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(0, ICLR2);
|
||||||
|
writel(0, ICMR2);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void pxa_clock_setup(void)
|
||||||
|
{
|
||||||
|
writel(CONFIG_SYS_CKEN, CKEN);
|
||||||
|
writel(CONFIG_SYS_CCCR, CCCR);
|
||||||
|
asm volatile("mcr p14, 0, %0, c6, c0, 0" : : "r"(0x0b));
|
||||||
|
|
||||||
|
/* enable the 32Khz oscillator for RTC and PowerManager */
|
||||||
|
writel(OSCC_OON, OSCC);
|
||||||
|
while (!(readl(OSCC) & OSCC_OOK))
|
||||||
|
asm volatile("" : : : "memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
void pxa_wakeup(void)
|
||||||
|
{
|
||||||
|
uint32_t rcsr;
|
||||||
|
|
||||||
|
rcsr = readl(RCSR);
|
||||||
|
writel(rcsr & (RCSR_GPR | RCSR_SMR | RCSR_WDR | RCSR_HWR), RCSR);
|
||||||
|
|
||||||
|
/* Wakeup */
|
||||||
|
if (rcsr & RCSR_SMR) {
|
||||||
|
writel(PSSR_PH, PSSR);
|
||||||
|
pxa2xx_dram_init();
|
||||||
|
icache_disable();
|
||||||
|
dcache_disable();
|
||||||
|
asm volatile("mov pc, %0" : : "r"(readl(PSPR)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int arch_cpu_init(void)
|
||||||
|
{
|
||||||
|
pxa_gpio_setup();
|
||||||
|
pxa_wakeup();
|
||||||
|
pxa_interrupt_setup();
|
||||||
|
pxa_clock_setup();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void i2c_clk_enable(void)
|
||||||
|
{
|
||||||
|
/* Set the global I2C clock on */
|
||||||
|
writel(readl(CKEN) | CKEN14_I2C, CKEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __attribute__((weak)) reset_cpu(void) __attribute__((noreturn));
|
||||||
|
|
||||||
|
void reset_cpu(void)
|
||||||
|
{
|
||||||
|
uint32_t tmp;
|
||||||
|
|
||||||
|
setbits_le32(OWER, OWER_WME);
|
||||||
|
|
||||||
|
tmp = readl(OSCR);
|
||||||
|
tmp += 0x1000;
|
||||||
|
writel(tmp, OSMR3);
|
||||||
|
writel(MDREFR_SLFRSH, MDREFR);
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
void enable_caches(void)
|
||||||
|
{
|
||||||
|
#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
|
||||||
|
icache_enable();
|
||||||
|
#endif
|
||||||
|
#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
|
||||||
|
dcache_enable();
|
||||||
|
#endif
|
||||||
|
}
|
22
arch/arm/cpu/pxa/relocate.S
Normal file
22
arch/arm/cpu/pxa/relocate.S
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* relocate - PXA270 vector relocation
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Albert ARIBAUD <albert.u.boot@aribaud.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <linux/linkage.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The PXA SoC is very specific with respect to exceptions: it
|
||||||
|
* does not provide RAM at the high vectors address (0xFFFF0000),
|
||||||
|
* thus only the low address (0x00000000) is useable; but that is
|
||||||
|
* in ROM, so let's avoid relocating the vectors.
|
||||||
|
*/
|
||||||
|
.section .text.relocate_vectors,"ax",%progbits
|
||||||
|
|
||||||
|
ENTRY(relocate_vectors)
|
||||||
|
|
||||||
|
bx lr
|
||||||
|
|
||||||
|
ENDPROC(relocate_vectors)
|
205
arch/arm/cpu/pxa/start.S
Normal file
205
arch/arm/cpu/pxa/start.S
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* armboot - Startup Code for XScale CPU-core
|
||||||
|
*
|
||||||
|
* Copyright (C) 1998 Dan Malek <dmalek@jlc.net>
|
||||||
|
* Copyright (C) 1999 Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
|
||||||
|
* Copyright (C) 2000 Wolfgang Denk <wd@denx.de>
|
||||||
|
* Copyright (C) 2001 Alex Zuepke <azu@sysgo.de>
|
||||||
|
* Copyright (C) 2001 Marius Groger <mag@sysgo.de>
|
||||||
|
* Copyright (C) 2002 Alex Zupke <azu@sysgo.de>
|
||||||
|
* Copyright (C) 2002 Gary Jennejohn <garyj@denx.de>
|
||||||
|
* Copyright (C) 2002 Kyle Harris <kharris@nexus-tech.net>
|
||||||
|
* Copyright (C) 2003 Kai-Uwe Bloem <kai-uwe.bloem@auerswald.de>
|
||||||
|
* Copyright (C) 2003 Kshitij <kshitij@ti.com>
|
||||||
|
* Copyright (C) 2003 Richard Woodruff <r-woodruff2@ti.com>
|
||||||
|
* Copyright (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
|
||||||
|
* Copyright (C) 2004 Texas Instruments <r-woodruff2@ti.com>
|
||||||
|
* Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm-offsets.h>
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
*************************************************************************
|
||||||
|
*
|
||||||
|
* Startup Code (reset vector)
|
||||||
|
*
|
||||||
|
* do important init only if we don't start from memory!
|
||||||
|
* setup Memory and board specific bits prior to relocation.
|
||||||
|
* relocate armboot to ram
|
||||||
|
* setup stack
|
||||||
|
*
|
||||||
|
*************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
.globl reset
|
||||||
|
|
||||||
|
reset:
|
||||||
|
/*
|
||||||
|
* set the cpu to SVC32 mode
|
||||||
|
*/
|
||||||
|
mrs r0,cpsr
|
||||||
|
bic r0,r0,#0x1f
|
||||||
|
orr r0,r0,#0xd3
|
||||||
|
msr cpsr,r0
|
||||||
|
|
||||||
|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
|
||||||
|
bl cpu_init_crit
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_CPU_PXA25X
|
||||||
|
bl lock_cache_for_stack
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_CPU_PXA27X
|
||||||
|
/*
|
||||||
|
* enable clock for SRAM
|
||||||
|
*/
|
||||||
|
ldr r0,=CKEN
|
||||||
|
ldr r1,[r0]
|
||||||
|
orr r1,r1,#(1 << 20)
|
||||||
|
str r1,[r0]
|
||||||
|
#endif
|
||||||
|
bl _main
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.globl c_runtime_cpu_setup
|
||||||
|
c_runtime_cpu_setup:
|
||||||
|
|
||||||
|
#ifdef CONFIG_CPU_PXA25X
|
||||||
|
/*
|
||||||
|
* Unlock (actually, disable) the cache now that board_init_f
|
||||||
|
* is done. We could do this earlier but we would need to add
|
||||||
|
* a new C runtime hook, whereas c_runtime_cpu_setup already
|
||||||
|
* exists.
|
||||||
|
* As this routine is just a call to cpu_init_crit, let us
|
||||||
|
* tail-optimize and do a simple branch here.
|
||||||
|
*/
|
||||||
|
b cpu_init_crit
|
||||||
|
#else
|
||||||
|
bx lr
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
*************************************************************************
|
||||||
|
*
|
||||||
|
* CPU_init_critical registers
|
||||||
|
*
|
||||||
|
* setup important registers
|
||||||
|
* setup memory timing
|
||||||
|
*
|
||||||
|
*************************************************************************
|
||||||
|
*/
|
||||||
|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT) || defined(CONFIG_CPU_PXA25X)
|
||||||
|
cpu_init_crit:
|
||||||
|
/*
|
||||||
|
* flush v4 I/D caches
|
||||||
|
*/
|
||||||
|
mov r0, #0
|
||||||
|
mcr p15, 0, r0, c7, c7, 0 /* Invalidate I+D+BTB caches */
|
||||||
|
mcr p15, 0, r0, c8, c7, 0 /* Invalidate Unified TLB */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* disable MMU stuff and caches
|
||||||
|
*/
|
||||||
|
mrc p15, 0, r0, c1, c0, 0
|
||||||
|
bic r0, r0, #0x00003300 @ clear bits 13:12, 9:8 (--VI --RS)
|
||||||
|
bic r0, r0, #0x00000087 @ clear bits 7, 2:0 (B--- -CAM)
|
||||||
|
orr r0, r0, #0x00000002 @ set bit 1 (A) Align
|
||||||
|
mcr p15, 0, r0, c1, c0, 0
|
||||||
|
|
||||||
|
mov pc, lr /* back to my caller */
|
||||||
|
#endif /* !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT) || CONFIG_CPU_PXA25X */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable MMU to use DCache as DRAM.
|
||||||
|
*
|
||||||
|
* This is useful on PXA25x and PXA26x in early bootstages, where there is no
|
||||||
|
* other possible memory available to hold stack.
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_CPU_PXA25X
|
||||||
|
.macro CPWAIT reg
|
||||||
|
mrc p15, 0, \reg, c2, c0, 0
|
||||||
|
mov \reg, \reg
|
||||||
|
sub pc, pc, #4
|
||||||
|
.endm
|
||||||
|
lock_cache_for_stack:
|
||||||
|
/* Domain access -- enable for all CPs */
|
||||||
|
ldr r0, =0x0000ffff
|
||||||
|
mcr p15, 0, r0, c3, c0, 0
|
||||||
|
|
||||||
|
/* Point TTBR to MMU table */
|
||||||
|
ldr r0, =mmutable
|
||||||
|
mcr p15, 0, r0, c2, c0, 0
|
||||||
|
|
||||||
|
/* Kick in MMU, ICache, DCache, BTB */
|
||||||
|
mrc p15, 0, r0, c1, c0, 0
|
||||||
|
bic r0, #0x1b00
|
||||||
|
bic r0, #0x0087
|
||||||
|
orr r0, #0x1800
|
||||||
|
orr r0, #0x0005
|
||||||
|
mcr p15, 0, r0, c1, c0, 0
|
||||||
|
CPWAIT r0
|
||||||
|
|
||||||
|
/* Unlock Icache, Dcache */
|
||||||
|
mcr p15, 0, r0, c9, c1, 1
|
||||||
|
mcr p15, 0, r0, c9, c2, 1
|
||||||
|
|
||||||
|
/* Flush Icache, Dcache, BTB */
|
||||||
|
mcr p15, 0, r0, c7, c7, 0
|
||||||
|
|
||||||
|
/* Unlock I-TLB, D-TLB */
|
||||||
|
mcr p15, 0, r0, c10, c4, 1
|
||||||
|
mcr p15, 0, r0, c10, c8, 1
|
||||||
|
|
||||||
|
/* Flush TLB */
|
||||||
|
mcr p15, 0, r0, c8, c7, 0
|
||||||
|
|
||||||
|
/* Allocate 4096 bytes of Dcache as RAM */
|
||||||
|
|
||||||
|
/* Drain pending loads and stores */
|
||||||
|
mcr p15, 0, r0, c7, c10, 4
|
||||||
|
|
||||||
|
mov r4, #0x00
|
||||||
|
mov r5, #0x00
|
||||||
|
mov r2, #0x01
|
||||||
|
mcr p15, 0, r0, c9, c2, 0
|
||||||
|
CPWAIT r0
|
||||||
|
|
||||||
|
/* 128 lines reserved (128 x 32bytes = 4096 bytes total) */
|
||||||
|
mov r0, #128
|
||||||
|
ldr r1, =0xfffff000
|
||||||
|
|
||||||
|
alloc:
|
||||||
|
mcr p15, 0, r1, c7, c2, 5
|
||||||
|
/* Drain pending loads and stores */
|
||||||
|
mcr p15, 0, r0, c7, c10, 4
|
||||||
|
strd r4, [r1], #8
|
||||||
|
strd r4, [r1], #8
|
||||||
|
strd r4, [r1], #8
|
||||||
|
strd r4, [r1], #8
|
||||||
|
subs r0, #0x01
|
||||||
|
bne alloc
|
||||||
|
/* Drain pending loads and stores */
|
||||||
|
mcr p15, 0, r0, c7, c10, 4
|
||||||
|
mov r2, #0x00
|
||||||
|
mcr p15, 0, r2, c9, c2, 0
|
||||||
|
CPWAIT r0
|
||||||
|
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
.section .mmutable, "a"
|
||||||
|
mmutable:
|
||||||
|
.align 14
|
||||||
|
/* 0x00000000 - 0xffe00000 : 1:1, uncached mapping */
|
||||||
|
.set __base, 0
|
||||||
|
.rept 0xfff
|
||||||
|
.word (__base << 20) | 0xc12
|
||||||
|
.set __base, __base + 1
|
||||||
|
.endr
|
||||||
|
|
||||||
|
/* 0xfff00000 : 1:1, cached mapping */
|
||||||
|
.word (0xfff << 20) | 0x1c1e
|
||||||
|
#endif /* CONFIG_CPU_PXA25X */
|
16
arch/arm/cpu/pxa/timer.c
Normal file
16
arch/arm/cpu/pxa/timer.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Marvell PXA2xx/3xx timer driver
|
||||||
|
*
|
||||||
|
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
int timer_init(void)
|
||||||
|
{
|
||||||
|
writel(0, CONFIG_SYS_TIMER_COUNTER);
|
||||||
|
return 0;
|
||||||
|
}
|
89
arch/arm/cpu/pxa/usb.c
Normal file
89
arch/arm/cpu/pxa/usb.c
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2006
|
||||||
|
* Markus Klotzbuecher, DENX Software Engineering <mk@denx.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
#if defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT)
|
||||||
|
# if defined(CONFIG_CPU_MONAHANS) || defined(CONFIG_CPU_PXA27X)
|
||||||
|
|
||||||
|
#include <asm/arch/pxa-regs.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <usb.h>
|
||||||
|
|
||||||
|
int usb_cpu_init(void)
|
||||||
|
{
|
||||||
|
#if defined(CONFIG_CPU_MONAHANS)
|
||||||
|
/* Enable USB host clock. */
|
||||||
|
writel(readl(CKENA) | CKENA_2_USBHOST | CKENA_20_UDC, CKENA);
|
||||||
|
udelay(100);
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
/* Enable USB host clock. */
|
||||||
|
writel(readl(CKEN) | CKEN10_USBHOST, CKEN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_MONAHANS)
|
||||||
|
/* Configure Port 2 for Host (USB Client Registers) */
|
||||||
|
writel(0x3000c, UP2OCR);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
writel(readl(UHCHR) | UHCHR_FHR, UHCHR);
|
||||||
|
mdelay(11);
|
||||||
|
writel(readl(UHCHR) & ~UHCHR_FHR, UHCHR);
|
||||||
|
|
||||||
|
writel(readl(UHCHR) | UHCHR_FSBIR, UHCHR);
|
||||||
|
while (readl(UHCHR) & UHCHR_FSBIR)
|
||||||
|
udelay(1);
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_MONAHANS) || defined(CONFIG_PXA27X)
|
||||||
|
writel(readl(UHCHR) & ~UHCHR_SSEP0, UHCHR);
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(readl(UHCHR) & ~UHCHR_SSEP2, UHCHR);
|
||||||
|
#endif
|
||||||
|
writel(readl(UHCHR) & ~(UHCHR_SSEP1 | UHCHR_SSE), UHCHR);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int usb_cpu_stop(void)
|
||||||
|
{
|
||||||
|
writel(readl(UHCHR) | UHCHR_FHR, UHCHR);
|
||||||
|
udelay(11);
|
||||||
|
writel(readl(UHCHR) & ~UHCHR_FHR, UHCHR);
|
||||||
|
|
||||||
|
writel(readl(UHCCOMS) | UHCCOMS_HCR, UHCCOMS);
|
||||||
|
udelay(10);
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_MONAHANS) || defined(CONFIG_PXA27X)
|
||||||
|
writel(readl(UHCHR) | UHCHR_SSEP0, UHCHR);
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
writel(readl(UHCHR) | UHCHR_SSEP2, UHCHR);
|
||||||
|
#endif
|
||||||
|
writel(readl(UHCHR) | UHCHR_SSEP1 | UHCHR_SSE, UHCHR);
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_MONAHANS)
|
||||||
|
/* Disable USB host clock. */
|
||||||
|
writel(readl(CKENA) & ~(CKENA_2_USBHOST | CKENA_20_UDC), CKENA);
|
||||||
|
udelay(100);
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_CPU_PXA27X)
|
||||||
|
/* Disable USB host clock. */
|
||||||
|
writel(readl(CKEN) & ~CKEN10_USBHOST, CKEN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int usb_cpu_init_fail(void)
|
||||||
|
{
|
||||||
|
return usb_cpu_stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
# endif /* defined(CONFIG_CPU_MONAHANS) || defined(CONFIG_CPU_PXA27X) */
|
||||||
|
#endif /* defined(CONFIG_USB_OHCI) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) */
|
9
arch/arm/cpu/sa1100/Makefile
Normal file
9
arch/arm/cpu/sa1100/Makefile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# (C) Copyright 2000-2006
|
||||||
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
|
|
||||||
|
extra-y = start.o
|
||||||
|
|
||||||
|
obj-y += cpu.o
|
||||||
|
obj-y += timer.o
|
65
arch/arm/cpu/sa1100/cpu.c
Normal file
65
arch/arm/cpu/sa1100/cpu.c
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Marius Groeger <mgroeger@sysgo.de>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Alex Zuepke <azu@sysgo.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CPU specific code
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <command.h>
|
||||||
|
#include <cpu_func.h>
|
||||||
|
#include <irq_func.h>
|
||||||
|
#include <asm/system.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
static void cache_flush(void);
|
||||||
|
|
||||||
|
int cleanup_before_linux (void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* this function is called just before we call linux
|
||||||
|
* it prepares the processor for linux
|
||||||
|
*
|
||||||
|
* just disable everything that can disturb booting linux
|
||||||
|
*/
|
||||||
|
|
||||||
|
disable_interrupts();
|
||||||
|
|
||||||
|
/* turn off I-cache */
|
||||||
|
icache_disable();
|
||||||
|
dcache_disable();
|
||||||
|
|
||||||
|
/* flush I-cache */
|
||||||
|
cache_flush();
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* flush I/D-cache */
|
||||||
|
static void cache_flush (void)
|
||||||
|
{
|
||||||
|
unsigned long i = 0;
|
||||||
|
|
||||||
|
asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (i));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define RST_BASE 0x90030000
|
||||||
|
#define RSRR 0x00
|
||||||
|
#define RCSR 0x04
|
||||||
|
|
||||||
|
__attribute__((noreturn)) void reset_cpu(void)
|
||||||
|
{
|
||||||
|
/* repeat endlessly */
|
||||||
|
while (1) {
|
||||||
|
writel(0, RST_BASE + RCSR);
|
||||||
|
writel(1, RST_BASE + RSRR);
|
||||||
|
}
|
||||||
|
}
|
126
arch/arm/cpu/sa1100/start.S
Normal file
126
arch/arm/cpu/sa1100/start.S
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
|
/*
|
||||||
|
* armboot - Startup Code for SA1100 CPU
|
||||||
|
*
|
||||||
|
* Copyright (C) 1998 Dan Malek <dmalek@jlc.net>
|
||||||
|
* Copyright (C) 1999 Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
|
||||||
|
* Copyright (C) 2000 Wolfgang Denk <wd@denx.de>
|
||||||
|
* Copyright (c) 2001 Alex Züpke <azu@sysgo.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm-offsets.h>
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
*************************************************************************
|
||||||
|
*
|
||||||
|
* Startup Code (reset vector)
|
||||||
|
*
|
||||||
|
* do important init only if we don't start from memory!
|
||||||
|
* relocate armboot to ram
|
||||||
|
* setup stack
|
||||||
|
* jump to second stage
|
||||||
|
*
|
||||||
|
*************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
.globl reset
|
||||||
|
|
||||||
|
reset:
|
||||||
|
/*
|
||||||
|
* set the cpu to SVC32 mode
|
||||||
|
*/
|
||||||
|
mrs r0,cpsr
|
||||||
|
bic r0,r0,#0x1f
|
||||||
|
orr r0,r0,#0xd3
|
||||||
|
msr cpsr,r0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* we do sys-critical inits only at reboot,
|
||||||
|
* not when booting from ram!
|
||||||
|
*/
|
||||||
|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
|
||||||
|
bl cpu_init_crit
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bl _main
|
||||||
|
|
||||||
|
/*------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
.globl c_runtime_cpu_setup
|
||||||
|
c_runtime_cpu_setup:
|
||||||
|
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
/*
|
||||||
|
*************************************************************************
|
||||||
|
*
|
||||||
|
* CPU_init_critical registers
|
||||||
|
*
|
||||||
|
* setup important registers
|
||||||
|
* setup memory timing
|
||||||
|
*
|
||||||
|
*************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Interrupt-Controller base address */
|
||||||
|
IC_BASE: .word 0x90050000
|
||||||
|
#define ICMR 0x04
|
||||||
|
|
||||||
|
|
||||||
|
/* Reset-Controller */
|
||||||
|
RST_BASE: .word 0x90030000
|
||||||
|
#define RSRR 0x00
|
||||||
|
#define RCSR 0x04
|
||||||
|
|
||||||
|
|
||||||
|
/* PWR */
|
||||||
|
PWR_BASE: .word 0x90020000
|
||||||
|
#define PSPR 0x08
|
||||||
|
#define PPCR 0x14
|
||||||
|
cpuspeed: .word CONFIG_SYS_CPUSPEED
|
||||||
|
|
||||||
|
|
||||||
|
cpu_init_crit:
|
||||||
|
/*
|
||||||
|
* mask all IRQs
|
||||||
|
*/
|
||||||
|
ldr r0, IC_BASE
|
||||||
|
mov r1, #0x00
|
||||||
|
str r1, [r0, #ICMR]
|
||||||
|
|
||||||
|
/* set clock speed */
|
||||||
|
ldr r0, PWR_BASE
|
||||||
|
ldr r1, cpuspeed
|
||||||
|
str r1, [r0, #PPCR]
|
||||||
|
|
||||||
|
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT_ONLY)
|
||||||
|
/*
|
||||||
|
* before relocating, we have to setup RAM timing
|
||||||
|
* because memory timing is board-dependend, you will
|
||||||
|
* find a lowlevel_init.S in your board directory.
|
||||||
|
*/
|
||||||
|
mov ip, lr
|
||||||
|
bl lowlevel_init
|
||||||
|
mov lr, ip
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* disable MMU stuff and enable I-cache
|
||||||
|
*/
|
||||||
|
mrc p15,0,r0,c1,c0
|
||||||
|
bic r0, r0, #0x00002000 @ clear bit 13 (X)
|
||||||
|
bic r0, r0, #0x0000000f @ clear bits 3-0 (WCAM)
|
||||||
|
orr r0, r0, #0x00001000 @ set bit 12 (I) Icache
|
||||||
|
orr r0, r0, #0x00000002 @ set bit 1 (A) Align
|
||||||
|
mcr p15,0,r0,c1,c0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* flush v4 I/D caches
|
||||||
|
*/
|
||||||
|
mov r0, #0
|
||||||
|
mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */
|
||||||
|
mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */
|
||||||
|
|
||||||
|
mov pc, lr
|
66
arch/arm/cpu/sa1100/timer.c
Normal file
66
arch/arm/cpu/sa1100/timer.c
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Marius Groeger <mgroeger@sysgo.de>
|
||||||
|
*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
|
||||||
|
* Alex Zuepke <azu@sysgo.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <SA-1100.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <linux/delay.h>
|
||||||
|
|
||||||
|
static ulong get_timer_masked (void)
|
||||||
|
{
|
||||||
|
return OSCR;
|
||||||
|
}
|
||||||
|
|
||||||
|
ulong get_timer (ulong base)
|
||||||
|
{
|
||||||
|
return get_timer_masked ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void __udelay(unsigned long usec)
|
||||||
|
{
|
||||||
|
ulong tmo;
|
||||||
|
ulong endtime;
|
||||||
|
signed long diff;
|
||||||
|
|
||||||
|
if (usec >= 1000) {
|
||||||
|
tmo = usec / 1000;
|
||||||
|
tmo *= CONFIG_SYS_HZ;
|
||||||
|
tmo /= 1000;
|
||||||
|
} else {
|
||||||
|
tmo = usec * CONFIG_SYS_HZ;
|
||||||
|
tmo /= (1000*1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
endtime = get_timer_masked () + tmo;
|
||||||
|
|
||||||
|
do {
|
||||||
|
ulong now = get_timer_masked ();
|
||||||
|
diff = endtime - now;
|
||||||
|
} while (diff >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function is derived from PowerPC code (read timebase as long long).
|
||||||
|
* On ARM it just returns the timer value.
|
||||||
|
*/
|
||||||
|
unsigned long long get_ticks(void)
|
||||||
|
{
|
||||||
|
return get_timer(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function is derived from PowerPC code (timebase clock frequency).
|
||||||
|
* On ARM it returns the number of timer ticks per second.
|
||||||
|
*/
|
||||||
|
ulong get_tbclk(void)
|
||||||
|
{
|
||||||
|
return CONFIG_SYS_HZ;
|
||||||
|
}
|
@ -32,8 +32,8 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -15,7 +15,7 @@ ENTRY(_start)
|
|||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
#ifndef CONFIG_CMDLINE
|
#ifndef CONFIG_CMDLINE
|
||||||
/DISCARD/ : { *(__u_boot_list_2_cmd_*) }
|
/DISCARD/ : { *(.u_boot_list_2_cmd_*) }
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_ARMV7_SECURE_BASE) && defined(CONFIG_ARMV7_NONSEC)
|
#if defined(CONFIG_ARMV7_SECURE_BASE) && defined(CONFIG_ARMV7_NONSEC)
|
||||||
/*
|
/*
|
||||||
@ -149,8 +149,8 @@ SECTIONS
|
|||||||
. = .;
|
. = .;
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__u_boot_list : {
|
.u_boot_list : {
|
||||||
KEEP(*(SORT(__u_boot_list*)));
|
KEEP(*(SORT(.u_boot_list*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
|
@ -5,9 +5,9 @@ dtb-$(CONFIG_TARGET_TAURUS) += at91sam9g20-taurus.dtb
|
|||||||
dtb-$(CONFIG_TARGET_CORVUS) += at91sam9g45-corvus.dtb
|
dtb-$(CONFIG_TARGET_CORVUS) += at91sam9g45-corvus.dtb
|
||||||
dtb-$(CONFIG_TARGET_GURNARD) += at91sam9g45-gurnard.dtb
|
dtb-$(CONFIG_TARGET_GURNARD) += at91sam9g45-gurnard.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_SMDKC100) += s5pc1xx-smdkc100.dtb
|
dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
|
||||||
dtb-$(CONFIG_TARGET_S5P_GONI) += s5pc1xx-goni.dtb
|
dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
|
||||||
dtb-$(CONFIG_ARCH_EXYNOS4) += exynos4210-origen.dtb \
|
dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
|
||||||
exynos4210-smdkv310.dtb \
|
exynos4210-smdkv310.dtb \
|
||||||
exynos4210-universal_c210.dtb \
|
exynos4210-universal_c210.dtb \
|
||||||
exynos4210-trats.dtb \
|
exynos4210-trats.dtb \
|
||||||
@ -19,7 +19,7 @@ dtb-$(CONFIG_TARGET_HIKEY960) += hi3660-hikey960.dtb
|
|||||||
|
|
||||||
dtb-$(CONFIG_TARGET_POPLAR) += hi3798cv200-poplar.dtb
|
dtb-$(CONFIG_TARGET_POPLAR) += hi3798cv200-poplar.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_EXYNOS5) += exynos5250-arndale.dtb \
|
dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
|
||||||
exynos5250-snow.dtb \
|
exynos5250-snow.dtb \
|
||||||
exynos5250-spring.dtb \
|
exynos5250-spring.dtb \
|
||||||
exynos5250-smdk5250.dtb \
|
exynos5250-smdk5250.dtb \
|
||||||
@ -58,6 +58,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += \
|
|||||||
kirkwood-ib62x0.dtb \
|
kirkwood-ib62x0.dtb \
|
||||||
kirkwood-iconnect.dtb \
|
kirkwood-iconnect.dtb \
|
||||||
kirkwood-is2.dtb \
|
kirkwood-is2.dtb \
|
||||||
|
kirkwood-km_kirkwood.dtb \
|
||||||
kirkwood-lsxhl.dtb \
|
kirkwood-lsxhl.dtb \
|
||||||
kirkwood-lschlv2.dtb \
|
kirkwood-lschlv2.dtb \
|
||||||
kirkwood-net2big.dtb \
|
kirkwood-net2big.dtb \
|
||||||
@ -136,7 +137,6 @@ dtb-$(CONFIG_ROCKCHIP_RK3368) += \
|
|||||||
|
|
||||||
dtb-$(CONFIG_ROCKCHIP_RK3399) += \
|
dtb-$(CONFIG_ROCKCHIP_RK3399) += \
|
||||||
rk3399-evb.dtb \
|
rk3399-evb.dtb \
|
||||||
rk3399-eaidk-610.dtb \
|
|
||||||
rk3399-ficus.dtb \
|
rk3399-ficus.dtb \
|
||||||
rk3399-firefly.dtb \
|
rk3399-firefly.dtb \
|
||||||
rk3399-gru-bob.dtb \
|
rk3399-gru-bob.dtb \
|
||||||
@ -232,12 +232,12 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
|
|||||||
tegra210-p2571.dtb \
|
tegra210-p2571.dtb \
|
||||||
tegra210-p3450-0000.dtb
|
tegra210-p3450-0000.dtb
|
||||||
|
|
||||||
ifdef CONFIG_ARMADA_32BIT
|
|
||||||
ifdef CONFIG_ARMADA_375
|
|
||||||
dtb-$(CONFIG_ARCH_MVEBU) += \
|
|
||||||
armada-375-db.dtb
|
|
||||||
else
|
|
||||||
dtb-$(CONFIG_ARCH_MVEBU) += \
|
dtb-$(CONFIG_ARCH_MVEBU) += \
|
||||||
|
armada-3720-db.dtb \
|
||||||
|
armada-3720-espressobin.dtb \
|
||||||
|
armada-3720-turris-mox.dtb \
|
||||||
|
armada-3720-uDPU.dtb \
|
||||||
|
armada-375-db.dtb \
|
||||||
armada-385-atl-x530.dtb \
|
armada-385-atl-x530.dtb \
|
||||||
armada-385-atl-x530DP.dtb \
|
armada-385-atl-x530DP.dtb \
|
||||||
armada-385-db-88f6820-amc.dtb \
|
armada-385-db-88f6820-amc.dtb \
|
||||||
@ -246,6 +246,12 @@ dtb-$(CONFIG_ARCH_MVEBU) += \
|
|||||||
armada-388-gp.dtb \
|
armada-388-gp.dtb \
|
||||||
armada-388-helios4.dtb \
|
armada-388-helios4.dtb \
|
||||||
armada-38x-controlcenterdc.dtb \
|
armada-38x-controlcenterdc.dtb \
|
||||||
|
armada-7040-db-nand.dtb \
|
||||||
|
armada-7040-db.dtb \
|
||||||
|
armada-8040-clearfog-gt-8k.dtb \
|
||||||
|
armada-8040-db.dtb \
|
||||||
|
armada-8040-mcbin.dtb \
|
||||||
|
armada-8040-puzzle-m801.dtb \
|
||||||
armada-xp-crs305-1g-4s.dtb \
|
armada-xp-crs305-1g-4s.dtb \
|
||||||
armada-xp-crs305-1g-4s-bit.dtb \
|
armada-xp-crs305-1g-4s-bit.dtb \
|
||||||
armada-xp-crs326-24g-2s.dtb \
|
armada-xp-crs326-24g-2s.dtb \
|
||||||
@ -256,21 +262,7 @@ dtb-$(CONFIG_ARCH_MVEBU) += \
|
|||||||
armada-xp-gp.dtb \
|
armada-xp-gp.dtb \
|
||||||
armada-xp-maxbcm.dtb \
|
armada-xp-maxbcm.dtb \
|
||||||
armada-xp-synology-ds414.dtb \
|
armada-xp-synology-ds414.dtb \
|
||||||
armada-xp-theadorable.dtb
|
armada-xp-theadorable.dtb \
|
||||||
endif
|
|
||||||
else
|
|
||||||
dtb-$(CONFIG_ARCH_MVEBU) += \
|
|
||||||
armada-3720-db.dtb \
|
|
||||||
armada-3720-espressobin.dtb \
|
|
||||||
armada-3720-turris-mox.dtb \
|
|
||||||
armada-3720-eDPU.dtb \
|
|
||||||
armada-3720-uDPU.dtb \
|
|
||||||
armada-7040-db-nand.dtb \
|
|
||||||
armada-7040-db.dtb \
|
|
||||||
armada-8040-clearfog-gt-8k.dtb \
|
|
||||||
armada-8040-db.dtb \
|
|
||||||
armada-8040-mcbin.dtb \
|
|
||||||
armada-8040-puzzle-m801.dtb \
|
|
||||||
cn9130-db-A.dtb \
|
cn9130-db-A.dtb \
|
||||||
cn9130-db-B.dtb \
|
cn9130-db-B.dtb \
|
||||||
cn9131-db-A.dtb \
|
cn9131-db-A.dtb \
|
||||||
@ -279,7 +271,6 @@ dtb-$(CONFIG_ARCH_MVEBU) += \
|
|||||||
cn9132-db-B.dtb \
|
cn9132-db-B.dtb \
|
||||||
cn9130-crb-A.dtb \
|
cn9130-crb-A.dtb \
|
||||||
cn9130-crb-B.dtb
|
cn9130-crb-B.dtb
|
||||||
endif
|
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_SYNQUACER) += synquacer-sc2a11-developerbox.dtb
|
dtb-$(CONFIG_ARCH_SYNQUACER) += synquacer-sc2a11-developerbox.dtb
|
||||||
dtb-$(CONFIG_ARCH_UNIPHIER_LD11) += \
|
dtb-$(CONFIG_ARCH_UNIPHIER_LD11) += \
|
||||||
@ -351,8 +342,6 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
|
|||||||
zynqmp-mini-qspi.dtb \
|
zynqmp-mini-qspi.dtb \
|
||||||
zynqmp-sm-k26-revA.dtb \
|
zynqmp-sm-k26-revA.dtb \
|
||||||
zynqmp-smk-k26-revA.dtb \
|
zynqmp-smk-k26-revA.dtb \
|
||||||
zynqmp-sck-kr-g-revA.dtbo \
|
|
||||||
zynqmp-sck-kr-g-revB.dtbo \
|
|
||||||
zynqmp-sck-kv-g-revA.dtbo \
|
zynqmp-sck-kv-g-revA.dtbo \
|
||||||
zynqmp-sck-kv-g-revB.dtbo \
|
zynqmp-sck-kv-g-revB.dtbo \
|
||||||
zynqmp-topic-miamimp-xilinx-xdp-v1r1.dtb \
|
zynqmp-topic-miamimp-xilinx-xdp-v1r1.dtb \
|
||||||
@ -383,9 +372,6 @@ dtb-$(CONFIG_ARCH_VERSAL) += \
|
|||||||
versal-mini-emmc0.dtb \
|
versal-mini-emmc0.dtb \
|
||||||
versal-mini-emmc1.dtb \
|
versal-mini-emmc1.dtb \
|
||||||
xilinx-versal-virt.dtb
|
xilinx-versal-virt.dtb
|
||||||
dtb-$(CONFIG_ARCH_VERSAL_NET) += \
|
|
||||||
versal-net-mini.dtb \
|
|
||||||
xilinx-versal-net-virt.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_ZYNQMP_R5) += \
|
dtb-$(CONFIG_ARCH_ZYNQMP_R5) += \
|
||||||
zynqmp-r5.dtb
|
zynqmp-r5.dtb
|
||||||
dtb-$(CONFIG_AM33XX) += \
|
dtb-$(CONFIG_AM33XX) += \
|
||||||
@ -395,6 +381,8 @@ dtb-$(CONFIG_AM33XX) += \
|
|||||||
am335x-boneblack-wireless.dtb \
|
am335x-boneblack-wireless.dtb \
|
||||||
am335x-boneblue.dtb \
|
am335x-boneblue.dtb \
|
||||||
am335x-brppt1-mmc.dtb \
|
am335x-brppt1-mmc.dtb \
|
||||||
|
am335x-brppt1-nand.dtb \
|
||||||
|
am335x-brppt1-spi.dtb \
|
||||||
am335x-brxre1.dtb \
|
am335x-brxre1.dtb \
|
||||||
am335x-brsmarc1.dtb \
|
am335x-brsmarc1.dtb \
|
||||||
am335x-draco.dtb \
|
am335x-draco.dtb \
|
||||||
@ -424,14 +412,12 @@ dtb-$(CONFIG_AM43XX) += am437x-gp-evm.dtb am437x-sk-evm.dtb \
|
|||||||
am437x-cm-t43.dtb
|
am437x-cm-t43.dtb
|
||||||
dtb-$(CONFIG_TARGET_AM3517_EVM) += am3517-evm.dtb
|
dtb-$(CONFIG_TARGET_AM3517_EVM) += am3517-evm.dtb
|
||||||
dtb-$(CONFIG_TI816X) += dm8168-evm.dtb
|
dtb-$(CONFIG_TI816X) += dm8168-evm.dtb
|
||||||
dtb-$(CONFIG_TARGET_THUNDERX_88XX) += thunderx-88xx.dtb
|
dtb-$(CONFIG_THUNDERX) += thunderx-88xx.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_SOCFPGA) += \
|
dtb-$(CONFIG_ARCH_SOCFPGA) += \
|
||||||
socfpga_agilex_socdk.dtb \
|
socfpga_agilex_socdk.dtb \
|
||||||
socfpga_arria5_secu1.dtb \
|
socfpga_arria5_secu1.dtb \
|
||||||
socfpga_arria5_socdk.dtb \
|
socfpga_arria5_socdk.dtb \
|
||||||
socfpga_arria10_chameleonv3_270_3.dtb \
|
|
||||||
socfpga_arria10_chameleonv3_480_2.dtb \
|
|
||||||
socfpga_arria10_socdk_sdmmc.dtb \
|
socfpga_arria10_socdk_sdmmc.dtb \
|
||||||
socfpga_cyclone5_mcvevk.dtb \
|
socfpga_cyclone5_mcvevk.dtb \
|
||||||
socfpga_cyclone5_is1.dtb \
|
socfpga_cyclone5_is1.dtb \
|
||||||
@ -514,7 +500,6 @@ dtb-$(CONFIG_TARGET_TEN64) += fsl-ls1088a-ten64.dtb
|
|||||||
dtb-$(CONFIG_TARGET_DRAGONBOARD410C) += dragonboard410c.dtb
|
dtb-$(CONFIG_TARGET_DRAGONBOARD410C) += dragonboard410c.dtb
|
||||||
dtb-$(CONFIG_TARGET_DRAGONBOARD820C) += dragonboard820c.dtb
|
dtb-$(CONFIG_TARGET_DRAGONBOARD820C) += dragonboard820c.dtb
|
||||||
dtb-$(CONFIG_TARGET_STARQLTECHN) += starqltechn.dtb
|
dtb-$(CONFIG_TARGET_STARQLTECHN) += starqltechn.dtb
|
||||||
dtb-$(CONFIG_TARGET_QCS404EVB) += qcs404-evb.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_STEMMY) += ste-ux500-samsung-stemmy.dtb
|
dtb-$(CONFIG_TARGET_STEMMY) += ste-ux500-samsung-stemmy.dtb
|
||||||
|
|
||||||
@ -715,8 +700,7 @@ dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
|||||||
sun50i-h6-tanix-tx6.dtb \
|
sun50i-h6-tanix-tx6.dtb \
|
||||||
sun50i-h6-tanix-tx6-mini.dtb
|
sun50i-h6-tanix-tx6-mini.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN50I_H616) += \
|
dtb-$(CONFIG_MACH_SUN50I_H616) += \
|
||||||
sun50i-h616-orangepi-zero2.dtb \
|
sun50i-h616-orangepi-zero2.dtb
|
||||||
sun50i-h616-x96-mate.dtb
|
|
||||||
dtb-$(CONFIG_MACH_SUN50I) += \
|
dtb-$(CONFIG_MACH_SUN50I) += \
|
||||||
sun50i-a64-amarula-relic.dtb \
|
sun50i-a64-amarula-relic.dtb \
|
||||||
sun50i-a64-bananapi-m64.dtb \
|
sun50i-a64-bananapi-m64.dtb \
|
||||||
@ -740,7 +724,8 @@ dtb-$(CONFIG_MACH_SUN9I) += \
|
|||||||
sun9i-a80-cubieboard4.dtb \
|
sun9i-a80-cubieboard4.dtb \
|
||||||
sun9i-a80-cx-a99.dtb
|
sun9i-a80-cx-a99.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_VF610) += vf610-colibri-eval-v3.dtb \
|
dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
|
||||||
|
vf610-colibri.dtb \
|
||||||
vf610-twr.dtb \
|
vf610-twr.dtb \
|
||||||
vf610-pcm052.dtb \
|
vf610-pcm052.dtb \
|
||||||
vf610-bk4r1.dtb
|
vf610-bk4r1.dtb
|
||||||
@ -813,7 +798,7 @@ endif
|
|||||||
|
|
||||||
ifneq ($(CONFIG_MX6Q)$(CONFIG_MX6QDL),)
|
ifneq ($(CONFIG_MX6Q)$(CONFIG_MX6QDL),)
|
||||||
dtb-y += \
|
dtb-y += \
|
||||||
imx6q-apalis-eval.dtb \
|
imx6-apalis.dtb \
|
||||||
imx6q-bosch-acc.dtb \
|
imx6q-bosch-acc.dtb \
|
||||||
imx6q-cm-fx6.dtb \
|
imx6q-cm-fx6.dtb \
|
||||||
imx6q-cubox-i.dtb \
|
imx6q-cubox-i.dtb \
|
||||||
@ -890,24 +875,23 @@ dtb-$(CONFIG_MX6UL) += \
|
|||||||
imx6ul-phytec-segin-ff-rdk-nand.dtb \
|
imx6ul-phytec-segin-ff-rdk-nand.dtb \
|
||||||
imx6ul-pico-hobbit.dtb \
|
imx6ul-pico-hobbit.dtb \
|
||||||
imx6ul-pico-pi.dtb \
|
imx6ul-pico-pi.dtb \
|
||||||
imx6ul-kontron-bl.dtb \
|
imx6ul-kontron-n631x-s.dtb \
|
||||||
imx6ull-kontron-bl.dtb
|
imx6ull-kontron-n641x-s.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_MX6ULL) += \
|
dtb-$(CONFIG_MX6ULL) += \
|
||||||
imx6ull-14x14-evk.dtb \
|
imx6ull-14x14-evk.dtb \
|
||||||
imx6ull-colibri-emmc-eval-v3.dtb \
|
imx6ull-colibri.dtb \
|
||||||
imx6ull-colibri-eval-v3.dtb \
|
imx6ull-colibri-emmc.dtb \
|
||||||
imx6ull-myir-mys-6ulx-eval.dtb \
|
imx6ull-myir-mys-6ulx-eval.dtb \
|
||||||
imx6ull-seeed-npi-imx6ull-dev-board.dtb \
|
imx6ull-seeed-npi-imx6ull-dev-board.dtb \
|
||||||
imx6ull-phytec-segin-ff-rdk-emmc.dtb \
|
imx6ull-phytec-segin-ff-rdk-emmc.dtb \
|
||||||
imx6ull-dart-6ul.dtb \
|
imx6ull-dart-6ul.dtb \
|
||||||
imx6ull-somlabs-visionsom.dtb \
|
imx6ull-somlabs-visionsom.dtb \
|
||||||
imx6ulz-bsh-smm-m2.dtb \
|
|
||||||
imx6ulz-14x14-evk.dtb
|
imx6ulz-14x14-evk.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_MX6) += \
|
dtb-$(CONFIG_ARCH_MX6) += \
|
||||||
imx6q-apalis-eval.dtb \
|
imx6-apalis.dtb \
|
||||||
imx6dl-colibri-eval-v3.dtb
|
imx6-colibri.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_O4_IMX_NANO) += \
|
dtb-$(CONFIG_O4_IMX_NANO) += \
|
||||||
o4-imx-nano.dtb
|
o4-imx-nano.dtb
|
||||||
@ -918,8 +902,8 @@ dtb-$(CONFIG_EV_IMX280_NANO_X_MB) += \
|
|||||||
dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
|
dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
|
||||||
imx7d-sdb-qspi.dtb \
|
imx7d-sdb-qspi.dtb \
|
||||||
imx7-cm.dtb \
|
imx7-cm.dtb \
|
||||||
imx7d-colibri-emmc-eval-v3.dtb \
|
imx7-colibri-emmc.dtb \
|
||||||
imx7d-colibri-eval-v3.dtb \
|
imx7-colibri-rawnand.dtb \
|
||||||
imx7s-warp.dtb \
|
imx7s-warp.dtb \
|
||||||
imx7d-meerkat96.dtb \
|
imx7d-meerkat96.dtb \
|
||||||
imx7d-pico-pi.dtb \
|
imx7d-pico-pi.dtb \
|
||||||
@ -950,8 +934,8 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
|
|||||||
imx8mm-evk.dtb \
|
imx8mm-evk.dtb \
|
||||||
imx8mm-icore-mx8mm-ctouch2.dtb \
|
imx8mm-icore-mx8mm-ctouch2.dtb \
|
||||||
imx8mm-icore-mx8mm-edimm2.2.dtb \
|
imx8mm-icore-mx8mm-edimm2.2.dtb \
|
||||||
imx8mm-kontron-bl.dtb \
|
imx8mm-kontron-n801x-s.dtb \
|
||||||
imx8mm-kontron-bl-osm-s.dtb \
|
imx8mm-kontron-n801x-s-lvds.dtb \
|
||||||
imx8mm-mx8menlo.dtb \
|
imx8mm-mx8menlo.dtb \
|
||||||
imx8mm-venice.dtb \
|
imx8mm-venice.dtb \
|
||||||
imx8mm-venice-gw71xx-0x.dtb \
|
imx8mm-venice-gw71xx-0x.dtb \
|
||||||
@ -960,8 +944,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
|
|||||||
imx8mm-venice-gw7901.dtb \
|
imx8mm-venice-gw7901.dtb \
|
||||||
imx8mm-venice-gw7902.dtb \
|
imx8mm-venice-gw7902.dtb \
|
||||||
imx8mm-venice-gw7903.dtb \
|
imx8mm-venice-gw7903.dtb \
|
||||||
imx8mm-venice-gw7904.dtb \
|
imx8mm-verdin.dtb \
|
||||||
imx8mm-verdin-wifi-dev.dtb \
|
|
||||||
phycore-imx8mm.dtb \
|
phycore-imx8mm.dtb \
|
||||||
imx8mn-bsh-smm-s2.dtb \
|
imx8mn-bsh-smm-s2.dtb \
|
||||||
imx8mn-bsh-smm-s2pro.dtb \
|
imx8mn-bsh-smm-s2pro.dtb \
|
||||||
@ -978,21 +961,15 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
|
|||||||
imx8mq-phanbell.dtb \
|
imx8mq-phanbell.dtb \
|
||||||
imx8mp-dhcom-pdk2.dtb \
|
imx8mp-dhcom-pdk2.dtb \
|
||||||
imx8mp-evk.dtb \
|
imx8mp-evk.dtb \
|
||||||
imx8mp-icore-mx8mp-edimm2.2.dtb \
|
|
||||||
imx8mp-phyboard-pollux-rdk.dtb \
|
imx8mp-phyboard-pollux-rdk.dtb \
|
||||||
imx8mp-venice.dtb \
|
imx8mp-venice.dtb \
|
||||||
imx8mp-venice-gw74xx.dtb \
|
imx8mp-venice-gw74xx.dtb \
|
||||||
imx8mp-verdin-wifi-dev.dtb \
|
imx8mp-verdin.dtb \
|
||||||
imx8mq-pico-pi.dtb \
|
imx8mq-pico-pi.dtb \
|
||||||
imx8mq-kontron-pitx-imx8m.dtb \
|
imx8mq-kontron-pitx-imx8m.dtb
|
||||||
imx8mq-librem5-r4.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_IMX9) += \
|
|
||||||
imx93-11x11-evk.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_IMXRT) += imxrt1050-evk.dtb \
|
dtb-$(CONFIG_ARCH_IMXRT) += imxrt1050-evk.dtb \
|
||||||
imxrt1020-evk.dtb \
|
imxrt1020-evk.dtb
|
||||||
imxrt1170-evk.dtb \
|
|
||||||
|
|
||||||
dtb-$(CONFIG_RCAR_GEN2) += \
|
dtb-$(CONFIG_RCAR_GEN2) += \
|
||||||
r8a7790-lager-u-boot.dtb \
|
r8a7790-lager-u-boot.dtb \
|
||||||
@ -1094,8 +1071,6 @@ dtb-$(CONFIG_TARGET_OMAP3_BEAGLE) += \
|
|||||||
omap3-beagle-xm.dtb \
|
omap3-beagle-xm.dtb \
|
||||||
omap3-beagle.dtb
|
omap3-beagle.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_DEVKIT8000) += omap3-devkit8000.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_OMAP3_IGEP00X0) += \
|
dtb-$(CONFIG_TARGET_OMAP3_IGEP00X0) += \
|
||||||
omap3-igep0020.dtb
|
omap3-igep0020.dtb
|
||||||
|
|
||||||
@ -1165,74 +1140,43 @@ dtb-$(CONFIG_ARCH_BCM283X) += \
|
|||||||
bcm2837-rpi-cm3-io3.dtb \
|
bcm2837-rpi-cm3-io3.dtb \
|
||||||
bcm2711-rpi-4-b.dtb
|
bcm2711-rpi-4-b.dtb
|
||||||
|
|
||||||
|
dtb-$(CONFIG_ARCH_BCM63158) += \
|
||||||
|
bcm963158.dtb
|
||||||
|
|
||||||
|
dtb-$(CONFIG_ARCH_BCM68360) += \
|
||||||
|
bcm968360bg.dtb
|
||||||
|
|
||||||
|
dtb-$(CONFIG_ARCH_BCM6753) += \
|
||||||
|
bcm96753ref.dtb
|
||||||
|
|
||||||
|
dtb-$(CONFIG_ARCH_BCM6858) += \
|
||||||
|
bcm968580xref.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_BCMNS3) += ns3-board.dtb
|
dtb-$(CONFIG_TARGET_BCMNS3) += ns3-board.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_BCMSTB) += bcm7xxx.dtb
|
dtb-$(CONFIG_ARCH_BCMSTB) += bcm7xxx.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_BCM47622) += \
|
|
||||||
bcm947622.dtb
|
|
||||||
dtb-$(CONFIG_BCM4908) += \
|
|
||||||
bcm94908.dtb
|
|
||||||
dtb-$(CONFIG_BCM4912) += \
|
|
||||||
bcm94912.dtb
|
|
||||||
dtb-$(CONFIG_BCM63138) += \
|
|
||||||
bcm963138.dtb
|
|
||||||
dtb-$(CONFIG_BCM63146) += \
|
|
||||||
bcm963146.dtb
|
|
||||||
dtb-$(CONFIG_BCM63148) += \
|
|
||||||
bcm963148.dtb
|
|
||||||
dtb-$(CONFIG_BCM63158) += \
|
|
||||||
bcm963158.dtb
|
|
||||||
dtb-$(CONFIG_BCM63178) += \
|
|
||||||
bcm963178.dtb
|
|
||||||
dtb-$(CONFIG_BCM6756) += \
|
|
||||||
bcm96756.dtb
|
|
||||||
dtb-$(CONFIG_BCM6813) += \
|
|
||||||
bcm96813.dtb
|
|
||||||
dtb-$(CONFIG_BCM6846) += \
|
|
||||||
bcm96846.dtb
|
|
||||||
dtb-$(CONFIG_BCM6855) += \
|
|
||||||
bcm96855.dtb \
|
|
||||||
bcm96753ref.dtb
|
|
||||||
dtb-$(CONFIG_BCM6856) += \
|
|
||||||
bcm96856.dtb \
|
|
||||||
bcm968360bg.dtb
|
|
||||||
dtb-$(CONFIG_BCM6858) += \
|
|
||||||
bcm96858.dtb \
|
|
||||||
bcm968580xref.dtb
|
|
||||||
dtb-$(CONFIG_BCM6878) += \
|
|
||||||
bcm96878.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_ASPEED_AST2500) += ast2500-evb.dtb
|
dtb-$(CONFIG_ASPEED_AST2500) += ast2500-evb.dtb
|
||||||
dtb-$(CONFIG_ASPEED_AST2600) += ast2600-evb.dtb
|
dtb-$(CONFIG_ASPEED_AST2600) += ast2600-evb.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_STI) += stih410-b2260.dtb
|
dtb-$(CONFIG_ARCH_STI) += stih410-b2260.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_STM32MP13x) += \
|
|
||||||
stm32mp135f-dk.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_STM32MP15x) += \
|
dtb-$(CONFIG_STM32MP15x) += \
|
||||||
stm32mp157a-dk1.dtb \
|
stm32mp157a-dk1.dtb \
|
||||||
stm32mp157a-dk1-scmi.dtb \
|
|
||||||
stm32mp157a-icore-stm32mp1-ctouch2.dtb \
|
stm32mp157a-icore-stm32mp1-ctouch2.dtb \
|
||||||
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
|
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
|
||||||
stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
|
stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
|
||||||
stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
|
stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
|
||||||
stm32mp157c-dk2.dtb \
|
stm32mp157c-dk2.dtb \
|
||||||
stm32mp157c-dk2-scmi.dtb \
|
|
||||||
stm32mp157c-ed1.dtb \
|
stm32mp157c-ed1.dtb \
|
||||||
stm32mp157c-ed1-scmi.dtb \
|
|
||||||
stm32mp157c-ev1.dtb \
|
stm32mp157c-ev1.dtb \
|
||||||
stm32mp157c-ev1-scmi.dtb \
|
|
||||||
stm32mp157c-odyssey.dtb \
|
stm32mp157c-odyssey.dtb \
|
||||||
stm32mp15xx-dhcom-drc02.dtb \
|
stm32mp15xx-dhcom-drc02.dtb \
|
||||||
stm32mp15xx-dhcom-pdk2.dtb \
|
stm32mp15xx-dhcom-pdk2.dtb \
|
||||||
stm32mp15xx-dhcom-picoitx.dtb \
|
stm32mp15xx-dhcom-picoitx.dtb \
|
||||||
stm32mp15xx-dhcor-avenger96.dtb \
|
stm32mp15xx-dhcor-avenger96.dtb
|
||||||
stm32mp15xx-dhcor-drc-compact.dtb \
|
|
||||||
stm32mp15xx-dhcor-testbench.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_SOC_K3_AM654) += \
|
dtb-$(CONFIG_SOC_K3_AM6) += \
|
||||||
k3-am654-base-board.dtb \
|
k3-am654-base-board.dtb \
|
||||||
k3-am654-r5-base-board.dtb \
|
k3-am654-r5-base-board.dtb \
|
||||||
k3-am65-iot2050-spl.dtb \
|
k3-am65-iot2050-spl.dtb \
|
||||||
@ -1253,31 +1197,18 @@ dtb-$(CONFIG_SOC_K3_AM642) += k3-am642-evm.dtb \
|
|||||||
k3-am642-sk.dtb \
|
k3-am642-sk.dtb \
|
||||||
k3-am642-r5-sk.dtb
|
k3-am642-r5-sk.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-sk.dtb \
|
|
||||||
k3-am625-r5-sk.dtb
|
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
dtb-$(CONFIG_ARCH_MEDIATEK) += \
|
||||||
mt7622-rfb.dtb \
|
mt7622-rfb.dtb \
|
||||||
mt7623a-unielec-u7623-02-emmc.dtb \
|
mt7623a-unielec-u7623-02-emmc.dtb \
|
||||||
mt7622-bananapi-bpi-r64.dtb \
|
mt7622-bananapi-bpi-r64.dtb \
|
||||||
mt7623n-bananapi-bpi-r2.dtb \
|
mt7623n-bananapi-bpi-r2.dtb \
|
||||||
mt7629-rfb.dtb \
|
mt7629-rfb.dtb \
|
||||||
mt7981-rfb.dtb \
|
|
||||||
mt7981-emmc-rfb.dtb \
|
|
||||||
mt7981-sd-rfb.dtb \
|
|
||||||
mt7986a-rfb.dtb \
|
|
||||||
mt7986b-rfb.dtb \
|
|
||||||
mt7986a-sd-rfb.dtb \
|
|
||||||
mt7986b-sd-rfb.dtb \
|
|
||||||
mt7986a-emmc-rfb.dtb \
|
|
||||||
mt7986b-emmc-rfb.dtb \
|
|
||||||
mt8183-pumpkin.dtb \
|
mt8183-pumpkin.dtb \
|
||||||
mt8512-bm1-emmc.dtb \
|
mt8512-bm1-emmc.dtb \
|
||||||
mt8516-pumpkin.dtb \
|
mt8516-pumpkin.dtb \
|
||||||
mt8518-ap1-emmc.dtb
|
mt8518-ap1-emmc.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_NPCM7xx) += nuvoton-npcm750-evb.dtb
|
dtb-$(CONFIG_ARCH_NPCM7xx) += nuvoton-npcm750-evb.dtb
|
||||||
dtb-$(CONFIG_ARCH_NPCM8XX) += nuvoton-npcm845-evb.dtb
|
|
||||||
dtb-$(CONFIG_XEN) += xenguest-arm64.dtb
|
dtb-$(CONFIG_XEN) += xenguest-arm64.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_ARCH_OCTEONTX) += octeontx.dtb
|
dtb-$(CONFIG_ARCH_OCTEONTX) += octeontx.dtb
|
||||||
@ -1306,8 +1237,6 @@ dtb-$(CONFIG_TARGET_POMELO) += phytium-pomelo.dtb
|
|||||||
|
|
||||||
dtb-$(CONFIG_TARGET_PRESIDIO_ASIC) += ca-presidio-engboard.dtb
|
dtb-$(CONFIG_TARGET_PRESIDIO_ASIC) += ca-presidio-engboard.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_GXP) += hpe-bmc-dl360gen10.dts
|
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE) += imx8mm-cl-iot-gate.dtb \
|
dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE) += imx8mm-cl-iot-gate.dtb \
|
||||||
imx8mm-cl-iot-gate-ied.dtbo \
|
imx8mm-cl-iot-gate-ied.dtbo \
|
||||||
imx8mm-cl-iot-gate-ied-adc0.dtbo \
|
imx8mm-cl-iot-gate-ied-adc0.dtbo \
|
||||||
@ -1334,9 +1263,6 @@ dtb-$(CONFIG_TARGET_EA_LPC3250DEVKITV2) += lpc3250-ea3250.dtb
|
|||||||
|
|
||||||
dtb-$(CONFIG_ARCH_QEMU) += qemu-arm.dtb qemu-arm64.dtb
|
dtb-$(CONFIG_ARCH_QEMU) += qemu-arm.dtb qemu-arm64.dtb
|
||||||
|
|
||||||
dtb-$(CONFIG_TARGET_CORSTONE1000) += corstone1000-mps3.dtb \
|
|
||||||
corstone1000-fvp.dtb
|
|
||||||
|
|
||||||
include $(srctree)/scripts/Makefile.dts
|
include $(srctree)/scripts/Makefile.dts
|
||||||
|
|
||||||
targets += $(dtb-y)
|
targets += $(dtb-y)
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2022 B&R Industrial Automation GmbH -
|
|
||||||
* https://www.br-automation.com/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/ {
|
|
||||||
ocp {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&l4_wkup {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
segment@200000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
target-module@0
|
|
||||||
{
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
target-module@7000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
target-module@9000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&wkup_cm {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&l4_wkup_clkctrl {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&l4_per {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
segment@0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
target-module@4c000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
segment@100000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
target-module@ac000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
target-module@ae000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&prcm {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio0_target {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&prcm_clocks {
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
|
|
||||||
&scm_clocks {
|
|
||||||
compatible = "simple-bus";
|
|
||||||
};
|
|
||||||
|
|
||||||
&i2c0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc1 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio1 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio2 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
@ -12,10 +12,25 @@
|
|||||||
model = "BRPPT1 (MMC) Panel";
|
model = "BRPPT1 (MMC) Panel";
|
||||||
compatible = "ti,am33xx";
|
compatible = "ti,am33xx";
|
||||||
|
|
||||||
|
fset: factory-settings {
|
||||||
|
bl-version = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
version = <0x0100>;
|
||||||
|
order-no = "6PPT30 (MMC)";
|
||||||
|
hw-revision = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
serial-no = "0";
|
||||||
|
device-id = <0x0>;
|
||||||
|
parent-id = <0x0>;
|
||||||
|
hw-variant = <0x1>;
|
||||||
|
};
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
|
ds1bkl0 = &pwmbacklight;
|
||||||
|
ds1bkl1 = &tps_bl;
|
||||||
|
ds1timing = &timing0;
|
||||||
|
ds1ctrl = &lcdc;
|
||||||
gpmc = &gpmc;
|
gpmc = &gpmc;
|
||||||
mmc = &mmc2;
|
mmc = &mmc2;
|
||||||
|
fset = &fset;
|
||||||
};
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
@ -28,21 +43,110 @@
|
|||||||
reg = <0x80000000 0x10000000>; /* 256 MB */
|
reg = <0x80000000 0x10000000>; /* 256 MB */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
panel {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
compatible = "ti,tilcdc,panel";
|
||||||
|
enable-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
backlight = <&pwmbacklight>;
|
||||||
|
bkl-pwm = <&pwmbacklight>;
|
||||||
|
bkl-tps = <&tps_bl>;
|
||||||
|
|
||||||
|
panel-info {
|
||||||
|
ac-bias = <255>;
|
||||||
|
ac-bias-intrpt = <0>;
|
||||||
|
dma-burst-sz = <16>;
|
||||||
|
bpp = <32>;
|
||||||
|
fdd = <0x80>;
|
||||||
|
sync-edge = <0>;
|
||||||
|
sync-ctrl = <1>;
|
||||||
|
raster-order = <0>;
|
||||||
|
fifo-th = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
display-timings {
|
||||||
|
native-mode = <&timing0>;
|
||||||
|
timing0: lcd {
|
||||||
|
clock-frequency = <32000000>;
|
||||||
|
hactive = <800>;
|
||||||
|
vactive = <480>;
|
||||||
|
hfront-porch = <2>;
|
||||||
|
hback-porch = <192>;
|
||||||
|
hsync-len = <1>;
|
||||||
|
vfront-porch = <20>;
|
||||||
|
vback-porch = <2>;
|
||||||
|
vsync-len = <1>;
|
||||||
|
hsync-active = <1>;
|
||||||
|
vsync-active = <1>;
|
||||||
|
pupdelay = <10>;
|
||||||
|
pondelay = <10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
vmmcsd_fixed: fixedregulator@0 {
|
vmmcsd_fixed: fixedregulator@0 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "vmmcsd_fixed";
|
regulator-name = "vmmcsd_fixed";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pwm0: omap-pwm@timer5 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer5>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm1: omap-pwm@timer6 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer6>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
beeper: pwm-beep {
|
||||||
|
compatible = "pwm-beeper";
|
||||||
|
pwms = <&pwm0 0 0 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwmbacklight: pwm-bkl {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm1 0 5000000 0>;
|
||||||
|
|
||||||
|
default-brightness-level = <255>;
|
||||||
|
brightness-levels = <0 16 32 64 128 170 202 234 255>;
|
||||||
|
|
||||||
|
power-supply = <&vmmcsd_fixed>;
|
||||||
|
enable-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 { /* console uart */
|
&uart0 { /* console uart */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <400000>;
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
tps: tps@24 { /* PMIC controller */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
reg = <0x24>;
|
||||||
|
compatible = "ti,tps65217";
|
||||||
|
|
||||||
|
tps_bl: backlight {
|
||||||
|
compatible = "ti,tps65217-bl";
|
||||||
|
isel = <1>; /* 1 - ISET1, 2 ISET2 */
|
||||||
|
fdim = <1000>; /* TPS65217_BL_FDIM_1kHZ */
|
||||||
|
default-brightness = <50>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
@ -54,6 +158,10 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&cppi41dma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&usb {
|
&usb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -109,6 +217,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
vmmc-supply = <&vmmcsd_fixed>;
|
vmmc-supply = <&vmmcsd_fixed>;
|
||||||
bus-width = <0x4>;
|
bus-width = <0x4>;
|
||||||
ti,non-removable;
|
ti,non-removable;
|
||||||
@ -118,6 +227,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc2 {
|
&mmc2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
vmmc-supply = <&vmmcsd_fixed>;
|
vmmc-supply = <&vmmcsd_fixed>;
|
||||||
bus-width = <0x8>;
|
bus-width = <0x8>;
|
||||||
ti,non-removable;
|
ti,non-removable;
|
||||||
@ -126,22 +236,79 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&l4_per {
|
||||||
|
|
||||||
|
segment@300000 {
|
||||||
|
|
||||||
|
target-module@e000 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
lcdc: lcdc@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&elm {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sham {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&aes {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&gpio0 {
|
&gpio0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio1 {
|
&gpio1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio2 {
|
&gpio2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpio3 {
|
&gpio3 {
|
||||||
|
u-boot,dm-spl;
|
||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&wdt2 {
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&tscadc {
|
||||||
|
status = "okay";
|
||||||
|
tsc {
|
||||||
|
ti,wires = <4>;
|
||||||
|
ti,x-plate-resistance = <200>;
|
||||||
|
ti,zx-cutoff-ratio = <40>;
|
||||||
|
ti,min_deviation = <60>;
|
||||||
|
ti,max_deviation = <600>;
|
||||||
|
ti,coordinate-readouts = <5>;
|
||||||
|
ti,wire-config = <0x00 0x11 0x22 0x33>;
|
||||||
|
|
||||||
|
bnr-buttons {
|
||||||
|
Home-Button {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
adc {
|
||||||
|
ti,adc-channels = <5 6 7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&timer6 { /* used for cpsw end device */
|
&timer6 { /* used for cpsw end device */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
@ -153,3 +320,37 @@
|
|||||||
ti,no-reset-on-init;
|
ti,no-reset-on-init;
|
||||||
ti,no-idle-on-init;
|
ti,no-idle-on-init;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&wdt2 {
|
||||||
|
status = "okay";
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&epwmss0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tscadc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dcan0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dcan1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sham {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&aes {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rng {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
374
arch/arm/dts/am335x-brppt1-nand.dts
Normal file
374
arch/arm/dts/am335x-brppt1-nand.dts
Normal file
@ -0,0 +1,374 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2018 B&R Industrial Automation GmbH
|
||||||
|
* http://www.br-automation.com
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "am33xx.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "BRPPT1 (NAND) Panel";
|
||||||
|
compatible = "ti,am33xx";
|
||||||
|
|
||||||
|
fset: factory-settings {
|
||||||
|
bl-version = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
version = <0x0100>;
|
||||||
|
order-no = "6PPT30 (NAND)";
|
||||||
|
hw-revision = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
serial-no = "0";
|
||||||
|
device-id = <0x0>;
|
||||||
|
parent-id = <0x0>;
|
||||||
|
hw-variant = <0x1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
ds1bkl0 = &pwmbacklight;
|
||||||
|
ds1bkl1 = &tps_bl;
|
||||||
|
ds1timing = &timing0;
|
||||||
|
ds1ctrl = &lcdc;
|
||||||
|
gpmc = &gpmc;
|
||||||
|
mmc = &mmc2;
|
||||||
|
fset = &fset;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "console=ttyO0,115200 earlyprintk";
|
||||||
|
stdout-path = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x80000000 0x10000000>; /* 256 MB */
|
||||||
|
};
|
||||||
|
|
||||||
|
panel {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
compatible = "ti,tilcdc,panel";
|
||||||
|
enable-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
backlight = <&pwmbacklight>;
|
||||||
|
bkl-pwm = <&pwmbacklight>;
|
||||||
|
bkl-tps = <&tps_bl>;
|
||||||
|
|
||||||
|
panel-info {
|
||||||
|
ac-bias = <255>;
|
||||||
|
ac-bias-intrpt = <0>;
|
||||||
|
dma-burst-sz = <16>;
|
||||||
|
bpp = <32>;
|
||||||
|
fdd = <0x80>;
|
||||||
|
sync-edge = <0>;
|
||||||
|
sync-ctrl = <1>;
|
||||||
|
raster-order = <0>;
|
||||||
|
fifo-th = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
display-timings {
|
||||||
|
native-mode = <&timing0>;
|
||||||
|
timing0: lcd {
|
||||||
|
clock-frequency = <32000000>;
|
||||||
|
hactive = <800>;
|
||||||
|
vactive = <480>;
|
||||||
|
hfront-porch = <2>;
|
||||||
|
hback-porch = <192>;
|
||||||
|
hsync-len = <1>;
|
||||||
|
vfront-porch = <20>;
|
||||||
|
vback-porch = <2>;
|
||||||
|
vsync-len = <1>;
|
||||||
|
hsync-active = <1>;
|
||||||
|
vsync-active = <1>;
|
||||||
|
pupdelay = <10>;
|
||||||
|
pondelay = <10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
vmmcsd_fixed: fixedregulator@0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vmmcsd_fixed";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm0: omap-pwm@timer5 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer5>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm1: omap-pwm@timer6 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer6>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
beeper: pwm-beep {
|
||||||
|
compatible = "pwm-beeper";
|
||||||
|
pwms = <&pwm0 0 0 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwmbacklight: pwm-bkl {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm1 0 5000000 0>;
|
||||||
|
|
||||||
|
default-brightness-level = <255>;
|
||||||
|
brightness-levels = <0 16 32 64 128 170 202 234 255>;
|
||||||
|
|
||||||
|
power-supply = <&vmmcsd_fixed>;
|
||||||
|
enable-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 { /* console uart */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
tps: tps@24 { /* PMIC controller */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
reg = <0x24>;
|
||||||
|
compatible = "ti,tps65217";
|
||||||
|
|
||||||
|
tps_bl: backlight {
|
||||||
|
compatible = "ti,tps65217-bl";
|
||||||
|
isel = <1>; /* 1 - ISET1, 2 ISET2 */
|
||||||
|
fdim = <1000>; /* TPS65217_BL_FDIM_1kHZ */
|
||||||
|
default-brightness = <50>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&edma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cppi41dma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_ctrl_mod {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0_phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb1_phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0 {
|
||||||
|
status = "okay";
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb1 {
|
||||||
|
status = "okay";
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
|
&davinci_mdio {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mac {
|
||||||
|
dual_emac;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpsw_emac0 {
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
dual_emac_res_vlan = <1>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpsw_emac1 {
|
||||||
|
phy-handle = <&phy1>;
|
||||||
|
dual_emac_res_vlan = <2>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc2 {
|
||||||
|
vmmc-supply = <&vmmcsd_fixed>;
|
||||||
|
bus-width = <0x4>;
|
||||||
|
ti,non-removable;
|
||||||
|
ti,needs-special-hs-handling;
|
||||||
|
ti,vcc-aux-disable-is-sleep;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&l4_per {
|
||||||
|
|
||||||
|
segment@300000 {
|
||||||
|
|
||||||
|
target-module@e000 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
lcdc: lcdc@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&elm {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sham {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&aes {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&wdt2 {
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&tscadc {
|
||||||
|
status = "okay";
|
||||||
|
tsc {
|
||||||
|
ti,wires = <4>;
|
||||||
|
ti,x-plate-resistance = <200>;
|
||||||
|
ti,zx-cutoff-ratio = <40>;
|
||||||
|
ti,min_deviation = <60>;
|
||||||
|
ti,max_deviation = <600>;
|
||||||
|
ti,coordinate-readouts = <5>;
|
||||||
|
ti,wire-config = <0x00 0x11 0x22 0x33>;
|
||||||
|
|
||||||
|
bnr-buttons {
|
||||||
|
Home-Button {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
adc {
|
||||||
|
ti,adc-channels = <5 6 7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpmc {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */
|
||||||
|
nand@0,0 {
|
||||||
|
compatible = "ti,omap2-nand";
|
||||||
|
reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
|
||||||
|
interrupt-parent = <&gpmc>;
|
||||||
|
rb-gpios = <&gpmc 1 GPIO_ACTIVE_HIGH>; /* gpmc_wait1 */
|
||||||
|
ti,nand-ecc-opt = "bch8";
|
||||||
|
ti,elm-id = <&elm>;
|
||||||
|
nand-bus-width = <8>;
|
||||||
|
gpmc,device-width = <1>;
|
||||||
|
gpmc,sync-clk-ps = <0>;
|
||||||
|
gpmc,cs-on-ns = <0>;
|
||||||
|
gpmc,cs-rd-off-ns = <44>;
|
||||||
|
gpmc,cs-wr-off-ns = <44>;
|
||||||
|
gpmc,adv-on-ns = <6>;
|
||||||
|
gpmc,adv-rd-off-ns = <34>;
|
||||||
|
gpmc,adv-wr-off-ns = <44>;
|
||||||
|
gpmc,we-on-ns = <0>;
|
||||||
|
gpmc,we-off-ns = <40>;
|
||||||
|
gpmc,oe-on-ns = <0>;
|
||||||
|
gpmc,oe-off-ns = <54>;
|
||||||
|
gpmc,access-ns = <64>;
|
||||||
|
gpmc,rd-cycle-ns = <82>;
|
||||||
|
gpmc,wr-cycle-ns = <82>;
|
||||||
|
gpmc,wait-on-read = "true";
|
||||||
|
gpmc,wait-on-write = "true";
|
||||||
|
gpmc,bus-turnaround-ns = <0>;
|
||||||
|
gpmc,cycle2cycle-delay-ns = <0>;
|
||||||
|
gpmc,clk-activation-ns = <0>;
|
||||||
|
gpmc,wait-monitoring-ns = <0>;
|
||||||
|
gpmc,wr-access-ns = <40>;
|
||||||
|
gpmc,wr-data-mux-bus-ns = <0>;
|
||||||
|
gpmc,wait-pin = <1>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
partition@0 {
|
||||||
|
label = "NAND.MLO";
|
||||||
|
reg = <0x00000000 0x000020000>;
|
||||||
|
};
|
||||||
|
partition@1 {
|
||||||
|
label = "NAND.cfgscr";
|
||||||
|
reg = <0x00020000 0x00020000>;
|
||||||
|
};
|
||||||
|
partition@2 {
|
||||||
|
label = "NAND.dtb";
|
||||||
|
reg = <0x00040000 0x00020000>;
|
||||||
|
};
|
||||||
|
partition@3 {
|
||||||
|
label = "NAND.u-boot-env";
|
||||||
|
reg = <0x00060000 0x00020000>;
|
||||||
|
};
|
||||||
|
partition@4 {
|
||||||
|
label = "NAND.u-boot";
|
||||||
|
reg = <0x00080000 0x00080000>;
|
||||||
|
};
|
||||||
|
partition@5 {
|
||||||
|
label = "NAND.kernel";
|
||||||
|
reg = <0x00100000 0x00400000>;
|
||||||
|
};
|
||||||
|
partition@6 {
|
||||||
|
label = "NAND.rootfs";
|
||||||
|
reg = <0x00500000 0x08000000>;
|
||||||
|
};
|
||||||
|
partition@7 {
|
||||||
|
label = "NAND.user";
|
||||||
|
reg = <0x08500000 0x17b00000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
377
arch/arm/dts/am335x-brppt1-spi.dts
Normal file
377
arch/arm/dts/am335x-brppt1-spi.dts
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2018 B&R Industrial Automation GmbH
|
||||||
|
* http://www.br-automation.com
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "am33xx.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "BRPPT1 (MMC) Panel";
|
||||||
|
compatible = "ti,am33xx";
|
||||||
|
|
||||||
|
fset: factory-settings {
|
||||||
|
bl-version = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
version = <0x0100>;
|
||||||
|
order-no = "6PPT30 (SPI)";
|
||||||
|
hw-revision = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456890";
|
||||||
|
serial-no = "0";
|
||||||
|
device-id = <0x0>;
|
||||||
|
parent-id = <0x0>;
|
||||||
|
hw-variant = <0x1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
ds1bkl0 = &pwmbacklight;
|
||||||
|
ds1bkl1 = &tps_bl;
|
||||||
|
ds1timing = &timing0;
|
||||||
|
ds1ctrl = &lcdc;
|
||||||
|
gpmc = &gpmc;
|
||||||
|
mmc = &mmc2;
|
||||||
|
spi0 = &spi0;
|
||||||
|
fset = &fset;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "console=ttyO0,115200 earlyprintk";
|
||||||
|
stdout-path = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
memory {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x80000000 0x10000000>; /* 256 MB */
|
||||||
|
};
|
||||||
|
|
||||||
|
panel {
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
compatible = "ti,tilcdc,panel";
|
||||||
|
enable-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
backlight = <&pwmbacklight>;
|
||||||
|
bkl-pwm = <&pwmbacklight>;
|
||||||
|
bkl-tps = <&tps_bl>;
|
||||||
|
|
||||||
|
panel-info {
|
||||||
|
ac-bias = <255>;
|
||||||
|
ac-bias-intrpt = <0>;
|
||||||
|
dma-burst-sz = <16>;
|
||||||
|
bpp = <32>;
|
||||||
|
fdd = <0x80>;
|
||||||
|
sync-edge = <0>;
|
||||||
|
sync-ctrl = <1>;
|
||||||
|
raster-order = <0>;
|
||||||
|
fifo-th = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
display-timings {
|
||||||
|
native-mode = <&timing0>;
|
||||||
|
timing0: lcd {
|
||||||
|
clock-frequency = <32000000>;
|
||||||
|
hactive = <800>;
|
||||||
|
vactive = <480>;
|
||||||
|
hfront-porch = <2>;
|
||||||
|
hback-porch = <192>;
|
||||||
|
hsync-len = <1>;
|
||||||
|
vfront-porch = <20>;
|
||||||
|
vback-porch = <2>;
|
||||||
|
vsync-len = <1>;
|
||||||
|
hsync-active = <1>;
|
||||||
|
vsync-active = <1>;
|
||||||
|
pupdelay = <10>;
|
||||||
|
pondelay = <10>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
vmmcsd_fixed: fixedregulator@0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vmmcsd_fixed";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm0: omap-pwm@timer5 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer5>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm1: omap-pwm@timer6 {
|
||||||
|
compatible = "ti,omap-dmtimer-pwm";
|
||||||
|
ti,timers = <&timer6>;
|
||||||
|
#pwm-cells = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
beeper: pwm-beep {
|
||||||
|
compatible = "pwm-beeper";
|
||||||
|
pwms = <&pwm0 0 0 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pwmbacklight: pwm-bkl {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm1 0 5000000 0>;
|
||||||
|
|
||||||
|
default-brightness-level = <255>;
|
||||||
|
brightness-levels = <0 16 32 64 128 170 202 234 255>;
|
||||||
|
|
||||||
|
power-supply = <&vmmcsd_fixed>;
|
||||||
|
enable-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 { /* console uart */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
|
tps: tps@24 { /* PMIC controller */
|
||||||
|
u-boot,dm-spl;
|
||||||
|
reg = <0x24>;
|
||||||
|
compatible = "ti,tps65217";
|
||||||
|
|
||||||
|
tps_bl: backlight {
|
||||||
|
compatible = "ti,tps65217-bl";
|
||||||
|
isel = <1>; /* 1 - ISET1, 2 ISET2 */
|
||||||
|
fdim = <1000>; /* TPS65217_BL_FDIM_1kHZ */
|
||||||
|
default-brightness = <50>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
cs-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>,
|
||||||
|
<&gpio0 6 GPIO_ACTIVE_HIGH>,
|
||||||
|
<0>,
|
||||||
|
<0>;
|
||||||
|
|
||||||
|
spi-max-frequency = <24000000>;
|
||||||
|
|
||||||
|
spi_flash: spiflash@0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
compatible = "spidev", "jedec,spi-nor";
|
||||||
|
spi-max-frequency = <24000000>;
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&edma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cppi41dma {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_ctrl_mod {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0_phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb1_phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb0 {
|
||||||
|
status = "okay";
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb1 {
|
||||||
|
status = "okay";
|
||||||
|
dr_mode = "host";
|
||||||
|
};
|
||||||
|
|
||||||
|
&davinci_mdio {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <2>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mac {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpsw_emac0 {
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
dual_emac_res_vlan = <1>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpsw_emac1 {
|
||||||
|
phy-handle = <&phy1>;
|
||||||
|
dual_emac_res_vlan = <2>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
vmmc-supply = <&vmmcsd_fixed>;
|
||||||
|
bus-width = <0x4>;
|
||||||
|
ti,non-removable;
|
||||||
|
ti,needs-special-hs-handling;
|
||||||
|
ti,vcc-aux-disable-is-sleep;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
vmmc-supply = <&vmmcsd_fixed>;
|
||||||
|
bus-width = <0x8>;
|
||||||
|
ti,non-removable;
|
||||||
|
ti,needs-special-hs-handling;
|
||||||
|
ti,vcc-aux-disable-is-sleep;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&l4_per {
|
||||||
|
|
||||||
|
segment@300000 {
|
||||||
|
|
||||||
|
target-module@e000 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
lcdc: lcdc@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&elm {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sham {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&aes {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio2 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio3 {
|
||||||
|
u-boot,dm-spl;
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&wdt2 {
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&tscadc {
|
||||||
|
status = "okay";
|
||||||
|
tsc {
|
||||||
|
ti,wires = <4>;
|
||||||
|
ti,x-plate-resistance = <200>;
|
||||||
|
ti,zx-cutoff-ratio = <40>;
|
||||||
|
ti,min_deviation = <60>;
|
||||||
|
ti,max_deviation = <600>;
|
||||||
|
ti,coordinate-readouts = <5>;
|
||||||
|
ti,wire-config = <0x00 0x11 0x22 0x33>;
|
||||||
|
|
||||||
|
bnr-buttons {
|
||||||
|
Home-Button {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
adc {
|
||||||
|
ti,adc-channels = <5 6 7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&timer6 { /* used for cpsw end device */
|
||||||
|
status = "okay";
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&timer7 { /* used for cpsw end device */
|
||||||
|
status = "okay";
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&wdt2 {
|
||||||
|
status = "okay";
|
||||||
|
ti,no-reset-on-init;
|
||||||
|
ti,no-idle-on-init;
|
||||||
|
};
|
||||||
|
|
||||||
|
&epwmss0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tscadc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dcan0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dcan1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sham {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&aes {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rng {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
@ -16,18 +16,6 @@
|
|||||||
|
|
||||||
ocp {
|
ocp {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
l4_wkup@44c00000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
|
|
||||||
segment@200000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
|
|
||||||
target-module@9000 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
rtc: rtc@10300 {
|
rtc: rtc@10300 {
|
||||||
compatible = "marvell,orion-rtc";
|
compatible = "marvell,orion-rtc";
|
||||||
@ -245,7 +246,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nand@d0000 {
|
nand@d0000 {
|
||||||
compatible = "marvell,armada370-nand-controller";
|
compatible = "marvell,armada370-nand";
|
||||||
reg = <0xd0000 0x54>;
|
reg = <0xd0000 0x54>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
|
||||||
|
|
||||||
/ {
|
|
||||||
smbios {
|
|
||||||
compatible = "u-boot,sysinfo-smbios";
|
|
||||||
|
|
||||||
smbios {
|
|
||||||
system {
|
|
||||||
product = "eDPU";
|
|
||||||
};
|
|
||||||
|
|
||||||
baseboard {
|
|
||||||
product = "eDPU";
|
|
||||||
};
|
|
||||||
|
|
||||||
chassis {
|
|
||||||
product = "eDPU";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
|
|
||||||
spi-flash@0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdhci0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
ð0 {
|
|
||||||
/* G.hn does not work without additional configuration */
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
|
|
||||||
ð1 {
|
|
||||||
fixed-link {
|
|
||||||
speed = <1000>;
|
|
||||||
full-duplex;
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,14 +0,0 @@
|
|||||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
|
|
||||||
#include "armada-3720-uDPU.dtsi"
|
|
||||||
|
|
||||||
/ {
|
|
||||||
model = "Methode eDPU Board";
|
|
||||||
compatible = "methode,edpu", "marvell,armada3720", "marvell,armada3710";
|
|
||||||
};
|
|
||||||
|
|
||||||
ð0 {
|
|
||||||
phy-mode = "2500base-x";
|
|
||||||
};
|
|
@ -1,12 +1,66 @@
|
|||||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
/*
|
||||||
|
* Device tree for the uDPU board.
|
||||||
|
* Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
|
||||||
|
* Copyright (C) 2016 Marvell
|
||||||
|
* Copyright (C) 2019 Methode Electronics
|
||||||
|
* Copyright (C) 2019 Telus
|
||||||
|
*
|
||||||
|
* Vladimir Vid <vladimir.vid@sartura.hr>
|
||||||
|
*/
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include "armada-3720-uDPU.dtsi"
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include "armada-372x.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Methode uDPU Board";
|
model = "Methode uDPU Board";
|
||||||
compatible = "methode,udpu", "marvell,armada3720", "marvell,armada3710";
|
compatible = "methode,udpu", "marvell,armada3720";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
power1 {
|
||||||
|
label = "udpu:green:power";
|
||||||
|
gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
power2 {
|
||||||
|
label = "udpu:red:power";
|
||||||
|
gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
network1 {
|
||||||
|
label = "udpu:green:network";
|
||||||
|
gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
network2 {
|
||||||
|
label = "udpu:red:network";
|
||||||
|
gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
alarm1 {
|
||||||
|
label = "udpu:green:alarm";
|
||||||
|
gpios = <&gpionb 15 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
alarm2 {
|
||||||
|
label = "udpu:red:alarm";
|
||||||
|
gpios = <&gpionb 16 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
sfp_eth0: sfp-eth0 {
|
sfp_eth0: sfp-eth0 {
|
||||||
compatible = "sff,sfp";
|
compatible = "sff,sfp";
|
||||||
@ -17,6 +71,55 @@
|
|||||||
tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
|
tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
|
||||||
maximum-power-milliwatt = <3000>;
|
maximum-power-milliwatt = <3000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sfp_eth1: sfp-eth1 {
|
||||||
|
compatible = "sff,sfp";
|
||||||
|
i2c-bus = <&i2c1>;
|
||||||
|
los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
|
||||||
|
tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
maximum-power-milliwatt = <3000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhci0 {
|
||||||
|
status = "okay";
|
||||||
|
bus-width = <8>;
|
||||||
|
mmc-ddr-1_8v;
|
||||||
|
mmc-hs400-1_8v;
|
||||||
|
marvell,pad-type = "fixed-1-8v";
|
||||||
|
non-removable;
|
||||||
|
no-sd;
|
||||||
|
no-sdio;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spi_quad_pins>;
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <54000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "firmware";
|
||||||
|
reg = <0x0 0x180000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@180000 {
|
||||||
|
label = "u-boot-env";
|
||||||
|
reg = <0x180000 0x10000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&pinctrl_nb {
|
&pinctrl_nb {
|
||||||
@ -24,6 +127,11 @@
|
|||||||
groups = "i2c1";
|
groups = "i2c1";
|
||||||
function = "gpio";
|
function = "gpio";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c2_recovery_pins: i2c2-recovery-pins {
|
||||||
|
groups = "i2c2";
|
||||||
|
function = "gpio";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
@ -36,7 +144,50 @@
|
|||||||
sda-gpios = <&gpionb 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
sda-gpios = <&gpionb 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "okay";
|
||||||
|
pinctrl-names = "default", "recovery";
|
||||||
|
pinctrl-0 = <&i2c2_pins>;
|
||||||
|
pinctrl-1 = <&i2c2_recovery_pins>;
|
||||||
|
/delete-property/mrvl,i2c-fast-mode;
|
||||||
|
scl-gpios = <&gpionb 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||||
|
sda-gpios = <&gpionb 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||||
|
|
||||||
|
nct375@48 {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "ti,tmp75c";
|
||||||
|
reg = <0x48>;
|
||||||
|
};
|
||||||
|
|
||||||
|
nct375@49 {
|
||||||
|
status = "okay";
|
||||||
|
compatible = "ti,tmp75c";
|
||||||
|
reg = <0x49>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ð0 {
|
ð0 {
|
||||||
phy-mode = "sgmii";
|
phy-mode = "sgmii";
|
||||||
|
status = "okay";
|
||||||
|
managed = "in-band-status";
|
||||||
|
phys = <&comphy1 0>;
|
||||||
sfp = <&sfp_eth0>;
|
sfp = <&sfp_eth0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ð1 {
|
||||||
|
phy-mode = "sgmii";
|
||||||
|
status = "okay";
|
||||||
|
managed = "in-band-status";
|
||||||
|
phys = <&comphy0 1>;
|
||||||
|
sfp = <&sfp_eth1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb3 {
|
||||||
|
status = "okay";
|
||||||
|
phys = <&usb2_utmi_otg_phy>;
|
||||||
|
phy-names = "usb2-utmi-otg-phy";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
@ -1,160 +0,0 @@
|
|||||||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
||||||
/*
|
|
||||||
* Device tree for the uDPU board.
|
|
||||||
* Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
|
|
||||||
* Copyright (C) 2016 Marvell
|
|
||||||
* Copyright (C) 2019 Methode Electronics
|
|
||||||
* Copyright (C) 2019 Telus
|
|
||||||
*
|
|
||||||
* Vladimir Vid <vladimir.vid@sartura.hr>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/dts-v1/;
|
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include "armada-372x.dtsi"
|
|
||||||
|
|
||||||
/ {
|
|
||||||
chosen {
|
|
||||||
stdout-path = "serial0:115200n8";
|
|
||||||
};
|
|
||||||
|
|
||||||
memory@0 {
|
|
||||||
device_type = "memory";
|
|
||||||
reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
leds {
|
|
||||||
compatible = "gpio-leds";
|
|
||||||
|
|
||||||
led-power1 {
|
|
||||||
label = "udpu:green:power";
|
|
||||||
gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-power2 {
|
|
||||||
label = "udpu:red:power";
|
|
||||||
gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-network1 {
|
|
||||||
label = "udpu:green:network";
|
|
||||||
gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-network2 {
|
|
||||||
label = "udpu:red:network";
|
|
||||||
gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-alarm1 {
|
|
||||||
label = "udpu:green:alarm";
|
|
||||||
gpios = <&gpionb 15 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-alarm2 {
|
|
||||||
label = "udpu:red:alarm";
|
|
||||||
gpios = <&gpionb 16 GPIO_ACTIVE_LOW>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
sfp_eth1: sfp-eth1 {
|
|
||||||
compatible = "sff,sfp";
|
|
||||||
i2c-bus = <&i2c1>;
|
|
||||||
los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
|
|
||||||
mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
|
|
||||||
tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
|
|
||||||
tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
|
|
||||||
maximum-power-milliwatt = <3000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&sdhci0 {
|
|
||||||
status = "okay";
|
|
||||||
bus-width = <8>;
|
|
||||||
mmc-ddr-1_8v;
|
|
||||||
mmc-hs400-1_8v;
|
|
||||||
marvell,pad-type = "fixed-1-8v";
|
|
||||||
non-removable;
|
|
||||||
no-sd;
|
|
||||||
no-sdio;
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi0 {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&spi_quad_pins>;
|
|
||||||
|
|
||||||
flash@0 {
|
|
||||||
compatible = "jedec,spi-nor";
|
|
||||||
reg = <0>;
|
|
||||||
spi-max-frequency = <54000000>;
|
|
||||||
|
|
||||||
partitions {
|
|
||||||
compatible = "fixed-partitions";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
label = "firmware";
|
|
||||||
reg = <0x0 0x180000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@180000 {
|
|
||||||
label = "u-boot-env";
|
|
||||||
reg = <0x180000 0x10000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pinctrl_nb {
|
|
||||||
i2c2_recovery_pins: i2c2-recovery-pins {
|
|
||||||
groups = "i2c2";
|
|
||||||
function = "gpio";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&i2c1 {
|
|
||||||
status = "okay";
|
|
||||||
pinctrl-names = "default", "recovery";
|
|
||||||
pinctrl-0 = <&i2c2_pins>;
|
|
||||||
pinctrl-1 = <&i2c2_recovery_pins>;
|
|
||||||
/delete-property/mrvl,i2c-fast-mode;
|
|
||||||
scl-gpios = <&gpionb 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
||||||
sda-gpios = <&gpionb 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
|
||||||
|
|
||||||
temp-sensor@48 {
|
|
||||||
compatible = "ti,tmp75c";
|
|
||||||
reg = <0x48>;
|
|
||||||
};
|
|
||||||
|
|
||||||
temp-sensor@49 {
|
|
||||||
compatible = "ti,tmp75c";
|
|
||||||
reg = <0x49>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ð0 {
|
|
||||||
status = "okay";
|
|
||||||
managed = "in-band-status";
|
|
||||||
phys = <&comphy1 0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
ð1 {
|
|
||||||
phy-mode = "sgmii";
|
|
||||||
status = "okay";
|
|
||||||
managed = "in-band-status";
|
|
||||||
phys = <&comphy0 1>;
|
|
||||||
sfp = <&sfp_eth1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb3 {
|
|
||||||
status = "okay";
|
|
||||||
phys = <&usb2_utmi_otg_phy>;
|
|
||||||
phy-names = "usb2-utmi-otg-phy";
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
@ -86,8 +86,10 @@
|
|||||||
* by default.
|
* by default.
|
||||||
*/
|
*/
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
spi-flash@0 {
|
spi-flash@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
compatible = "n25q128a13", "jedec,spi-nor";
|
compatible = "n25q128a13", "jedec,spi-nor";
|
||||||
@ -111,6 +113,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
serial@12000 {
|
serial@12000 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@
|
|||||||
|
|
||||||
soc {
|
soc {
|
||||||
compatible = "marvell,armada375-mbus", "simple-bus";
|
compatible = "marvell,armada375-mbus", "simple-bus";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
controller = <&mbusc>;
|
controller = <&mbusc>;
|
||||||
@ -167,6 +168,7 @@
|
|||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
||||||
@ -187,7 +189,7 @@
|
|||||||
reg = <0xc000 0x58>;
|
reg = <0xc000 0x58>;
|
||||||
};
|
};
|
||||||
|
|
||||||
timer0: timer@c600 {
|
timer@c600 {
|
||||||
compatible = "arm,cortex-a9-twd-timer";
|
compatible = "arm,cortex-a9-twd-timer";
|
||||||
reg = <0xc600 0x20>;
|
reg = <0xc600 0x20>;
|
||||||
interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
|
interrupts = <GIC_PPI 13 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
|
||||||
@ -416,7 +418,7 @@
|
|||||||
interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
timer1: timer@20300 {
|
timer@20300 {
|
||||||
compatible = "marvell,armada-375-timer", "marvell,armada-370-timer";
|
compatible = "marvell,armada-375-timer", "marvell,armada-370-timer";
|
||||||
reg = <0x20300 0x30>, <0x21040 0x30>;
|
reg = <0x20300 0x30>, <0x21040 0x30>;
|
||||||
interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts-extended = <&gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
@ -539,7 +541,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nand@d0000 {
|
nand@d0000 {
|
||||||
compatible = "marvell,armada370-nand-controller";
|
compatible = "marvell,armada370-nand";
|
||||||
reg = <0xd0000 0x54>;
|
reg = <0xd0000 0x54>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
@ -1,7 +1,17 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
&spi1 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
&watchdog {
|
&watchdog {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "mvebu-u-boot.dtsi"
|
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins>;
|
pinctrl-0 = <&uart0_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -113,8 +114,10 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spi1_pins>;
|
pinctrl-0 = <&spi1_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
spi-flash@0 {
|
spi-flash@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
compatible = "jedec,spi-nor";
|
compatible = "jedec,spi-nor";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0+
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2017 Marek Behún <kabel@kernel.org>
|
* Copyright (C) 2017 Marek Behun <marek.behun@nic.cz>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@ -28,8 +28,11 @@
|
|||||||
i2c@5 {
|
i2c@5 {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
/* ATSHA204A at address 0x64 */
|
||||||
crypto@64 {
|
crypto@64 {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
|
compatible = "atmel,atsha204a";
|
||||||
|
reg = <0x64>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -37,7 +40,11 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_ENV_IS_IN_SPI_FLASH
|
#ifdef CONFIG_ENV_IS_IN_SPI_FLASH
|
||||||
&spi0 {
|
&spi0 {
|
||||||
flash@0 {
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
spi-nor@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
partitions {
|
partitions {
|
||||||
partition@0 {
|
partition@0 {
|
||||||
reg = <0x0 CONFIG_ENV_OFFSET>;
|
reg = <0x0 CONFIG_ENV_OFFSET>;
|
||||||
@ -52,4 +59,6 @@
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "mvebu-u-boot.dtsi"
|
&uart0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
@ -1,10 +1,43 @@
|
|||||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
||||||
/*
|
/*
|
||||||
* Device Tree file for the Turris Omnia
|
* Device Tree file for the Turris Omnia
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
|
* Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
|
||||||
* Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.com>
|
* Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.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 licensed under the terms of the GNU General Public
|
||||||
|
* License version 2. This program is licensed "as is" without
|
||||||
|
* any warranty of any kind, whether express or implied.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
* Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
|
* Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -12,7 +45,6 @@
|
|||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
#include <dt-bindings/input/input.h>
|
#include <dt-bindings/input/input.h>
|
||||||
#include <dt-bindings/leds/common.h>
|
|
||||||
#include "armada-385.dtsi"
|
#include "armada-385.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@ -23,12 +55,6 @@
|
|||||||
stdout-path = &uart0;
|
stdout-path = &uart0;
|
||||||
};
|
};
|
||||||
|
|
||||||
aliases {
|
|
||||||
ethernet0 = ð0;
|
|
||||||
ethernet1 = ð1;
|
|
||||||
ethernet2 = ð2;
|
|
||||||
};
|
|
||||||
|
|
||||||
memory {
|
memory {
|
||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
reg = <0x00000000 0x40000000>; /* 1024 MB */
|
reg = <0x00000000 0x40000000>; /* 1024 MB */
|
||||||
@ -38,8 +64,7 @@
|
|||||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
|
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
|
||||||
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
|
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
|
||||||
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
|
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
|
||||||
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
|
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
||||||
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
|
|
||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
|
|
||||||
@ -77,48 +102,19 @@
|
|||||||
pcie@1,0 {
|
pcie@1,0 {
|
||||||
/* Port 0, Lane 0 */
|
/* Port 0, Lane 0 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
slot-power-limit-milliwatt = <10000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pcie@2,0 {
|
pcie@2,0 {
|
||||||
/* Port 1, Lane 0 */
|
/* Port 1, Lane 0 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
slot-power-limit-milliwatt = <10000>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pcie@3,0 {
|
pcie@3,0 {
|
||||||
/* Port 2, Lane 0 */
|
/* Port 2, Lane 0 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
slot-power-limit-milliwatt = <10000>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
sfp: sfp {
|
|
||||||
compatible = "sff,sfp";
|
|
||||||
i2c-bus = <&sfp_i2c>;
|
|
||||||
tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>;
|
|
||||||
tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>;
|
|
||||||
rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>;
|
|
||||||
los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>;
|
|
||||||
mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>;
|
|
||||||
maximum-power-milliwatt = <3000>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* For now this has to be enabled at boot time by U-Boot when
|
|
||||||
* a SFP module is present. Read more in the comment in the
|
|
||||||
* eth2 node below.
|
|
||||||
*/
|
|
||||||
status = "disabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&bm {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&bm_bppi {
|
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Connected to 88E6176 switch, port 6 */
|
/* Connected to 88E6176 switch, port 6 */
|
||||||
@ -127,9 +123,6 @@
|
|||||||
pinctrl-0 = <&ge0_rgmii_pins>;
|
pinctrl-0 = <&ge0_rgmii_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
buffer-manager = <&bm>;
|
|
||||||
bm,pool-long = <0>;
|
|
||||||
bm,pool-short = <3>;
|
|
||||||
|
|
||||||
fixed-link {
|
fixed-link {
|
||||||
speed = <1000>;
|
speed = <1000>;
|
||||||
@ -143,9 +136,6 @@
|
|||||||
pinctrl-0 = <&ge1_rgmii_pins>;
|
pinctrl-0 = <&ge1_rgmii_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
buffer-manager = <&bm>;
|
|
||||||
bm,pool-long = <1>;
|
|
||||||
bm,pool-short = <3>;
|
|
||||||
|
|
||||||
fixed-link {
|
fixed-link {
|
||||||
speed = <1000>;
|
speed = <1000>;
|
||||||
@ -155,23 +145,9 @@
|
|||||||
|
|
||||||
/* WAN port */
|
/* WAN port */
|
||||||
ð2 {
|
ð2 {
|
||||||
/*
|
|
||||||
* eth2 is connected via a multiplexor to both the SFP cage and to
|
|
||||||
* ethernet-phy@1. The multiplexor switches the signal to SFP cage when
|
|
||||||
* a SFP module is present, as determined by the mode-def0 GPIO.
|
|
||||||
*
|
|
||||||
* Until kernel supports this configuration properly, in case SFP module
|
|
||||||
* is present, U-Boot has to enable the sfp node above, remove phy
|
|
||||||
* handle and add managed = "in-band-status" property.
|
|
||||||
*/
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
phy-mode = "sgmii";
|
phy-mode = "sgmii";
|
||||||
phy-handle = <&phy1>;
|
phy = <&phy1>;
|
||||||
phys = <&comphy5 2>;
|
|
||||||
sfp = <&sfp>;
|
|
||||||
buffer-manager = <&bm>;
|
|
||||||
bm,pool-long = <2>;
|
|
||||||
bm,pool-short = <3>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
@ -184,128 +160,18 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <0x70>;
|
reg = <0x70>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
i2c@0 {
|
i2c@0 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|
||||||
/* MCU command i2c API */
|
/* STM32F0 command interface at address 0x2a */
|
||||||
mcu: mcu@2a {
|
/* leds device (in STM32F0) at address 0x2b */
|
||||||
compatible = "cznic,turris-omnia-mcu";
|
|
||||||
reg = <0x2a>;
|
|
||||||
gpio-controller;
|
|
||||||
#gpio-cells = <3>;
|
|
||||||
};
|
|
||||||
|
|
||||||
led-controller@2b {
|
|
||||||
compatible = "cznic,turris-omnia-leds";
|
|
||||||
reg = <0x2b>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* LEDs are controlled by MCU (STM32F0) at
|
|
||||||
* address 0x2b.
|
|
||||||
*
|
|
||||||
* LED functions are not stable yet:
|
|
||||||
* - there are 3 LEDs connected via MCU to PCIe
|
|
||||||
* ports. One of these ports supports mSATA.
|
|
||||||
* There is no mSATA nor PCIe function.
|
|
||||||
* For now we use LED_FUNCTION_WLAN, since
|
|
||||||
* in most cases users have wifi cards in
|
|
||||||
* these slots
|
|
||||||
* - there are 2 LEDs dedicated for user: A and
|
|
||||||
* B. Again there is no such function defined.
|
|
||||||
* For now we use LED_FUNCTION_INDICATOR
|
|
||||||
*/
|
|
||||||
|
|
||||||
multi-led@0 {
|
|
||||||
reg = <0x0>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_INDICATOR;
|
|
||||||
function-enumerator = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@1 {
|
|
||||||
reg = <0x1>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_INDICATOR;
|
|
||||||
function-enumerator = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@2 {
|
|
||||||
reg = <0x2>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_WLAN;
|
|
||||||
function-enumerator = <3>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@3 {
|
|
||||||
reg = <0x3>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_WLAN;
|
|
||||||
function-enumerator = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@4 {
|
|
||||||
reg = <0x4>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_WLAN;
|
|
||||||
function-enumerator = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@5 {
|
|
||||||
reg = <0x5>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_WAN;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@6 {
|
|
||||||
reg = <0x6>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_LAN;
|
|
||||||
function-enumerator = <4>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@7 {
|
|
||||||
reg = <0x7>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_LAN;
|
|
||||||
function-enumerator = <3>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@8 {
|
|
||||||
reg = <0x8>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_LAN;
|
|
||||||
function-enumerator = <2>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@9 {
|
|
||||||
reg = <0x9>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_LAN;
|
|
||||||
function-enumerator = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@a {
|
|
||||||
reg = <0xa>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_LAN;
|
|
||||||
function-enumerator = <0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
multi-led@b {
|
|
||||||
reg = <0xb>;
|
|
||||||
color = <LED_COLOR_ID_RGB>;
|
|
||||||
function = LED_FUNCTION_POWER;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
eeprom@54 {
|
eeprom@54 {
|
||||||
compatible = "atmel,24c64";
|
compatible = "at,24c64";
|
||||||
reg = <0x54>;
|
reg = <0x54>;
|
||||||
|
|
||||||
/* The EEPROM contains data for bootloader.
|
/* The EEPROM contains data for bootloader.
|
||||||
@ -344,7 +210,7 @@
|
|||||||
/* routed to PCIe2 connector (CN62A) */
|
/* routed to PCIe2 connector (CN62A) */
|
||||||
};
|
};
|
||||||
|
|
||||||
sfp_i2c: i2c@4 {
|
i2c@4 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <4>;
|
reg = <4>;
|
||||||
@ -357,11 +223,7 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
reg = <5>;
|
reg = <5>;
|
||||||
|
|
||||||
/* ATSHA204A-MAHDA-T crypto module */
|
/* ATSHA204A at address 0x64 */
|
||||||
crypto@64 {
|
|
||||||
compatible = "atmel,atsha204a";
|
|
||||||
reg = <0x64>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c@6 {
|
i2c@6 {
|
||||||
@ -403,28 +265,22 @@
|
|||||||
pinctrl-0 = <&mdio_pins>;
|
pinctrl-0 = <&mdio_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
phy1: phy@1 {
|
||||||
compatible = "ethernet-phy-ieee802.3-c22";
|
status = "okay";
|
||||||
|
compatible = "ethernet-phy-id0141.0DD1", "ethernet-phy-ieee802.3-c22";
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
marvell,reg-init = <3 18 0 0x4985>,
|
|
||||||
<3 16 0xfff0 0x0001>;
|
|
||||||
|
|
||||||
/* irq is connected to &pcawan pin 7 */
|
/* irq is connected to &pcawan pin 7 */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Switch MV88E6176 at address 0x10 */
|
/* Switch MV88E6176 at address 0x10 */
|
||||||
switch@10 {
|
switch@10 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&swint_pins>;
|
|
||||||
compatible = "marvell,mv88e6085";
|
compatible = "marvell,mv88e6085";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
dsa,member = <0 0>;
|
dsa,member = <0 0>;
|
||||||
reg = <0x10>;
|
|
||||||
|
|
||||||
interrupt-parent = <&gpio1>;
|
reg = <0x10>;
|
||||||
interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -478,17 +334,12 @@
|
|||||||
marvell,function = "gpio";
|
marvell,function = "gpio";
|
||||||
};
|
};
|
||||||
|
|
||||||
swint_pins: swint-pins {
|
|
||||||
marvell,pins = "mpp45";
|
|
||||||
marvell,function = "gpio";
|
|
||||||
};
|
|
||||||
|
|
||||||
spi0cs0_pins: spi0cs0-pins {
|
spi0cs0_pins: spi0cs0-pins {
|
||||||
marvell,pins = "mpp25";
|
marvell,pins = "mpp25";
|
||||||
marvell,function = "spi0";
|
marvell,function = "spi0";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi0cs2_pins: spi0cs2-pins {
|
spi0cs1_pins: spi0cs1-pins {
|
||||||
marvell,pins = "mpp26";
|
marvell,pins = "mpp26";
|
||||||
marvell,function = "spi0";
|
marvell,function = "spi0";
|
||||||
};
|
};
|
||||||
@ -499,7 +350,7 @@
|
|||||||
pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
|
pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
flash@0 {
|
spi-nor@0 {
|
||||||
compatible = "spansion,s25fl164k", "jedec,spi-nor";
|
compatible = "spansion,s25fl164k", "jedec,spi-nor";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
@ -523,7 +374,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */
|
/* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
|
@ -69,26 +69,17 @@
|
|||||||
reg = <0x0800 0 0 0 0>;
|
reg = <0x0800 0 0 0 0>;
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
interrupt-names = "intx";
|
|
||||||
interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
|
ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
|
||||||
0x81000000 0 0 0x81000000 0x1 0 1 0>;
|
0x81000000 0 0 0x81000000 0x1 0 1 0>;
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
interrupt-map-mask = <0 0 0 7>;
|
interrupt-map-mask = <0 0 0 0>;
|
||||||
interrupt-map = <0 0 0 1 &pcie1_intc 0>,
|
interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
<0 0 0 2 &pcie1_intc 1>,
|
|
||||||
<0 0 0 3 &pcie1_intc 2>,
|
|
||||||
<0 0 0 4 &pcie1_intc 3>;
|
|
||||||
marvell,pcie-port = <0>;
|
marvell,pcie-port = <0>;
|
||||||
marvell,pcie-lane = <0>;
|
marvell,pcie-lane = <0>;
|
||||||
clocks = <&gateclk 8>;
|
clocks = <&gateclk 8>;
|
||||||
resets = <&systemc 0 0>;
|
resets = <&systemc 0 0>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie1_intc: interrupt-controller {
|
|
||||||
interrupt-controller;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* x1 port */
|
/* x1 port */
|
||||||
@ -98,26 +89,17 @@
|
|||||||
reg = <0x1000 0 0 0 0>;
|
reg = <0x1000 0 0 0 0>;
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
interrupt-names = "intx";
|
|
||||||
interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
|
ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
|
||||||
0x81000000 0 0 0x81000000 0x2 0 1 0>;
|
0x81000000 0 0 0x81000000 0x2 0 1 0>;
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
interrupt-map-mask = <0 0 0 7>;
|
interrupt-map-mask = <0 0 0 0>;
|
||||||
interrupt-map = <0 0 0 1 &pcie2_intc 0>,
|
interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
<0 0 0 2 &pcie2_intc 1>,
|
|
||||||
<0 0 0 3 &pcie2_intc 2>,
|
|
||||||
<0 0 0 4 &pcie2_intc 3>;
|
|
||||||
marvell,pcie-port = <1>;
|
marvell,pcie-port = <1>;
|
||||||
marvell,pcie-lane = <0>;
|
marvell,pcie-lane = <0>;
|
||||||
clocks = <&gateclk 5>;
|
clocks = <&gateclk 5>;
|
||||||
resets = <&systemc 0 1>;
|
resets = <&systemc 0 1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie2_intc: interrupt-controller {
|
|
||||||
interrupt-controller;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* x1 port */
|
/* x1 port */
|
||||||
@ -127,26 +109,17 @@
|
|||||||
reg = <0x1800 0 0 0 0>;
|
reg = <0x1800 0 0 0 0>;
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
interrupt-names = "intx";
|
|
||||||
interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
|
ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
|
||||||
0x81000000 0 0 0x81000000 0x3 0 1 0>;
|
0x81000000 0 0 0x81000000 0x3 0 1 0>;
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
interrupt-map-mask = <0 0 0 7>;
|
interrupt-map-mask = <0 0 0 0>;
|
||||||
interrupt-map = <0 0 0 1 &pcie3_intc 0>,
|
interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
<0 0 0 2 &pcie3_intc 1>,
|
|
||||||
<0 0 0 3 &pcie3_intc 2>,
|
|
||||||
<0 0 0 4 &pcie3_intc 3>;
|
|
||||||
marvell,pcie-port = <2>;
|
marvell,pcie-port = <2>;
|
||||||
marvell,pcie-lane = <0>;
|
marvell,pcie-lane = <0>;
|
||||||
clocks = <&gateclk 6>;
|
clocks = <&gateclk 6>;
|
||||||
resets = <&systemc 0 2>;
|
resets = <&systemc 0 2>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie3_intc: interrupt-controller {
|
|
||||||
interrupt-controller;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -159,26 +132,17 @@
|
|||||||
reg = <0x2000 0 0 0 0>;
|
reg = <0x2000 0 0 0 0>;
|
||||||
#address-cells = <3>;
|
#address-cells = <3>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
interrupt-names = "intx";
|
|
||||||
interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
|
ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
|
||||||
0x81000000 0 0 0x81000000 0x4 0 1 0>;
|
0x81000000 0 0 0x81000000 0x4 0 1 0>;
|
||||||
bus-range = <0x00 0xff>;
|
bus-range = <0x00 0xff>;
|
||||||
interrupt-map-mask = <0 0 0 7>;
|
interrupt-map-mask = <0 0 0 0>;
|
||||||
interrupt-map = <0 0 0 1 &pcie4_intc 0>,
|
interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
<0 0 0 2 &pcie4_intc 1>,
|
|
||||||
<0 0 0 3 &pcie4_intc 2>,
|
|
||||||
<0 0 0 4 &pcie4_intc 3>;
|
|
||||||
marvell,pcie-port = <3>;
|
marvell,pcie-port = <3>;
|
||||||
marvell,pcie-lane = <0>;
|
marvell,pcie-lane = <0>;
|
||||||
clocks = <&gateclk 7>;
|
clocks = <&gateclk 7>;
|
||||||
resets = <&systemc 0 3>;
|
resets = <&systemc 0 3>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
pcie4_intc: interrupt-controller {
|
|
||||||
interrupt-controller;
|
|
||||||
#interrupt-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -35,5 +35,3 @@
|
|||||||
u-boot,dm-spl;
|
u-boot,dm-spl;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "mvebu-u-boot.dtsi"
|
|
||||||
|
@ -71,10 +71,12 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spi0_pins>;
|
pinctrl-0 = <&spi0_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
spi-flash@0 {
|
spi-flash@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
compatible = "st,m25p128", "jedec,spi-nor";
|
compatible = "st,m25p128", "jedec,spi-nor";
|
||||||
@ -130,6 +132,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins>;
|
pinctrl-0 = <&uart0_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* GE1 CON15 */
|
/* GE1 CON15 */
|
||||||
|
@ -42,5 +42,3 @@
|
|||||||
u-boot,dm-spl;
|
u-boot,dm-spl;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "mvebu-u-boot.dtsi"
|
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
&gpio0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpio1 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&uart1 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi1 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&I2C0 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
&PCA22 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "mvebu-u-boot.dtsi"
|
|
@ -16,6 +16,22 @@
|
|||||||
|
|
||||||
#include "armada-388.dtsi"
|
#include "armada-388.dtsi"
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Controlcenter Digital Compact";
|
model = "Controlcenter Digital Compact";
|
||||||
compatible = "marvell,a385-db", "marvell,armada388",
|
compatible = "marvell,a385-db", "marvell,armada388",
|
||||||
@ -59,6 +75,7 @@
|
|||||||
I2C0: i2c@11000 {
|
I2C0: i2c@11000 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <1000000>;
|
clock-frequency = <1000000>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
PCA21: pca9698@21 {
|
PCA21: pca9698@21 {
|
||||||
compatible = "nxp,pca9698";
|
compatible = "nxp,pca9698";
|
||||||
reg = <0x21>;
|
reg = <0x21>;
|
||||||
@ -67,6 +84,7 @@
|
|||||||
};
|
};
|
||||||
PCA22: pca9698@22 {
|
PCA22: pca9698@22 {
|
||||||
compatible = "nxp,pca9698";
|
compatible = "nxp,pca9698";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
reg = <0x22>;
|
reg = <0x22>;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
@ -551,6 +569,7 @@
|
|||||||
|
|
||||||
&spi1 {
|
&spi1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
spi-flash@0 {
|
spi-flash@0 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
@ -564,5 +583,6 @@
|
|||||||
compatible = "n25q128a11", "jedec,spi-nor";
|
compatible = "n25q128a11", "jedec,spi-nor";
|
||||||
reg = <1>; /* Chip select 1 */
|
reg = <1>; /* Chip select 1 */
|
||||||
spi-max-frequency = <108000000>;
|
spi-max-frequency = <108000000>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
pinctrl-0 = <&uart0_pins>;
|
pinctrl-0 = <&uart0_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
|
@ -9,15 +9,13 @@
|
|||||||
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
* Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "skeleton.dtsi"
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
#include <dt-bindings/interrupt-controller/irq.h>
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
|
#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
model = "Marvell Armada 38x family SoC";
|
model = "Marvell Armada 38x family SoC";
|
||||||
compatible = "marvell,armada380";
|
compatible = "marvell,armada380";
|
||||||
|
|
||||||
@ -35,6 +33,7 @@
|
|||||||
|
|
||||||
soc {
|
soc {
|
||||||
compatible = "marvell,armada380-mbus", "simple-bus";
|
compatible = "marvell,armada380-mbus", "simple-bus";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
controller = <&mbusc>;
|
controller = <&mbusc>;
|
||||||
@ -99,15 +98,11 @@
|
|||||||
|
|
||||||
internal-regs {
|
internal-regs {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
|
||||||
|
|
||||||
sdramc: sdramc@1400 {
|
|
||||||
compatible = "marvell,armada-xp-sdram-controller";
|
|
||||||
reg = <0x1400 0x500>;
|
|
||||||
};
|
|
||||||
|
|
||||||
L2: cache-controller@8000 {
|
L2: cache-controller@8000 {
|
||||||
compatible = "arm,pl310-cache";
|
compatible = "arm,pl310-cache";
|
||||||
reg = <0x8000 0x1000>;
|
reg = <0x8000 0x1000>;
|
||||||
@ -153,6 +148,7 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
timeout-ms = <1000>;
|
||||||
clocks = <&coreclk 0>;
|
clocks = <&coreclk 0>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -163,12 +159,13 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
timeout-ms = <1000>;
|
||||||
clocks = <&coreclk 0>;
|
clocks = <&coreclk 0>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart0: serial@12000 {
|
uart0: serial@12000 {
|
||||||
compatible = "marvell,armada-38x-uart", "ns16550a";
|
compatible = "snps,dw-apb-uart";
|
||||||
reg = <0x12000 0x100>;
|
reg = <0x12000 0x100>;
|
||||||
reg-shift = <2>;
|
reg-shift = <2>;
|
||||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
@ -178,7 +175,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
uart1: serial@12100 {
|
uart1: serial@12100 {
|
||||||
compatible = "marvell,armada-38x-uart", "ns16550a";
|
compatible = "snps,dw-apb-uart";
|
||||||
reg = <0x12100 0x100>;
|
reg = <0x12100 0x100>;
|
||||||
reg-shift = <2>;
|
reg-shift = <2>;
|
||||||
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
@ -298,7 +295,6 @@
|
|||||||
reg-names = "gpio", "pwm";
|
reg-names = "gpio", "pwm";
|
||||||
ngpios = <32>;
|
ngpios = <32>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
gpio-ranges = <&pinctrl 0 0 32>;
|
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
#pwm-cells = <2>;
|
#pwm-cells = <2>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -317,7 +313,6 @@
|
|||||||
reg-names = "gpio", "pwm";
|
reg-names = "gpio", "pwm";
|
||||||
ngpios = <28>;
|
ngpios = <28>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
gpio-ranges = <&pinctrl 0 32 28>;
|
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
#pwm-cells = <2>;
|
#pwm-cells = <2>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -343,44 +338,6 @@
|
|||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
comphy: phy@18300 {
|
|
||||||
compatible = "marvell,armada-380-comphy";
|
|
||||||
reg-names = "comphy", "conf";
|
|
||||||
reg = <0x18300 0x100>, <0x18460 4>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
comphy0: phy@0 {
|
|
||||||
reg = <0>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
comphy1: phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
comphy2: phy@2 {
|
|
||||||
reg = <2>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
comphy3: phy@3 {
|
|
||||||
reg = <3>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
comphy4: phy@4 {
|
|
||||||
reg = <4>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
comphy5: phy@5 {
|
|
||||||
reg = <5>;
|
|
||||||
#phy-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
coreclk: mvebu-sar@18600 {
|
coreclk: mvebu-sar@18600 {
|
||||||
compatible = "marvell,armada-380-core-clock";
|
compatible = "marvell,armada-380-core-clock";
|
||||||
reg = <0x18600 0x04>;
|
reg = <0x18600 0x04>;
|
||||||
@ -422,8 +379,6 @@
|
|||||||
reg = <0x20300 0x34>, <0x20704 0x4>, <0x18260 0x4>;
|
reg = <0x20300 0x34>, <0x20704 0x4>, <0x18260 0x4>;
|
||||||
clocks = <&coreclk 2>, <&refclk>;
|
clocks = <&coreclk 2>, <&refclk>;
|
||||||
clock-names = "nbclk", "fixed";
|
clock-names = "nbclk", "fixed";
|
||||||
interrupts-extended = <&gic GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<&gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cpurst: cpurst@20800 {
|
cpurst: cpurst@20800 {
|
||||||
@ -600,7 +555,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nand_controller: nand-controller@d0000 {
|
nand_controller: nand-controller@d0000 {
|
||||||
compatible = "marvell,armada370-nand-controller";
|
compatible = "marvell,armada370-nand","marvell,mvebu-pxa3xx-nand";
|
||||||
reg = <0xd0000 0x54>;
|
reg = <0xd0000 0x54>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
13
arch/arm/dts/armada-xp-crs305-1g-4s-u-boot.dtsi
Normal file
13
arch/arm/dts/armada-xp-crs305-1g-4s-u-boot.dtsi
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
spi-flash@0 {
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user