Ram upgrade: различия между версиями
Stuw (обсуждение | вклад) Нет описания правки |
Stuw (обсуждение | вклад) м (Fixed DropBox links) |
||
(не показана 21 промежуточная версия 2 участников) | |||
Строка 1: | Строка 1: | ||
For more details on the BCT format, see the cbootimage project on | ==Hardware Upgrade== | ||
'''NOTE: ac100 with changed BCT, u-boot, kernel boots, but ram size is still 512 ([http://4pda.ru/forum/index.php?s=&showtopic=367318&view=findpost&p=60413203 dmesg is here]).''' | |||
User Курдль from 4PDA successfully upgraded ram on AC100 and it even boots fine but with 512MB - [http://4pda.ru/forum/index.php?s=&showtopic=367318&view=findpost&p=59257099 подробнее тут]<br/> | |||
[[File:ram_difference2.jpg]] | |||
After - http://pdf1.alldatasheet.com/datasheet-pdf/view/332891/HYNIX/H5PS2G83AFR.html | |||
==BCT== | |||
http://http.download.nvidia.com/tegra-public-appnotes/bct-overview.html | |||
For more details on the BCT format, see the cbootimage project on github, <br/> | |||
it creates boot images for Tegra: https://github.com/NVIDIA/cbootimage <br/> | |||
(sdram params are described in [https://github.com/NVIDIA/cbootimage/blob/master/src/t20/nvboot_sdram_param_t20.h nvboot_sdram_param_t20.h]).<br /> | |||
===ODMDATA=== | |||
There is ram size variable inside odmdata <br/> | |||
http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=arch/arm/mach-tegra/odm_kit/query/harmony/tegra_devkit_custopt.h;h=1ec7010911454f19a5018952fd245785a62c59ad;hb=0e52d7fe25b11a656c376a37890be219470661fb#l143 | |||
====ODMDATA changes==== | |||
Get original bct: | |||
<pre> | |||
sudo tegrarcm --bct=ac100.bct readbct | |||
bct_dump ac100.bct > original.cfg | |||
grep OdmData original.cfg | |||
</pre> | |||
Check odmdata value: | |||
<pre> | |||
OdmData = 0x800c0075; | |||
1000 0000 0000 1100 0000 0000 0111 0101 | |||
^^^ | |||
</pre> | |||
Check possible values (original value is 0b000 = 0x0UL): | |||
<pre> | |||
138 /// Total RAM | |||
139 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_RANGE 30:28 | |||
140 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_DEFAULT 0x0UL // 512 MB | |||
141 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_256 0x1UL // 256 MB | |||
142 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_512 0x2UL // 512 MB | |||
143 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_1024 0x3UL // 1024 MB (1 GB) | |||
</pre> | |||
Calc new value: | |||
<pre> | |||
1011 0000 0000 1100 0000 0000 0111 0101 | |||
OdmData = 0xb00c0075 | |||
</pre> | |||
===McEmemCfg=== | |||
There is also RAM size in McEmemCfg variable. bct_dump shows 3 SDRAM configurations (0 through 2). | |||
<pre> | |||
SDRAM[0].McEmemCfg = 0x00080000; | |||
</pre> | |||
This value is a RAM size in KB (on Tegra2). Probably this value should be increased to 0x00100000. | |||
==Bootloader U-Boot== | |||
Memory map inside U-Boot <br/> | |||
https://github.com/ac100-ru/u-boot/blob/v2017.01-paz00-usb-dev/include/configs/tegra-common.h#L80 <br/> | |||
https://github.com/ac100-ru/u-boot/blob/v2017.01-paz00-usb-dev/arch/arm/dts/tegra20-paz00.dts#L27 | |||
==Kernel, Device Tree== | |||
Memory size inside kernel device tree <br/> | |||
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/tegra20-paz00.dts#L21 | |||
==Old info== | |||
<br /> | <br /> | ||
* https://lists.launchpad.net/ac100/msg00706.html | * https://lists.launchpad.net/ac100/msg00706.html | ||
Строка 11: | Строка 78: | ||
Появилась интересная идея. А что если, допустим, я найду какую-нибудь папять аналогичного объема (в сумме 512МБ), напаяю на тошу и попробую запустить<br /> | Появилась интересная идея. А что если, допустим, я найду какую-нибудь папять аналогичного объема (в сумме 512МБ), напаяю на тошу и попробую запустить<br /> | ||
(12:45:06) stuw: kottt, bct скорее всего нужно будет менять.<br /> | (12:45:06) stuw: kottt, bct скорее всего нужно будет менять.<br /> | ||
(12:45:39) stuw: https://dl.dropbox.com/u/40761340/ram/harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB-VS-harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt<br /> | (12:45:39) stuw: (https://www.dropbox.com/s/jjjxp1n2fs3q43f/harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB-VS-harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB-VS-harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt<br /> | ||
(12:46:12) stuw: https://dl.dropbox.com/u/40761340/ram/kottt-116-VS_harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt<br /> | (12:46:12) stuw: (https://www.dropbox.com/s/1x3r1gf7loo887w/kottt-116-VS_harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/kottt-116-VS_harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt<br /> | ||
(12:46:23) stuw: https://dl.dropbox.com/u/40761340/ram/kottt-116-VS-harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB.txt<br /> | (12:46:23) stuw: (https://www.dropbox.com/s/ydvbivd7cqdp94o/kottt-116-VS-harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/kottt-116-VS-harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB.txt<br /> | ||
(12:50:37) stuw: найти бы еще откуда эти параметры берутся )<br /> | (12:50:37) stuw: найти бы еще откуда эти параметры берутся )<br /> | ||
Строка 57: | Строка 124: | ||
https://dl.dropbox.com/u/1757382/ac100/ac100-ram.jpg<br /> | https://dl.dropbox.com/u/1757382/ac100/ac100-ram.jpg<br /> | ||
<br /> | <br /> | ||
Идем на страницу декодирования: http://www.micron.com/support/fbga<br /> | |||
FBGA code: '''D9LHP'''<br /> | |||
Получаем Part number '''MT47H128M8CF-25:H''' ( http://www.micron.com/support/fbga?fbga=D9LHP )<br /> | |||
Поиск на сайте MT47H128M8CF-25 выдает два даташита: | |||
* http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr2/1gb_ddr2.pdf | |||
* http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr2/1gb_ddr2_addendum.pdf | |||
Декодируем информацию о чипе MT47H128M8CF-25:H | |||
* MT47H | |||
* 128M8 = 128 Meg x 8 | |||
* CF = 60-ball 8mm x 10.0mm FBGA | |||
* -25 = tCK = 2.5ns, CL = 5 (почему-то не -25E) | |||
* :H = revision | |||
<br /> | <br /> | ||
проверить - Micron D9LHP DDR2 800<br /> | |||
проверить - MT8HTF12864AZ-800H1<br /> | |||
<br /> | <br /> | ||
<zombah> если смотреть старое ядро где в борде писали тайминги для памяти там две секции для микрон и для хайникс<br /> | <zombah> если смотреть старое ядро где в борде писали тайминги для памяти там две секции для микрон и для хайникс<br /> |
Текущая версия от 18:49, 28 января 2020
Hardware Upgrade
NOTE: ac100 with changed BCT, u-boot, kernel boots, but ram size is still 512 (dmesg is here).
User Курдль from 4PDA successfully upgraded ram on AC100 and it even boots fine but with 512MB - подробнее тут
After - http://pdf1.alldatasheet.com/datasheet-pdf/view/332891/HYNIX/H5PS2G83AFR.html
BCT
http://http.download.nvidia.com/tegra-public-appnotes/bct-overview.html
For more details on the BCT format, see the cbootimage project on github,
it creates boot images for Tegra: https://github.com/NVIDIA/cbootimage
(sdram params are described in nvboot_sdram_param_t20.h).
ODMDATA
There is ram size variable inside odmdata
http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=arch/arm/mach-tegra/odm_kit/query/harmony/tegra_devkit_custopt.h;h=1ec7010911454f19a5018952fd245785a62c59ad;hb=0e52d7fe25b11a656c376a37890be219470661fb#l143
ODMDATA changes
Get original bct:
sudo tegrarcm --bct=ac100.bct readbct bct_dump ac100.bct > original.cfg grep OdmData original.cfg
Check odmdata value:
OdmData = 0x800c0075; 1000 0000 0000 1100 0000 0000 0111 0101 ^^^
Check possible values (original value is 0b000 = 0x0UL):
138 /// Total RAM 139 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_RANGE 30:28 140 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_DEFAULT 0x0UL // 512 MB 141 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_256 0x1UL // 256 MB 142 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_512 0x2UL // 512 MB 143 #define TEGRA_DEVKIT_BCT_SYSTEM_0_MEMORY_1024 0x3UL // 1024 MB (1 GB)
Calc new value:
1011 0000 0000 1100 0000 0000 0111 0101 OdmData = 0xb00c0075
McEmemCfg
There is also RAM size in McEmemCfg variable. bct_dump shows 3 SDRAM configurations (0 through 2).
SDRAM[0].McEmemCfg = 0x00080000;
This value is a RAM size in KB (on Tegra2). Probably this value should be increased to 0x00100000.
Bootloader U-Boot
Memory map inside U-Boot
https://github.com/ac100-ru/u-boot/blob/v2017.01-paz00-usb-dev/include/configs/tegra-common.h#L80
https://github.com/ac100-ru/u-boot/blob/v2017.01-paz00-usb-dev/arch/arm/dts/tegra20-paz00.dts#L27
Kernel, Device Tree
Memory size inside kernel device tree
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/tegra20-paz00.dts#L21
Old info
- https://lists.launchpad.net/ac100/msg00706.html
- https://github.com/nmenon/omap-u-boot-utils/commit/d29bb1728e01ad8c74cec663bb2ec0b86db0881a
- http://projects.pappkartong.se/a500/
- AT91SAM9G45 и DDR2: http://electronix.ru/forum/lofiversion/index.php/t102525.html
- PrimeCell DDR2 Dynamic Memory Controller (PL341): http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0418d/Cjaigieh.html
Возможно кто-то не осилит, но вот очень интересная серия статей о работе памяти - http://lwn.net/Articles/250967/
Появилась интересная идея. А что если, допустим, я найду какую-нибудь папять аналогичного объема (в сумме 512МБ), напаяю на тошу и попробую запустить
(12:45:06) stuw: kottt, bct скорее всего нужно будет менять.
(12:45:39) stuw: (https://www.dropbox.com/s/jjjxp1n2fs3q43f/harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB-VS-harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB-VS-harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt
(12:46:12) stuw: (https://www.dropbox.com/s/1x3r1gf7loo887w/kottt-116-VS_harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/kottt-116-VS_harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB.txt
(12:46:23) stuw: (https://www.dropbox.com/s/ydvbivd7cqdp94o/kottt-116-VS-harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB.txt?dl=0) https://dl.dropbox.com/u/40761340/ram/kottt-116-VS-harmony_a02_12Mhz_H5PS1G83EFR-S5C_333Mhz_512MB.txt
(12:50:37) stuw: найти бы еще откуда эти параметры берутся )
Имеющиеся варианты 1GB памяти на известных Tegra2-девайсах:
Harmony:
- H5PS1G83EFR-Y5C_150Mhz_1GB
- H5PS1G83EFR-Y5C_300Mhz_1GB
- H5PS1G83EFR-S5C_333Mhz_1GB
- H5PS1G83EFR-S6C_333Mhz_1GB
Cardhu:
- H5TC2G83BFR _333Mhz_1GB
- H5TC2G83BFR-PBA_375MHz_1GB
Ventana:
- Elpida EDB8132B1PB-6D-F
TF101:
- Elpida B8132B2PB-6D-F LPDDR2 SDRAM
Advent Vega:
- H5PS1G83EFR-S6C
TrimSlice:
- ??? - не нашел ни фотографий, ни спецификаций
Notion Ink Adam:
https://picasaweb.google.com/102502076918141645796/NotionInklAdam#5592830302852689506
HY5PS1G831C
Подводя краткий итог, имеем:
Hynix:
- H5PS1G83EFR-Y5C
- H5PS1G83EFR-S5C
- H5PS1G83EFR-S6C
- H5TC2G83BFR
- H5TC2G83BFR-PBA
Elpida:
- EDB8132B2PB-6D-F
Текущая память на тошибе:
https://dl.dropbox.com/u/1757382/ac100/ac100-ram.jpg
Идем на страницу декодирования: http://www.micron.com/support/fbga
FBGA code: D9LHP
Получаем Part number MT47H128M8CF-25:H ( http://www.micron.com/support/fbga?fbga=D9LHP )
Поиск на сайте MT47H128M8CF-25 выдает два даташита:
- http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr2/1gb_ddr2.pdf
- http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr2/1gb_ddr2_addendum.pdf
Декодируем информацию о чипе MT47H128M8CF-25:H
- MT47H
- 128M8 = 128 Meg x 8
- CF = 60-ball 8mm x 10.0mm FBGA
- -25 = tCK = 2.5ns, CL = 5 (почему-то не -25E)
- :H = revision
проверить - Micron D9LHP DDR2 800
проверить - MT8HTF12864AZ-800H1
<zombah> если смотреть старое ядро где в борде писали тайминги для памяти там две секции для микрон и для хайникс
<zombah> видимо у нас бывает и такая и такая
<zombah> ну я предлагаю другую методу, сначала собрать все известные bct на гиг и их парт номера
<zombah> записать их на бумажку и пойти на ближайший рынок где есть барахолка
<zombah> пускай поищут может найдется прям нужная