[ TOP | Recently ]

2011-01-21 NetBSD/netwalker #4

というわけで @h_kenken 氏から指摘があって実はシリアルの結線が間違っていたことがわかり、

そしてboot時に ^C を押すとあっさり RedBoot に落ちれました。あぁ…

++Initializing SPI-NOR flash...
JEDEC ID: 0xbf:0x25:0x41
SPI NOR: block_size=0x10000, blocks=0x20, start=0x00000000, end=0x00200000
... Read from 0x1fef0000-0x1ff00000 at 0x00080000: .
... Read from 0x1fee3000-0x1fee4000 at 0x0008f000: .
PMIC ID: 0x000045d0 [Rev: 2.0a]
[Warning] FEC not connect right PHY: ID=ffffffff
No network interfaces found

Reset reason: Power-on reset
fis/fconfig from SPI-NOR
Boot switch: INTERNAL

RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version FSL 200929 - built 21:29:52, Sep  9 2009

Platform: MX51 SHARP PC-Z1 [1.000] (Freescale i.MX51 based) PASS 2.0 [x32 DDR]
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited

RAM: 0x00000000-0x1ff00000, [0x000a7bc8-0x1fee1000] available
FLASH: 0x00000000 - 0x200000, 32 blocks of 0x00010000 bytes each.
== Executing boot first script abort ==
== Executing boot script in 0.000 seconds - enter ^C to abort
RedBoot> ^C
RedBoot> ^C
RedBoot> ^C
RedBoot> ^C
RedBoot> help
Setup/Display clock
   clock [<core clock in MHz> :<DDR clock in MHz>] 

   [clock]         -> Show various clocks
   [clock 665]     -> Core=665  
   [clock 800:133]  -> Core=800  DDR=133 
   [clock :166]   -> Core=no change  DDR=166 

console ON/OFF
   console <ON/OFF>
EXT2 debug mode
   dbg_e2fs <mode>
EXT2 sector read
   dbg_e2fs_read sector
SDRAM calib
L2 cache
   L2 [ON | OFF]
AD input
   adin <channel> {-l low-limit} {-u up-limit}
Manage aliases kept in FLASH memory
   alias name [value]
Set/Query the system console baud rate
   baudrate [-b <rate>]
Manage machine caches
   cache [ON | OFF]
Display/switch console channel
   channel [-1|<channel number>]
Compute a 32bit checksum [POSIX algorithm] for a range of memory
   cksum -b <location> -l <length>
Display disks/partitions.
Display (hex dump) a range of memory
   dump -b <location> [-l <length>] [-s] [-1|-2|-4]
Execute an image - with MMU off
   exec [-w timeout] [-b <load addr> [-l <length>]]
        [-r <ramdisk addr> [-s <ramdisk length>]]
        [-c "kernel command line"] [-t <target> ] [<entry_point>]
Manage FLASH images
   fis {cmds}
Manage configuration kept in FLASH memory
   fconfig [-i] [-l] [-n] [-f] [-d] | [-d] nickname [value]
blow some fuses
   fuse_blow <bank> <row> <value>
read some fuses
   fuse_read <bank> <row>
Execute code at a location
   go [-w <timeout>] [-c] [-n] [entry]
Help about help?
   help [<topic>]
Display command history
Set/change IP addresses
   ip_address [-b] [-l <local_ip_address>[/<mask_len>]] [-h <server_address>]
Load a file
   load [-r] [-v] [-z to swap endianness on 16 bit] [-d] [-h <host>] [-p <TCP port>][-m <varies>] [-c <channel_number>] 
        [-b <base_address>] <file_name>
Compare two blocks of memory
   mcmp -s <location> -d <location> -l <length> [-1|-2|-4] {-f}
Copy memory from one address to another
   mcopy -s <location> -d <location> -l <length> [-1|-2|-4]
Fill a block of memory with a pattern
   mfill -b <location> -l <length> -p <pattern> [-1|-2|-4]
Read/Write MMC/SD card
   sdhc <ram-addr> <flash-addr> <len-bytes> <r/w>
Utility function to NAND flash using raw address
   nand {cmds}
Network connectivity test
   ping [-v] [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>]
        [-i <IP_addr>] -h <IP_addr>
Read/Write internal PMIC register
   pmic <reg num> [value to be written]
Power OFF
Reset the system
start from SD
   sdstart <-c "kernel command line"> <-f conf> <-s slot1/2>
Read/Write/Erase SPI NOR flash
   spiflash <ram-addr> <flash-addr> <len-bytes> <r/w/e>
Display RedBoot version information
Display (hex dump) a range of memory
   x -b <location> [-l <length>] [-s] [-1|-2|-4]
Enable one flash media for Redboot
   factive [MMC|SPI]
GPIO read
   gpio <group>
GPIO write
   gpiow <group> <offset> <data>
read info from Serial-Flash
   inforead -o <offset> {-l <length> [-1|-2|-3|-4]} {-b <ram-address>}
wtite info to Serial-Flash
   infowrite -o <offset> <value> {-l <length> [-1|-2|-3|-4]} {-b <ram-address>}
IOMUX read
   iomux <offset> [<length>]
IOMUX write
   iomuxw <offset> <data>
Update Redboot with currently running image
Run an image at a location with MMU off
   run [<virtual addr>]
SDRAM test
   sdramtest <start-address> <length>
SD/MMC read image from specify address
   sdread -f <sd address>/-o <sd sector> -b <ram address> -l <length> [-s <slot 1/2>]
SD/MMC register DISK
   sdregister <slot 1/2>
SD/MMC update Redboot by specify address
   sdupdate <address> [-p <forcepart>] [-c <slot 1/2>]
SD/MMC write image by specify address
   sdwrite -f <sd address>/-o <sd sector> -b <ram address> -l <length> [-s <slot 1/2>]
Set FEC MAC address in Fuse registers
   set_fecmac [0x##:0x##:0x##:0x##:0x##:0x##]
Serial-Flash update Redboot by specify address
   sromupdate <address>
RedBoot> clock

PLL1          PLL2              PLL3
800000000       665000000       216000000

CPU           AHB               IPG             EMI_CLK
800000000       133000000       66500000        200000000

NFC           USB               IPG_PER_CLK
26600000        54000000        24000000

UART1-3       SSI1              SSI2            SPI
66500000        54000000        54000000        54000000

以下、デフォルト状態のboot script

Boot first script:
.. adin 5 -l 6800

Boot script:
.. nand init
.. nand read -f 0x00000000 -b 0x00800000 -l 0x00500000
.. exec -b 0x00800000 -l 0x00500000 -c "noinitrd console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs rw rootfstype=ubifs"

というわけで、fcofnig で Boot script を false にしたり、中身を sdstart にしたりすると、
デフォで RedBoot が上がってきたりSDカードからBootしたりできます。これでちょっとは楽になる?