背景:
朋友小黄鱼购买来的EPC9600,带了一块屏幕,主板做工顶级,CPU是A8的AM3352,放在2024年还能一战,现在是跑了个公交车的系统,完全不能用,这个帖子记录适配修改uboot,启动新内核过程,驱动移植放到另外一个专栏做。
外观:
BOOT引脚可以短接选择从SD卡启动,默认开路先从NAND启动操作系统
UART0串口:(用于调试)
1:TXD,接USB转RS232的RXD
2:RXD,接USB转RS232的TXD
3:GND,接USB转RS232的GND
波特率:115200
其他串口可以参考ZLG的官网:
硬件配置:
CPU:AM3352 ARM A8,800MHz
RAM:256M
NAND:64M
[root@EPC-9600 ~]# free -m
total used free shared buffers
Mem: 247 36 210 0 0
-/+ buffers: 36 210
Swap: 0 0 0
[root@EPC-9600 ~]# df -h
Filesystem Size Used Available Use% Mounted on
ubi0:rootfs 50.5M 45.4M 5.1M 90% /
tmpfs 123.6M 800.0K 122.8M 1% /tmp
tmpfs 123.6M 52.0K 123.5M 0% /var
tmpfs 123.6M 0 123.6M 0% /media
ubi1:opt 145.7M 20.0K 141.0M 0% /opt
[root@EPC-9600 ~]#
恢复EPC9600官方系统(救砖):
下面这个链接有所有的官方光盘说明
链接: https://pan.baidu.com/s/1WREbWGKhxEzqfxgDjl6NEQ 提取码: 1234
到这个目录下:
首先准备一个SD卡,大小随意,删除所有分区,只建立一个FAT32的,大小1G即可:
把这几个文件复制到FAT32盘的根目录下,不要自己建立目录:
下面步骤比较关键:
1. BOOT条线旁边有个WDO,硬件看门狗,先拔掉,否则1秒没有喂狗会复位
2. 短接BOOT引脚
3. SD卡插上
4. 开机
然后可以看到系统自动刷写升级了
U-Boot SPL 2011.09-00000-gd547b4c-dirty (Dec 21 2017 - 11:19:36)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
U-Boot 2011.09-00000-ge447d1c-dirty (Sep 11 2017 - 08:58:29)
I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
NAND: HW ECC BCH8 Selected
256 MiB
MMC: OMAP SD/MMC: 0
Bad block table not found for chip 0
Bad block table not found for chip 0
Bad block table written to 0x00000ffe0000, version 0x01
Bad block table written to 0x00000ffc0000, version 0x01
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
ECC: uncorrectable.
NAND read from offset 260000 failed -74
*** Warning - readenv() failed, using default environment
Check SD Card ......
reading update
0 bytes read
File 'update' exist!
NAND erase.chip: device 0 whole chip
Skipping bad block at 0x071c0000
Skipping bad block at 0x07500000
Skipping bad block at 0x07ea0000
Skipping bad block at 0x07f80000
Skipping bad block at 0x080e0000
Skipping bad block at 0x0e060000
Skipping bad block at 0x0ff80000
Skipping bad block at 0x0ffa0000
Skipping bad block at 0x0ffc0000
Skipping bad block at 0x0ffe0000
OK
Data (writethrough) Cache is ON
reading MLO
85118 bytes read
NAND erase.part: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
NAND erase.part: device 0 offset 0x80000, size 0x200000
Erasing at 0x260000 -- 100% complete.
OK
NAND write: device 0 offset 0x0, size 0x20000
131072 bytes written: OK
NAND write: device 0 offset 0x20000, size 0x20000
131072 bytes written: OK
reading u-boot.img
388248 bytes read
NAND write: device 0 offset 0x80000, size 0x5ec98
388248 bytes written: OK
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x260000 -- 100% complete.
Writing to Nand... done
reading uImage
3505456 bytes read
NAND erase.part: device 0 offset 0x280000, size 0x400000
Erasing at 0x660000 -- 100% complete.
OK
NAND erase.part: device 0 offset 0x680000, size 0x400000
Erasing at 0xa60000 -- 100% complete.
OK
NAND write: device 0 offset 0x280000, size 0x357d30
3505456 bytes written: OK
NAND write: device 0 offset 0x680000, size 0x357d30
3505456 bytes written: OK
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x260000 -- 100% complete.
Writing to Nand... done
reading logo.bmp
64078 bytes read
NAND erase.part: device 0 offset 0xa80000, size 0x100000
Erasing at 0xb60000 -- 100% complete.
OK
NAND write: device 0 offset 0xa80000, size 0xfa4e
64078 bytes written: OK
NAND erase.part: device 0 offset 0xb80000, size 0x4000000
Erasing at 0x4b60000 -- 100% complete.
OK
Creating 1 MTD partitions on "nand0":
0x000000b80000-0x000004b80000 : "mtd=5"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 126976 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI: create volume table (copy #2)
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=5"
UBI: MTD device size: 64 MiB
UBI: number of good PEBs: 512
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 0
UBI: available PEBs: 468
UBI: total number of reserved PEBs: 44
UBI: number of PEBs reserved for bad PEB handling: 40
UBI: max/mean erase counter: 1/0
No size specified -> Using max size (59424768)
Creating dynamic volume rootfs of size 59424768
Data (writethrough) Cache is ON
reading rootfs.ubifs
51552256 bytes read
51552256 bytes written to volume rootfs
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x260000 -- 100% complete.
Writing to Nand... done
Auto SD Burn Success!
######Please take off the SD Card then reset the Board!######
Net: cpsw
Autobooting in 1 seconds. Enter "zlg" to interrupt Autoboot.
Data (writethrough) Cache is ON
NAND read: device 0 offset 0x280000, size 0x357d30
3505456 bytes read: OK
## Booting kernel from Legacy Image at 81e00000 ...
Image Name: Linux-3.2.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3505392 Bytes = 3.3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
升级写入NAND有点慢,需要耐心等待几十秒,之后进入系统,用户名root,密码root
Welcome to ZHIYUAN EPC-9600 Board
EPC-9600 login: root
Password:
[root@EPC-9600 ~]# ls
[root@EPC-9600 ~]#
[root@EPC-9600 ~]#
[root@EPC-9600 ~]#
[root@EPC-9600 ~]#