Ram upgrade
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> пускай поищут может найдется прям нужная