Welcome! Log In Create A New Profile

Advanced

how to upgrade ram on marvell a38x nas

Posted by linkt 
how to upgrade ram on marvell a38x nas
March 03, 2017 03:00AM
I replace original 512mb ram chip with 1gb ram chip,
and read f1001410, f1001504... original ram register value.

disassemble u-boot.bin, search for initializing code.
I can't find any related code to modify.
It's different from old armada xp chip.

anyone could give me a hint to find and modify it?

thanks a lot!


sorry for my poor english.
Re: how to upgrade ram on marvell a38x nas
March 03, 2017 03:53AM
linkt,

Don't worry about your English! I understood you just fine :)

1. Which box? armada 38x cover quite a few boxes. I need to know exactly which one to give you more hints.
2. Have you got the GPL source from the manufacturer? that will be needed so you can rebuild stock u-boot. Modifying u-boot.bin will not work well, if at all.
3. Once you get the GPL source, look at bin_header (unless your stock u-boot is much newer than 2013).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: how to upgrade ram on marvell a38x nas
March 03, 2017 05:29AM
Thank you for reply me.

My nas is synology ds416slim.

here is the offical GPL source site:
https://sourceforge.net/projects/dsgpl/files/Synology%20NAS%20GPL%20Source/8451branch/armada38x-source/

I think that synology doesn't update and miss some code at the site.

here is my boot message:

Quote


BootROM - 1.73
Booting from SPI flash


General initialization - Version: 1.0.0
AVS selection from EFUSE disabled (Skip reading EFUSE values)
Overriding default AVS value to: 0x23
Detected Device ID 6820
High speed PHY - Version: 2.0

Init Synology board board SerDes lanes topology details:
| Lane # | Speed| Type |
------------------------------|
| 0 | 0 | SGMII0 |
| 2 | 5 | PCIe1 |
| 3 | 0 | SGMII2 |
| 4 | 5 | USB3 HOST0 |
| 5 | 5 | USB3 HOST1 |
-------------------------------
High speed PHY - Ended Successfully
DDR3 Training Sequence - Ver TIP-1.46.0
DDR3 Training Sequence - Switching XBAR Window to FastPath Window
DDR3 Training Sequence - Ended Successfully
Not detected suspend to RAM indication
BootROM: Image checksum verification PASSED

__ __ _ _
| \/ | __ _ _ ____ _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| | | | (_| | | \ V / __/ | |
|_| |_|\__,_|_| \_/ \___|_|_|
_ _ ____ _
| | | | | __ ) ___ ___ | |_
| | | |___| _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
\___/ |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01-g74a026b-dirty (Dec 30 2015 - 14:39:24) Marvell version: 2015_T1.0p16

Board: SYNO-DS416slim
SoC: MV88F6820 Rev A0
running 2 CPUs
CPU: ARM Cortex A9 MPCore (Rev 1) LE
CPU 0
CPU @ 1066 [MHz]
L2 @ 533 [MHz]
TClock @ 250 [MHz]
DDR3 @ 533 [MHz]
DDR3 16 Bit Width,FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM: 512 MiB
MMC: mv_sdh: 0
SF: Detected N25Q64 with page size 64 KiB, total 8 MiB
*** Warning - bad CRC, using default environment

PCI-e 1 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
USB2.0 0: Host Mode
USB3.0 0: Host Mode
USB3.0 1: Host Mode

Map: Code: 0x1ff3b000:0x1ffc91bc
BSS: 0x1ffef688
Stack: 0x1fa2af20
Heap: 0x1fa2b000:0x1ff3b000
U-Boot Environment: 0x007e0000:0x007f0000 (SPI)

Board configuration detected:

Synology Model: DS416slim

Net:
| port | Interface | PHY address |
|--------|-----------|--------------|
| egiga0 | SGMII | 0x01 |
| egiga2 | SGMII | 0x00 |
egiga0 [PRIME], egiga2
Press Ctrl+C to abort autoboot in 3 second
Marvell>> md f1001400
f1001400: 7b00481b 36300848 35137773 76011f8a .H.{H.06sw.5...v
f1001410: 1a114441 00000700 00000000 00000000 AD..............
f1001420: 00000000 0060f3ff 000fe830 014c5098 ......`.0....PL.
f1001430: 76543210 fedcba98 000100ff 00000000 .2Tv............
f1001440: 00000000 00000000 00000000 00000000 ................
f1001450: 00000000 00000000 00000000 00000000 ................
f1001460: 00000000 00000000 00000000 00000000 ................
f1001470: 00013204 0000030c 00000000 0000b591 .2..............
f1001480: 00000000 00000000 00000542 00000000 ........B.......
f1001490: 00000000 00010000 00000000 0000000f ................
f10014a0: 00000001 00000000 00000000 00000000 ................
f10014b0: 00000001 00009590 00006f67 00000000 ........go......
f10014c0: 192434e9 092434e9 05143511 8001200d .4$..4$..5... ..
f10014d0: 00000000 00000000 00000000 00000000 ................
f10014e0: 00000200 000002b0 01580158 00000011 ........X.X.....
f10014f0: 00000000 76543210 fedcba98 00000000 .....2Tv........
Marvell>> md f1001500
f1001500: 00000000 0ffffff1 10000000 0ffffff5 ................
f1001510: 20000000 0ffffff9 30000000 0ffffffd ... .......0....
f1001520: 0b4012c0 00008800 000418f0 00000000 ..@.............
f1001530: 00000000 00000000 00000008 0000000e ................
f1001540: 00000000 00000000 00000000 00000000 ................
f1001550: 00000000 00000000 00000000 00000000 ................
f1001560: 00000000 00000000 00000000 00000000 ................
f1001570: 00000000 0ffffff1 10000000 0ffffff5 ................
f1001580: 20000000 0ffffff9 30000000 0ffffffd ... .......0....
f1001590: fffc7f7f 00000000 00000000 00000000 ................
f10015a0: 00000000 00000000 00000000 00000000 ................
f10015b0: 41100000 f80000ff 3400000c 00000000 ...A.......4....
f10015c0: 00000000 06910000 00db6d24 00000000 ........$m......
f10015d0: 00000840 00000046 00000008 00000000 @...F...........
f10015e0: 00000001 00203c18 00000000 d9ff0029 .....< .....)...
f10015f0: 00000000 00000000 00000000 00000000 ................


I want to change ram configuration register:
f1001410 1a 11 44 41 -> 1a 11 44 45
f1001504 0f ff ff f1 -> 1f ff ff f1
f100150c 0f ff ff f5 -> 1f ff ff f5
f1001514 0f ff ff f9 -> 1f ff ff f9
f100151c 0f ff ff fd -> 1f ff ff fd
to use 1g ram.

I have checked older ds414 u-boot source code, it's quite easy to modify .bin file.

ds416slim use a38x chip, the souce code is in different style
and it's hard to find in .bin file.
Re: how to upgrade ram on marvell a38x nas
March 03, 2017 03:14PM
linkt,

> I have checked older ds414 u-boot source code, it'
> s quite easy to modify .bin file.

But you are going to risk bricking it if you don't get it right the first time.

The right way to do this:

1. Try booting with UART using kwboot. You can also find ARM32 version in the u-boot thread.

2. Get the source and rebuild stock u-boot. Use this bin to boot with kwboot. Once you know you can do this, then you can play with u-boot .bin.

3. Look at bin_header in stock u-boot. This is where the memory is defined.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: