LogicLoader readme.txt ------------------------------------------------------------------------------- LOGIC Version: 2.4.0p1 Hardware: IMX31-10 Date: 12/08/2008 ------------------------------------------------------------------------------- ---------------------------- Table of Contents ---------------------------- 1. Installation Instructions 2. What's New 3. History 4. Known Issues 5. File Naming Conventions 6. File Format Descriptions 7. MD5SUMS ---------------------------- ------------------------------------------------------------------------------- 1. Installation Instructions ---------------------------- LogicLoader (LoLo) release files are named using the following format: part-number_description.file-format See below for a detailed explanation of Logic's file naming conventions and format descriptions. --) For files destined for flash: ----------------------------- Using Tera Term as your emulator, follow the steps outlined below to update LoLo to the latest version on your kit. --) For .upd files: --------------- 1) Type 'update' at the losh> prompt. 2) File | Send File 3) Make sure the binary box is checked, then select the .upd file you want to use to update LoLo. 4) Wait until you see the 'update done' message. 5) Reset your kit, LoLo has now been updated. --) For .elf files: --------------- 1) Type 'load elf' at the losh> prompt. 2) File | Send File 3) Make sure the binary box is checked, then select the .elf file you want to use to update LoLo to the latest LoLo version. 4) Wait until the 'ignoring rest of file...done' message is displayed. 5) Type 'burn', press 'y', and when prompted type 'confirm'. 6) Reset your kit, LoLo has now been updated to the latest version. --) For files destined for internal SRAM: ------------------------------------- These files are meant to be used with a JTAG emulator in a debugging environment that can load .elf files. Connect your JTAG emulator to the target, then download and run the file to initialize DRAM. --) For files destined for DRAM: ---------------------------- These files are meant to be used once you have initialized DRAM. You can download them through your debugging environment and run them to obtain a losh> prompt. From the losh> prompt you can 'update' your flash with a version of LogicLoader that is 2.0.5 or greater. ----------------------------------------------------------------------------- 2. What's New ------------- Since 2.4.0 --) Updated DDRAM timings for Micron DDR silicon revision. These new timings are compatible with the older Micron DDR silicon revision. Since 2.3.5 --) supports partitions on block devices --) SD/MMC driver --) FATFS write support (FAT16 only) --) new 'mount' scheme (old mount syntax is still supported) --) 'erase' syntax has been changed (old syntax is still supported) --) 'dd' command (raw-copy blocks) --) 'cpu-freq' command to change the core frequency and voltage --) fixed bug [#2870] imx31 - load is not overwritten by config CREATE --) fixed bug [#3548] imx31 - fixed screen tearing --) fixed bug [#3114] imx31 - no overdriving if possible ----------------------------------------------------------------------------- 3. History ---------- Changes since 2.3.5 --) There is a new block device interface for: NAND - /dev/nand0 ATA - /dev/ata0 NOR - /dev/flash0 - it now has equal sized blocks, it looks like a symmetrical device even if it is assymetrical (see note about YAFFS in the "File system" section below). --) Partition table location: ATA - table is in the first sector NAND - table is in the last sector of the 0th block NOR - table is in the last 512-byte-area of the 7th block The partition table location in a 512-byte-area starts from the 446th byte and is 64 bytes long. --) Partition driver for block devices: - There are four partitions for each block device, the related inodes are created at init(), but they will only be initalized from partition table information after an open() on the inode (e.g., /dev/ata0a). - If the partition table on the device is empty, create a partition before trying to access it, otherwise the open() will fail. - Partition table can only be written to disk with a 'part-write' command. - New commands: part-add: Adds a partition to the device, but only in the inode's in-memory partition table. usage: part-add part-rem: Deletes a partition from the inodes's in-memory partition table. usage: part-rem part-write: Writes the inode's in-memory partition table to the disk. usage: part-write --) File system: - 'mount' usage has changed and works as follows: mount [args] The can be fatfs, yaffs, emu (see "Emulation layer" section below). The [args] can be -rw, -ro, the default is read-only. - For example, to mount fatfs use: mount fatfs /dev/ata0a /cf [-rw] Since backwards compatibility has been preserved: mount fatfs /cf will still work and perform the same as the first 'mount' example. - Mounting fatfs without the [-rw] option will only allow the user to read from the file system. If read/write is necessary, the [-rw] argument must be used in the command. - The 'add-yaffs' command has been replaced, but it is still available in LoLo 2.4.x for backward compatibility. NOTE! One incompatibility is that even assymetrical NOR devices are handled as symmetrical since the 'small' blocks take up exactly one 'big' block. Therefore, block addressing can be used for NOR flash devices too. The 'add-yaffs' command uses byte addresses for creating a partition on a NOR device, for example: add-yaffs yaffs1 nor 0xC0000 0x90000 If this byte address is not block aligned (big block), then it will fail. - Changed bad block marking mechanism. The manufacturer bad block information is kept. The YAFFS bad blocks are marked with non FF status byte in the 3rd and 4th spare of each block; the manufacturer marking is similar except they are marked in the 1st and 2nd spare of each manufacturer bad block. --) Emulation layer on NOR flash devices: To mount YAFFS on NOR flash, an emulation layer is required since it does not have spare. This layer can be created using the 'mount' command with 'emu' as . For example: part-add /dev/flash0 a 9 8 #creates a partition from #block 9 to block 16 mount emu /dev/flash0a /block_emu1 #creates an emulation layer #on top of flash0a mount yaffs /block_emu1 /yaffs1 #mounts a file system on the #emulation layer ls /yaffs1 --) New command 'reset' soft resets the SOM (where supported). --) New command 'dd' can copy blocks from one device to another. For example: dd if:/dev/flash0 of:/cf/fb.cpy count:10 obs:512 ibs:512 copies ten, 512-byte big blocks from flash0 to the CompactFlash card. And: dd if:/dev/nand0 of:/cf/fb.cpy count:10 obs:512 ibs:512 is:16 copies ten, 512-byte big blocks from nand0 to the CompactFlash card, but the spare is not copied since is=16, which will skip 16 bytes after every 512 bytes. The 'dd' command can be used to copy file system images from one SOM to another. For example: SOM1: part-add /dev/nand0 a 1 1024 #creates a partion of 1024 blocks mount yaffs /dev/nand0a /yaffs1 cp ... #copy files onto it dd if:/dev/nand0a of:/tftp/192.168.130.60:yaffs.dat count:32768 obs:528 ibs:528 is:0 os:0 #(to be typed all on one line) #creates a file system image, #i.e., a raw copy of the #partition to the tftp server SOM2: part-add /dev/nand0 b 2049 1024 #creates a partion of 1024 blocks dd if:/tftp/192.168.130.60:yaffs.dat of:/dev/nand0b count:32768 obs:528 ibs:528 is:0 os:0 #(to be typed all on one line) #copies the file system image #from the tftp server mount yaffs /dev/nand0b /yaffs1 NOTE: The partition should be empty before doing this; one block is 32*528 byte long in the example above. --) 'burn' command has changed: - If burning an .elf file and the load address in the .elf header points to a valid memory area, then the image will be burned at that location. For example: load elf ... burn - If burning a .raw file, then the target device has to be specified, including the offset (in blocks) inside this device. For example: load raw 0x82000000 292000 ... burn /dev/flash0 0 Note 1: burn /dev/flash0 without an offset is not supported; this is an incompatibility. Note 2: For a NAND device, the image has to be the multiple of a chunk, since only chunk-sized blocks can be written with the dev_nand interface. --) 'erase' command has changed. The new syntax is: erase The old syntax is supported in LoLo 2.4.x for backward compatibility. --) 'info' command changes: - 'info yaffs' requires the YAFFS device name, for example: mount yaffs /dev/nand0a /yaffs1 info yaffs /yaffs1 If there is no mounted YAFFS file system, then the command does not print out anything - 'infor part' requires a device name and displays the in-memory partition table of this device. For example: info part /dev/nand0 - 'info cpu' prints the identical memory section and pages in one entry. - 'info bad ' displays if the block is bad or not. --) 'bootme' is working with several cards booting at the same time. --) Fixed video commands. --) Fixed video screen tearing. --) 'remap' command has been removed. ----------------------------------------------------------------------------- 4. Known Issues --------------- --) Thread cleanup is deferred. This can cause threads run via '&' to eventually consume all space in the thread table. --) If you use a new YAFFS partition in Windows CE or Linux, then you *have* to use the latest version of LoLo. Older versions of LoLo may mistakenly declare new YAFFS files, directories, or links as trash, which will result in the loss of data. --) Too much data in YAFFS partitions exhausts heap memory. --) Too many files/directories on ComapctFlash card can exhaust heap memory. ----------------------------------------------------------------------------- 5. File Naming Conventions -------------------------- --) part-number_SRAM_boot.*: These files are destined for internal SRAM. They are used with a JTAG emulator to restore LogicLoader to your module. They are loaded into internal SRAM and are run to initialize DRAM. --) part-number_RAM_lolo.*: These files are destined for DRAM. They are used with a JTAG emulator to restore LogicLoader to the SOM. They are loaded into DRAM after it has been initialized with a part-number_SRAM_boot.* file. Once run, they produce a losh> prompt, from which you can restore LogicLoader to flash on the SOM. --) part-number_FLASH_lolo.*: These files are destined for flash. They are used to update the SOM to the latest version of LogicLoader from the losh> prompt. ----------------------------------------------------------------------------- 6. File Formats Descriptions ---------------------------- --) *.elf files: These are used by the LoLo 'load elf' command. Use these files if the SOM already has a working version of LoLo running on it. --) *.upd files: These are used by the LoLo 'update' command. Use these files if the SOM already has a working version of LoLo running on it. --) *.raw files: These are stripped, binary versions of the software that may be used by some programmers. LogicLoader can load files of this type. ----------------------------------------------------------------------------- 7. MD5SUMS ---------- 587e554928e25b9ce173d1e391d12c83 *1012194_Flash_lolo.elf 248ce88e5f3e783e61aa9b5a1fae0471 *1012194_Flash_lolo.raw 97f7cf60997d6cf20a5c46706c7c0e53 *1012194_Flash_lolo.upd 2c5df466691cd76793fbab788a79938f *1012194_RAM_lolo.elf 2c615e21ed70ca857bdf88de4be1ba53 *1012194_SRAM_boot.elf ----------------------------------------------------------------------------- (c)2008 Logic Product Development Company www.logicpd.com