Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
pc-bios/s390-ccw: Move the stack array into start.S
The stack array is only referenced from the start-up code (which is
shared between the s390-ccw.img and the s390-netboot.img), but it is
currently declared twice, once in main.c and once in netmain.c.
It makes more sense to declare this in start.S instead - which will
also be helpful in the next patch, since we need to mention the .bss
section in start.S in that patch.

While we're at it, let's also drop the huge alignment of the stack,
since there is no technical requirement for aligning it to page
boundaries.

Message-Id: <20230627074703.99608-4-thuth@redhat.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
  • Loading branch information
huth committed Jun 29, 2023
1 parent 74fe98e commit e31f08d
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 8 deletions.
1 change: 0 additions & 1 deletion pc-bios/s390-ccw/main.c
Expand Up @@ -17,7 +17,6 @@
#include "virtio-scsi.h"
#include "dasd-ipl.h"

char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
static SubChannelId blk_schid = { .one = 1 };
static char loadparm_str[LOADPARM_LEN + 1];
QemuIplParameters qipl;
Expand Down
1 change: 0 additions & 1 deletion pc-bios/s390-ccw/netmain.c
Expand Up @@ -50,7 +50,6 @@ void write_iplb_location(void) {}
/* STSI 3.2.2 offset of first vmdb + offset of uuid inside vmdb */
#define STSI322_VMDB_UUID_OFFSET ((8 + 12) * 4)

char stack[PAGE_SIZE * 8] __attribute__((aligned(PAGE_SIZE)));
IplParameterBlock iplb __attribute__((aligned(PAGE_SIZE)));
static char cfgbuf[2048];

Expand Down
1 change: 0 additions & 1 deletion pc-bios/s390-ccw/s390-ccw.h
Expand Up @@ -50,7 +50,6 @@ void consume_io_int(void);
/* main.c */
void write_subsystem_identification(void);
void write_iplb_location(void);
extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
unsigned int get_loadparm_index(void);
void main(void);

Expand Down
6 changes: 6 additions & 0 deletions pc-bios/s390-ccw/start.S
Expand Up @@ -121,3 +121,9 @@ external_new_mask:
.quad 0x0000000180000000
io_new_mask:
.quad 0x0000000180000000

.bss
.align 8
stack:
.space STACK_SIZE
.size stack,STACK_SIZE
7 changes: 2 additions & 5 deletions tests/tcg/s390x/head64.S
Expand Up @@ -8,6 +8,8 @@
#include "../../../pc-bios/s390-ccw/start.S"
#undef main

.text

main_pre:
aghi %r15,-160 /* reserve stack for C code */
brasl %r14,sclp_setup
Expand All @@ -24,8 +26,3 @@ success_psw:
.quad 0x2000180000000,0xfff /* see is_special_wait_psw() */
failure_psw:
.quad 0x2000180000000,0 /* disabled wait */

.section .bss
.align 0x1000
stack:
.skip 0x8000

0 comments on commit e31f08d

Please sign in to comment.