Ram upgrade: различия между версиями

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску
(Fix link to fpga part search, add datashit links, add part decoding)
м (Fixed DropBox links)
 
(не показано 20 промежуточных версий 2 участников)
Строка 1: Строка 1:
For more details on the BCT format, see the cbootimage project on gitorious; it creates boot images for Tegra: https://gitorious.org/cbootimage.<br />
==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 />



Текущая версия от 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


Возможно кто-то не осилит, но вот очень интересная серия статей о работе памяти - 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 выдает два даташита:

Декодируем информацию о чипе 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> пускай поищут может найдется прям нужная