工厂废品小爱同学mini的重生(3)——— Uboot和硬改SD卡
硬改SD卡
由提取出的设备树结合硬件可以得到,蓝牙使用的为UART1,调试口占用UART0,在A面的调试点分别是JTAG和UART0,还有S-UART(设备树里没有使用),查看全志R16的用户手册得知,MMC0与JTAG和UART0复用,只要接上一个sd卡的卡槽就可以完成硬件的改装,加上全志soc先检查sd卡可启动性的传统艺能,基本上使得启动主线Uboot成为可能。
按照下图的定义接线,再使用主线uboot现成的a33-q8-tablet设备树,就可以启动到uboot的spl阶段了,但是要填的坑还是有点多。。。
焊工有点丑了。。。
U-Boot填坑
解决SPL找不到SD卡的问题
直接使用q8-tablet设备的defconfig,报如下的错误
这是因为q8的mmc是有cd脚来检测sd卡是否被插入,然而相机卡没有这个脚,要在uboot的设备树的mmc0节点non-removable;注明使得uboot不会去检测cd脚。
&mmc0 {pinctrl-names = "default";pinctrl-0 = <&mmc0_pins>;vmmc-supply = <®_dcdc1>;bus-width = <4>;+ non-removable;status = "okay";
};
解决加载内核和设备树时报内存已被保留的错误
串口输出如下
U-Boot 2020.07-dirty (Aug 20 2020 - 00:42:14 -0700) Allwinner TechnologyCPU: Allwinner A33 (SUN8I 1667)
Model: A33 Q8 Tablet
DRAM: 128 MiB
MMC: mmc@1c0f000: 0, mmc@1c11000: 1
Loading Environment from FAT... Card did not respond to voltage select!
Setting up a 800x480 lcd console (overscan 0x0)
In: serial
Out: vga
Err: vga
Allwinner mUSB OTG (Peripheral)
Net:
Warning: usb_ether using MAC address from ROM
eth0: usb_ether
starting USB...
Bus usb@1c1a000: USB EHCI 1.00
Bus usb@1c1a400: USB OHCI 1.0
scanning bus usb@1c1a000 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
355 bytes read in 3 ms (115.2 KiB/s)
## Executing script at 41900000
** Reading file would overwrite reserved memory **
There is no valid bmp file at the given address
** Reading file would overwrite reserved memory **
** Reading file would overwrite reserved memory **
SCRIPT FAILED: continuing...
这是一个困扰了我比较久的问题,加载内核和设备树时总是写不进内存,是和uboot的内存分配有关,毕竟sun8i主线uboot除了v3s也没这么小内存(128mb)的设备,参照只有64mb的v3s,修改如下。
./include/configs/sunxi-common.h
第一处
- #if (!defined CONFIG_MACH_SUN8I_V3S)
- /* 64MB of malloc() pool */
- #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (64 << 20))
- #else
/* 2MB of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (2 << 20))
- #endif
第二处
#else
/** 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc.* 32M uncompressed kernel, 16M compressed kernel, 1M fdt,* 1M script, 1M pxe and the ramdisk at the end.*/
- #if (!defined CONFIG_MACH_SUN8I_V3S)
- #define BOOTM_SIZE __stringify(0xa000000)
- #define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000))
- #define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000))
- #define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000))
- #define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000))
- #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3300000))
- #else
/** 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc.* 16M uncompressed kernel, 8M compressed kernel, 1M fdt,* 1M script, 1M pxe and the ramdisk at the end.*/
#define BOOTM_SIZE __stringify(0x2e00000)
#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(1000000))
#define FDT_ADDR_R __stringify(SDRAM_OFFSET(1800000))
#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(1900000))
#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(1A00000))
#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(1B00000))
- #endif
#endif
之后就可以进入linux的世界了~~ 打算以apt系的armbian作为rootfs便于内核模块的调试~~
放个成功运行的图预告一下~~
配好codec和wifi跑个gmediarender基本上内存就上80m了可能openwrt这种发行版会更好一些。。
工厂废品小爱同学mini的重生(3)——— Uboot和硬改SD卡相关推荐
- 工厂废品小爱同学mini的重生(4)——— Linux 填坑
博通wifi芯片的坑 小爱同学用的wifi芯片和树莓派zero的差不太多,不难解决 &mmc1 {pinctrl-names = "default";pinctrl-0 = ...
- 工厂废品小爱同学mini的重生(2)————提取设备树
开端 买到的板子A面长这样 在买之前发现板子上有两个UART 和一个JTAG调试口,全志R16是A33的马甲,看数据手册得知sd卡槽与UART0和JTAG复用这样便使得(比较)无损的从sd卡启动主线l ...
- 工厂废品小爱同学mini的重生(1)———— 入坑篇
入坑的简要教程 咸鱼上突然出现了6元一片的四核音响板(注意这是工厂处理的次品卖家保证可以点亮),就买了几片稍微玩下-- 从咸鱼入坑的小伙伴想要正常使用板子(回到小爱模式)的可以按照如下步骤来. 准备的 ...
- sd_fusing.sh将uboot烧写到SD卡
以前只知道使用"./sd_fusing.sh /dev/sdb"命令来烧写uboot.bin到SD卡中,对其中的细节并不了解. 心存忐忑,于是乎花了些功夫,去了解sd_fusin ...
- “小爱同学”是我对你期待太高?—智能音箱产品体验篇
家居场景下,为语音交互提供了面向C端的很好的应用环境,因此在过去一年受到广泛关注.因为公司下半年战略进军智能家居这一块,所以特意关注了家庭智能语音交互这一块应用产品,市场上关于语音交互这一块产品主要包 ...
- 【Linux】制作U-Boot烧写镜像到SD卡的过程(上篇)
在嵌入式Linux操作系统中,需要将三样东西(BootLoader.内核kernel.根文件系统)传输到目标板中.一般而言,U-Boot烧写到SD卡中,而内核.根文件系统都采用TFTP的方式传输到目标 ...
- sd卡烧写linux内核,uboot从SD卡烧写内核和文件系统
环境:ubuntu 13.04 一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/mmc ...
- 制作SD卡启动自己编译的uboot.bin
README for FriendlyARM Tiny4412 ----------------------------------------------------- 1. Build uboot ...
- Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型(RAW 格式)
Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型 前言 1.问题的提出 2.分析问题 3.用dd命令格式化SD卡 dd命令: 参数: 4.SD卡的烧录 5.再谈SD卡的分区 前言 本文只 ...
最新文章
- 什么是LambdaExpression,如何转换成Func或Action(2)
- webview部分安卓机中文乱码
- 机器人无限火力无限e符文_LOL:无限火力开黑指南 三大玩法让你快乐加倍
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- 点点文刊 -- 记录生活的色彩
- HDU1251 统计难题【字典树】
- 自动优化Windows Xp批处理文件
- MATLAB的7种滤波方法(重制版)
- JMETER安装与配置教程
- 基于BOLT的仿迅雷加速器界面开发(一)
- 前端书籍推荐之《精通JavaScript+jQuery》
- mysql blast2go_blast2go本地化教程
- cocos2d - JS Sprite 镜像反转显示 ( Flipped )
- 数据从网卡到应用的过程
- 天猫精灵GXIC2020 AIOT物联网大赛获奖了
- matlab中psf2otf作用,Matlab中psf2otf()函数在opencv中的实现
- 【愚公系列】2023年02月 .NET CORE工具案例-Lunar日历转换
- poi处理word内容的公式_Java 使用 POI 操作 XWPFDocument 中的 XWPFParagraph(段落)对象的属性略解 Wor - 链滴...
- 什么是802.1q协议
- 数据结构复习题(一)
热门文章
- Nacos作为配置中心,bootstrap.properties没有生效
- 【Window 入侵排查】
- 外置罗氏线圈和开合式互感器的导轨式多功能电力仪表
- Mysql 查询本级及上级、本级及下级
- Generic Timer Module (GTM)
- JAVA网络传输乱码问题
- Android开发中根据图片名称获取在drawable中的ID
- Android基础-Facebook Rebound 弹性动画库 源码分析
- c语言123输出112233,c语言练习 - 噫_的个人空间 - OSCHINA - 中文开源技术交流社区...
- 手握国企offer,33岁程序员不按常理出牌,网友炸了!