[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to write a bootsektor on a CF-Card if I have only a i386 and amd64?



Am 2008-03-08 08:02:57, schrieb Bill Gatliff:
> The concept of a "boot sector" is x86 bios-think.  Forget about it 
> entirely now that you're programming in the Real World.  :)

:-)

> If your bootloader can read a VFAT-formatted CF card (apparently it 

And this is what I do not understand, since I have gotten some 100 Bytes
of bootcode which I have put into the ROM of the LH7 and then it has
found the kernel and loaded the BSD...

But this does not work with Linux which mean, I have to write my own
"Bootcode" <grmpf>...

> can), then build up a Linux kernel zImage file, put it on the card. 
> Then load that file into RAM somewhere, and jump to the address of the 
> first byte (make sure it's word-aligned!).

I am reading the ARM922T, ARM9 and ARM11 specs to find out, how ARM is
loading it and HOW to code the "bootloader".  I have read something
about RedBoot but do not know HOW to use it (even with the sourcecode
downloaded from RedHat)

> You have to set r0, r1 and r2 to some values that are described in a 
> bootloaders-related document on the arm.linux.org.uk website.  Once 
> you've got that, and you jump to the zImage file, the kernel starts running.

<argh>I was search this afternon for it but have not found it.<grmpf>

Note:  I have already found out, that there is a serial interface on
       the LH7 which can be used to load bootcode into the ROM...

Even in the documentation of the LPC3180 (ARM9) it is not realy clear...
only:

----8<------------------------------------------------------------------
Chapter 26: Boot process
  2. Description
     A built-in ROM of 16kB contains the neccesary code to start running
     code from NAND FLASH ot to download code from UART5 to IRAM if in
     UART mode.  The code downloaded ti IRAM will typicaly be FLASH
     programming software.
----8<------------------------------------------------------------------

Hell!!!  --  I need to know, HOW to write the right bootloader but I do
not find the right documentation.

OK, I continue:

I connect a serial device on the USB-Port which upload automaticaly data
previously loaded RAW into a SRAM of 1 MByte

----8<------------------------------------------------------------------
Next, the bootstrap first sets the ONSW output pin high.  The bootstrap
then sets up the USB transceiver to UART mode using I²C, see chapter USB
OTG Controller for more details.  After that the Bootstrap starts
performing the data download protocol, expecting an external device to
be connected to either UART5 or the USB transceiver.  In the data
download protocol the boot_id is sent and an 'A' is expected as a
response.  If this 'A' is received, the boot_id is retransmited and a
'U' and a '3' should be returned.  If the 'U' and the '3' are received
an 'R' is sent.  A start address, 32 bits, followed by 32 bits
containing the number of bytes of code should be returned.  At this
point the code can be sent.  The received code is tored bayte by byte
starting from the start address, and when the correct number of bytes is
received, execution is transfered to the start address, and the
downloaded program is executed.  It the 'A', 'U', '3' sequence not is
received within one second, there will be a time-out, and the bootstrap
jumps to the NAND FLASH procedure.  For download protocol parameters,
see Table 26-396.

    LPC3180               Connected device
       |                          |
       |  Boot ID =>              |    1 byte
       |--------------------------|
       |                  <= 'A'  |    1 byte
       |--------------------------|
       |  Boot ID =>              |    1 byte
       |--------------------------|
       |           <= 'U' (0x55)  |    1 byte
       |           <= '3' (0x33)  |    1 byte
       |--------------------------|
       |  'R' (0x52) =>           |    1 byte
       |--------------------------|
       |        <= start address  |    4 bytes
       |--------------------------|
       |            <= code size  |    4 bytes
       |--------------------------|
       |                 <= code  |    
       |--------------------------|
    Table 396. Bootstrap download protocol
    communication parameters for UART5

----8<------------------------------------------------------------------

Can it be, that the "code" should be MY Kernel ?

Oh, I have currently only 32 MByte of SDRAM connected (need bigger
module and money :-/ )

Note:  The procedure for the LH7A404 is nearly the same but I have some
       trouble with the Evaluation Board connected to my IBM TP570.

Thanks, Greetings and nice Day
    Michelle Konzack
    Systemadministrator
    24V Electronic Engineer
    Tamay Dogan Network
    Debian GNU/Linux Consultant


-- 
Linux-User #280138 with the Linux Counter, http://counter.li.org/
##################### Debian GNU/Linux Consultant #####################
Michelle Konzack   Apt. 917                  ICQ #328449886
+49/177/9351947    50, rue de Soultz         MSN LinuxMichi
+33/6/61925193     67100 Strasbourg/France   IRC #Debian (irc.icq.com)

Attachment: signature.pgp
Description: Digital signature


Reply to: