brun_mtd

Xavier Pegenaute xpegenaute at telepolis.es
Wed May 21 11:58:01 CEST 2003


steven james wrote:

>The DoC has hardware support for a 512B boot plock. On powerup, it loads
>the first block into a block that 'just happens' to map the end of the
>block at 0xf000:0xfff0. If the first block has an ECC error, the second
>block is copied instead (so two copies of docipl).
>IIRC, the seek=128 is used so that two copies of LinuxBIOS can be stored,
>one as a fallback image though full support for that never got implemented
>in the older boards.
>  
>
Ok, then if i want make a memory map of a eeprom, it will be like this:
0-511 (0x0 - 0x1FF) docipl 512 Bytes
512-1023 (0x200 - 0x3FF)  docipl (security copy) 512 Bytes
1024-65535 (0x400 - 0xFFFF)  linuxbios.block 64512 Bytes
65536-8323071 (0x10000 - 0x7EFFFF)  Free Space 8257536 Bytes = 128x64512
8323072-9109503  (0x7F0000 - 0x8AFFFF)  vmlinux.bin.gz.block 786432 Bytes

Then also if im'not wrong, when we make the reset EEPROM 0x0 - 0xFFFF is 
mapped to the top of memory addres space 0xFFFF0000 - 0xFFFFFFFF, and 
then the start point 0xFFFFFFF0 is visible in linuxbios.block.

If this is right, sorry but i didn't find the jump into the code of 
docipl, i suposed that the initial label is "sis630spd_start:" in 
ipl.S., any one know where is the jump ?

Regards.
Xavi.

>>Hello,
>>
>>In the script of src/util/mtd/burn_mtd there are these lines ..
>>
>>- dd conv=notrunc conv=sync bs=65536 if=${linux} of=vmlinux.bin.gz.block
>>With this we if exist we don't trunc and fix the size of 
>>vmlinux.bin.gz.block, if it's more smaller than 65536 we put 0 until 
>>this size.
>>
>>- dd conv=notrunc conv=sync bs=63k if=${linuxbios} of=linuxbios.block
>>The same but with 63k.
>>
>>- dd conv=notrunc if=docipl of=/dev/mtd0
>>We write without trunc /dev/mtd0 with the source of docipl.
>>
>>- dd conv=notrunc if=docipl of=/dev/mtd0 seek=1
>>The same but this time we skip 1 block of "bs" (i supose that we can 
>>remind the value of bs in the last line, then sizeof(docipl) ).
>>
>>- dd conv=notrunc if=linuxbios.block of=/dev/mtd0 seek=2
>>Without trunc we write linuxbios.block to mtd, skipping 2 times the last 
>>size (sizeof(docipl) ).
>>
>>- dd conv=notrunc if=vmlinux.bin.gz.block of=/dev/mtd0 seek=128
>>Now without trunc write vmlinux skipping 128 times the size of 
>>linuxbios.block.
>>
>>
>>My questions, are:
>>
>>Why we write two times docipl ?
>>And why we skip 128 times the size of linuxbios.block ? (i supose that 
>>i'm wrong, any one can help me with these)
>>
>>    
>>





More information about the coreboot mailing list