123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- // SPDX-License-Identifier: GPL-2.0+
- /*
- * Copyright (C) 2022-2023 StarFive Technology Co., Ltd.
- * Author: yanhong <yanhong.wang@starfivetech.com>
- *
- */
- #include <common.h>
- #include <asm/io.h>
- static u32 ddr_train_data[] = {
- 0xb00,
- 0x101,
- 0x640000,
- 0x1,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1,
- 0x7,
- 0x10002,
- 0x300080f,
- 0x1,
- 0x5,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1010000,
- 0x280a0000,
- 0x0,
- 0x1,
- 0x3200000f,
- 0x0,
- 0x0,
- 0x10102,
- 0x1,
- 0x0,
- 0x0,
- 0x0,
- 0xaa,
- 0x55,
- 0xb5,
- 0x4a,
- 0x56,
- 0xa9,
- 0xa9,
- 0xb5,
- 0x1000000,
- 0x1000000,
- 0x0,
- 0xf0f0000,
- 0x14,
- 0x7d0,
- 0x300,
- 0x0,
- 0x0,
- 0x1000000,
- 0x10101,
- 0x0,
- 0x30000,
- 0x100,
- 0x170f,
- 0x0,
- 0x0,
- 0x0,
- 0xa140a01,
- 0x204010a,
- 0x2080510,
- 0x40400,
- 0x1000101,
- 0x10100,
- 0x2040f00,
- 0x34000000,
- 0x0,
- 0x0,
- 0x1000000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x10100,
- 0x80101,
- 0x2000200,
- 0x1000100,
- 0x1000000,
- 0x2000200,
- 0x200,
- 0x0,
- 0x0,
- 0x0,
- 0xe000004,
- 0xc0d100f,
- 0xa09080b,
- 0x2010000,
- 0x80103,
- 0x200,
- 0x0,
- 0xf000000,
- 0x4,
- 0xa,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x30100,
- 0x1010001,
- 0x10200,
- 0x4000103,
- 0x1050001,
- 0x10600,
- 0x107,
- 0x0,
- 0x0,
- 0x10001,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x10000,
- 0x4,
- 0x0,
- 0x10000,
- 0x0,
- 0x3c0003,
- 0x80100a0,
- 0x16,
- 0x2c,
- 0x33,
- 0x20043,
- 0x2000200,
- 0x4,
- 0x60c,
- 0xa1400,
- 0x280000,
- 0x6,
- 0x46,
- 0x70,
- 0x610,
- 0x12b,
- 0x4001035,
- 0x1010404,
- 0x1e01,
- 0x1e001e,
- 0x1000100,
- 0x100,
- 0x0,
- 0x5060403,
- 0x1011108,
- 0x1010101,
- 0xf0a0a,
- 0x0,
- 0x0,
- 0x4000000,
- 0x4021008,
- 0x4020206,
- 0xc0034,
- 0x100038,
- 0x17003f,
- 0x10001,
- 0x10001,
- 0x10005,
- 0x20064,
- 0x100010b,
- 0x60006,
- 0x650100,
- 0x1000065,
- 0x10c010c,
- 0x1e1a1e1a,
- 0x1011e1a,
- 0xa070601,
- 0xa07060d,
- 0x100b080d,
- 0xc00f,
- 0xc01000,
- 0xc01000,
- 0x21000,
- 0x120005,
- 0x190064,
- 0x10b,
- 0x1100,
- 0x1e1a0056,
- 0x6000101,
- 0x130204,
- 0x1e1a0058,
- 0x1000101,
- 0x230408,
- 0x1e1a005e,
- 0x9000101,
- 0x610,
- 0x4040800,
- 0x40100,
- 0x3000277,
- 0xa032001,
- 0xa0a,
- 0x80908,
- 0x901,
- 0x1100315c,
- 0xa062002,
- 0xa0a,
- 0x141708,
- 0x150d,
- 0x2d00838e,
- 0xf102004,
- 0xf0b,
- 0x8c,
- 0x578,
- 0xc20,
- 0x7940,
- 0x206a,
- 0x14424,
- 0x730006,
- 0x3030133,
- 0x4,
- 0x0,
- 0x4,
- 0x1,
- 0x5,
- 0x2,
- 0x6,
- 0x50,
- 0x1,
- 0x5,
- 0x28,
- 0x73,
- 0xd6,
- 0x1,
- 0x5,
- 0x6b,
- 0x1000133,
- 0x140040,
- 0x10001,
- 0x1900040,
- 0x1000c,
- 0x42b0040,
- 0x320,
- 0x360014,
- 0x1010101,
- 0x2020101,
- 0x8080404,
- 0x67676767,
- 0x67676767,
- 0x67676767,
- 0x67676767,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x5500,
- 0x5a00,
- 0x55003c,
- 0x0,
- 0x3c00005a,
- 0x5500,
- 0x5a00,
- 0x55003c,
- 0x0,
- 0x3c00005a,
- 0x18171615,
- 0x14131211,
- 0x7060504,
- 0x3020100,
- 0x0,
- 0x0,
- 0x0,
- 0x1000000,
- 0x4020201,
- 0x80804,
- 0x0,
- 0x4,
- 0x0,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x14,
- 0x9,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x34,
- 0x1b,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x4,
- 0x0,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x14,
- 0x9,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x34,
- 0x1b,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x4,
- 0x0,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x14,
- 0x9,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x34,
- 0x1b,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x4,
- 0x0,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x14,
- 0x9,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- 0x0,
- 0x34,
- 0x1b,
- 0x31,
- 0x31,
- 0x0,
- 0x0,
- 0x4d4d,
- };
- void ddr_phy_train(u32 *phyreg)
- {
- u32 i, len;
- len = sizeof(ddr_train_data) / sizeof(u32);
- for (i = 0; i < len; i++)
- out_le32(phyreg + i, ddr_train_data[i]);
- }
|