20160520_jeffrey - silenceuncrio/diary GitHub Wiki
- 0905 - build 好
- 1000 - 做實驗
- 1110 - bitbake-layers show-recipes
- 1135 - size 維持在 363520
- 1145 - 記錄 怎麼玩 u-boot-imx
- 1355 - m300
- 1420 - 複習 Flashing an SD card image
- 1610 - i.MX BSP Porting Guide
build 好了
先 tar 一包起來以備不時之需
tar -zcvf fsl-bsp-release-2016-05-20.tar.gz fsl-bsp-release
光 tar 都要很久... 半小時了還沒好
壓一包有 7 GB...
至少壓完了會有安全感...
來做實驗吧
bitbake -c clean u-boot
之後
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
下的東西就不見了
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-a, --tryaltconfigs Continue with builds by trying to use alternative
providers where possible.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Output more log message data to the terminal.
-D, --debug Increase the debug level. You can specify this more
than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (depexp, goggle, hob, knotty
or ncurses - default knotty).
-t SERVERTYPE, --servertype=SERVERTYPE
Choose which server type to use (process or xmlrpc -
default process).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake server to bind to.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate the remote server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
試一下 bitbake -c listtasks u-boot
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake -c listtasks u-boot
Loading cache: 100% |###########################################| ETA: 00:00:00
Loaded 2825 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.28.0"
BUILD_SYS = "i686-linux"
NATIVELSBSTRING = "Ubuntu-14.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "imx6ulevk"
DISTRO = "fsl-imx-x11"
DISTRO_VERSION = "4.1.15-1.1.1"
TUNE_FEATURES = "arm armv7a vfp neon callconvention-hard cortexa7"
TARGET_FPU = "vfp-neon"
meta
meta-yocto = "HEAD:dd0ba9ea4a11ab15348d4fe3574e4b28784db82f"
meta-oe
meta-multimedia = "HEAD:ad6133a2e95f4b83b6b3ea413598e2cd5fb3fd90"
meta-fsl-arm = "HEAD:35b8b9bd9863de208ab60e33b55f10ee43e2619b"
meta-fsl-arm-extra = "HEAD:e200df91b70da254461c59082ddd5db0a3c415a2"
meta-fsl-demos = "HEAD:2231e946e7a94d096394f2b2477e8184c9bbde7b"
meta-bsp
meta-sdk = "HEAD:f39f40c71ce4511029c56e6d57aa48bd172124d3"
meta-browser = "HEAD:b6d46d69a261fe6bd7c1e9811dc2a9bbd0b79aeb"
meta-gnome
meta-networking
meta-python
meta-ruby
meta-filesystems
meta-xfce = "HEAD:ad6133a2e95f4b83b6b3ea413598e2cd5fb3fd90"
meta-qt5 = "HEAD:d5536e34ec985c82b621448ab4325e5cbba38560"
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
do_build Default task for a recipe - depends on all other normal tasks required to 'build' a recipe
do_checkuri Validates the SRC_URI value
do_checkuriall Validates the SRC_URI value for all recipes required to build a target
do_clean Removes all output files for a target
do_cleanall Removes all output files, shared state cache, and downloaded source files for a target
do_cleansstate Removes all output files and shared state cache for a target
do_compile Compiles the source in the compilation directory
do_configure Configures the source by enabling and disabling any build-time and configuration options for the software being built
do_deploy Writes deployable output files to the deploy directory
do_deploy_setscene Writes deployable output files to the deploy directory (setscene version)
do_devpyshell Starts an interactive Python shell for development/debugging
do_devshell Starts a shell with the environment set up for development/debugging
do_fetch Fetches the source code
do_fetchall Fetches all remote sources required to build a target
do_install Copies files from the compilation directory to a holding area
do_listtasks Lists all defined tasks for a target
do_package Analyzes the content of the holding area and splits it into subsets based on available packages and files
do_package_qa Runs QA checks on packaged files
do_package_qa_setscene Runs QA checks on packaged files (setscene version)
do_package_setscene Analyzes the content of the holding area and splits it into subsets based on available packages and files (setscene version)
do_package_write_rpm Creates the actual RPM packages and places them in the Package Feed area
do_package_write_rpm_setscene Creates the actual RPM packages and places them in the Package Feed area (setscene version)
do_packagedata Creates package metadata used by the build system to generate the final packages
do_packagedata_setscene Creates package metadata used by the build system to generate the final packages (setscene version)
do_patch Locates patch files and applies them to the source code
do_populate_lic Writes license information for the recipe that is collected later when the image is constructed
do_populate_lic_setscene Writes license information for the recipe that is collected later when the image is constructed (setscene version)
do_populate_sysroot Copies a subset of files installed by do_install into the sysroot in order to make them available to other recipes
do_populate_sysroot_setscene Copies a subset of files installed by do_install into the sysroot in order to make them available to other recipes (setscene version)
do_unpack Unpacks the source code into a working directory
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
看來 bitbake -c listtasks u-boot
做的 task 就是 do_listtasks
所以 target 就是 u-boot 囉?
看看有啥會再下載 source code
試這個 do_fetch - Fetches the source code
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
一樣是空的
do_fetchall
也沒用
do_checkuri
... 看一下過程中的畫面
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
Currently 1 running tasks (1 of 1):
0: u-boot-imx-2015.04-r0 do_checkuri (pid 10282)
這個 0: u-boot-imx-2015.04-r0 do_checkuri (pid 10282)
可以再 study 一下是啥意思
do_compile
... 看到 running tasks 有幾個一閃而逝
有 do_unpack
... 第一個不知是啥...
不過 <built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
一樣是空的
do_configure
NOTE: Tasks Summary: Attempted 239 tasks of which 239 didn't need to be rerun and all succeeded.
看來沒做啥事
do_deploy
也沒做事
do_install
do_package
可以利用 -v, --verbose Output more log message data to the terminal.
來看到更多訊息
下了 'bitbake -c clean -v u-boot-imx' 之後發現
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/
下剩 git 這個空目錄
'bitbake -c compile -v u-boot-imx'
跟剛剛不同了...
哈哈
<built dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
的東西都跑出來囉
不過我要怎麼確切的知道使用 u-boot-imx
而不是 u-boot
呢?
先關掉 ubuntu 的 terminal 因為緩衝區太小了
條大了之後重開 terminal 要再使用 bitbake 要這樣做
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp$ MACHINE=imx6ulevk source setup-environment build_small
Welcome to Freescale Community BSP
The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
http://yoctoproject.org/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
meta-toolchain
meta-toolchain-sdk
adt-installer
meta-ide-support
Your configuration files at build_small have not been touched.
來看看 bitbake-layers
怎麼用
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers -h
usage: bitbake-layers [-h] [-d] [-q] <subcommand> ...
BitBake layers utility
optional arguments:
-h, --help show this help message and exit
-d, --debug Enable debug output
-q, --quiet Print only errors
subcommands:
<subcommand>
show-layers show current configured layers
add-layer Add a layer to bblayers.conf
remove-layer Remove a layer from bblayers.conf
show-overlayed list overlayed recipes (where the same recipe exists
in another layer)
show-recipes list available recipes, showing the layer they are
provided by
show-appends list bbappend files and recipe files they apply to
flatten flatten layer configuration into a separate output
directory.
show-cross-depends Show dependencies between recipes that cross layer
boundaries.
layerindex-fetch Fetches a layer from a layer index along with its
dependent layers, and adds them to conf/bblayers.conf.
layerindex-show-depends
Find layer dependencies from layer index.
Use bitbake-layers <subcommand> --help to get help on a specific command
哈哈 subcommand 有個 show-recipes
可以用
內容太多...
看一下 bitbake-layers show-recipes
還可以怎麼用
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers show-recipes --help
usage: bitbake-layers show-recipes [-h] [-f] [-m] [-i CLASS] [pnspec]
Lists the names of recipes and the available versions in each
layer, with the preferred version first. Optionally you may specify
pnspec to match a specified recipe name (supports wildcards). Note that
skipped recipes will also be listed, with a " (skipped)" suffix.
positional arguments:
pnspec optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)
optional arguments:
-h, --help show this help message and exit
-f, --filenames instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath
-m, --multiple only list where multiple recipes (in the same layer or different layers) exist for the same recipe name
-i CLASS, --inherits CLASS
only list recipes that inherit the named class
只列出 u-boot 相關的
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small$ bitbake-layers show-recipes u-boot*
Parsing recipes..done.
=== Matching recipes: ===
u-boot:
meta v2015.07+gitAUTOINC+33711bdd4a
u-boot-boundary:
meta-fsl-arm-extra git (skipped)
u-boot-compulab:
meta-fsl-arm-extra 2014.10 (skipped)
u-boot-fslc:
meta-fsl-arm v2015.10+gitAUTOINC+1b6aee73e6
u-boot-fslc-mxsboot:
meta-fsl-arm v2015.10+gitAUTOINC+1b6aee73e6
u-boot-fw-utils:
meta v2015.07+gitAUTOINC+33711bdd4a
u-boot-gateworks-imx:
meta-fsl-arm-extra 2015.04 (skipped)
u-boot-imx:
meta-bsp 2015.04
u-boot-imx-mfgtool:
meta-bsp 2015.04
u-boot-ls1:
meta-fsl-arm 2015.01 (skipped)
u-boot-mkimage:
meta v2015.07+gitAUTOINC+33711bdd4a
u-boot-script-boundary:
meta-fsl-arm-extra git (skipped)
u-boot-script-gateworks-imx:
meta-fsl-arm-extra unknown (skipped)
u-boot-timesys:
meta-fsl-arm-extra 2011.12 (skipped)
u-boot-toradex:
meta-fsl-arm-extra v2015.04-v2.5b2+gitAUTOINC+1ef4a29e8c
一些字眼實在不知道甚麼意思
知道怎麼玩了
不過就算我把 u-boot make menuconfig 可以取消勾選的東西都拿掉
size 還是維持在 363520
要另尋方法了
先記錄一下要怎麼玩
我們說 u-boot-imx folder
在
<build dir>/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git/mx6ul_14x14_evk_config
我們可以在 u-boot-imx folder
做這些事
- make clean
- make menuconfig
那我們的 在 ~/fsl-release-bsp/build_small
我們可以在 做這些事
- bitbake -f -v -c compile u-boot-imx
這樣一來一回就可以看到 u-boot 透過 make menuconfig
修改後的瘦身成果
雖然完全沒有變瘦
剛剛和 ariel 聊了一下 m300 的案子
我這邊就盡量想辦法縮小 u-boot 的體積
真的不行就算了
另外就是要讓後來參與的成員知道怎麼讓 i.MX boot
- 透過 SD 卡
- 透過 tftp
- 寫到 flash 去
Mobile_SW_Features.xls
是ˋ這麼寫的
u-boot : FLASH layout 7月15日 Jeffery
u-boot : burn image 7月15日 Jeffery
u-boot : Reduce image size 7月15日 Jeffery
reduce image 可以進行到 7月15日
burn image 我已經知道怎麼透過 SD 卡了
FLASH layout 可以來了解一下
再來複習一下 6.1 Flashing an SD card image
先看 6 Image Deployment
After a build is complete, the created image resides in /tmp/deploy/images.
An image is, for the most part, specific to the machine set in the environment setup.
Each image build creates a U-Boot, a kernel, and an image type based on the IMAGE_FSTYPES defined in the machine configuration file.
Most machine configurations provide an SD card image (.sdcard), an ext3 and tar.bz2.
The ext3 is the root file system only.
The .sdcard image contains U-Boot, the kernel and the rootfs completely set up for use on an SD card.
做完 bitbake -k core-image-minimal
之後
created image 在
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ ls -l
total 68496
-rw-r--r-- 1 jeffrey jeffrey 12582912 5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.ext4
-rw-r--r-- 1 jeffrey jeffrey 946 5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.manifest
-rw-r--r-- 1 jeffrey jeffrey 29360128 5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.sdcard
-rw-r--r-- 1 jeffrey jeffrey 2567137 5月 19 18:48 core-image-minimal-imx6ulevk-20160519071408.rootfs.tar.bz2
-rw-r--r-- 1 jeffrey jeffrey 12582912 5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.ext4
-rw-r--r-- 1 jeffrey jeffrey 946 5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.manifest
-rw-r--r-- 1 jeffrey jeffrey 29360128 5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.sdcard
-rw-r--r-- 1 jeffrey jeffrey 2567258 5月 20 14:11 core-image-minimal-imx6ulevk-20160520061008.rootfs.tar.bz2
-rw-rw-r-- 2 jeffrey jeffrey 1141309 5月 19 18:38 modules--4.1.15-r0-imx6ulevk-20160519071408.tgz
-rw-r--r-- 2 jeffrey jeffrey 294 5月 20 14:10 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
-rwxr-xr-x 2 jeffrey jeffrey 363520 5月 20 14:10 u-boot-sd-2015.04-r0.imx
-rw-r--r-- 2 jeffrey jeffrey 34966 5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey 35466 5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-btwifi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey 34962 5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-csi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey 35209 5月 19 18:38 zImage--4.1.15-r0-imx6ul-14x14-evk-usb-certi-20160519071408.dtb
-rw-r--r-- 2 jeffrey jeffrey 6343464 5月 19 18:38 zImage--4.1.15-r0-imx6ulevk-20160519071408.bin
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$
core-image-minimal-imx6ulevk-20160520061008.rootfs.sdcard
便是 .sdcard image 了
注意到同目錄下有個 core-image-minimal-imx6ulevk.sdcard
軟連結可以利用
包含了 U-Boot, kernel 和 rootfs
An SD card image provides the full system to boot with U-Boot and kernel.
To flash an SD card image, run the following command:
$ sudo dd if=.sdcard of=/dev/sd bs=1M && sync
來看一下啥是 dd
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ dd --help
Usage: dd [OPERAND]...
or: dd OPTION
Copy a file, converting and formatting according to the operands.
bs=BYTES read and write up to BYTES bytes at a time
cbs=BYTES convert BYTES bytes at a time
conv=CONVS convert the file as per the comma separated symbol list
count=N copy only N input blocks
ibs=BYTES read up to BYTES bytes at a time (default: 512)
if=FILE read from FILE instead of stdin
iflag=FLAGS read as per the comma separated symbol list
obs=BYTES write BYTES bytes at a time (default: 512)
of=FILE write to FILE instead of stdout
oflag=FLAGS write as per the comma separated symbol list
seek=N skip N obs-sized blocks at start of output
skip=N skip N ibs-sized blocks at start of input
status=WHICH WHICH info to suppress outputting to stderr;
'noxfer' suppresses transfer stats, 'none' suppresses all
N and BYTES may be followed by the following multiplicative suffixes:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.
Each CONV symbol may be:
ascii from EBCDIC to ASCII
ebcdic from ASCII to EBCDIC
ibm from ASCII to alternate EBCDIC
block pad newline-terminated records with spaces to cbs-size
unblock replace trailing spaces in cbs-size records with newline
lcase change upper case to lower case
ucase change lower case to upper case
sparse try to seek rather than write the output for NUL input blocks
swab swap every pair of input bytes
sync pad every input block with NULs to ibs-size; when used
with block or unblock, pad with spaces rather than NULs
excl fail if the output file already exists
nocreat do not create the output file
notrunc do not truncate the output file
noerror continue after read errors
fdatasync physically write output file data before finishing
fsync likewise, but also write metadata
Each FLAG symbol may be:
append append mode (makes sense only for output; conv=notrunc suggested)
direct use direct I/O for data
directory fail unless a directory
dsync use synchronized I/O for data
sync likewise, but also for metadata
fullblock accumulate full blocks of input (iflag only)
nonblock use non-blocking I/O
noatime do not update access time
nocache discard cached data
noctty do not assign controlling terminal from file
nofollow do not follow symlinks
count_bytes treat 'count=N' as a byte count (iflag only)
skip_bytes treat 'skip=N' as a byte count (iflag only)
seek_bytes treat 'seek=N' as a byte count (oflag only)
Sending a USR1 signal to a running 'dd' process makes it
print I/O statistics to standard error and then resume copying.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
Options are:
--help display this help and exit
--version output version information and exit
Report dd bugs to [email protected]
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
For complete documentation, run: info coreutils 'dd invocation'
解析一下 $ sudo dd if=<image name>.sdcard of=/dev/sd<partition> bs=1M && sync
要換成
core-image-minimal-imx6ulevk.sdcard
要利用下述方法得知
jeffrey@jeffrey-virtual-machine:~/fsl-release-bsp/build_small/tmp/deploy/images/imx6ulevk$ cat /proc/partitions
major minor #blocks name
1 0 65536 ram0
1 1 65536 ram1
...
8 0 167772160 sda
...
反正插了 USB 讀卡機再插了 SD 就知道是啥了
像我是 b
最後得到 $ sudo dd if=core-image-minimal-imx6ulevk.sdcard of=/dev/sdb bs=1M && sync
看一下 dd 後面的參數在幹嘛
- if=FILE
- read from FILE instead of stdin
- of=FILE
- write to FILE instead of stdout
- bs=BYTES
- read and write up to BYTES bytes at a time
- sync
- pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
組合一下
read from core-image-minimal-imx6ulevk.sdcard, write to /dev/sdb, up to 1 byte at a time, pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
稍微比較看得懂了
i.MX BSP Porting Guide
裡頭的第一章 Chapter 1 Porting U-Boot from an i.MX 6/7 Reference Board to an i.MX 6/7 Custom Board
啥... 這不就是我想要看的
The configuration files for the i.MX 6 or i.MX 7 are located at include/configs.
The files associated with the boards are:
- ...
- i.MX 6UltraLite EVK
- mx6ul_14x14_evk.h
You should pay attention to the following configurations when using a new board.
既然都這麼說了... 我就來看吧
- CONFIG_LOADADDR: Normally your zImage is loaded to this address for boot.
- CONFIG_SYS_MALLOC_LEN: Heap memory size.
- CONFIG_STACKSIZE: Stack size.
- CONFIG_NR_DRAM_BANKS: Number of ddr banks.
- PHYS_SDRAM_SIZE: Configure the DDR size in MB.
- PHYS_SDRAM: Physical address for the DDR memory
- fdt_file: Configure "#define CONFIG_DEFAULT_FDT_FILE .dtb" or directly change "fdt_file=.dtb".
- Config file is important for U-Boot. It determines the size, functionality, and performance of u-boot.bin.
有點難消化阿...