There is no output at this point. The only output before is when we are in real-mode and I purposely used the vga boot option with an illegal value. This allows me to then see the list of valid values and enter one. After that point, the code switches from real to protected mode. Based on my level of understanding, in order to make further BIOS calls to print anything to the screen, I would have to switch to real mode and then back to protected. I would probably spend a lot of time trying to get that part right so right now I'm simply using a "ud2" instruction to cause a reboot. I move that instruction around the code and that is how I managed to narrow down the problem to the IDT initialization.
I'll continue to play with this but I only have the laptop for one more day, so if anyone else has suggestions, I'm all ears.
Thanks for your help Keir.
Roger R. Cruz
-----Original Message-----
From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
Sent: Tue 8/3/2010 4:01 PM
To: Roger Cruz; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Problems booting Xen on Toshiba Satellite L505
On 03/08/2010 20:06, "Roger Cruz" <roger.cruz@xxxxxxxxxxxxxxxxxxx> wrote:
>
>
> I have tried Xen-3.4.2 and Xen-4.1-unstable on a new i3 Toshiba Satellite L505
> and with both versions, I get a blinking cursor upon boot. I used the code
> from 3.4.2 to narrow down the problem to this section of code in x86_64.S
Never heard of anything like this. You'll have to fiddle around some more
I'm afraid. Can you get any output onto the screen before this point, and
maybe get some debug tracing out that way... Does everything work okay if
you get out of the loop? Vector 7 is device-not-available, so could be FPU
related perhaps.
K.
> /* Initialise IDT with simple error defaults. */
> leaq ignore_int(%rip),%rcx
> movl %ecx,%eax
> andl $0xFFFF0000,%eax
> orl $0x00008E00,%eax
> shlq $32,%rax
> movl %ecx,%edx
> andl $0x0000FFFF,%edx
> orl $(__HYPERVISOR_CS64<<16),%edx
> orq %rdx,%rax
> shrq $32,%rcx
> movl %ecx,%edx
> leaq idt_table(%rip),%rdi
> movl $256,%ecx
> 1: movq %rax,(%rdi)
> movq %rdx,8(%rdi)
> addq $16,%rdi
> loop 1b
>
> The code never gets out of the loop to execute the following lines:
>
> /* Pass off the Multiboot info structure to C land. */
> mov multiboot_ptr(%rip),%edi
> call __start_xen
>
> By playing around with the loop counter in ECX, I determined that loading
> vectors 0-6 works (ie, it gets out of the loop)... but as soon as vector 7 is
> written, we never get out of the loop and I get a blinking cursor. Does
> anyone have any ideas or suggestions?
>
> Thanks
>
> Roger R. Cruz
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|