1. 背景

年前看到论坛帖子

https://cyberbus.net/post/209

CIX和radxa搞了个高性能ARM桌面处理器,看宣传材料(https://dl.radxa.com/orion/o6/radxa_orion_o6_announcement_presentation_2024_12_18.pdf)性能挺好,“号称”开源,听说能上N卡,于是预定了玩玩。

看了下价格,8G的1699,64G的3699

坏了,这是被Apple金子内存传染了

这能忍?Apple的内存封装我搞不定,但是区区LPDDR5岂不是随便换。于是预定了一块8G的,年后才到货

2. 开箱

2.1 看看外观

包装很精致,里面是主板+散热+亚克力夹心。看下前后IO接口

详细文档和接口信息可以移步官方网站查看https://docs.radxa.com/en/orion/o6/getting-started

2.2 通个电

想要搞它内存,首先要搞明白启动流程。这个板子有多个串口,如官方所述

    UART2:BIOS and OS debug logs
    UART4:Power management, voltage, and frequency monitoring
    UART5:Secure BootROM debug logs
    EC UART:On board Embedded Controller debug logs

首先启动的是bootrom和SE_FW,我们看下官方给的block diagram

可以看到有SE和PM两个核(猜测是安全核、功耗管理核),猜测分别对应UART5和UART4

从串口来看确实是UART5先输出。

接着看到结束,看起来这个板子有安全启动

卧槽,锁了啊,菊花一紧,这还怎么开源。PPT写的uefi给源码,编出来难道还要找官方签名?我们暂且假设它这个片子必须有一个安全启动密钥,销售的开发板用的测试密钥,且未来开源的sdk里面能给这个密钥…

接着往后看UART2。SE核干完这些事情后AP核应该就开始干活了,看log这里是进ATF了

然后进uefi(图是后来拍的)

3. 改64G内存

3.1 搞明白内存容量识别

有些嵌入式开发经验的朋友应该知道,内存容量识别大概有这么几种

  1. 存i2c eeprom里:常见的内存条都是这样
  2. 硬编码到bios里:常见的笔记本平台是这样,比如AMD的APCB/AOCB,或者高通的CDT
  3. 上下拉电阻:比如老黄的显卡
  4. 自动识别:有些arm soc是这样

首先排除2,因为从官网公开的信息来看,8/16/32/64G都是一个BIOS。然后排除1,因为官网公开了原理图

说到原理图,看了一下发现是有个i2c转gpio芯片,写做board_id,并在最后一页贴心的给出了不同容量颗粒的配置表

本来还打算逆向一下SE_FW来着,看看怎么选择的内存配置参数

从这个表中我们可以发现,2GB版本的四个位是0010,16GB版本的应该是1010(这里的GB应该指的是单颗粒的容量,一共四个颗粒)。所以根据原理图,只需要把BOARD_ID7从下拉改成上拉。即把R1628挪到R1615上

根据公开的点位图,找到这俩电阻的位置

挪上去即可

这时候开机,提示需要清空BIOS

说明我们的Board ID修改生效了,只是bios flash里存了点别的东西(比如之前8G的DDR cal参数)。用编程器再清空flash刷一遍官网的BIOS

果然SE_FW就显示64G了

但是因为8G的颗粒还在板子上呢,直接bus error爆炸了

3.2 找到(接口、速率、价格)合适的颗粒

然后我们来找颗粒。我原机的颗粒如图

搜一下

我日,这用的料是不是太新了,查不到一点。不过目力来看,应该是BGA315的LPDDR5。找到一份镁光的datasheet,测了一下焊盘的电源和GND大概对的上

但是DDR参数还得赌。于是上某宝翻翻,找到了这个H58G78BK7B-X114,看起来是单颗粒16GB LPDDR5,封装是BGA315。我没法确定这个型号的lpddr时序和bios里面硬编码的一样,不过好像也没得选了,三星搜了一圈最大只有8GB单颗粒的

3.3 焊接颗粒

首先把原来的干下来。不知道这个PCB质量怎么样,风枪直接开500度,保板不保芯片,芯片动了赶紧弄下来,减少PCB高温时间

轻推一下芯片动了直接翘下来,然后烙铁340度把焊盘拖平,洗干净

然后我也懒得植球了,直接拿卖家原装的球焊上去,这里风枪420就行

等凉快了之后通电开机

3.4 草,怎么点不亮

果不其然炸了,通过串口看到CH2 training done之后崩掉了。那么我们结合原理图猜一下哪个是CH2

原理图可以看到有四个DDR PHY,信号前缀是M0-M3,所以找找M2/M3连接的元件在哪

看了一下应该是这样

那就把M2拆了,看一下报错

发现报错一样,说明M2颗粒确实有问题,没工作。重新植个球装回去

成功点亮

3.5 一些note

  1. PCB板质量不错,没有掉点,拖焊盘也没有掉漆。温度放心往高了开
  2. 如果拿不准可以一颗一颗升级,从M0到M3
  3. 改完board id电阻需要清空重刷BIOS
  4. 这么干肯定没保修,搞坏了不负责,如果你没BGA焊接经验建议谨慎考虑改内存

4. 进系统玩玩

简单测下板子有没有炸

核间延迟

满载频率,居然3种核五个频率,四个小核1.8G,四个中核分2.2G/2.3G两种,四个大核分2.4G/2.5G两种

当然和官网宣称的3.2Ghz差远了

研究下怎么超频。BIOS里可以设置2.5G和2.6G两个频率。实测发现修改的是flash里面这个位置,01就是2.6G,00就是2.5G。

系统里能操作pm cli。但是不知道怎么搞。。。后面再研究

5. 后面怎么玩

  • 改电压改频率
  • PCIe看看眼图or玩玩显卡
  • NPU/DSP/ISP
24
message-square
4
  • AlphaAreaA
    1 month ago

    打原神能秒骁龙8G2吗?

    搞不懂Mali的这坨命名规则

  • seunji
    1 month ago

    大佬🐂🍺,我的怎么还没发货