硬改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 = <&reg_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卡相关推荐

  1. 工厂废品小爱同学mini的重生(4)——— Linux 填坑

    博通wifi芯片的坑 小爱同学用的wifi芯片和树莓派zero的差不太多,不难解决 &mmc1 {pinctrl-names = "default";pinctrl-0 = ...

  2. 工厂废品小爱同学mini的重生(2)————提取设备树

    开端 买到的板子A面长这样 在买之前发现板子上有两个UART 和一个JTAG调试口,全志R16是A33的马甲,看数据手册得知sd卡槽与UART0和JTAG复用这样便使得(比较)无损的从sd卡启动主线l ...

  3. 工厂废品小爱同学mini的重生(1)———— 入坑篇

    入坑的简要教程 咸鱼上突然出现了6元一片的四核音响板(注意这是工厂处理的次品卖家保证可以点亮),就买了几片稍微玩下-- 从咸鱼入坑的小伙伴想要正常使用板子(回到小爱模式)的可以按照如下步骤来. 准备的 ...

  4. sd_fusing.sh将uboot烧写到SD卡

    以前只知道使用"./sd_fusing.sh  /dev/sdb"命令来烧写uboot.bin到SD卡中,对其中的细节并不了解. 心存忐忑,于是乎花了些功夫,去了解sd_fusin ...

  5. “小爱同学”是我对你期待太高?—智能音箱产品体验篇

    家居场景下,为语音交互提供了面向C端的很好的应用环境,因此在过去一年受到广泛关注.因为公司下半年战略进军智能家居这一块,所以特意关注了家庭智能语音交互这一块应用产品,市场上关于语音交互这一块产品主要包 ...

  6. 【Linux】制作U-Boot烧写镜像到SD卡的过程(上篇)

    在嵌入式Linux操作系统中,需要将三样东西(BootLoader.内核kernel.根文件系统)传输到目标板中.一般而言,U-Boot烧写到SD卡中,而内核.根文件系统都采用TFTP的方式传输到目标 ...

  7. sd卡烧写linux内核,uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04 一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/mmc ...

  8. 制作SD卡启动自己编译的uboot.bin

    README for FriendlyARM Tiny4412 ----------------------------------------------------- 1. Build uboot ...

  9. Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型(RAW 格式)

    Ubuntu18.04烧录U-Boot时格式化SD卡的文件类型 前言 1.问题的提出 2.分析问题 3.用dd命令格式化SD卡 dd命令: 参数: 4.SD卡的烧录 5.再谈SD卡的分区 前言 本文只 ...

最新文章

  1. 什么是LambdaExpression,如何转换成Func或Action(2)
  2. webview部分安卓机中文乱码
  3. 机器人无限火力无限e符文_LOL:无限火力开黑指南 三大玩法让你快乐加倍
  4. java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
  5. 点点文刊 -- 记录生活的色彩
  6. HDU1251 统计难题【字典树】
  7. 自动优化Windows Xp批处理文件
  8. MATLAB的7种滤波方法(重制版)
  9. JMETER安装与配置教程
  10. 基于BOLT的仿迅雷加速器界面开发(一)
  11. 前端书籍推荐之《精通JavaScript+jQuery》
  12. mysql blast2go_blast2go本地化教程
  13. cocos2d - JS Sprite 镜像反转显示 ( Flipped )
  14. 数据从网卡到应用的过程
  15. 天猫精灵GXIC2020 AIOT物联网大赛获奖了
  16. matlab中psf2otf作用,Matlab中psf2otf()函数在opencv中的实现
  17. 【愚公系列】2023年02月 .NET CORE工具案例-Lunar日历转换
  18. poi处理word内容的公式_Java 使用 POI 操作 XWPFDocument 中的 XWPFParagraph(段落)对象的属性略解 Wor - 链滴...
  19. 什么是802.1q协议
  20. 数据结构复习题(一)

热门文章

  1. Nacos作为配置中心,bootstrap.properties没有生效
  2. 【Window 入侵排查】
  3. 外置罗氏线圈和开合式互感器的导轨式多功能电力仪表
  4. Mysql 查询本级及上级、本级及下级
  5. Generic Timer Module (GTM)
  6. JAVA网络传输乱码问题
  7. Android开发中根据图片名称获取在drawable中的ID
  8. Android基础-Facebook Rebound 弹性动画库 源码分析
  9. c语言123输出112233,c语言练习 - 噫_的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. 手握国企offer,33岁程序员不按常理出牌,网友炸了!