On 03/08/2010 21:26, "Roger Cruz" <roger.cruz@xxxxxxxxxxxxxxxxxxx> wrote:
> 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.
You should be able to dump characters out to a graphics card in text mode.
See the code at label 'print_err' in head.S for example.
> 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
>> 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.
>> /* 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?
>> Roger R. Cruz
Xen-devel mailing list