none
low level booting sequence of CE 6 in x86 platforms and BIOS RRS feed

  • Question

  • is there a link or material which can clearly explain the booting sequence of CE and interactions/dependencies with regards to BIOS.

    I am looking for detailed steps like

    step 1. Power on reset/Power up will make the CPU start execution at Startup() function given in .asm file .... located in  \x folder

    step 2. After Startup(), the next function would be main() in BLCommon located in ...c file located in \y folder

    step 3. The bios parameters are read/displayed.

    ...etc.

    It is also useful how to make sure these steps are executed in the same order, since no debug mechanism will be initialed at these levels.


    chandra

    Monday, December 17, 2012 8:59 AM

All replies

  • It is a pretty good article. And gives detailed info on CE image. Thanks very much.

    I am looking for info, a bit prior to beginning of CE start. And since the platform is x86, BIOS is coming in to picture. It would be great to see some article explaining the role of BIOS and BIOS-OS(CE) interaction and dependencies.

    MSDN gives some info at: http://msdn.microsoft.com/en-us/library/ee478286(v=winembedded.60).aspx

    Still looking for the complete picture.

    Thanks,

    chandra


    chandra

    Wednesday, December 19, 2012 10:07 AM
  • The most common scenario for booting Windows CE on an x86 platform is using the BIOSLOADER (http://msdn.microsoft.com/en-us/library/ee478286(v=winembedded.60).aspx). Some more general information about booting Windows CE on an x86 can be found also on http://blogs.msdn.com/b/windows-embedded/archive/2012/08/10/understanding-cepc-boot-sequence-in-windows-embedded-compact-7.aspx.

    Once the BIOSLOADER code has copied the NK.bin file at the appropriate memory location and jumps into it, the processor runs in protected mode and there's no code in Windows CE which calls BIOS interrupts. Possibly Windows CE may read some BIOS table in memory to gain some information but that's all. Basically there's no relationship at all between the OS and the BIOS.

    The BIOSLOADER (and the companion bootsector), on the other side, uses BIOS interrupt services to read data from disks (INT 13H), write charcters on video (INT10h), etc. The code related to the BIOS calls -including switching from real to protected mode and viceversa- can be found in the bios.asm file inside the BIOSLOADER source folder


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com


    Thursday, December 20, 2012 12:57 PM
  • Luca Calligaris,

    I was also thinking on the same line that there is no relation between the OS and the BIOS once the image(Nk.bin) is loaded and takes over the control. I had to change my thoughts once I encountered power management issues. Especially in case of suspend/resume, the OS looses control on the system and BIOS comes in to play. I do not have the complete picture what happens here, hence posted this question and trying to debug the system.


    chandra

    Monday, December 24, 2012 8:48 AM
  • Here are some details I could get -

    The x86 processors, on power-on-reset, jump to address 0xFFFF FFF0. This is the HIGH BIOS area and only 16 bytes are available. hence it is programmed to jump to BIOS area. The BIOS area in recent 0x86 architecture(the PC architecture) is located at 0x000F 0000( Earlier this used to be 0x000E 8000, from some documents available on the net). The BIOS will run its programs in this area, and according to the settings(or user configuration), it will chose a bootable media(USB drive, floppy disk, ...etc). The BIOS loads the first sector, boot sector, at the address 0x0000 7C00. And jumps to this location.

    One point to note is, this is executed in Real Mode.

    Shall update more details later to give the complete picture.


    chandra

    Friday, December 28, 2012 11:17 AM