brun_mtd

steven james pyro at linuxlabs.com
Wed May 21 12:48:01 CEST 2003


Greetings,

At the end of ipl.S, 

reset_vector:
	.byte 0xea
	.word 0x0000, DOC_WIN_SEG

is the jmp instruction hand assembled.

G'day,
sjames



On Wed, 21 May 2003, Xavier Pegenaute wrote:

> 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)
> >>
> >>    
> >>
> 
> 

-- 
-------------------------steven james, director of research, linux labs
... ........ ..... ....                    230 peachtree st nw ste 2701
the original linux labs                             atlanta.ga.us 30303
      -since 1995                              http://www.linuxlabs.com
                                   office 404.577.7747 fax 404.577.7743
-----------------------------------------------------------------------





More information about the coreboot mailing list