?? readme
字號:
Uncompressing Linux...done. Now booting the kernel ...*** "clock"-----------This an experimental command to set the SA1100 core clock and DRAMtimings. We've used it to test clock scaling. This command writes theexact values supplied on the command line to the PPCR, MDCNFG, MDCAS0,MDCAS1, and MDCAS2 registers, but it doesn't check the validity of thevalues. Example (that will crash your system for sure): blob> clock 0x11111111 0x22222222 0x33333333 0x44444444 0x55555555WARNING: This command is DANGEROUS and HIGHLY EXPERIMENTAL. Don't useit unless you have a VERY thorough understanding on the inner workingsof the SA1100 CPU! It works for us, YMMV. If it breaks your CPU, don'tsay that we didn't warn you!*** "download"--------------Download a uuencoded blob, kernel, or ramdisk to RAM. This commandneeds an extra parameter: "blob", "kernel", or "ramdisk". Blob willrespond with: blob> download kernel Switching to 115200 baud You have 60 seconds to switch your terminal emulator to the same speed and start downloading. After that blob will switch back to 9600 baud.Switch your terminal emulator to the indicated speed and startdownloading the kernel or ramdisk. With minicom, you can use the ASCIIdownload method, or use another shell to download the file: uuencode zImage zImage > /dev/ttyS1Of course, use the correct serial port. If the download is successful,blob will respond with: (Please switch your terminal emulator back to 9600 baud) Received 65536 (0x00010000) bytes.If an error occurs during downloading, blob will respond with: (Please switch your terminal emulator back to 9600 baud) *** Uudecode receive failedA failed download session can have several reasons: the file is toobig, the download speed too high (see the "speed" command), or theuuencoded file to be downloaded is corrupt. Correct the error andretry.A downloaded kernel or ramdisk can be written to flash with the"flash" command, or it can directly be used to boot with the "boot"command.*** "flash"-----------Write blob, kernel, or ramdisk from RAM to flash memory. This commandneeds an extra parameter: "blob", "kernel" or "ramdisk". Blob willrespond with: blob> flash kernel Saving kernel to flash ..... .... doneThis won't work on all architectures, check the RELEASE-NOTES.*** "reblob"------------Restart blob from RAM. This is mainly useful if you are working onblob itself because it allows you to download blob and immediatelystart it without having to burn it to flash first.*** "reboot"------------This command simply reboots the system.*** "reload"------------Reload blob, kernel, or ramdisk from flash memory to RAM. This commandneeds an extra parameter: "blob", "kernel", or "ramdisk". Blob willrespond with: blob> reload kernel Loading kernel from flash ....... doneThe "reload command" will overwrite a just downloaded a kernel or ramdisk.*** "reset"-----------Reset the terminal. This command will write the VT100 reset sequence(Esc-c) to the terminal. Useful if you forgot to switch your terminalemulator back to 9600 baud after downloading a kernel or ramdisk.*** "speed"-----------Set the download speed. This command needs a download speed value asan extra parameter. Valid values are: 1200, 9600, 19200, 38400, 57600,and 115200. Blob will respond with: blob> speed 19200 Download speed set to 19200 baud*** "status"------------Show the current status. Blob will respond with: blob> status Bootloader : blob Version : 2.0.3 Running from : internal flash Blocksize : 0x00800000 Download speed: 115200 baud Blob : from flash Kernel : downloaded, 424333 bytes Ramdisk : from flashDepending on what commands you used before, these values may or maynot be different.* Porting blob==============Porting blob to a new SA11x0 platform is quite easy and consist offour steps:1. Define the features of the architecture2. Write some architecture specific code3. Test the new architecture4. Submit the patchThe next couple of paragraphs describe the process of porting blob tothe "foobar" platform.** Define the architecture in configure.in------------------------------------------First you need two know a couple of things: the name of the board,what kind of CPU the board uses (SA1100 or SA1110), what kind of RAMit uses (EDODRAM or SDRAM), and which serial port will be the console(port 1 or 3). Let's assume the foobar platform has an SA1100 CPU,uses EDODRAM, and serial port 1 as console. The correct lines forconfigure.in will be: foobar) AC_MSG_RESULT(foobar) AC_DEFINE(FOOBAR) AC_DEFINE(USE_SA1100) AC_DEFINE(USE_EDODRAM) AC_DEFINE(USE_SERIAL1) ;;Put this just after the CreditLART definition.** Define the architecture in acconfig.h----------------------------------------Because configure.in was instructed to define FOOBAR for the foobarplatform, we have to define the symbol in acconfig.h as well. Add thefollowing two lines to acconfig.h, just after the CLART define: /* Define for foobar boards */ #undef FOOBAR** Update the build system--------------------------Run the following commands to update the configure script,include/config.h.in, and the Makefile.in files: tools/rebuild-gcc tools/rebuild-gcc(yes, twice)** Configure blob-----------------Configure blob for the new foobar architecture: setenv CC arm-linux-gcc ./configure --with-linux-prefix=/path/to/armlinux/source \ --with-board=foobar --enable-maintainer-mode \ --enable-blob-debug arm-unknown-linux-gnuWe're using maintainer-mode and debug information to help theport. See the section about "Configuring and compiling the package"for general information.** Select correct clock speed-----------------------------Open src/start.S in an editor, and add a line to select the correctclock speed (just before the SHANNON definition): #if defined FOOBAR cpuspeed: .long 0x09 /* 190 MHz */** Edit memory settings-----------------------Edit src/memsetup.c and add the correct memory setting for the foobararchitecture. Add these (example) settings right before the PLEBdefinitions: #if defined FOOBAR mdcas0: .long 0x1c71c01f mdcas1: .long 0xff1c71c7 mdcas2: .long 0xffffffff mdcnfg: .long 0x0334b21f #endifNote that the SA1110 memory settings are not as modular as the SA1100settings, so you'll have to use your imagination over there to getproper memory settings.Right now, the basic blob functionality is ported to your board andyou should be able to compile blob by running "make".** Edit LED defines-------------------If your board has a LED on a GPIO pin, edit include/led.h in an editorto switch it on early in the boot stage. Let's assume the foobar boardhas the LED on GPIO pin 1, so add the following lines just before thePLEB definition: #elif defined FOOBAR # define LED_GPIO 0x00000002 /* GPIO 1 */** Compile blob---------------Now compile blob by running: makeIf everything went right, you have a new blob binary in src/blob.** Test blob------------You are now ready to flash blob to your board and test it. Ifsomething goes wrong in the early boot process, blob will flash theLED (that's why you should always have a LED on your board), or notwork at all. As soon as you get character on the serial port the mostdifficult part is done and you should be ready to port arm-linux toyour board.** Submit the patch-------------------First run "make distclean" in your blob tree so you'll get a cleansource tree. Now rename your current tree and untar the original blobsource (assuming that you're hacking on blob-2.0.3): cd .. mv blob-2.0.3 blob-2.0.3-foobar gzip -dc blob-2.0.3.tar.gz | tar xvf -Diff the two trees and create a patch file: diff -urN blob-2.0.3 blob-2.0.3-foobar > foobar.diffNow send the patch to me (erikm@users.sourceforge.net) and be sure toCC a couple of other blob developers (for the current list of blobdevelopers, seehttps://sourceforge.net/project/memberlist.php?group_id=30155 ). Thebest way to send the patch is to attach it as plain text to yourmessage because in that way email clients have less chance to corruptthe patch.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -