您尚未登录。

楼主 # 2022-02-13 11:18:09

mango
会员
所在地: 芒果派1
注册时间: 2017-12-02
已发帖子: 780
积分: 726

小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

MQ工程开源地址: https://github.com/mangopi-sbc/MQ 

ARM芯片和RV芯片完全pin2pin,但因DDR不同,T113的DRAM供电1.5V,而D1s(F133)则是1.8V.

涉及到麻雀上只需改动R10(300K)为220K即可。

mq-dual-mq.jpg

最近编辑记录 mango (2022-02-13 11:19:15)






歪朵拉开源硬件: https://widora.cn
淘宝:  https://widora.taobao.com/

离线

#1 2022-02-13 16:20:30

twzy
会员
注册时间: 2021-04-16
已发帖子: 204
积分: 351.5
个人网站

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

T113? 这是新出的soc ,后面能买到不?

离线

楼主 #2 2022-02-13 18:14:26

mango
会员
所在地: 芒果派1
注册时间: 2017-12-02
已发帖子: 780
积分: 726

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

同一颗die,只是T113开核了ARM。






歪朵拉开源硬件: https://widora.cn
淘宝:  https://widora.taobao.com/

离线

#3 2022-02-13 18:59:22

zjf0519
会员
注册时间: 2022-02-13
已发帖子: 22
积分: 37

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

有详细资料吗?特别是编译环境之类的

离线

#4 2022-02-13 22:24:50

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 68
积分: 310.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

插眼关注。。。

离线

#5 2022-02-14 09:39:19

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

现在有个棘手的问题,fel模式下如果通过代码的方式区分这些马甲,已知有两类,RISCV单核一类,ARM双核一类。

RISCV 单核,D1/F133,检测代码

static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id)
{
	if(id == 0x00185900)
	{
		/*
		 * XuanTie C906 RISC-V
		 */
		if(R32(0x00000000) == 0x43014281)
			return 1;
	}
	return 0;
}

ARM双核,R528/T113,检测代码

static int chip_detect(struct xfel_ctx_t * ctx, uint32_t id)
{
	if(id == 0x00185900)
	{
		/*
		 * Dual-Core ARM Cortex-A7
		 */
		if(R32(0x00000000) == 0xea000019)
			return 1;
	}
	return 0;
}

这里通过读取0地址的机器码来判断是开启的是RISCV还是ARM核,但如何进一步区分,这马甲是R528还是T113呢?或者更近一步,能区分出马甲的尾缀,比如R528-S2,R528-S3,T113-S2,T113-S3这些马甲呢?

有没有相关解决这个问题的思路呢,大家来点脑洞吧,也许真能找到完美解决方案。

离线

#6 2022-02-14 09:51:42

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

这是坑网网友mengxp逆向R328-S3 fes1 工程里的相关代码,有一个bond_id_check函数,这个看名字是芯片邦定相关检测函数,感觉没啥大用,理论上全志应该会有一套自己的马甲管理方案的,也便于自己做产品控制,相关信息也一定会在封装时写入了efuse之类的地方,包括开哪个核,等等,这些细节有可能研究出来吗?


uint32_t crc_16(uint16_t reg, uint8_t data_crc)
{
    uint32_t ret;
    uint16_t v3;
    uint16_t v4;

    ret = reg ^ (data_crc << 8);
    v3 = 8;
    do {
        v4 = 2 * ret;
        v3--;
        if ((ret << 16) >= 0)
            ret = v4;
        else
            ret = v4 ^ 0x8005;
    } while (v3);

    return ret;
}

uint32_t disturb_coding(uint16_t disturb_code, uint8_t id_num)
{
    return (disturb_code + id_num) | (crc_16(disturb_code, id_num) << 16);
}

uint32_t id_judge_fun(uint16_t disturb_code)
{
    uint32_t chipId;
    uint8_t v5;
    uint32_t ret;

    chipId = MEMORY(0x3006200) & 0xF;
    printf("the chip id is 0x%x\n", chipId);
    if (chipId == 3)
    {
        v5 = 7;
        ret = disturb_coding(disturb_code, v5);
    }
    else
    {
        v5 = 1;
        ret = 0;
    }
    return ret;
}


int bond_id_check(void)
{
    uint8_t v0;
    uint32_t v1;
    uint16_t v3;
    uint32_t v4;

    v0 = 1;
    v1 = id_judge_fun(0);
    while (v1 != disturb_coding(0, v0))
    {
        v0++;
        if (v0 == 17)
            return 0;
    }
    v3 = 1;
    while (1)
    {
        v4 = id_judge_fun(v3);
        if (v4 != disturb_coding(v3, v0))
            break;
        v3++;
        if (v3 == 5)
            return 1;
    }
    return 0;
}

int chip_id_check(void)
{
    uint32_t chipId = MEMORY(0x3006200) & 0xF;

    if(chipId != 3)
        return 0;
    return 1;
}

离线

#7 2022-02-14 11:58:55

liyucai
会员
注册时间: 2019-12-06
已发帖子: 45
积分: 22

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

这个是说芯片内实际上包含了 2个 ARM A7 和 1个 RISC-V? 只是在封装时只引出了其中一个?
这个成本老高了!
有没办法我自己去改变配置,想用哪个用哪个?

离线

#8 2022-02-14 12:48:37

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

是4核的die,还有个dsp,之前分析r528的时候就dump了riscv的brom 跟d1的一模一样。

离线

#9 2022-02-14 12:50:31

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

感觉未来很有可能会出一个4核版的异构马甲,该赚的钱都得赚到,才能不辱使命

离线

#10 2022-02-14 16:37:30

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

V1.2.5版本支持R528-S3和T113-S3 DDR 初始化命令

xfel ddr r528-s3
xfel ddr t113-s3

离线

#11 2022-02-14 16:40:50

diancity
会员
注册时间: 2022-02-14
已发帖子: 4
积分: 4

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

现有的F133能在arm和RISCV之间切换就无敌了

离线

#12 2022-02-14 17:37:38

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

1_20220214-1737.png

离线

#13 2022-02-15 12:46:34

kakatoo
会员
注册时间: 2018-10-08
已发帖子: 88
积分: 65

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

这个啥价格啊  芯片啥价格呢?

离线

楼主 #14 2022-02-15 21:35:46

mango
会员
所在地: 芒果派1
注册时间: 2017-12-02
已发帖子: 780
积分: 726

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

车规的芯片,比F133贵不了几块






歪朵拉开源硬件: https://widora.cn
淘宝:  https://widora.taobao.com/

离线

#15 2022-02-15 22:11:37

tango_zhu
会员
注册时间: 2018-04-12
已发帖子: 121
积分: 3

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

啥时候开卖

离线

#16 2022-02-16 00:22:27

wupaul2001
会员
注册时间: 2019-09-30
已发帖子: 293
积分: 261

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

坐等开卖

离线

#17 2022-02-16 05:41:13

mfkiwl
会员
注册时间: 2019-02-27
已发帖子: 53
积分: 15

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

这个相当期待. 欢迎LZ一有消息就来更新.

另外,希望软件配套上尽量完善些, 这样开发板用起来要容易些

离线

#18 2022-02-16 12:39:34

xiongxinjian
会员
注册时间: 2019-01-13
已发帖子: 43
积分: 13

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

我的麻雀F133还在吃灰呢

最近编辑记录 xiongxinjian (2022-02-16 12:40:34)

离线

#19 2022-02-16 14:16:38

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

XBOOT第一时间支持T113-S3,xfel也顺利支持T113-S3,但现在ARM的中断没办法响应,估计被RISCV劫持了,或者其他什么情况,应该需要设置某些寄存器。这个问题留给有心人研究了。包括如何启动另外一个ARM核,这个是双核CORTEX-A7


下面是写demo
1_20220216-1411.jpg
2_20220216-1411.jpg

离线

#20 2022-02-16 14:39:58

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

全志T113-S3编译烧写步骤

https://xboot.org/xboot/#/guide-allwinner-t113s3

编译源码,生成的目标文件在output目录下

make clean
make CROSS_COMPILE=/path/to/arm-none-linux-gnueabihf- PLATFORM=arm32-t113s3

烧写到RAM中并运行

sudo xfel ddr t113-s3; sudo xfel write 0x40000000 xboot.bin; sudo xfel exec 0x40000000;

烧写普通镜像到SPI Nor Flash

sudo xfel spinor write 0 xboot.bin

烧写压缩镜像到SPI Nor Flash

sudo xfel spinor write 0 xboot.bin.z

烧写普通镜像到SPI Nand Flash

sudo xfel spinand splwrite 2048 1048576 xboot.bin

烧写压缩镜像到SPI Nand Flash

sudo xfel spinand splwrite 2048 1048576 xboot.bin.z

现在T113还没有实现get_boot_device函数,默认引导介质为SPI NOR FLASH,F133, D1这些已实现get_boot_device函数。

离线

#21 2022-02-16 16:06:00

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@xboot

这个CPU之前恰巧分析过一些,当时为了删除TEE做了第二核启动的linux逻辑。
实际上启动第二核心很简单,就两个东西。中断我没看到有什么被劫持的地方,
也可能是我没找到吧。而且T113的BROM就是确实也是ARM代码开始的,听代理
说这两个die是存在差异的,所以我也不确定是不是还有RSICV的核心在里面。
一个是brom代码dump一下就能看到的入口地址,就在开头位置。
第二就是打开手册里面提到的C0_RST_CTRL,将核心1打开。
cpuboot_membase = 0x070005c4
cpuxcfg_membase = 0x09010000
参考代码如下

writel(__pa_symbol(secondary_startup), cpuboot_membase + cpu*4);

  /* Deassert the CPU core in reset */
reg = readl(cpuxcfg_membase);
writel(reg | BIT(cpu), cpuxcfg_membase)

离线

#22 2022-02-16 17:08:47

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

RSICV核心在里面的,因为我可以dump T113的RISCV的brom,跟D1/F133的RISCV做了比较,一模一样。

离线

#23 2022-02-16 17:40:02

shaoxi2010
会员
注册时间: 2019-06-13
已发帖子: 392
积分: 336

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

这么神奇的啊,话说RISCV的BROM在那个位置弄出来的啊

离线

#24 2022-02-16 17:44:28

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

xboot 说:

RSICV核心在里面的,因为我可以dump T113的RISCV的brom,跟D1/F133的RISCV做了比较,一模一样。

那是用熔丝位做区分的?

离线

#25 2022-02-16 17:45:51

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

shaoxi2010 说:

这么神奇的啊,话说RISCV的BROM在那个位置弄出来的啊

同求如何读brom固件方法。

离线

#26 2022-02-16 17:48:46

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

用xfel工具,很容易读取BROM
https://whycan.com/t_6546.html#p72836

1_20220216-1747.png

离线

#27 2022-02-16 18:04:12

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

xfel read 0x00000000 0x10000 t113-arm-brom.bin
xfel read 0x06000000 0x10000 t113-riscv-brom.bin

离线

#28 2022-02-16 18:11:23

grantho
会员
注册时间: 2020-03-21
已发帖子: 68
积分: 4.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

强,啥时候又来了这玩意,价格多少呢,F133还没用起来不会就换了吧?铁打的人,流水的芯片方案

离线

#29 2022-02-16 19:30:14

yelong98
会员
注册时间: 2020-06-03
已发帖子: 97
积分: 59.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

t113主频多少?月底应该能买到样品了

离线

#30 2022-02-16 20:08:01

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

看手册说的是800MHZ,但我跑的1.008GHZ

离线

#31 2022-02-17 09:39:40

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

T113跟R528完全一样的,都是开启的arm双核,两者仅封装不一样,R528是BGA封装的,T113跟R528相比,少引出了一些gpio,见下表。
1_20220217-0937.png

离线

#32 2022-02-18 11:23:23

jjldc
会员
注册时间: 2022-02-18
已发帖子: 21
积分: 46

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

xboot 说:

看手册说的是800MHZ,但我跑的1.008GHZ

大概主频是1.2G
RISC-V内核与A7内核是二选一,不能同时使用(功耗扛不住?)
HIFI4 DSP理论上可以拿来跑异构应用,但是暂无多少详细的开发资料,理论上就是Cadence Xplorer那个IDE,需要原厂提供sdk,DSP的jtag信号也印出来了,应该可以跑起来

离线

#33 2022-02-18 11:26:07

jjldc
会员
注册时间: 2022-02-18
已发帖子: 21
积分: 46

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@xboot
感谢你的工具,我们已经用上了:P

离线

#34 2022-02-21 10:22:37

bigbird2444
会员
注册时间: 2022-02-21
已发帖子: 4
积分: 4

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

哪吒麻雀rv版有spi Nor Flash吗?

离线

楼主 #35 2022-02-21 10:40:36

mango
会员
所在地: 芒果派1
注册时间: 2017-12-02
已发帖子: 780
积分: 726

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

bigbird2444 说:

哪吒麻雀rv版有spi Nor Flash吗?

没,可自行焊接nor或nand






歪朵拉开源硬件: https://widora.cn
淘宝:  https://widora.taobao.com/

离线

#36 2022-04-09 20:43:12

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 464
积分: 331.5
个人网站

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@xboot 我测试了下,中断可以响应了。后面给加个心跳,并尝试开启SMP。

gic_cpu_base 是 0x03022000
gic_dist_base 是 0x03021000

T113_gic.png

最近编辑记录 aozima (2022-04-09 21:14:55)

离线

#37 2022-04-09 21:36:12

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 464
积分: 331.5
个人网站

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@shaoxi2010 谢谢大佬!SMP启动成功

/*
The Soft Entry Address Register of CPU0 is 0x070005C4.
The Soft Entry Address Register of CPU1 is 0x070005C8.
*/
void rt_hw_secondary_cpu_up(void)
{
    uint32_t cpuboot_membase = 0x070005c4;
    uint32_t cpuxcfg_membase = 0x09010000;
    uint32_t reg;

    /* Set CPU boot address */
    writel((uint32_t)(secondary_cpu_start), cpuboot_membase + 1 * 4);

    /* Deassert the CPU core in reset */
    reg = readl(cpuxcfg_membase);
    writel(reg | (1 << 1), cpuxcfg_membase);
    reg = readl(cpuxcfg_membase);

    __asm__ volatile ("isb":::"memory");
}
 \ | /
- RT -     Thread Operating System
 / | \     4.1.0 build Apr  9 2022 21:17:55
 2006 - 2022 Copyright by RT-Thread team
[I/sal.skt] Socket Abstraction Layer initialize success.
cpuxcfg_membase = 0x13FF0101 // 启动之前的值
cpuxcfg_membase = 0x13FF0103 // 启动之后的值

Hello T113 RT-Thread SMP!

msh />ps
thread   cpu bind pri  status      sp     stack size max used left tick  error
-------- --- ---- ---  ------- ---------- ----------  ------  ---------- ---
tshell     0   2   20  running 0x00000140 0x00001000    15%   0x0000000a 000
aio      N/A   2   16  suspend 0x00000080 0x00000800    07%   0x0000000a 000
sys work N/A   2   23  suspend 0x00000084 0x00000800    06%   0x0000000a 000
tsystem  N/A   2   30  suspend 0x00000098 0x00000400    22%   0x00000020 000
tidle1     1   1   31  running 0x0000005c 0x00000400    19%   0x00000020 000
tidle0   N/A   0   31  ready   0x0000005c 0x00000400    19%   0x00000020 000
timer    N/A   2    4  suspend 0x0000007c 0x00000400    12%   0x0000000a 000

最近编辑记录 aozima (2022-04-09 21:45:35)

离线

#38 2022-04-10 21:10:38

smiletiger
会员
注册时间: 2021-07-28
已发帖子: 127
积分: 35

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@aozima
请问哪里可以找到t113用的rtthread,可以分享一下吗

离线

#39 2022-04-13 17:24:53

jjmicro
会员
注册时间: 2019-07-19
已发帖子: 12
积分: 12

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

中断要对Gic初始化,每个cpu interface 要单独初始化。现在双核全开,每个核心处理不同中断。

离线

#41 2022-04-18 16:23:47

Q969785651
会员
注册时间: 2022-04-15
已发帖子: 30
积分: 30

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

F133  T113弄得很详细的,2颗都有批量出货了

离线

#42 2022-04-23 09:31:37

笔走天下
会员
注册时间: 2021-08-13
已发帖子: 126
积分: 0.5

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

@aozima 你好,这个RTThread 环境怎么搭建,有无文章

离线

#43 2022-04-26 18:35:50

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 464
积分: 331.5
个人网站

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

笔走天下 说:

@aozima 你好,这个RTThread 环境怎么搭建,有无文章

我单独发了个贴子,你可以看下。

离线

#44 2023-04-19 19:50:24

xboot
会员
注册时间: 2019-10-15
已发帖子: 692
积分: 434

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

时隔一年,一个偶然的发现,搞定了T113的中断, _vector 需要32字节对齐,补丁如下:

diff --git a/src/arch/arm32/mach-t113s3/start.S b/src/arch/arm32/mach-t113s3/start.S
index 39d83e78a..4415adea1 100644
--- a/src/arch/arm32/mach-t113s3/start.S
+++ b/src/arch/arm32/mach-t113s3/start.S
@@ -86,7 +86,7 @@
 	.global _start
 _start:
 	/* Boot head information for BROM */
-	.long 0xea000016
+	.long 0xea00000e
 	.byte 'e', 'G', 'O', 'N', '.', 'B', 'T', '0'
 	.long 0x12345678				/* checksum */
 	.long __spl_size				/* spl size */
@@ -97,7 +97,9 @@ _start:
 	.long 0x0						/* eGON version */
 	.byte 0x00, 0x00, 0x00, 0x00	/* platform information - 8byte */
 	.byte 0x34, 0x2e, 0x30, 0x00
+	.long 0, 0, 0, 0				/* reserve */
 
+	.align 5
 _vector:
 	b reset
 	ldr pc, _undefined_instruction

离线

#46 2024-12-02 14:11:05

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 464
积分: 331.5
个人网站

Re: 小麻雀 Nezha-MQ 迎来双核A7版本128M内存(基于T113-s3)

cpuboot_membase = 0x070005c4
cpuxcfg_membase = 0x09010000

后面有人测试后反馈说仅写这2个寄存器,偶尔会有启动不了第2核的情况,但通过TEE就可以稳定启动。

这个现象有人遇到过没?可能是什么原因?

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn