[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [PATCH 07/40] arm64: add exception support



Hi Shijie,

On 07/11/17 09:19, Huang Shijie wrote:
On Fri, Nov 03, 2017 at 03:44:27PM +0000, Julien Grall wrote:
On 03/11/17 03:11, Huang Shijie wrote:
Question for the Mini-OS maintainers, do you have a way similar to
asm-offsets.c in Mini-OS? This would avoid a lot of hardcoding value in the
code.

+
+    .macro trap_entry, el
+    sub   sp, sp, #FRAME_SIZE
+    stp   x0, x1, [sp, #16 * 0]
+    stp   x2, x3, [sp, #16 * 1]
+    stp   x4, x5, [sp, #16 * 2]
+    stp   x6, x7, [sp, #16 * 3]
+    stp   x8, x9, [sp, #16 * 4]
+    stp   x10, x11, [sp, #16 * 5]
+    stp   x12, x13, [sp, #16 * 6]
+    stp   x14, x15, [sp, #16 * 7]
+    stp   x16, x17, [sp, #16 * 8]
+    stp   x18, x19, [sp, #16 * 9]
+    stp   x20, x21, [sp, #16 * 10]
+    stp   x22, x23, [sp, #16 * 11]
+    stp   x24, x25, [sp, #16 * 12]
+    stp   x26, x27, [sp, #16 * 13]
+    stp   x28, x29, [sp, #16 * 14]

Is there any way to simplify this code? Such as using writeback version?
I do not know, I just copy it from the linux kernel.

Is that a joke? I have been telling you for the past 6 months that Mini-OS is BSD license. You *cannot* copy code from GPL project and put that in it unless the file has been dual-licensed BSD/GPL.

This is why it was fine to copy hypercall64.S from Linux.

So which other bits have been copied from Linux?

If you want to copy code, then you can use any BSD kernel. A good candidate is FreeBSD as IIRC the Arm64 bits are quite good.


Could you give an example about the writeback version?

See the documentation in the ARM ARM (C6.2.224 ARM DDI 0487B.b).

[...]

+
+el_invalid(el1_sync, BAD_SYNC, 1);
+el_invalid(el0_sync, BAD_SYNC, 0);
+el_invalid(el1_irq, BAD_IRQ, 1);
+el_invalid(el0_irq, BAD_IRQ, 0);
+el_invalid(el1_fiq, BAD_FIQ, 1);
+el_invalid(el0_fiq, BAD_FIQ, 0);
+el_invalid(el1_error, BAD_ERROR, 1);
+el_invalid(el0_error, BAD_ERROR, 0);

It would be more logic to define all the exception handler before creating
the vector table.
do you mean I need to add another patch to define all the handlers?

I meant moving the definitions above vector_table within the file. Not splitting it.

Cheers,

--
Julien Grall

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.