感谢司徒开源精神,提供了硬件的可玩性!
借chatgpt东风,利用小长假把几年前的FC3000掌机用户空间挪到imx28上;应该不算移植,只是用户空间重复利用。
不然这imx28-EVK还是要继续吃灰,与F1c100s同为arm9核,454MiB,128MiB DDR2
没办法就在挖坑网挖坟,只能根据自己掌握的资料对FC3000进行复现;FC3000项目的耦合度很高,内核驱动对外围很多硬编码,LCD/按键。。
我在f1c100s测试时发现内置DAC驱动不能工作,表现为插上耳机即会硬件复位;
而且也没有usbhid支持;
如此切入点就直接把uboot+kernel都平替了,uboot2018.01+kernel4.19.88
挪机测试目的很简单,音频通道走了sgtl5000(个人觉得音质不错),内核开usbhid用通用电脑USB键盘;
EVK上LCD是RGB 800x480,直接居中映射320x240,没有拉伸和倍数放大;显示上只是别扭了点(800x480显示320x240效果极其精致!)
fbdev驱动chatgpt给了一版,算是正常工作起来。(这对话模型确实为一些想法提供了可能)
系统引导日志如下,改日上图。
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.19.88 (test@test-desktop) (gcc version 7.3.0 (Buildroot 2018.02.9)) #50 PREEMPT Thu Oct 8 16:21:11 CEST 2026
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
CPU: VIVT data cache, VIVT instruction cache
OF: fdt: Machine model: Freescale i.MX28 Evaluation Kit
Memory policy: Data cache writeback
random: get_random_bytes called from start_kernel+0x80/0x44c with crng_init=0
Built 1 zonelists, mobility grouping on. Total pages: 32512
Kernel command line: console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait init=/mininit
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 121384K/131072K available (5893K kernel code, 406K rwdata, 1476K rodata, 336K init, 128K bss, 968 8K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xc8800000 - 0xff800000 ( 880 MB)
lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (5895 kB)
.init : 0x(ptrval) - 0x(ptrval) ( 336 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 407 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 129 kB)
rcu: Preemptible hierarchical RCU implementation.
Tasks RCU enabled.
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
clocksource: mxs_timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
Console: colour dummy device 80x30
Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x40008400 - 0x4000847c
rcu: Hierarchical SRCU implementation.
devtmpfs: initialized
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: -1, 3072 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Serial: AMBA PL011 UART driver
80074000.serial: ttyAMA0 at MMIO 0x80074000 (irq = 234, base_baud = 0) is a PL011 rev2
console [ttyAMA0] enabled
mxs-dma 80004000.dma-apbh: initialized
mxs-dma 80024000.dma-apbx: initialized
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
videodev: Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource mxs_timer
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
workingset: timestamp_bits=30 max_order=15 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
io scheduler noop registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
pwm-backlight backlight: Linked as a consumer to regulator.8
pwm-backlight backlight: FORCE BACKLIGHT ON: brightness=7 power=0 fb_blank=0 state=0x0
backlight backlight: UPDATE STATUS: brightness=7 power=0 fb_blank=0 state=0x0 enabled=0
pwm-backlight backlight: BL POWER ON: enter enabled=0 pwm=(ptrval) power_supply=(ptrval)
pwm-backlight backlight: BL POWER ON: enabling regulator
pwm-backlight backlight: BL POWER ON: regulator_enable() ret=0
pwm-backlight backlight: BL POWER ON: enable_gpio is NULL
pwm-backlight backlight: BL POWER ON: calling pwm_enable()
pwm-backlight backlight: BL POWER ON: pwm_enable() returned
pwm-backlight backlight: BL POWER ON: DONE enabled=1
mxsfb 80030000.lcdif: Linked as a consumer to regulator.6
Console: switching to colour frame buffer device 40x30
mxsfb 80030000.lcdif: initialized
loop: module loaded
libphy: Fixed MDIO Bus: probed
fec 800f0000.ethernet: Linked as a consumer to regulator.3
libphy: fec_enet_mii_bus: probed
fec 800f4000.ethernet: 800f4000.ethernet supply phy not found, using dummy regulator
fec 800f4000.ethernet: Linked as a consumer to regulator.0
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-mxc: Freescale On-Chip EHCI Host driver
usbcore: registered new interface driver usb-storage
imx_usb 80080000.usb: Linked as a consumer to regulator.4
imx_usb 80090000.usb: Linked as a consumer to regulator.5
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
stmp3xxx-rtc 80056000.rtc: rtc core: registered 80056000.rtc as rtc0
i2c /dev entries driver
Driver for 1-wire Dallas network protocol.
mxs-mmc 80010000.ssp: Linked as a consumer to regulator.2
mxs-mmc 80010000.ssp: Got WP GPIO
mxs-mmc 80010000.ssp: initialized
random: fast init done
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
hidraw: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
sgtl5000 0-000a: Linked as a consumer to regulator.1
mxs-sgtl5000 sound: ASoC: CODEC DAI sgtl5000 not registered
oprofile: no performance counters
oprofile: using timer interrupt.
NET: Registered protocol family 17
sgtl5000 0-000a: sgtl5000 revision 0x11
sgtl5000 0-000a: Using internal LDO instead of VDDD: check ER1 erratum
mmc0: new high speed SDHC card at address aaaa
mxs-sgtl5000 sound: sgtl5000 <-> 80042000.saif mapping ok
mmcblk0: mmc0:aaaa SU04G 3.69 GiB
mxs-sgtl5000 sound: sgtl5000 <-> 80046000.saif mapping ok
mmcblk0: p1 p2 p3
stmp3xxx-rtc 80056000.rtc: setting system clock to 2019-08-27 17:07:15 UTC (1566925635)
ALSA device list:
#0: mxs_sgtl5000
uart-pl011 80074000.serial: no DMA platform data
usb 1-1: new low-speed USB device number 2 using ci_hdrc
VFS: Mounted root (vfat filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 336K
This architecture does not have kernel memory protection.
Run /mininit as init process
input: Logitech USB Keyboard as /devices/soc0/80080000.ahb/80090000.usb/ci_hdrc.1/usb1/1-1/1-1:1.0/0003:0 46D:C31C.0001/input/input0
hid-generic 0003:046D:C31C.0001: input,hidraw0: USB HID v1.10 Keyboard [Logitech USB Keyboard] on usb-ci_ hdrc.1-1/input0
input: Logitech USB Keyboard Consumer Control as /devices/soc0/80080000.ahb/80090000.usb/ci_hdrc.1/usb1/1 -1/1-1:1.1/0003:046D:C31C.0002/input/input1
input: Logitech USB Keyboard System Control as /devices/soc0/80080000.ahb/80090000.usb/ci_hdrc.1/usb1/1-1 /1-1:1.1/0003:046D:C31C.0002/input/input2
hid-generic 0003:046D:C31C.0002: input,hiddev96,hidraw1: USB HID v1.10 Device [Logitech USB Keyboard] on usb-ci_hdrc.1-1/input1
Adding 262140k swap on /mnt/.swap.img. Priority:-2 extents:1 across:262140k SS
Starting logging: OK
read-only file system detected...done
Starting system message bus: random: dbus-uuidgen: uninitialized urandom read (12 bytes read)
random: dbus-uuidgen: uninitialized urandom read (8 bytes read)
random: dbus-daemon: uninitialized urandom read (12 bytes read)
done
Starting network: OK
Welcome to Miyoo
miyoo login: can-3v3: disabling
random: crng init done
random: 1 urandom warning(s) missed due to ratelimiting
Welcome to Miyoo
miyoo login:
离线