全志F1C100S的BROM研究

article/2025/9/22 2:54:29

全志f1c100s是个性价比很高的芯片,但是对一般人不太友好的是它的资料开放的太少了。
网上找不到完整版的用户手册,只能从有限的手册文档和参考代码旁敲侧击,反向猜测。
关于它的BROM网上的手册内容很少。


手册上只有短短3句话:

具体怎么个启动流程,完全没有描述。

但是从网上的代码和开发板资料来看,它启动是按照顺序自动选择。

我用的开发板只有SPI FLASH,它是先从SPI NOR FLASH启动,无法读到有效的SPL,则进入USB下载模式。

而进入USB模式的按键,其实就是把SPI的片选拉低,让它无法读FLASH内的数据,从而进入USB模式。

USB下载模式官方提供一个sunxi-fel.exe的工具,很方便,它支持下载image到RAM,同时也支持直接下载到SPI-FLASH,还能读回数据。


如何判断SPL的有效性?

文档没有描述,也是通过参考代码,代到线索。

启动文件是这样写的,生成的BIN头部必须包含下面的内容。

;/* Boot head information for BROM booting */
BROM_BHI        B       Reset_HandlerDCB     "eGON.BT0"DCD     0, 0x4000DCB     'S', 'P', 'L', 2DCD     0, 0DCD     0, 0, 0, 0, 0, 0, 0, 0DCD     0, 0, 0, 0, 0, 0, 0, 0

编译生成的SPL.bin内容如下格式:

 除了编译生成的文件头信息外,还需要后期修改如下内容:

偏移000C:此SPL.bin的校验,用mksunxi.exe生成。
偏移0010:此SPL.bin的长度,必须256字节对齐。


SPL是在哪里运行的?

我们怎么确定SPL的运行环境?
文档也是没有任何描述。

下面文档的内存映射表:

BROM在0地址有32KB,内部SRAM在0x10000有40KB。
那事实真的如此吗?

只能通过写代码进行验证,我们的SPL是被加载到了0地址,在0地址运行。

而我们能使用的SRAM空间,也不在0x10000这个地址。

实际上芯片内部的SRAM空间是在0x0000 - 0x9000,一共有36KB。

后来还发现0xB000 - 0xB600还有一小段可以使用的SRAM。

在启动时,我们的SPL程序运行地0地址,可以使用内部SRAM用做栈空间,它负责初始化CPU时钟和SDRAM,并负责加载uboot或者其它程序。

另外此时,IRQ,FIQ,MMU都是关闭状态。
 


http://chatgpt.dhexx.cn/article/DhHOBqVX.shtml

相关文章

10、Lctech Pi(F1C200S)驱动电阻屏触摸芯片ns2009(ts2007),buildroot配置tslib(CherryPi,Mangopi,F1C100S)

本次主要参考: https://github.com/mangopi-sbc/buildroot-mangopi-r https://blog.csdn.net/qq_35031421/article/details/113436888 https://blog.csdn.net/dancheqishi23/article/details/116498088 (如果方便请给这几位大佬一个关注) 开…

F1C100S自制开发板调试过程

疫情,等了好久板子终于到了。 我这里使用的是坑网大佬提供的tiny200开发包,用的芒果派R3配置文件 1,配置其的介质,我板子上用的是nor-spi-flash,所以需要在设备树里面屏蔽掉nand-flash相关的节点,否则启动会有错误。 …

F1C100S(Lichee Nano)触摸屏 (GT9147)

1、前提 Ubuntu 环境版本 (18.04) Linux ubuntu 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 x86_64 x86_64 x86_64 GNU/LinuxARM GCC版本 gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)F1C100S Linux版本 (linux-nano-5.2-tf) 链接 …

全志F1C100s主线linux入坑记录 (5)LVGL8.2移植

LVGL8.2移植 百度网站 文章目录 LVGL8.2移植一、安装VScode二、安装lvgl模拟器二、F1c100s 移植lvgl参考 一、安装VScode 进入VScode官网下载安装包,如果最新版本安装有问题可以安装老版本的 https://code.visualstudio.com/使用命令行安装VScode sudo dpkg -i …

全志F1C100s主线linux入坑记录 (7)GBA模拟器移植

GBA模拟器移植 百度网站 文章目录 GBA模拟器移植一、下载gpsp 源代碼二、gpsp环境配置参考 一、下载gpsp 源代碼 gpsp源码 解压文件 7z x gpsp.7z 二、gpsp环境配置 gpsp需要SDL环境我们先在bulidroot中添加SDL包 make menuconfigTarget packages ---> Graphic libra…

9、Lctech Pi(F1C200S)开启I2C0(CherryPi,Mangopi,F1C100S)

本次主要参考: https://github.com/mangopi-sbc/buildroot-mangopi-r https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html (如果方便请给这几位大佬一个关注) 注意代码块之间的空行 配置设备树文件 1、打开linux-5.7.1/a…

全志F1C100s主线linux入坑记录 (3)适配其他分辨率的LCD

适配其他分辨率的LCD 百度网站 文章目录 适配其他分辨率的LCD一、修改U-boot屏幕参数二、修改linux内核文件三、测试效果 一、修改U-boot屏幕参数 修改对应屏幕的参数(我这里是1024*600的屏幕) 修改 -> ARM architecture -> Enable graphical ub…

全志F1C100S从零开发记录(1)

1.刚买到板子,开箱如下图所示: 2.管脚焊接(焊接串口,用来看串口打印信息),5v供电: 3.通过usb转ttl接到电脑上: . 4.设置串口波特率115200 ,打开串口,上电出…

7、Lctech Pi(F1C200S)开启RNDIS,通过USB与电脑联网(CherryPi,Mangopi,F1C100S)

本次主要参考: 荔枝nano开启RNDIS驱动,无需补丁。 https://github.com/peng-zhihui/Planck-Pi#head23 https://github.com/mangopi-sbc/buildroot-mangopi-r https://www.cnblogs.com/listenscience/p/13758272.html (如果方便请给这几位大佬…

全志F1C200S F1C100S 介绍

很久以前发现了一颗性价比极高而且比较好玩的SOC,加群请仔细阅读本博客(见DKTool界面,请备注“来自博客”) 那就是全志F1C100S F1C200S,其中F1C100S内置32MB DDR1内存,F1C200S内置64MB DDR1内存。 这个片…

6、Lctech Pi(F1C200S)4.3寸(480*272)16位RGB565LCD屏驱动适配(CherryPi,Mangopi,F1C100S)

本次主要参考: https://blog.csdn.net/wending1986/article/details/106837597/ http://blog.chinaunix.net/uid-20543672-id-3246283.html https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html 李山文大佬 (如果方便请给这几位大佬一个…

【F1C100S】编译启动所需的uboot,kernel,rootfs

个人画了块没有连接任何其他模块的F1C100S开发板,没有链接任何外设,本文是编译所有启动所需的三大件。(只要编译出三个东西复制到sd卡就可启动,不需要制作成镜像img文件) 环境:使用安装了ubuntu18的电脑进…

荔枝派nano(f1c100s)从零开始TF卡启动(附源码下载)

本文所使用的所有文件都已打包到SDK中,可以直接使用,有些细节我已省略,直接使用我包里的文件即可。 (无需积分,免费下载,里面的东西都来源于官方) 觉得可以的,可以点个赞、点个关注&#xff0…

全志F1C100s使用记录:u-boot linux rootfs 编译与烧录测试(基于SD卡)

文章目录 目的基础准备硬件准备开发环境 制作toolchain和rootfs设置编译工具链 u-boot & linux编译u-bootboot.scrlinux 测试程序文件烧录分区设置分块烧录 上电测试系统镜像制作镜像文件使用镜像文件 可能会遇到的问题SDK数据包总结 目的 这篇文章中将测试在 F1C100s 中运…

【f1c200s/f1c100s】RGB接口 LCD驱动适配

【f1c200s/f1c100s】RGB接口 LCD驱动适配 RGB模式介绍F1C200s/F1C100s RGB LCD驱动适配设备树修改源码修改结果 RGB模式介绍 RGB 模式就是我们通过说的 RGB 屏,以 RGB(TTL 信号)并行数据线传输,广泛的应用于 5 寸及以上的 TFT-LC…

全志F1C100s入坑与填坑 uboot Linux Kernel 与buildroot

全志F1C100s 入手了几块全志的板子准备玩一玩随便记录一下!! 如图 是一块荔枝派 Nano 从sipeed官网可得如下介绍 官网传送门-----》 sipeed Nano 硬件参数# 硬件参数 CPU: 全志 F1C100s, ARM 926EJS , 最高 900MHz 内存&#xf…

全志F1C100S声卡驱动探究

如果有问题,请加QQ群 891339868 进行交流 最近刚上手全志的F1C100S这个片子,听一下音乐,本来想着挺简单,内核配置一下驱动就OK,谁知道上来就一闷棍,主线内核不支持内置声卡,经过多方面的研究&am…

【f1c200s/f1c100s】全志f1c200s开发板设计(含原理图和PCB)

f1c200s开发板设计 芯片特征开发板包含资源 开发板如图所示,模仿树莓派取了一个mango-pi的名字,haha~。 硬件主要参考了荔枝派nano和正点原子开发板。经过测试,全部功能正常。 芯片特征 全志F1C200s与F1C100s的区别为F1C200s含有64M SIP RA…

全志F1C100s使用记录:资料索引与基础说明

文章目录 前言资料来源u-boot & linux基础特性启动过程FEL模式电路设计 前言 最早接触到F1C100s是前两年的一个文章,里面使用F1C100s制作了一张可以运行Linux的名片,就是下图这个。下图上实际电路部分就占用角落一点点面积,当时觉得蛮有…

MySql 内连接与外连接 作用和 区别

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。 外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。 左外连接:左边表数据行全部保留…