您尚未登录。

楼主 # 2022-06-06 20:12:46

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

T113同时启用RISC-V和A7双核的尝试

目标是希望RISC-V可以在A7双核工作的同时,启动裸机程序,做一些实时控制类的工作。

目前最新T113-I(应该就是R528吧?)手册已官宣同时支持A7双核+RISC-V、同时具有HIFI4 DSP
SNAG-0007.png

HIFI4编译器、开发环境都是闭源,需要找Cadence买,挺复杂
今天尝试了一下在A7核Linux上能否启动RISC-V核,目前还没成功
看看大家有没有什么想法。

在T113已经成功通过ARM核启动系统,进入Linux的前提下,RISC-V核的裸跑工作难度应该不大,不需要初始化内存等底层资源,只需要想办法让RV核复位跳转到启动向量即可
启动向量在哪里?看手册是0x06010004/8两个寄存器


1、编译器
https://occ.t-head.cn/community/download?id=4049193882418745344
平头哥官网,Xuantie-900-gcc-elf-newlib-x86_64-V2.4.0-20220428.tar.gz
通过xboot同学发布的D1裸跑demo,改一下ld文件就可以适配

2、时钟
要把RISC-V_CFG_CLK时钟打开,才可以操作到0x06010000地址

3、PLIT rv核独立中断控制器,目前在T113 Linux内核上好象没有启用,也没有在CCU上找到对应的开关

4、主要相关寄存器
0x02101D00 - 1D0C   CCU RISC-V时钟控制
0x06010000  RISC-V CFG配置寄存器

5、根据uboot中看到的dsp核启动代码,大概推测启动rv核思路是
停止riscv核时钟
设置risc-v核时钟频率
打开riscv核时钟

复位risc-v核
设置risc-v核复位向量
接触risv-v核复位

目前还没成功,主要是没找到RISC-V核复位相关的寄存器

离线

#1 2022-06-06 21:17:54

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

Re: T113同时启用RISC-V和A7双核的尝试

坐等大佬开核

离线

#2 2022-06-06 22:58:39

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 458
积分: 444.5

Re: T113同时启用RISC-V和A7双核的尝试

HiFi4就是Xtensa加一些扩展,gcc-xtensa都支持,但是具体启用哪一个需要自己配置,魔改ESP32编译器就好。

国外大神已经通过crosstools-ng搞出来了。

https://github.com/thesofproject/sof-docs/blob/master/getting_started/build-guide/build-from-scratch.rst

离线

#4 2022-06-07 03:12:30

david
会员
注册时间: 2018-03-05
已发帖子: 357
积分: 297.5

Re: T113同时启用RISC-V和A7双核的尝试

这个是说rv和arm共享总线么 厉害了

离线

#5 2022-06-07 03:21:38

david
会员
注册时间: 2018-03-05
已发帖子: 357
积分: 297.5

Re: T113同时启用RISC-V和A7双核的尝试

@jjldc

rv核是不是要先置复位 然后各种设置 最后在释放复位

离线

#6 2022-06-07 09:00:18

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

Re: T113同时启用RISC-V和A7双核的尝试

还有一个地方需要研究,就是efuse部分,这个东西有可能搞手脚的。

离线

楼主 #7 2022-06-07 18:32:35

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

Re: T113同时启用RISC-V和A7双核的尝试

david 说:

@jjldc

rv核是不是要先置复位 然后各种设置 最后在释放复位

比较尴尬的是,就卡在没找到RISC-V_RESET寄存器,DSP_RESET都有,RV核复位没有
一般就是给时钟,复位核-写reset vector - 释放,起码PC可以跳过去跑第一条指令

离线

#8 2022-06-07 20:27:02

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

Re: T113同时启用RISC-V和A7双核的尝试

T113-i 和 D1 pin2pin,和R528封装不同。
过几天我找代理要几个芯片贴到MQ-Pro上玩玩。






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

离线

#9 2022-06-08 04:41:50

musich
会员
注册时间: 2018-04-17
已发帖子: 225
积分: 257

Re: T113同时启用RISC-V和A7双核的尝试

这就厉害了,玩了几天113,裸机卡在如何初始化SDRAM了。

在线

#10 2022-06-09 14:24:17

audiomonster
会员
注册时间: 2018-04-21
已发帖子: 9
积分: 4

Re: T113同时启用RISC-V和A7双核的尝试

你们有HIFI4-DSP User Manual 和 Compiler ? 看来这个DSP好厉害 !

离线

楼主 #11 2022-06-09 15:25:18

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

Re: T113同时启用RISC-V和A7双核的尝试

audiomonster 说:

你们有HIFI4-DSP User Manual 和 Compiler ? 看来这个DSP好厉害 !

没弄到
今天问原厂是说A7和RISC-V二选一,不能共存
不是很确定

用risc-v的时候不就等于D1了么

离线

#12 2022-10-25 19:31:50

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

Re: T113同时启用RISC-V和A7双核的尝试

HIFI4 DSP 有人调试过吗?我们打算用这个DSP来做算法,但现在还没有什么头绪。

离线

#13 2022-12-11 19:23:07

Mitko
会员
注册时间: 2018-03-13
已发帖子: 219
积分: 202

Re: T113同时启用RISC-V和A7双核的尝试

RISC 内核是否与 H3 中的 AR100 (https://linux-sunxi.org/AR100) 相同?

离线

#14 2022-12-12 09:37:42

marcus
会员
注册时间: 2021-03-19
已发帖子: 66
积分: 16

Re: T113同时启用RISC-V和A7双核的尝试

坐等大佬开核。

离线

#15 2022-12-17 16:27:07

dukefly
会员
注册时间: 2019-03-26
已发帖子: 7
积分: 7

Re: T113同时启用RISC-V和A7双核的尝试

高级应用.大佬研究挺深啊

离线

楼主 #16 2022-12-23 15:24:41

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

Re: T113同时启用RISC-V和A7双核的尝试

xiongxinjian 说:

HIFI4 DSP 有人调试过吗?我们打算用这个DSP来做算法,但现在还没有什么头绪。

DSP已经用起来了
这个需要跟全志直接签协议,提供license、开发环境、支持包等资源,个人还不好弄

离线

#17 2022-12-23 23:22:42

audiomonster
会员
注册时间: 2018-04-21
已发帖子: 9
积分: 4

Re: T113同时启用RISC-V和A7双核的尝试

jjldc 说:
xiongxinjian 说:

HIFI4 DSP 有人调试过吗?我们打算用这个DSP来做算法,但现在还没有什么头绪。

DSP已经用起来了
这个需要跟全志直接签协议,提供license、开发环境、支持包等资源,个人还不好弄


看来这是HIFI Xtensa Compiler ?
https://bbs.aw-ol.com/topic/1424/share/4

离线

楼主 #19 2023-02-13 10:47:47

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

Re: T113同时启用RISC-V和A7双核的尝试

@audiomonster
是的,非开源编译器

离线

#20 2023-02-14 22:21:12

vigour1000
会员
注册时间: 2018-11-19
已发帖子: 100
积分: 6

Re: T113同时启用RISC-V和A7双核的尝试

不开源,能开Dsp核能用就行

离线

#21 2023-05-08 16:22:35

admin_abc
会员
注册时间: 2023-05-08
已发帖子: 2
积分: 12

Re: T113同时启用RISC-V和A7双核的尝试

@jjldc
现在启动risc-v和a7核了吗

离线

#22 2023-05-18 16:17:09

admin_abc
会员
注册时间: 2023-05-08
已发帖子: 2
积分: 12

Re: T113同时启用RISC-V和A7双核的尝试

admin_abc 说:

@jjldc
现在启动risc-v和a7核了吗

已经搞定了,另外重置riscv的为0x0f20

离线

#23 2023-05-26 11:37:43

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

Re: T113同时启用RISC-V和A7双核的尝试

想研究的,看这个代码,不贴代码的都是耍流氓。

	{
		//	The Hotplug Flag Register is 0x070005DC.
		//	The Soft Entry Address Register is 0x070005E0.

		//	la	a0, 0x02500000
		//	la	a1, 0x23
		//	sb	a1, 0 (a0)
		//	xxx:	j	xxx
		// Test: write byte to 0x02500000 = UART0 data tegister
		static const uint32_t code [] = {
				0x02500537, // 37 05 50 02
				0x0230059B,	// 9B 05 30 02 │
				0x00B50023, // 23 00 B5 00
				0x0000006F, // 6F 00 00 00,
		};

		* (volatile uint32_t *) 0x070005DC = 0*0xFA50392Fu;	// Hotplug Flag Register
		* (volatile uint32_t *) 0x070005E0 = (uintptr_t) code;	// Soft Entry Address Register

		dcache_clean_all();

		printhex(0x06000000, (void *) 0x06000000, 0x10000);
		//CCU->RISC_GATING_REG
		CCU->RISC_CFG_BGR_REG |= (1u << 16) | (1u << 0);
		(void) CCU->RISC_CFG_BGR_REG;
		PRINTF("CCU->RISC_CFG_BGR_REG=%08" PRIX32 "\n", CCU->RISC_CFG_BGR_REG);

		RISC_CFG->RISC_STA_ADD0_REG = (uintptr_t) code;
		RISC_CFG->RISC_STA_ADD1_REG = 0;//(uint32_t) (uintptr_t) code >> 32;
		//memset(RISC_CFG, ~ 0u, sizeof * RISC_CFG);
		PRINTF("CCU->RISC_GATING_REG=%08" PRIX32 ", CCU->RISC_CFG_BGR_REG=%08" PRIX32 "\n", CCU->RISC_GATING_REG, CCU->RISC_CFG_BGR_REG);
		PRINTF("RISC_CFG->RISC_STA_ADD0_REG=%08" PRIX32 ", RISC_CFG->RISC_STA_ADD1_REG=%08" PRIX32 "\n", RISC_CFG->RISC_STA_ADD0_REG, RISC_CFG->RISC_STA_ADD1_REG);
		//printhex32(RISC_CFG_BASE, RISC_CFG, sizeof * RISC_CFG);
		local_delay_ms(3000);
		//PRINTF("CCU->RISC_RST_REG=%08" PRIX32 "\n", CCU->RISC_RST_REG);
		CCU->RISC_RST_REG = 0x16AA0001u;
		(void) CCU->RISC_RST_REG;
		//PRINTF("CCU->RISC_RST_REG=%08" PRIX32 "\n", CCU->RISC_RST_REG);
		//ASSERT(CCU->RISC_RST_REG & 0x01u);
		for (;;)
			;
	}

最近编辑记录 xboot (2023-05-26 11:40:19)

离线

#24 2023-05-26 15:42:01

yongzong
会员
注册时间: 2020-08-11
已发帖子: 7
积分: 7

Re: T113同时启用RISC-V和A7双核的尝试

这个T113-S3里面也是同样吗?

离线

#25 2023-07-06 09:44:15

wj8331585
会员
注册时间: 2023-02-07
已发帖子: 44
积分: 19

Re: T113同时启用RISC-V和A7双核的尝试

当MCU使用吗?

离线

#26 2023-07-15 02:31:12

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

I am an author of this test code.
Unfortunately, risc-v core (may be exising) of t113-s3 still under reset...

I am play with other toys (lvds, mipi-dsi outputs).

最近编辑记录 GenaSPB (2023-07-15 02:31:35)

离线

#27 2023-07-15 02:37:03

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

audiomonster 说:

你们有HIFI4-DSP User Manual 和 Compiler ? 看来这个DSP好厉害 !

Local hobbyists make windows - hosted xtensa gcc. Under tests with t113-s3.


xtensa-hifi4-elf-gcc.exe (crosstool-NG 1.25.0) 10.3.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

离线

#28 2023-07-16 09:28:18

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

RISC_CFG dumps on two boards:
F133-A:

06010000  00010000 4006E910 00000000 00000000 00000013 00000021 00000003 00000002
06010020  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010040  00000000 00000000 00000000 00000000 400010D8 00000000 00000000 00000000
06010060  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010080  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100A0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100C0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100E0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010100  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010120  00000000

T113-s3:

06010000  00010000 400F95E0 00000000 00000000 00000013 00000021 00000003 00000002
06010020  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010040  00000000 00000000 00000000 00000000 BFFBBFF2 000000F7 00000000 00000000
06010060  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010080  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100A0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100C0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
060100E0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010100  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
06010120  00000000

On T113-s3 RETITE_PC0_REG and RETITE_PC1_REG looks like meaningful

离线

#29 2023-07-16 10:05:17

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

Each power-up of T113-s3 slightly change bits, visible in RETITE_PC0_REG and RETITE_PC1_REG

离线

#30 2023-08-17 10:46:45

musicwei
会员
注册时间: 2020-09-07
已发帖子: 1
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

jjldc 说:
xiongxinjian 说:

HIFI4 DSP 有人调试过吗?我们打算用这个DSP来做算法,但现在还没有什么头绪。

DSP已经用起来了
这个需要跟全志直接签协议,提供license、开发环境、支持包等资源,个人还不好弄

大佬测试过这个DSP吗 做一般的信号处理 性能怎么样?

离线

#31 2023-08-21 19:32:46

audiomonster
会员
注册时间: 2018-04-21
已发帖子: 9
积分: 4

Re: T113同时启用RISC-V和A7双核的尝试

GenaSPB 说:

Each power-up of T113-s3 slightly change bits, visible in RETITE_PC0_REG and RETITE_PC1_REG

你觉得 T113-S3 也有RISC-V ? big_smile

离线

#32 2023-09-17 13:06:27

vigour1000
会员
注册时间: 2018-11-19
已发帖子: 100
积分: 6

Re: T113同时启用RISC-V和A7双核的尝试

@GenaSPB
xtensa-hifi4-elf-gcc.exe哪里可以下载呀

离线

#34 2023-09-30 23:03:13

vigour1000
会员
注册时间: 2018-11-19
已发帖子: 100
积分: 6

Re: T113同时启用RISC-V和A7双核的尝试

@GenaSPB
谢谢

离线

#35 2023-10-01 01:56:58

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

In mentioned theme, hifi4 gcc with call0 abi (non-wimndowed abi) shown. Significantly less support at runtime need.

最近编辑记录 GenaSPB (2023-10-01 01:57:30)

离线

#36 2023-10-10 11:49:12

duanlin
会员
注册时间: 2023-10-09
已发帖子: 13
积分: 44

Re: T113同时启用RISC-V和A7双核的尝试

是不是先设定 RISCV_CFG 的 StartAddress 然后撒开复位的?
试试 将程序代码放在 RSCV_BROM 0x0600_0000-0x0600_FFFF 64KB,RV核视图是 0x0000_0000-0x0000_FFFF
然后 StartAddress 为默认 0x0000 这样启动,看能行吗

离线

#37 2023-10-10 14:24:14

GenaSPB
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

I can not putting anything in BROM. It is a read only memory

最近编辑记录 GenaSPB (2023-10-10 14:26:54)

离线

#38 2023-11-03 11:46:18

duanlin
会员
注册时间: 2023-10-09
已发帖子: 13
积分: 44

Re: T113同时启用RISC-V和A7双核的尝试

弄了一个T113-i的实物,找到了一些线索,
官方SDK里有个叫做 brandy 的二级boot(ROM算一级的话),里面有闭源的DDR初始化代码啥的,在./spl-pub/board/t113_i/ 中
libsun8iw20p1_fes.a
libsun8iw20p1_nand.a
libsun8iw20p1_sboot.a
libsun8iw20p1_sdcard.a
libsun8iw20p1_spinor.a
实际是个ELF的object文件,
看下符号表,其中有
sunxi_assert_arisc
sunxi_deassert_arisc
怀疑有关启动RISCV

反汇编结果
Disassembly of section .text.sunxi_deassert_arisc:

00000000 <sunxi_deassert_arisc>:
   0:    b507          push    {r0, r1, r2, lr}
   2:    4808          ldr    r0, [pc, #32]    ; (24 <sunxi_deassert_arisc+0x24>)
   4:    f7ff fffe     bl    0 <sunxi_deassert_arisc>
   8:    4a07          ldr    r2, [pc, #28]    ; (28 <sunxi_deassert_arisc+0x28>)
   a:    6813          ldr    r3, [r2, #0]
   c:    9301          str    r3, [sp, #4]
   e:    9b01          ldr    r3, [sp, #4]
  10:    f043 0301     orr.w    r3, r3, #1
  14:    9301          str    r3, [sp, #4]
  16:    9b01          ldr    r3, [sp, #4]
  18:    2000          movs    r0, #0
  1a:    6013          str    r3, [r2, #0]
  1c:    b003          add    sp, #12
  1e:    f85d fb04     ldr.w    pc, [sp], #4
  22:    bf00          nop
  24:    00000030     .word    0x00000030
  28:    07000400     .word    0x07000400

是将 0x07000400 寄存器[0:0]置了一个 'b1
这个寄存器在 UserManual 中说是位于 APBS0 域的 R_CPUCFG 区,但功能未说明,估计很可能得用这个,
其他还有 R_PPU R_PRCM R_TIMER R_TWD 貌似是同组,同样,UserManual 中没有一丁点解释,
如果关键功能与此未公开解释的部分有关,则会无解,只有原厂知道了

离线

#39 2023-11-03 14:05:07

duanlin
会员
注册时间: 2023-10-09
已发帖子: 13
积分: 44

Re: T113同时启用RISC-V和A7双核的尝试

验证有效
RISCV启动至少需要如下步骤:
1.CCU配置 RISC-V_CFG 0x02001000+0x0D0C Bus Gating Reset Register = 0x00010001(RISCV_CFG_RST=DeAssert, RISC-V_CFG_GATING=Pass)
2.R_CPUCFG bit0 DeAssert(Disassembly from brandy SPL in SDK),此步骤貌似并没有影响

证明:
=> md 0x06010050
06010050: fefbffee 000000ff 00000000 00000000    ................
06010060: 00000000 00000000 00000000 00000000    ................
06010070: 00000000 00000000 00000000 00000000    ................
06010080: 00000000 00000000 00000000 00000000    ................
06010090: 00000000 00000000 00000000 00000000    ................
060100a0: 00000000 00000000 00000000 00000000    ................
060100b0: 00000000 00000000 00000000 00000000    ................
060100c0: 00000000 00000000 00000000 00000000    ................
060100d0: 00000000 00000000 00000000 00000000    ................
060100e0: 00000000 00000000 00000000 00000000    ................
060100f0: 00000000 00000000 00000000 00000000    ................
06010100: 00000000 00000000 00000000 00000000    ................
06010110: 00000000 00000000 00000000 00000000    ................
06010120: 00000000 00000000 00000000 00000000    ................
06010130: 00000000 00000000 00000000 00000000    ................
06010140: 00000000 00000000 00000000 00000000    ................
=>
RETIRE_PC0_REG 有运行过的PC位置

最近编辑记录 duanlin (2023-11-03 14:17:53)

离线

#41 2024-02-02 09:23:28

kernel&boot
会员
注册时间: 2024-01-31
已发帖子: 1
积分: 1

Re: T113同时启用RISC-V和A7双核的尝试

买来的板子没有开源uboot,有没有大佬有原厂SDK的,用来学习一下

离线

页脚

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

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