안녕하세요.
고도리입니다.
pollux보드의 MLC nand에 ubi/ubifs/ubiblk를 올려봤습니다.
커널 버전은 ubifs-v2.6.24 고요.
ubi는 mtd위에 올라가는 logical volume manager라고 보시면 되고요.
ubifs는 ubi위에 올라가는 새로운 filesystem입니다.
조만간 yaffs는 거의 없어질 듯 보여지고요.
2.6.27 커널서부터는 공식으로 들어간댑니다........ㅎㅎ
ubiblk는 ubi위에 올라가는 block device이고요.
vfat/ext3등을 direct로 nand위에 올릴 수 있습니다.
ㅎㅎ
일단 ubifs를 올린 로그를 올립니다. 아주 재밌고, 오묘합니다.
자료가 너무 없어서 엄청 고생했습니다.
특히 MLC nand에 올리는게 엄청나게 힘들더군요....ㅎㅎ
참, HW ECC를 썼습니다.
ubiblk에는 vfat을 올려봤는데, 훌륭합니다.......read속도는 훌륭합니다.
write는 MLC라...쩝...
===================================================
U-Boot 1.1.6 (Aug 8 2008 - 00:02:17)
U-Boot code: 83680000 -> 836AFF10 BSS: -> 836B52D4
RAM Configuration:
Bank #0: 80000000 2112 MB
manufacture ID = 191lx
device ID = 9051lx
flash_protect ON: from 0x00000000 to 0x0002FF0F
protect on 0
protect on 1
protect on 2
flash_protect ON: from 0x00030000 to 0x0003FFFF
protect on 3
Flash: 4 MB
NAND: maf:dev = ec:d3
1024 MiB
In: serial
Out: serial
Err: serial
found DM9000 ID:90000a46
DM9000 work in 16 bus width
fmd_Init: 1
fmd_Init: reset done
maf: 0xec
dev: 0xd3
NAND_PAGE_SIZE = 2048
NAND_BLOCK_CNT = 4096
NAND_PAGE_CNT = 128
NAND_BLOCK_SIZE = 262144
### main_loop entered: bootdelay=3
### main_loop: bootcmd="tftp 0x82000000 uImage; bootm 0x82000000"
Hit any key to stop autoboot: 0
DM9000 work in 16 bus width
8:0:3e:26:a:5b:TFTP from server 192.168.0.250; our IP address is 192.168.0.101
Filename 'uImage'.
Load address: 0x82000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
####
done
Bytes transferred = 3679080 (382368 hex)
## Booting image at 82000000 ...
Image Name: Linux-2.6.24-g4448eca6-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3679016 Bytes = 3.5 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
OK
No initrd
## Transferring control to Linux (at address 80008000) ...
Starting kernel ...
Linux version 2.6.24-g4448eca6-dirty (root@pollux) (gcc version 4.0.2) #34 Wed Aug 13 10:53:46 KST 2008
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: AESOP_POLLUX
Memory policy: ECC disabled, Data cache writeback
clkmodereg = 0x05010480
pollux_cmr.cpu0_div = 0
pollux_cmr.cpu0_src_pll= 0
pollux_cmr.cpu0_AHB_div= 2
pollux_cmr.bclk_div = 0
pollux_cmr.bclk_src_pll= 1
pollux_cmr.pll_pdown1 = 0
pll 0 = 533250000
pll 1 = 147000000
ARM926 fclk = 533250000 Hz
ARM926 AHB clock = 177750000 Hz
BCLK = 147000000 Hz
PCLK = 73500000 Hz
DRAM CLK = 73500000 Hz
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 13970
Kernel command line: mem=55M ip=192.168.0.101:192.168.0.250:192.168.0.1:255.255.255.0:godori:eth0:off console=ttySAC0,115200n81
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 55MB = 55MB total
Memory: 51968KB available (3320K code, 314K data, 112K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 64 bytes
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
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
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) 짤 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
pollux-uart.0: pollux_serial0 at MMIO 0xf0016000 (irq = 44) is a POLLUX
pollux-uart.1: pollux_serial1 at MMIO 0xf0016080 (irq = 48) is a POLLUX
pollux-uart.2: pollux_serial2 at MMIO 0xf0016800 (irq = 52) is a POLLUX
pollux-uart.3: pollux_serial3 at MMIO 0xf0016880 (irq = 56) is a POLLUX
RAMDISK driver initialized: 1 RAM disks of 8192K size 1024 blocksize
loop: module loaded
nbd: registered device at major 43
<DM9KS> I/O: f3000000, VID: 90000a46
Linux video capture interface: v2.00
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
Driver 'sd' needs updating - please use bus_type methods
NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
Searching for NAND flash...
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
Scanning device for bad blocks
Pollux Nand: Using static partition definition
Creating 3 MTD partitions on "pollux-nand":
0x00000000-0x08000000 : "d0"
0x08000000-0x18000000 : "d1"
0x18000000-0x40000000 : "d2"
UBI: attaching mtd0 to ubi0
UBI: physical eraseblock size: 262144 bytes (256 KiB)
UBI: logical eraseblock size: 258048 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: attached mtd0 to ubi0
UBI: MTD device name: "d0"
UBI: MTD device size: 128 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: 1
UBI: available PEBs: 242
UBI: total number of reserved PEBs: 270
UBI: number of PEBs reserved for bad PEB handling: 5
UBI: max/mean erase counter: 2/1
UBI: attaching mtd1 to ubi1
UBI: physical eraseblock size: 262144 bytes (256 KiB)
UBI: logical eraseblock size: 258048 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: background thread "ubi_bgt0d" started, PID 241
UBI: attached mtd1 to ubi1
UBI: MTD device name: "d1"
UBI: MTD device size: 256 MiB
UBI: number of good PEBs: 1024
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: 1010
UBI: total number of reserved PEBs: 14
UBI: number of PEBs reserved for bad PEB handling: 10
UBI: max/mean erase counter: 1/1
UBI: attaching mtd2 to ubi2
UBI: physical eraseblock size: 262144 bytes (256 KiB)
UBI: logical eraseblock size: 258048 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: background thread "ubi_bgt1d" started, PID 243
UBI: attached mtd2 to ubi2
UBI: MTD device name: "d2"
UBI: MTD device size: 640 MiB
UBI: number of good PEBs: 2560
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: 2531
UBI: total number of reserved PEBs: 29
UBI: number of PEBs reserved for bad PEB handling: 25
UBI: max/mean erase counter: 1/1
UBI: background thread "ubi_bgt2d" started, PID 245
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
usbcore: registered new interface driver usbhid
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
TCP cubic registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
IP-Config: Complete:
device=eth0, addr=192.168.0.101, mask=255.255.255.0, gw=192.168.0.1,
host=godori, domain=, nis-domain=(none),
bootserver=192.168.0.250, rootserver=192.168.0.250, rootpath=
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size: 65028096 bytes (63504 KiB, 62 MiB, 252 LEBs)
UBIFS: journal size: 3354624 bytes (3276 KiB, 3 MiB, 13 LEBs)
UBIFS: default compressor: no compression
UBIFS: media format 4, latest format 4
VFS: Mounted root (ubifs filesystem).
Freeing init memory: 112K
UBIFS: background thread "ubifs_bgt0_0" started, PID 256
INIT: version 2.84 booting
rc.udev start
Initializing udev dynamic device directory.
Starting udevd: /sbin/udevd --daemon
mount: Mounting /dev/root on / failed: No such file or directory
INIT: Entering runlevel: 3
AESOP Linux
/) /)
(='.'=) <- godori
login[631]: root login on `tts/0'
root@godori:~# ls -al
drwxr-xr-x 3 root root 304 Aug 13 2008 .
drwxr-xr-x 16 root root 1056 Jan 1 00:05 ..
drwxr-xr-x 2 root root 568 Aug 11 2007 .mplayer
-rwxr-xr-x 1 root root 110 Aug 13 2008 .profile
root@godori:~# mount
ubi0:rootfs on / type ubifs (rw)
/dev/root on / type ext2 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
none on /dev/pts type devpts (gid=5,mode=620)