|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v1 1/4] arch/riscv: initial RISC-V support to build/run minimal Xen
On 23/12/2022 11:16 am, Oleksii Kurochko wrote:
> diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
> index 942e4ffbc1..893dd19ea6 100644
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -1,2 +1,32 @@
> +obj-$(CONFIG_RISCV_64) += riscv64/
> +
> +$(TARGET): $(TARGET)-syms
> + $(OBJCOPY) -O binary -S $< $@
> +
> +$(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
> + $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
> + $(SYMBOLS_DUMMY_OBJ) -o $(@D)/.$(@F).0
> + $(NM) -pa --format=sysv $(@D)/.$(@F).0 \
> + | $(objtree)/tools/symbols $(all_symbols) --sysv --sort
> >$(@D)/.$(@F).0.S
> + $(MAKE) $(build)=$(@D) $(@D)/.$(@F).0.o
> + $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< \
> + $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
> + $(NM) -pa --format=sysv $(@D)/.$(@F).1 \
> + | $(objtree)/tools/symbols $(all_symbols) --sysv --sort
> >$(@D)/.$(@F).1.S
> + $(MAKE) $(build)=$(@D) $(@D)/.$(@F).1.o
> + $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) \
> + $(@D)/.$(@F).1.o -o $@
The conditional emptying of SYMBOLS_DUMMY_OBJ in arch.mk will break this
logic if it actually gets emptied, but you can drop almost all of it.
This should be just
$(TARGET)-syms: $(objtree)/prelink.o $(obj)/xen.lds
$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds -N $< $(build_id_linker) -o $@
in the short term, I think.
> + $(NM) -pa --format=sysv $(@D)/$(@F) \
> + | $(objtree)/tools/symbols --all-symbols --xensyms --sysv
> --sort \
> + >$(@D)/$(@F).map
> + rm -f $(@D)/.$(@F).[0-9]*
> +
> +$(obj)/xen.lds: $(src)/xen.lds.S FORCE
> + $(call if_changed_dep,cpp_lds_S)
You've got a tab and some spaces here. It wants to be just one tab.
> diff --git a/xen/arch/riscv/include/asm/config.h
> b/xen/arch/riscv/include/asm/config.h
> index e2ae21de61..756607a4a2 100644
> --- a/xen/arch/riscv/include/asm/config.h
> +++ b/xen/arch/riscv/include/asm/config.h
> @@ -36,6 +36,30 @@
> name:
> #endif
>
> +/*
> + * Definition of XEN_VIRT_START should look like:
> + * define XEN_VIRT_START _AT(vaddr_t,0x00200000)
> + * It requires including of additional headers which
> + * will increase an amount of files unnecessary for
> + * minimal RISC-V Xen build so set value of
> + * XEN_VIRT_START explicitly.
> + *
> + * TODO: change it to _AT(vaddr_t,0x00200000) when
> + * necessary header will be pushed.
> + */
> +#define XEN_VIRT_START 0x80200000
> +/*
> + * PAGE_SIZE is defined in <{asm,xen}/page-*.h> but to
> + * remove unnecessary headers for minimal
> + * build headers it will be better to set PAGE_SIZE
> + * explicitly.
> + *
> + * TODO: remove it when <asm/page-*.h> will be needed
> + * defintion of PAGE_SIZE should be remove from
> + * this header.
> + */
> +#define PAGE_SIZE 4096
I've committed Alistair's patch which adds page-bits.h, so this section
can go away.
We still need XEN_VIRT_START, but we don't really need the commentary
explaining that it's temporary - that is very clear from the subject of
the patch.
> diff --git a/xen/arch/riscv/include/asm/types.h
> b/xen/arch/riscv/include/asm/types.h
> new file mode 100644
> index 0000000000..afbca6b15c
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/types.h
> @@ -0,0 +1,11 @@
> +#ifndef __TYPES_H__
> +#define __TYPES_H__
> +
> +/*
> + *
> + * asm/types.h is required for xen-syms.S file which
> + * is produced by tools/symbols.
> + *
> + */
Again, no need for this comment.
However, I think we want to rearrange the build system to have a final
-I option for xen/include/stub/asm/ or so, so we can put some empty
files there and avoid having architectures needing to provide empty files.
If this file is needed, then it needs a more specific header guard than
__TYPES_H__. That's the general guard for xen/types.h meaning that
nothing inside this file will actually survive preprocessing.
~Andrew
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |