工具/软件:Linux
您好!
我正在使用 BeagleBone Black 修订版#c 进行实验、
在默认配置下、一切正常、但我想将 DRAM 大小从512Mib 减小到64Mib、
请提供任何补丁或步骤以更改 u-boot 和内核中 DRAM 的配置、从而恢复 DRAM (64Mib)的大小
谢谢、
Amit
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Linux
您好!
我正在使用 BeagleBone Black 修订版#c 进行实验、
在默认配置下、一切正常、但我想将 DRAM 大小从512Mib 减小到64Mib、
请提供任何补丁或步骤以更改 u-boot 和内核中 DRAM 的配置、从而恢复 DRAM (64Mib)的大小
谢谢、
Amit
Amit、您好!
U-boot 2017.01正在实施 DRAM 大小自动检测过程。 U-boot 2017.01将自动检测您板载的实际 RAM 大小、没有单个参数可从512MibB 更改为64Mib. 在旧版本的 u-boot 中、我们有一个称为 phys_dram_1_size 的单个参数。
有关 u-boot DRAM 大小自动检测的更多信息、请参阅以下 e2e 线程:
e2e.ti.com/.../1837559
e2e.ti.com/.../1857605
e2e.ti.com/.../1866822
此致、
帕维尔
您好!
请找到以下控制台日志、
================================================================================================================
U-Boot 2017.01 (2018年3月7日- 18:03:23 +0530)
CPU:AM335X-GP 修订版2.1
I2C:就绪
DRAM:128 mib
MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
**第一个描述符不是1:1上的主要描述符**
未设置。 验证第一个电子保险丝 MAC
NET:无法获取 cpsw 的 PHY:Addr 0
CPsw、USB_ether
按空格键可在2秒钟内中止自动引导
切换到分区#0,确定
mmc0是当前器件
找到 Micro SD 卡
切换到分区#0,确定
mmc0是当前器件
在器件0上找到 SD/MMC
正在阅读 uEnv.txt
**无法读取文件 uEnv.txt **
在282 ms (13.7 MiB/s)内读取的4051160字节
在26ms (1.3 MIB/s)内读取34304字节
正在从 MMC 引导...
##从 Legacy Image 中引导内核,地址为82000000...
映像名称:Linux-4.9.0
创建时间:2018-03-06 13:43:23 UTC
映像类型:ARM Linux 内核映像(未压缩)
数据大小:4051096字节= 3.9 MIB
加载地址:80008000
入口点:80008000
正在验证校验和... 好的
###展开的设备树 blob、88000000
使用0x88000000处的 FDT blob 进行引导
正在加载内核映像... 好的
正在将设备树加载到8fff4000,结束8ff5ff... 好的
正在启动内核...
================================================================================================
内核映像在执行此 pring 后未加载、只是它在启动内核时挂起。 然后重新启动电路板。
谢谢
Amit
您好!
我为 128 MIB 和 64MiB (CONFIG_MAX_RAM_Bank_Size (128 << 20))(CONFIG_MAX_RAM_Bank_Size (64 << 20))进行了分页(CONFIG_MAX_RAM_Bank_Size (64 << 20)))、但我使用相同的上述日志被吸入、内核未加载。
我已识别 "default_linux_boot_env"宏、该宏在"include/configs/ti_armv7_common.h"文件中包含内核和器件树加载地址。 您能不能建议我需要更改此地址、还是应该由 u-boot 自行处理?
此致、
Amit
[引用 user="Amit Gondaliya"]目前我只将宏" CONFIG_ENV_SIZE"更改为256
I.G (CONFIG_ENV_SIZE (256<< 10))、所有器件均可在256MB 上工作
但此设置不适用于128M 或64M I.G (CONFIG_ENV_SIZE (64<<10))、内核映像未加载。[/QUERP]
此 CONFIG_ENV_SIZE 宏定义了 u-boot 环境数据大小、我看不到这与 DRAM 大小有何关系。 默认情况下、AM335x EVM 将此宏设置为128KiB (不是128MiB):
U-boot-2017.01/include/configs/am335x_evm.h
/*始终为128 KiB env 大小*/
#define CONFIG_ENV_SIZE (128 << 10)
#Elif defed (CONFIG_EMMC_BOOT)
#define CONFIG_ENV_OFFSET 0x0
#define CONFIG_ENV_OFFSET_redund (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
当您有256Mib- DRAM 时、您有以下可用地址:0x8000000至0x8FFFFFFF
当您有128MibTM DRAM 时、您有以下可用地址:0x8000000至0x87FFFFFF
[引用 user="Amit Gondaliya"]###展开设备树 blob、价格为88000000
使用0x88000000处的 FDT blob 进行引导
正在加载内核映像... 好的
正在将设备树加载到8fff4000,结束8ff5ff... 确定[/报价]
这些地址(0x88000000、0x8FFF4000、0x8FFFF5FF)超出了128MiB DRAM 范围。 您可以尝试调整128MiB DRAM 映射的 DTB 加载地址。 查看以下 e2e 线程以了解更多信息:
此致、
帕维尔
你好
我 已更改地址设置、如下所示为64MibRAM。
"loadaddr=0x82000000\0"\
"kernel_addr_r=0x82000000\0"\
"Fdtaddr=0x8007FFF\0"\
"FDT_addr_r=0x8007FFF\0"\
"rdaddr=0x88080000\0"\
"ramdisk_addr_r=0x88080000\0"\
"脚本地址=0x80000000\0"\
"pxefile_addr_r=0x80100000\0"\
"bootm_size=0x10000000\0"\
"BOOT_FDT=Try \0"
但它给出了以下错误、我错过了计算、您会建议我吗?
===================================================================================================
**无法读取文件 uEnv.txt **
在282 ms (13.7 MiB/s)内读取的4051160字节
数据中止
PC:[<83f6d40c>] LR:[<83f53891>]
重新分配 PC:[<8081b40c>] LR:[<801891>]
SP:81f31630 IP:00000000 FP:00000fb8
R10:00000200 R9:81f31ed8 R8:00000200
R7:8007FFFF R6:00000020 R5:00008600 R4:48060100
r3:800801ff r2:edfe0dd0 r1:00200000 r0:00000000
标志:在模式 SVC_32上关闭 FIQ 的 Nzcv IRQ
正在重置 CPU ...
===================================================================================================
此致、
Amit
您好!
我已更改地址范围、如下所示、存储器的128Mibb 的地址范围如下所示、
#define DEFAULT_LINUX_BOOT_ENV \
"loadaddr=0x82000000\0"\
"kernel_addr_r=0x82000000\0"\
"Fdtaddr=0x86000000\0"\
"FDT_addr_r=0x86000000\0"\
"rdaddr=0x87000000\0"\
"ramdisk_addr_r=0x87000000\0"\
"脚本地址=0x80000000\0"\
"pxefile_addr_r=0x80100000\0"\
"bootm_size=0x10000000\0"\
"BOOT_FDT=Try \0"
但我仍然无法加载内核映像它卡在日志"正在启动内核"中
电流只有两个变化。
如上所述、新地址全部在0x87FFFFFFFF 以下
宏、#define CONFIG_MAX_RAM_Bank_SIZE (128 << 20)
我是否需要更改其他内容?您是否建议对地址进行进一步修改?
以下是控制台日志。
================================================================================================
##从 Legacy Image 中引导内核,地址为82000000...
图像名称: linux-4.9.0-ossdn-osasis
创建时间 :2018-03-09 6:53:37 UTC
映像类型: ARM Linux 内核映像(未压缩)
数据大小: 4051096字节= 3.9 MIB
加载地址:80008000
入口点: 80008000
正在验证校验和... 好的
###展开的设备树 blob、86000000
使用0x86000000处的 FDT blob 进行引导
正在加载内核映像... 好的
正在将设备树加载到8fff4000,结束8ff5ff... 好的
========================================================================================
此致、
Amit
Amit、
[引用用户="Amit Gondaliya"]
我已更改地址范围、如下所示、存储器的128Mibb 的地址范围如下所示、
#define DEFAULT_LINUX_BOOT_ENV \
"loadaddr=0x82000000\0"\
"kernel_addr_r=0x82000000\0"\
"Fdtaddr=0x86000000\0"\
"FDT_addr_r=0x86000000\0"\
"rdaddr=0x87000000\0"\
"ramdisk_addr_r=0x87000000\0"\
"脚本地址=0x80000000\0"\
"pxefile_addr_r=0x80100000\0"\
"bootm_size=0x10000000\0"\
"BOOT_FDT=Try \0"
[/报价]
您是否能够使用这些设置和256MibTM DRAM 引导您的电路板?
[报价用户="Amit Gondaliya"]我是否需要更改其他内容?您是否建议对地址进行进一步修改?
另请尝试以下 DTS 文件更新:
u-boot/arch/arm/dts/AM335x-bone-common.dtsi
内存{
DEVICE_TYPE ="存储器";
- reg =<0x8000000 0x10000000>;/* 256 MB */
+ reg =<0x8000000 0x08000000>;/* 128 MB */
};
linux-kernel/arch/arm/boot/dts/am335x-bone-common.dtsi
内存@80000000{
DEVICE_TYPE ="存储器";
- reg =<0x8000000 0x10000000>;/* 256 MB */
+ reg =<0x8000000 0x08000000>;/* 128 MB */
};
此致、
帕维尔