Message ID | 1325477374-6417-12-git-send-email-graeme.russ@gmail.com |
---|---|
State | Accepted |
Commit | 58c7a6751dd0978172741503b4dc0c6b23a60b33 |
Headers | show |
Hi Graeme, On Sun, Jan 1, 2012 at 8:09 PM, Graeme Russ <graeme.russ@gmail.com> wrote: > > Signed-off-by: Graeme Russ <graeme.russ@gmail.com> Seems a bit more than just checkpatch. Acked-by: Simon Glass <sjg@chromium.org> Regards, Simon > --- > arch/x86/cpu/interrupts.c | 2 +- > arch/x86/cpu/start16.S | 57 +++++++++++++++++++++++++++++++++++--------- > 2 files changed, 46 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/cpu/interrupts.c b/arch/x86/cpu/interrupts.c > index e0958eb..43ec3f8 100644 > --- a/arch/x86/cpu/interrupts.c > +++ b/arch/x86/cpu/interrupts.c > @@ -174,7 +174,7 @@ struct desc_ptr { > unsigned short segment; > } __packed; > > -struct idt_entry idt[256] __attribute__((aligned(16))); > +struct idt_entry idt[256] __aligned(16); > > struct desc_ptr idt_ptr; > > diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S > index 33e53cd..cc393ff 100644 > --- a/arch/x86/cpu/start16.S > +++ b/arch/x86/cpu/start16.S > @@ -86,7 +86,11 @@ gdt_ptr: > .word 0x20 /* limit (32 bytes = 4 GDT entries) */ > .long BOOT_SEG + gdt /* base */ > > - /* The GDT table ... > +/* Some CPUs are picky about GDT alignment... */ > +.align 16 > +gdt: > + /* > + * The GDT table ... > * > * Selector Type > * 0x00 NULL > @@ -94,17 +98,46 @@ gdt_ptr: > * 0x10 32bit code > * 0x18 32bit data/stack > */ > + /* The NULL Desciptor - Mandatory */ > + .word 0x0000 /* limit_low */ > + .word 0x0000 /* base_low */ > + .byte 0x00 /* base_middle */ > + .byte 0x00 /* access */ > + .byte 0x00 /* flags + limit_high */ > + .byte 0x00 /* base_high */ > > -gdt: > - .word 0, 0, 0, 0 /* NULL */ > - .word 0, 0, 0, 0 /* unused */ > + /* Unused Desciptor - (matches Linux) */ > + .word 0x0000 /* limit_low */ > + .word 0x0000 /* base_low */ > + .byte 0x00 /* base_middle */ > + .byte 0x00 /* access */ > + .byte 0x00 /* flags + limit_high */ > + .byte 0x00 /* base_high */ > > - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ > - .word 0 /* base address = 0 */ > - .word 0x9B00 /* code read/exec */ > - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ > + /* > + * The Code Segment Descriptor: > + * - Base = 0x00000000 > + * - Size = 4GB > + * - Access = Present, Ring 0, Exec (Code), Readable > + * - Flags = 4kB Granularity, 32-bit > + */ > + .word 0xffff /* limit_low */ > + .word 0x0000 /* base_low */ > + .byte 0x00 /* base_middle */ > + .byte 0x9b /* access */ > + .byte 0xcf /* flags + limit_high */ > + .byte 0x00 /* base_high */ > > - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ > - .word 0x0 /* base address = 0 */ > - .word 0x9300 /* data read/write */ > - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ > + /* > + * The Data Segment Descriptor: > + * - Base = 0x00000000 > + * - Size = 4GB > + * - Access = Present, Ring 0, Non-Exec (Data), Writable > + * - Flags = 4kB Granularity, 32-bit > + */ > + .word 0xffff /* limit_low */ > + .word 0x0000 /* base_low */ > + .byte 0x00 /* base_middle */ > + .byte 0x93 /* access */ > + .byte 0xcf /* flags + limit_high */ > + .byte 0x00 /* base_high */ > -- > 1.7.5.2.317.g391b14 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
Hi Simon, On 04/01/12 16:42, Simon Glass wrote: > Hi Graeme, > > On Sun, Jan 1, 2012 at 8:09 PM, Graeme Russ <graeme.russ@gmail.com> wrote: >> >> Signed-off-by: Graeme Russ <graeme.russ@gmail.com> > > Seems a bit more than just checkpatch. True - I'll change the name to 'Tweak IDT and GDT for alignment and readability' - Saves me splitting the patch ;) Regards, Graeme > > Acked-by: Simon Glass <sjg@chromium.org> > > Regards, > Simon > >> --- >> arch/x86/cpu/interrupts.c | 2 +- >> arch/x86/cpu/start16.S | 57 +++++++++++++++++++++++++++++++++++--------- >> 2 files changed, 46 insertions(+), 13 deletions(-) >> >> diff --git a/arch/x86/cpu/interrupts.c b/arch/x86/cpu/interrupts.c >> index e0958eb..43ec3f8 100644 >> --- a/arch/x86/cpu/interrupts.c >> +++ b/arch/x86/cpu/interrupts.c >> @@ -174,7 +174,7 @@ struct desc_ptr { >> unsigned short segment; >> } __packed; >> >> -struct idt_entry idt[256] __attribute__((aligned(16))); >> +struct idt_entry idt[256] __aligned(16); >> >> struct desc_ptr idt_ptr; >> >> diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S >> index 33e53cd..cc393ff 100644 >> --- a/arch/x86/cpu/start16.S >> +++ b/arch/x86/cpu/start16.S >> @@ -86,7 +86,11 @@ gdt_ptr: >> .word 0x20 /* limit (32 bytes = 4 GDT entries) */ >> .long BOOT_SEG + gdt /* base */ >> >> - /* The GDT table ... >> +/* Some CPUs are picky about GDT alignment... */ >> +.align 16 >> +gdt: >> + /* >> + * The GDT table ... >> * >> * Selector Type >> * 0x00 NULL >> @@ -94,17 +98,46 @@ gdt_ptr: >> * 0x10 32bit code >> * 0x18 32bit data/stack >> */ >> + /* The NULL Desciptor - Mandatory */ >> + .word 0x0000 /* limit_low */ >> + .word 0x0000 /* base_low */ >> + .byte 0x00 /* base_middle */ >> + .byte 0x00 /* access */ >> + .byte 0x00 /* flags + limit_high */ >> + .byte 0x00 /* base_high */ >> >> -gdt: >> - .word 0, 0, 0, 0 /* NULL */ >> - .word 0, 0, 0, 0 /* unused */ >> + /* Unused Desciptor - (matches Linux) */ >> + .word 0x0000 /* limit_low */ >> + .word 0x0000 /* base_low */ >> + .byte 0x00 /* base_middle */ >> + .byte 0x00 /* access */ >> + .byte 0x00 /* flags + limit_high */ >> + .byte 0x00 /* base_high */ >> >> - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ >> - .word 0 /* base address = 0 */ >> - .word 0x9B00 /* code read/exec */ >> - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ >> + /* >> + * The Code Segment Descriptor: >> + * - Base = 0x00000000 >> + * - Size = 4GB >> + * - Access = Present, Ring 0, Exec (Code), Readable >> + * - Flags = 4kB Granularity, 32-bit >> + */ >> + .word 0xffff /* limit_low */ >> + .word 0x0000 /* base_low */ >> + .byte 0x00 /* base_middle */ >> + .byte 0x9b /* access */ >> + .byte 0xcf /* flags + limit_high */ >> + .byte 0x00 /* base_high */ >> >> - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ >> - .word 0x0 /* base address = 0 */ >> - .word 0x9300 /* data read/write */ >> - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ >> + /* >> + * The Data Segment Descriptor: >> + * - Base = 0x00000000 >> + * - Size = 4GB >> + * - Access = Present, Ring 0, Non-Exec (Data), Writable >> + * - Flags = 4kB Granularity, 32-bit >> + */ >> + .word 0xffff /* limit_low */ >> + .word 0x0000 /* base_low */ >> + .byte 0x00 /* base_middle */ >> + .byte 0x93 /* access */ >> + .byte 0xcf /* flags + limit_high */ >> + .byte 0x00 /* base_high */ >> -- >> 1.7.5.2.317.g391b14 >> >> _______________________________________________ >> U-Boot mailing list >> U-Boot@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot >
diff --git a/arch/x86/cpu/interrupts.c b/arch/x86/cpu/interrupts.c index e0958eb..43ec3f8 100644 --- a/arch/x86/cpu/interrupts.c +++ b/arch/x86/cpu/interrupts.c @@ -174,7 +174,7 @@ struct desc_ptr { unsigned short segment; } __packed; -struct idt_entry idt[256] __attribute__((aligned(16))); +struct idt_entry idt[256] __aligned(16); struct desc_ptr idt_ptr; diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S index 33e53cd..cc393ff 100644 --- a/arch/x86/cpu/start16.S +++ b/arch/x86/cpu/start16.S @@ -86,7 +86,11 @@ gdt_ptr: .word 0x20 /* limit (32 bytes = 4 GDT entries) */ .long BOOT_SEG + gdt /* base */ - /* The GDT table ... +/* Some CPUs are picky about GDT alignment... */ +.align 16 +gdt: + /* + * The GDT table ... * * Selector Type * 0x00 NULL @@ -94,17 +98,46 @@ gdt_ptr: * 0x10 32bit code * 0x18 32bit data/stack */ + /* The NULL Desciptor - Mandatory */ + .word 0x0000 /* limit_low */ + .word 0x0000 /* base_low */ + .byte 0x00 /* base_middle */ + .byte 0x00 /* access */ + .byte 0x00 /* flags + limit_high */ + .byte 0x00 /* base_high */ -gdt: - .word 0, 0, 0, 0 /* NULL */ - .word 0, 0, 0, 0 /* unused */ + /* Unused Desciptor - (matches Linux) */ + .word 0x0000 /* limit_low */ + .word 0x0000 /* base_low */ + .byte 0x00 /* base_middle */ + .byte 0x00 /* access */ + .byte 0x00 /* flags + limit_high */ + .byte 0x00 /* base_high */ - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ - .word 0 /* base address = 0 */ - .word 0x9B00 /* code read/exec */ - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ + /* + * The Code Segment Descriptor: + * - Base = 0x00000000 + * - Size = 4GB + * - Access = Present, Ring 0, Exec (Code), Readable + * - Flags = 4kB Granularity, 32-bit + */ + .word 0xffff /* limit_low */ + .word 0x0000 /* base_low */ + .byte 0x00 /* base_middle */ + .byte 0x9b /* access */ + .byte 0xcf /* flags + limit_high */ + .byte 0x00 /* base_high */ - .word 0xFFFF /* 4Gb - (0x100000*0x1000 = 4Gb) */ - .word 0x0 /* base address = 0 */ - .word 0x9300 /* data read/write */ - .word 0x00CF /* granularity = 4096, 386 (+5th nibble of limit) */ + /* + * The Data Segment Descriptor: + * - Base = 0x00000000 + * - Size = 4GB + * - Access = Present, Ring 0, Non-Exec (Data), Writable + * - Flags = 4kB Granularity, 32-bit + */ + .word 0xffff /* limit_low */ + .word 0x0000 /* base_low */ + .byte 0x00 /* base_middle */ + .byte 0x93 /* access */ + .byte 0xcf /* flags + limit_high */ + .byte 0x00 /* base_high */
Signed-off-by: Graeme Russ <graeme.russ@gmail.com> --- arch/x86/cpu/interrupts.c | 2 +- arch/x86/cpu/start16.S | 57 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 46 insertions(+), 13 deletions(-)