Skip to content

Commit 3710f94

Browse files
committed
[chips] add A63, T736 and V5 chip support and update support-list
1 parent b4efc4a commit 3710f94

6 files changed

Lines changed: 177 additions & 0 deletions

File tree

‎chips/a63.c‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <fel.h>
2+
3+
static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id)
4+
{
5+
if(id == 0x00171900)
6+
return 1;
7+
return 0;
8+
}
9+
10+
static int chip_reset(struct xfel_ctx_t * ctx)
11+
{
12+
return 0;
13+
}
14+
15+
static int chip_sid(struct xfel_ctx_t * ctx, char * sid)
16+
{
17+
return 0;
18+
}
19+
20+
static int chip_jtag(struct xfel_ctx_t * ctx)
21+
{
22+
return 0;
23+
}
24+
25+
static int chip_ddr(struct xfel_ctx_t * ctx, const char * type)
26+
{
27+
return 0;
28+
}
29+
30+
static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen)
31+
{
32+
return 0;
33+
}
34+
35+
static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen)
36+
{
37+
return 0;
38+
}
39+
40+
static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[])
41+
{
42+
return 0;
43+
}
44+
45+
struct chip_t a63 = {
46+
.name = "A63",
47+
.detect = chip_detect,
48+
.reset = chip_reset,
49+
.sid = chip_sid,
50+
.jtag = chip_jtag,
51+
.ddr = chip_ddr,
52+
.spi_init = chip_spi_init,
53+
.spi_run = chip_spi_run,
54+
.extra = chip_extra,
55+
};

‎chips/t736.c‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <fel.h>
2+
3+
static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id)
4+
{
5+
if(id == 0x00170800)
6+
return 1;
7+
return 0;
8+
}
9+
10+
static int chip_reset(struct xfel_ctx_t * ctx)
11+
{
12+
return 0;
13+
}
14+
15+
static int chip_sid(struct xfel_ctx_t * ctx, char * sid)
16+
{
17+
return 0;
18+
}
19+
20+
static int chip_jtag(struct xfel_ctx_t * ctx)
21+
{
22+
return 0;
23+
}
24+
25+
static int chip_ddr(struct xfel_ctx_t * ctx, const char * type)
26+
{
27+
return 0;
28+
}
29+
30+
static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen)
31+
{
32+
return 0;
33+
}
34+
35+
static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen)
36+
{
37+
return 0;
38+
}
39+
40+
static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[])
41+
{
42+
return 0;
43+
}
44+
45+
struct chip_t t736 = {
46+
.name = "T736",
47+
.detect = chip_detect,
48+
.reset = chip_reset,
49+
.sid = chip_sid,
50+
.jtag = chip_jtag,
51+
.ddr = chip_ddr,
52+
.spi_init = chip_spi_init,
53+
.spi_run = chip_spi_run,
54+
.extra = chip_extra,
55+
};

‎chips/v5.c‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#include <fel.h>
2+
3+
static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id)
4+
{
5+
if(id == 0x00172100)
6+
return 1;
7+
return 0;
8+
}
9+
10+
static int chip_reset(struct xfel_ctx_t * ctx)
11+
{
12+
return 0;
13+
}
14+
15+
static int chip_sid(struct xfel_ctx_t * ctx, char * sid)
16+
{
17+
return 0;
18+
}
19+
20+
static int chip_jtag(struct xfel_ctx_t * ctx)
21+
{
22+
return 0;
23+
}
24+
25+
static int chip_ddr(struct xfel_ctx_t * ctx, const char * type)
26+
{
27+
return 0;
28+
}
29+
30+
static int chip_spi_init(struct xfel_ctx_t * ctx, uint32_t * swapbuf, uint32_t * swaplen, uint32_t * cmdlen)
31+
{
32+
return 0;
33+
}
34+
35+
static int chip_spi_run(struct xfel_ctx_t * ctx, uint8_t * cbuf, uint32_t clen)
36+
{
37+
return 0;
38+
}
39+
40+
static int chip_extra(struct xfel_ctx_t * ctx, int argc, char * argv[])
41+
{
42+
return 0;
43+
}
44+
45+
struct chip_t v5 = {
46+
.name = "V5",
47+
.detect = chip_detect,
48+
.reset = chip_reset,
49+
.sid = chip_sid,
50+
.jtag = chip_jtag,
51+
.ddr = chip_ddr,
52+
.spi_init = chip_spi_init,
53+
.spi_run = chip_spi_run,
54+
.extra = chip_extra,
55+
};

‎documents/docs/reference/support-list.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
| A33 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1414
| A40i | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ |
1515
| A50 | Quad-Core ARM Cortex-A7 @ 1.8GHz | 0x00175500 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
16+
| A63 | Quad-Core ARM Cortex-A53 | 0x00171900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1617
| A64 | Quad-Core ARM Cortex-A53 | 0x00168900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1718
| A80 | Octa-core big.LITTLE Cortex-A15/7 | 0x00163900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1819
| A83T | Octa-core Cortex-A7 @ 1.6GHz | 0x00167300 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
@@ -46,7 +47,9 @@
4647
| T153 | Quad-Core Cortex-A7 + E907 RISC-V | 0x00192200 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ |
4748
| T507 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
4849
| T527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ |
50+
| T736 | Dual-Core Arm Cortex-A76 + Hexa-Core Arm Cortex-A55 | 0x00170800 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
4951
| V3s | Single-core Cortex-A7 | 0x00168100 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
52+
| V5 | Quad-Core ARM Cortex-A7 | 0x00172100 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
5053
| V536 | Dual-Core Cortex-A7 | 0x00181600 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
5154
| V821 | Andes A272L2 32Bit RISC-V and E907 RISC-V | 0x00188200 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
5255
| V831 | Single-core Cortex-A7 800Mhz | 0x00181700 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

‎documents/i18n/en/docusaurus-plugin-content-docs/current/reference/support-list.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Legend: ✓ = Supported, ✗ = Not supported yet, - = None
1313
| A33 | Quad-Core ARM Cortex-A7 @ 1.2GHz | 0x00166700 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1414
| A40i | Quad-Core ARM Cortex-A7 @ 1.2 GHz | 0x00170100 | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ |
1515
| A50 | Quad-Core ARM Cortex-A7 @ 1.8GHz | 0x00175500 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
16+
| A63 | Quad-Core ARM Cortex-A53 | 0x00171900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1617
| A64 | Quad-Core ARM Cortex-A53 | 0x00168900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1718
| A80 | Octa-core big.LITTLE Cortex-A15/7 | 0x00163900 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
1819
| A83T | Octa-core Cortex-A7 @ 1.6GHz | 0x00167300 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
@@ -46,7 +47,9 @@ Legend: ✓ = Supported, ✗ = Not supported yet, - = None
4647
| T153 | Quad-Core Cortex-A7 + E907 RISC-V | 0x00192200 | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ |
4748
| T507 | Quad-Core ARM Cortex-A53 | 0x00182300 | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
4849
| T527 | Octa-core Cortex-A55 2.0Ghz + E906 RISC-V + HIFI4 DSP | 0x00189000 | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ |
50+
| T736 | Dual-Core Arm Cortex-A76 + Hexa-Core Arm Cortex-A55 | 0x00170800 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
4951
| V3s | Single-core Cortex-A7 | 0x00168100 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
52+
| V5 | Quad-Core ARM Cortex-A7 | 0x00172100 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
5053
| V536 | Dual-Core Cortex-A7 | 0x00181600 | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
5154
| V821 | Andes A272L2 32Bit RISC-V and E907 RISC-V | 0x00188200 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
5255
| V831 | Single-core Cortex-A7 800Mhz | 0x00181700 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

‎fel.c‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ extern struct chip_t a31;
88
extern struct chip_t a33_r16;
99
extern struct chip_t a40i_r40;
1010
extern struct chip_t a50;
11+
extern struct chip_t a63;
1112
extern struct chip_t a64;
1213
extern struct chip_t a80;
1314
extern struct chip_t a83t;
@@ -30,7 +31,9 @@ extern struct chip_t r528_t113;
3031
extern struct chip_t r818;
3132
extern struct chip_t t153;
3233
extern struct chip_t t536;
34+
extern struct chip_t t736;
3335
extern struct chip_t v3s_s3;
36+
extern struct chip_t v5;
3437
extern struct chip_t v536;
3538
extern struct chip_t v821;
3639
extern struct chip_t v831;
@@ -46,6 +49,7 @@ static struct chip_t * chips[] = {
4649
&a33_r16,
4750
&a40i_r40,
4851
&a50,
52+
&a63,
4953
&a64,
5054
&a80,
5155
&a83t,
@@ -68,7 +72,9 @@ static struct chip_t * chips[] = {
6872
&r818,
6973
&t153,
7074
&t536,
75+
&t736,
7176
&v3s_s3,
77+
&v5,
7278
&v536,
7379
&v821,
7480
&v831,

0 commit comments

Comments
 (0)