Eu tenho um leanXcam ( Wikipedia , [scs.ch], ( link ), github.com ) com um Blackfin 537 da Analog Devices, rodando no uClinux. Eu tive alguns leanXcams feitos e atualmente estou no processo de tentar carregar o bootloader e o uClinux em flash.
Eu não sou especialista e quase não tenho experiência em fazer esse tipo de coisa, então fique à vontade comigo.
Consegui carregar com êxito o gerenciador de inicialização para a RAM e, em seguida, para o flash, conforme github e blackfin
Eu então procuro carregar e inicializar o uClinux, e é aí que eu me deparo com alguns problemas.
Aqui está o que eu vejo quando inicializo o uClinux, uma vez que eu escrevi para flash, eu espero que você possa me apontar na direção certa com base nisso, se não, deixe-me saber o que mais posso incluir para lhe dar uma melhor ideia do que está acontecendo:
## Booting image at 10028000 ...
Image Name: Linux Kernel and ext2
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 2915027 Bytes = 2.8 MB
Load Address: 00001000
Entry Point: 001ef28c
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 1ef28c
Linux version 2.6.28.10-ADI-2009R1.1-Git_v2.1 (oscar@oscar) (gcc version 4.1.2 (ADI svn)) #2 PREEMPT Wed Sep 29 08:51:22 CEST 2010
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x00159930
rodata = 0x00159930-0x001bf5b0
bss = 0x001c0000-0x001d36e0
data = 0x001d36e0-0x001e8000
stack = 0x001e6000-0x001e8000
init = 0x001e8000-0x00201000
available = 0x00201000-0x03600000
rootfs = 0x03600000-0x03e00000
DMA Zone = 0x03e00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 7
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF537 Rev 0.3
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 500 MHz core clock and 125 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0 (write-back)
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 13716
Kernel command line: root=/dev/mtdblock0 rw console=ttyBF0,115200
Preemptible RCU implementation.
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console [ttyBF0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 52676k/65536k RAM, (100k init code, 1378k kernel code, 570k data, 2048k dma, 572k reserved)
Calibrating delay loop... 997.37 BogoMIPS (lpj=1994752)
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (36 KB free)
net_namespace: 288 bytes
NET: Registered protocol family 16
Blackfin DMA Controller
stamp_init(): registering device resources
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-dma: initialized
timer_latency module loaded
simple-gpio: now handling 48 GPIOs: 0 - 47
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART
brd: module loaded
bfin_mii_bus: probed
bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=24)@sclk=125MHz)
bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1
Linux video capture interface: v2.00
mt9v032_oscar_init: MT9V032 CMOS-Sensor: Micron I2C driver ready
uclinux[mtd]: RAM probe address=0x3600000 size=0x800000
Creating 1 MTD partitions on "RAM":
0x00000000-0x00800000 : "ROMfs"
Generic platform RAM MTD, (c) 2004 Simtec Electronics
mtd_dataflash spi0.1: AT45DB321x (4224 KBytes) pagesize 528 bytes (OTP)
Creating 4 MTD partitions on "Boot Flash":
0x00000000-0x00020000 : "bootloader, 128k"
mtd: partition "bootloader, 128k" doesn't end on an erase block -- force read-only
0x00020000-0x00024000 : "bootloader environment, 16k"
mtd: partition "bootloader environment, 16k" doesn't start on an erase block boundary -- force read-only
0x00024000-0x00028000 : "bootloader environment redundant, 16k"
mtd: partition "bootloader environment redundant, 16k" doesn't start on an erase block boundary -- force read-only
0x00028000-0x00400000 : "linux, 4M"
mtd: partition "linux, 4M" doesn't start on an erase block boundary -- force read-only
mtd_dataflash spi0.5: AT45DB321x (4224 KBytes) pagesize 528 bytes (OTP)
Creating 1 MTD partitions on "Application Flash":
0x00000000-0x00400000 : "JFFS2 Application Partition"
mtd: partition "JFFS2 Application Partition" doesn't end on an erase block -- force read-only
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7
i2c /dev entries driver
mt9v032_oscar_detect_client: MT9V032 CMOS-Sensor: detecting client on address 0xb8
mt9v032_oscar_init_v4l: MT9V032 CMOS-Sensor: V4L driver Micron CMOS Camera: MT9V032 now ready
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc01400
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
mmc_spi spi0.2: ASSUMING 3.2-3.4 V slot power
mmc_spi spi0.2: SD/MMC host mmc0, no DMA, no WP, no poweroff
mmc_spi spi0.2: requested mode not fully supported
mmc_spi spi0.2: can't change chip-select polarity
TCP cubic registered
NET: Registered protocol family 17
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 100k freed
dma_alloc_init: dma_page @ 0x001fd000 - 512 pages at 0x03e00000
Mounting Application Flash...
jffs2: Flash size not aligned to erasesize, reducing to 4095KiB
JFFS2 flash size adjusted to 4190208KiB
JFFS2 write-buffering enabled buffer (528) erasesize (8448)
Loading Memory DMA kernel module...
bfmdma driver module set up OK
bfin_request_exception (13, ex_dmach1) = 0
bfmdma module init ex_dmach1: 035804c8
Replacing /root with a symlink pointing to /mnt/app.
Waiting for carrier on eth0: 15 s
PHY: 0:01 - Link is Up - 100/Full
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Welcome to: __ __
_ \ \ / /
| | \ \ / /
| | ___ ___ _ __\ \ / /____ ___ _ __ __
| |/ _ \ /_ | / \ \/ // __ \ /_ | / \/ \
| | |_| |__| | /| |\ /| / \/ __| | /| /| |
| | ___// _ | | | |/ \| | / _ | | | | | |
| | \_/| |_| | | | / /\ \ \__/| |_| | | | | | |
|_|\___/\____|_| |/ / \ \____/\____|_| |_| |_|
/ / \ \
/_/ \_\
running on uClinux.
For further information see:
http://www.leanxcam.org/
http://blackfin.uclinux.org/
No or faulty 'syslog_file', using /var/log/log to log
BusyBox v1.13.4 (2010-09-29 08:56:05 CEST) built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> Erase at 0x003f8d00 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003fae00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003f4b00 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003f6c00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003f0900 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003f2a00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003ec700 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003ee800 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003e8500 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003ea600 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003e4300 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003e6400 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003e0100 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003e2200 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003dbf00 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003de000 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003d7d00 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003d9e00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003d3b00 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003d5c00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003cf900 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003d1a00 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003cb700 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003cd800 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003c7500 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003c9600 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003c3300 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003c5400 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
Erase at 0x003bf100 failed immediately: -EROFS. Is the sector locked?
Erase at 0x003c1200 failed immediately: -EROFS. Is the sector locked?
jffs2_flush_wbuf(): Write failed with -30
jffs2_flush_wbuf(): Write failed with -30
E assim esta mensagem de erro continua sendo impressa no console até que ocorra um pânico no kernel.
O que exatamente está causando isso e o que eu poderia fazer para corrigi-lo?