mbox series

[GIT,PULL] RISC-V Patches for the 5.10 Merge Window, Part 1

Message ID mhng-a46615be-f4b5-4861-81b2-f370964a9583@palmerdabbelt-glaptop1 (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] RISC-V Patches for the 5.10 Merge Window, Part 1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0

Message

Palmer Dabbelt Oct. 19, 2020, 7:08 p.m. UTC
The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:

  Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0

for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:

  RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)

----------------------------------------------------------------
RISC-V Patches for the 5.10 Merge Window, Part 1

This contains a handful of cleanups and new features, including:

* A handful of cleanups for our page fault handling.
* Improvements to how we fill out cacheinfo.
* Support for EFI-based systems.

---

This contains a merge from the EFI tree that was necessary as some of the EFI
support landed over there.  It's my first time doing something like this,

I haven't included the set_fs stuff because the base branch it depends on
hasn't been merged yet.  I'll probably have another merge window PR, as
there's more in flight (most notably the fix for new binutils I just sent out),
but I figured there was no reason to delay this any longer.

There is one merge conflict, which is between my fixes and for-next branches:

    diff --cc arch/riscv/kernel/vmlinux.lds.S
    index 67db80e12d1f,9795359cb9da..ffaa3da375c2
    --- a/arch/riscv/kernel/vmlinux.lds.S
    +++ b/arch/riscv/kernel/vmlinux.lds.S
    @@@ -66,8 -71,11 +70,13 @@@ SECTION
                    _etext = .;
            }
      
     +      INIT_DATA_SECTION(16)
     +
    + #ifdef CONFIG_EFI
    +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
    +       __pecoff_text_end = .;
    + #endif
    + 
            /* Start of data section */
            _sdata = .;
            RO_DATA(SECTION_ALIGN)

----------------------------------------------------------------
Anup Patel (1):
      RISC-V: Move DT mapping outof fixmap

Ard Biesheuvel (3):
      efi/libstub: arm32: Base FDT and initrd placement on image address
      efi/libstub: Export efi_low_alloc_above() to other units
      efi/libstub: arm32: Use low allocation for the uncompressed kernel

Atish Patra (8):
      include: pe.h: Add RISC-V related PE definition
      efi: Rename arm-init to efi-init common for all arch
      RISC-V: Add early ioremap support
      RISC-V: Implement late mapping page table allocation functions
      RISC-V: Add PE/COFF header for EFI stub
      RISC-V: Add EFI stub support.
      RISC-V: Add EFI runtime services
      RISC-V: Add page table dump support for uefi

Palmer Dabbelt (1):
      Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/.../efi/efi into for-next

Pekka Enberg (11):
      riscv/mm: Simplify retry logic in do_page_fault()
      riscv/mm/fault: Move no context handling to no_context()
      riscv/mm/fault: Move bad area handling to bad_area()
      riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()
      riscv/mm/fault: Simplify fault error handling
      riscv/mm/fault: Move fault error handling to mm_fault_error()
      riscv/mm/fault: Simplify mm_fault_error()
      riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault()
      riscv/mm/fault: Move access error check to function
      riscv/mm/fault: Fix inline placement in vmalloc_fault() declaration
      riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()

Tian Tao (1):
      RISC-V: Fix duplicate included thread_info.h

Zong Li (3):
      riscv: Set more data to cacheinfo
      riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
      riscv: Add cache information in AUX vector

 arch/arm/include/asm/efi.h                      |  23 +-
 arch/arm64/include/asm/efi.h                    |   5 +-
 arch/riscv/Kconfig                              |  25 ++
 arch/riscv/Makefile                             |   1 +
 arch/riscv/configs/defconfig                    |   1 +
 arch/riscv/include/asm/Kbuild                   |   1 +
 arch/riscv/include/asm/cacheinfo.h              |   5 +
 arch/riscv/include/asm/efi.h                    |  55 ++++
 arch/riscv/include/asm/elf.h                    |  13 +
 arch/riscv/include/asm/fixmap.h                 |  16 +-
 arch/riscv/include/asm/io.h                     |   1 +
 arch/riscv/include/asm/mmu.h                    |   2 +
 arch/riscv/include/asm/pgtable.h                |   5 +
 arch/riscv/include/asm/sections.h               |  13 +
 arch/riscv/include/uapi/asm/auxvec.h            |  24 ++
 arch/riscv/kernel/Makefile                      |   2 +
 arch/riscv/kernel/cacheinfo.c                   |  98 +++++--
 arch/riscv/kernel/efi-header.S                  | 111 ++++++++
 arch/riscv/kernel/efi.c                         |  96 +++++++
 arch/riscv/kernel/head.S                        |  18 +-
 arch/riscv/kernel/head.h                        |   2 -
 arch/riscv/kernel/image-vars.h                  |  51 ++++
 arch/riscv/kernel/setup.c                       |  18 +-
 arch/riscv/kernel/vmlinux.lds.S                 |  23 +-
 arch/riscv/mm/fault.c                           | 356 +++++++++++++-----------
 arch/riscv/mm/init.c                            | 191 ++++++++++---
 arch/riscv/mm/ptdump.c                          |  48 +++-
 drivers/firmware/efi/Kconfig                    |   3 +-
 drivers/firmware/efi/Makefile                   |   4 +-
 drivers/firmware/efi/{arm-init.c => efi-init.c} |   0
 drivers/firmware/efi/libstub/Makefile           |  10 +
 drivers/firmware/efi/libstub/arm32-stub.c       | 178 +++---------
 drivers/firmware/efi/libstub/arm64-stub.c       |   1 -
 drivers/firmware/efi/libstub/efi-stub.c         |  59 +---
 drivers/firmware/efi/libstub/efistub.h          |   7 +-
 drivers/firmware/efi/libstub/relocate.c         |   4 +-
 drivers/firmware/efi/libstub/riscv-stub.c       | 109 ++++++++
 drivers/firmware/efi/riscv-runtime.c            | 143 ++++++++++
 include/linux/pe.h                              |   3 +
 39 files changed, 1275 insertions(+), 450 deletions(-)
 create mode 100644 arch/riscv/include/asm/efi.h
 create mode 100644 arch/riscv/include/asm/sections.h
 create mode 100644 arch/riscv/kernel/efi-header.S
 create mode 100644 arch/riscv/kernel/efi.c
 create mode 100644 arch/riscv/kernel/image-vars.h
 rename drivers/firmware/efi/{arm-init.c => efi-init.c} (100%)
 create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c
 create mode 100644 drivers/firmware/efi/riscv-runtime.c

Comments

Atish Patra Oct. 19, 2020, 8:43 p.m. UTC | #1
On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@dabbelt.com> wrote:
>
> The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:
>
>   Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)
>
> are available in the Git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0
>
> for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:
>
>   RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)
>
> ----------------------------------------------------------------
> RISC-V Patches for the 5.10 Merge Window, Part 1
>
> This contains a handful of cleanups and new features, including:
>
> * A handful of cleanups for our page fault handling.
> * Improvements to how we fill out cacheinfo.
> * Support for EFI-based systems.
>
> ---
>
> This contains a merge from the EFI tree that was necessary as some of the EFI
> support landed over there.  It's my first time doing something like this,
>
> I haven't included the set_fs stuff because the base branch it depends on
> hasn't been merged yet.  I'll probably have another merge window PR, as
> there's more in flight (most notably the fix for new binutils I just sent out),
> but I figured there was no reason to delay this any longer.
>
> There is one merge conflict, which is between my fixes and for-next branches:
>
>     diff --cc arch/riscv/kernel/vmlinux.lds.S
>     index 67db80e12d1f,9795359cb9da..ffaa3da375c2
>     --- a/arch/riscv/kernel/vmlinux.lds.S
>     +++ b/arch/riscv/kernel/vmlinux.lds.S
>     @@@ -66,8 -71,11 +70,13 @@@ SECTION
>                     _etext = .;
>             }
>
>      +      INIT_DATA_SECTION(16)
>      +
>     + #ifdef CONFIG_EFI
>     +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
>     +       __pecoff_text_end = .;
>     + #endif
>     +
>             /* Start of data section */
>             _sdata = .;
>             RO_DATA(SECTION_ALIGN)
>
> ----------------------------------------------------------------
> Anup Patel (1):
>       RISC-V: Move DT mapping outof fixmap
>
> Ard Biesheuvel (3):
>       efi/libstub: arm32: Base FDT and initrd placement on image address
>       efi/libstub: Export efi_low_alloc_above() to other units
>       efi/libstub: arm32: Use low allocation for the uncompressed kernel
>

I thought these 3 were being taken through the EFI tree. I already see
them in the master branch.

762cd288fc4a efi/libstub: arm32: Use low allocation for the uncompressed kernel
1a895dbf4b66 efi/libstub: Export efi_low_alloc_above() to other units
6208857b8f7e efi/libstub: arm32: Base FDT and initrd placement on image address

> Atish Patra (8):
>       include: pe.h: Add RISC-V related PE definition
>       efi: Rename arm-init to efi-init common for all arch
>       RISC-V: Add early ioremap support
>       RISC-V: Implement late mapping page table allocation functions
>       RISC-V: Add PE/COFF header for EFI stub
>       RISC-V: Add EFI stub support.
>       RISC-V: Add EFI runtime services
>       RISC-V: Add page table dump support for uefi
>
> Palmer Dabbelt (1):
>       Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/.../efi/efi into for-next
>
> Pekka Enberg (11):
>       riscv/mm: Simplify retry logic in do_page_fault()
>       riscv/mm/fault: Move no context handling to no_context()
>       riscv/mm/fault: Move bad area handling to bad_area()
>       riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()
>       riscv/mm/fault: Simplify fault error handling
>       riscv/mm/fault: Move fault error handling to mm_fault_error()
>       riscv/mm/fault: Simplify mm_fault_error()
>       riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault()
>       riscv/mm/fault: Move access error check to function
>       riscv/mm/fault: Fix inline placement in vmalloc_fault() declaration
>       riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()
>
> Tian Tao (1):
>       RISC-V: Fix duplicate included thread_info.h
>
> Zong Li (3):
>       riscv: Set more data to cacheinfo
>       riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
>       riscv: Add cache information in AUX vector
>
>  arch/arm/include/asm/efi.h                      |  23 +-
>  arch/arm64/include/asm/efi.h                    |   5 +-
>  arch/riscv/Kconfig                              |  25 ++
>  arch/riscv/Makefile                             |   1 +
>  arch/riscv/configs/defconfig                    |   1 +
>  arch/riscv/include/asm/Kbuild                   |   1 +
>  arch/riscv/include/asm/cacheinfo.h              |   5 +
>  arch/riscv/include/asm/efi.h                    |  55 ++++
>  arch/riscv/include/asm/elf.h                    |  13 +
>  arch/riscv/include/asm/fixmap.h                 |  16 +-
>  arch/riscv/include/asm/io.h                     |   1 +
>  arch/riscv/include/asm/mmu.h                    |   2 +
>  arch/riscv/include/asm/pgtable.h                |   5 +
>  arch/riscv/include/asm/sections.h               |  13 +
>  arch/riscv/include/uapi/asm/auxvec.h            |  24 ++
>  arch/riscv/kernel/Makefile                      |   2 +
>  arch/riscv/kernel/cacheinfo.c                   |  98 +++++--
>  arch/riscv/kernel/efi-header.S                  | 111 ++++++++
>  arch/riscv/kernel/efi.c                         |  96 +++++++
>  arch/riscv/kernel/head.S                        |  18 +-
>  arch/riscv/kernel/head.h                        |   2 -
>  arch/riscv/kernel/image-vars.h                  |  51 ++++
>  arch/riscv/kernel/setup.c                       |  18 +-
>  arch/riscv/kernel/vmlinux.lds.S                 |  23 +-
>  arch/riscv/mm/fault.c                           | 356 +++++++++++++-----------
>  arch/riscv/mm/init.c                            | 191 ++++++++++---
>  arch/riscv/mm/ptdump.c                          |  48 +++-
>  drivers/firmware/efi/Kconfig                    |   3 +-
>  drivers/firmware/efi/Makefile                   |   4 +-
>  drivers/firmware/efi/{arm-init.c => efi-init.c} |   0
>  drivers/firmware/efi/libstub/Makefile           |  10 +
>  drivers/firmware/efi/libstub/arm32-stub.c       | 178 +++---------
>  drivers/firmware/efi/libstub/arm64-stub.c       |   1 -
>  drivers/firmware/efi/libstub/efi-stub.c         |  59 +---
>  drivers/firmware/efi/libstub/efistub.h          |   7 +-
>  drivers/firmware/efi/libstub/relocate.c         |   4 +-
>  drivers/firmware/efi/libstub/riscv-stub.c       | 109 ++++++++
>  drivers/firmware/efi/riscv-runtime.c            | 143 ++++++++++
>  include/linux/pe.h                              |   3 +
>  39 files changed, 1275 insertions(+), 450 deletions(-)
>  create mode 100644 arch/riscv/include/asm/efi.h
>  create mode 100644 arch/riscv/include/asm/sections.h
>  create mode 100644 arch/riscv/kernel/efi-header.S
>  create mode 100644 arch/riscv/kernel/efi.c
>  create mode 100644 arch/riscv/kernel/image-vars.h
>  rename drivers/firmware/efi/{arm-init.c => efi-init.c} (100%)
>  create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c
>  create mode 100644 drivers/firmware/efi/riscv-runtime.c
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Palmer Dabbelt Oct. 19, 2020, 9 p.m. UTC | #2
On Mon, 19 Oct 2020 13:43:27 PDT (-0700), atishp@atishpatra.org wrote:
> On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@dabbelt.com> wrote:
>>
>> The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:
>>
>>   Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)
>>
>> are available in the Git repository at:
>>
>>   git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0
>>
>> for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:
>>
>>   RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)
>>
>> ----------------------------------------------------------------
>> RISC-V Patches for the 5.10 Merge Window, Part 1
>>
>> This contains a handful of cleanups and new features, including:
>>
>> * A handful of cleanups for our page fault handling.
>> * Improvements to how we fill out cacheinfo.
>> * Support for EFI-based systems.
>>
>> ---
>>
>> This contains a merge from the EFI tree that was necessary as some of the EFI
>> support landed over there.  It's my first time doing something like this,
>>
>> I haven't included the set_fs stuff because the base branch it depends on
>> hasn't been merged yet.  I'll probably have another merge window PR, as
>> there's more in flight (most notably the fix for new binutils I just sent out),
>> but I figured there was no reason to delay this any longer.
>>
>> There is one merge conflict, which is between my fixes and for-next branches:
>>
>>     diff --cc arch/riscv/kernel/vmlinux.lds.S
>>     index 67db80e12d1f,9795359cb9da..ffaa3da375c2
>>     --- a/arch/riscv/kernel/vmlinux.lds.S
>>     +++ b/arch/riscv/kernel/vmlinux.lds.S
>>     @@@ -66,8 -71,11 +70,13 @@@ SECTION
>>                     _etext = .;
>>             }
>>
>>      +      INIT_DATA_SECTION(16)
>>      +
>>     + #ifdef CONFIG_EFI
>>     +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
>>     +       __pecoff_text_end = .;
>>     + #endif
>>     +
>>             /* Start of data section */
>>             _sdata = .;
>>             RO_DATA(SECTION_ALIGN)
>>
>> ----------------------------------------------------------------
>> Anup Patel (1):
>>       RISC-V: Move DT mapping outof fixmap
>>
>> Ard Biesheuvel (3):
>>       efi/libstub: arm32: Base FDT and initrd placement on image address
>>       efi/libstub: Export efi_low_alloc_above() to other units
>>       efi/libstub: arm32: Use low allocation for the uncompressed kernel
>>
>
> I thought these 3 were being taken through the EFI tree. I already see
> them in the master branch.
>
> 762cd288fc4a efi/libstub: arm32: Use low allocation for the uncompressed kernel
> 1a895dbf4b66 efi/libstub: Export efi_low_alloc_above() to other units
> 6208857b8f7e efi/libstub: arm32: Base FDT and initrd placement on image address

I see them in Linus' master with those exact hashes, so IIUC this is all OK?  I
guess I just assumed they were supposed to show up in the shortlog, but it's my
first time trying one of these multi-tree merges so maybe I screwed something
up?

I obtained these by merging a tag from the EFI tree (that's already been
merged) into my tree, which looks OK to me:

    commit 8a3f30c4319dc70547f11c18da2e7b5987543aa1
    gpg: Signature made Fri 02 Oct 2020 02:30:05 PM PDT
    gpg:                using RSA key 2B3C3747446843B24A943A7A2E1319F35FBB1889
    gpg:                issuer "palmer@dabbelt.com"
    gpg: Good signature from "Palmer Dabbelt <palmer@dabbelt.com>" [ultimate]
    gpg:                 aka "Palmer Dabbelt <palmerdabbelt@google.com>" [ultimate]
    merged tag 'efi-riscv-shared-for-v5.10'
    gpg: Signature made Wed 16 Sep 2020 08:57:07 AM PDT
    gpg:                using RSA key 9CD2A0DA6AD8F7330175E2BBC237207E9574FA7D
    gpg: Good signature from "Adriaan (Ard) Biesheuvel <ard.biesheuvel@linaro.org>" [unknown]
    gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@gmail.com>" [unknown]
    gpg:                 aka "Adriaan (Ard) Biesheuvel <ardb@kernel.org>" [unknown]
    gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@arm.com>" [unknown]
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: F43D 0332 8115 A198 C900  1688 3D20 0E9C A632 9909
         Subkey fingerprint: 9CD2 A0DA 6AD8 F733 0175  E2BB C237 207E 9574 FA7D
    Merge: 54701a0d12e2 762cd288fc4a
    Author: Palmer Dabbelt <palmerdabbelt@google.com>
    Date:   Fri Oct 2 14:29:51 2020 -0700
    
        Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi into for-next
        
        Stable branch for v5.10 shared between the EFI and RISC-V trees
        
        The RISC-V EFI boot and runtime support will be merged for v5.10 via
        the RISC-V tree. However, it incorporates some changes that conflict
        with other EFI changes that are in flight, so this tag serves as a
        shared base that allows those conflicts to be resolved beforehand.
        
        * tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi:
          efi/libstub: arm32: Use low allocation for the uncompressed kernel
          efi/libstub: Export efi_low_alloc_above() to other units
          efi/libstub: arm32: Base FDT and initrd placement on image address
          efi: Rename arm-init to efi-init common for all arch
          include: pe.h: Add RISC-V related PE definition

I think the actual issue here is just that whatever I pointed git to when
generating the PR didn't contain the merge of the shared code yet, so
git-shortlog included it?

>> Atish Patra (8):
>>       include: pe.h: Add RISC-V related PE definition
>>       efi: Rename arm-init to efi-init common for all arch
>>       RISC-V: Add early ioremap support
>>       RISC-V: Implement late mapping page table allocation functions
>>       RISC-V: Add PE/COFF header for EFI stub
>>       RISC-V: Add EFI stub support.
>>       RISC-V: Add EFI runtime services
>>       RISC-V: Add page table dump support for uefi
>>
>> Palmer Dabbelt (1):
>>       Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/.../efi/efi into for-next
>>
>> Pekka Enberg (11):
>>       riscv/mm: Simplify retry logic in do_page_fault()
>>       riscv/mm/fault: Move no context handling to no_context()
>>       riscv/mm/fault: Move bad area handling to bad_area()
>>       riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()
>>       riscv/mm/fault: Simplify fault error handling
>>       riscv/mm/fault: Move fault error handling to mm_fault_error()
>>       riscv/mm/fault: Simplify mm_fault_error()
>>       riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault()
>>       riscv/mm/fault: Move access error check to function
>>       riscv/mm/fault: Fix inline placement in vmalloc_fault() declaration
>>       riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()
>>
>> Tian Tao (1):
>>       RISC-V: Fix duplicate included thread_info.h
>>
>> Zong Li (3):
>>       riscv: Set more data to cacheinfo
>>       riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
>>       riscv: Add cache information in AUX vector
>>
>>  arch/arm/include/asm/efi.h                      |  23 +-
>>  arch/arm64/include/asm/efi.h                    |   5 +-
>>  arch/riscv/Kconfig                              |  25 ++
>>  arch/riscv/Makefile                             |   1 +
>>  arch/riscv/configs/defconfig                    |   1 +
>>  arch/riscv/include/asm/Kbuild                   |   1 +
>>  arch/riscv/include/asm/cacheinfo.h              |   5 +
>>  arch/riscv/include/asm/efi.h                    |  55 ++++
>>  arch/riscv/include/asm/elf.h                    |  13 +
>>  arch/riscv/include/asm/fixmap.h                 |  16 +-
>>  arch/riscv/include/asm/io.h                     |   1 +
>>  arch/riscv/include/asm/mmu.h                    |   2 +
>>  arch/riscv/include/asm/pgtable.h                |   5 +
>>  arch/riscv/include/asm/sections.h               |  13 +
>>  arch/riscv/include/uapi/asm/auxvec.h            |  24 ++
>>  arch/riscv/kernel/Makefile                      |   2 +
>>  arch/riscv/kernel/cacheinfo.c                   |  98 +++++--
>>  arch/riscv/kernel/efi-header.S                  | 111 ++++++++
>>  arch/riscv/kernel/efi.c                         |  96 +++++++
>>  arch/riscv/kernel/head.S                        |  18 +-
>>  arch/riscv/kernel/head.h                        |   2 -
>>  arch/riscv/kernel/image-vars.h                  |  51 ++++
>>  arch/riscv/kernel/setup.c                       |  18 +-
>>  arch/riscv/kernel/vmlinux.lds.S                 |  23 +-
>>  arch/riscv/mm/fault.c                           | 356 +++++++++++++-----------
>>  arch/riscv/mm/init.c                            | 191 ++++++++++---
>>  arch/riscv/mm/ptdump.c                          |  48 +++-
>>  drivers/firmware/efi/Kconfig                    |   3 +-
>>  drivers/firmware/efi/Makefile                   |   4 +-
>>  drivers/firmware/efi/{arm-init.c => efi-init.c} |   0
>>  drivers/firmware/efi/libstub/Makefile           |  10 +
>>  drivers/firmware/efi/libstub/arm32-stub.c       | 178 +++---------
>>  drivers/firmware/efi/libstub/arm64-stub.c       |   1 -
>>  drivers/firmware/efi/libstub/efi-stub.c         |  59 +---
>>  drivers/firmware/efi/libstub/efistub.h          |   7 +-
>>  drivers/firmware/efi/libstub/relocate.c         |   4 +-
>>  drivers/firmware/efi/libstub/riscv-stub.c       | 109 ++++++++
>>  drivers/firmware/efi/riscv-runtime.c            | 143 ++++++++++
>>  include/linux/pe.h                              |   3 +
>>  39 files changed, 1275 insertions(+), 450 deletions(-)
>>  create mode 100644 arch/riscv/include/asm/efi.h
>>  create mode 100644 arch/riscv/include/asm/sections.h
>>  create mode 100644 arch/riscv/kernel/efi-header.S
>>  create mode 100644 arch/riscv/kernel/efi.c
>>  create mode 100644 arch/riscv/kernel/image-vars.h
>>  rename drivers/firmware/efi/{arm-init.c => efi-init.c} (100%)
>>  create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c
>>  create mode 100644 drivers/firmware/efi/riscv-runtime.c
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
Ard Biesheuvel Oct. 19, 2020, 9:21 p.m. UTC | #3
On Mon, 19 Oct 2020 at 23:00, Palmer Dabbelt <palmer@dabbelt.com> wrote:
>
> On Mon, 19 Oct 2020 13:43:27 PDT (-0700), atishp@atishpatra.org wrote:
> > On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@dabbelt.com> wrote:
> >>
> >> The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:
> >>
> >>   Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)
> >>
> >> are available in the Git repository at:
> >>
> >>   git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0
> >>
> >> for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:
> >>
> >>   RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)
> >>
> >> ----------------------------------------------------------------
> >> RISC-V Patches for the 5.10 Merge Window, Part 1
> >>
> >> This contains a handful of cleanups and new features, including:
> >>
> >> * A handful of cleanups for our page fault handling.
> >> * Improvements to how we fill out cacheinfo.
> >> * Support for EFI-based systems.
> >>
> >> ---
> >>
> >> This contains a merge from the EFI tree that was necessary as some of the EFI
> >> support landed over there.  It's my first time doing something like this,
> >>
> >> I haven't included the set_fs stuff because the base branch it depends on
> >> hasn't been merged yet.  I'll probably have another merge window PR, as
> >> there's more in flight (most notably the fix for new binutils I just sent out),
> >> but I figured there was no reason to delay this any longer.
> >>
> >> There is one merge conflict, which is between my fixes and for-next branches:
> >>
> >>     diff --cc arch/riscv/kernel/vmlinux.lds.S
> >>     index 67db80e12d1f,9795359cb9da..ffaa3da375c2
> >>     --- a/arch/riscv/kernel/vmlinux.lds.S
> >>     +++ b/arch/riscv/kernel/vmlinux.lds.S
> >>     @@@ -66,8 -71,11 +70,13 @@@ SECTION
> >>                     _etext = .;
> >>             }
> >>
> >>      +      INIT_DATA_SECTION(16)
> >>      +
> >>     + #ifdef CONFIG_EFI
> >>     +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
> >>     +       __pecoff_text_end = .;
> >>     + #endif
> >>     +
> >>             /* Start of data section */
> >>             _sdata = .;
> >>             RO_DATA(SECTION_ALIGN)
> >>
> >> ----------------------------------------------------------------
> >> Anup Patel (1):
> >>       RISC-V: Move DT mapping outof fixmap
> >>
> >> Ard Biesheuvel (3):
> >>       efi/libstub: arm32: Base FDT and initrd placement on image address
> >>       efi/libstub: Export efi_low_alloc_above() to other units
> >>       efi/libstub: arm32: Use low allocation for the uncompressed kernel
> >>
> >
> > I thought these 3 were being taken through the EFI tree. I already see
> > them in the master branch.
> >
> > 762cd288fc4a efi/libstub: arm32: Use low allocation for the uncompressed kernel
> > 1a895dbf4b66 efi/libstub: Export efi_low_alloc_above() to other units
> > 6208857b8f7e efi/libstub: arm32: Base FDT and initrd placement on image address
>
> I see them in Linus' master with those exact hashes, so IIUC this is all OK?  I
> guess I just assumed they were supposed to show up in the shortlog, but it's my
> first time trying one of these multi-tree merges so maybe I screwed something
> up?
>
> I obtained these by merging a tag from the EFI tree (that's already been
> merged) into my tree, which looks OK to me:
>
>     commit 8a3f30c4319dc70547f11c18da2e7b5987543aa1
>     gpg: Signature made Fri 02 Oct 2020 02:30:05 PM PDT
>     gpg:                using RSA key 2B3C3747446843B24A943A7A2E1319F35FBB1889
>     gpg:                issuer "palmer@dabbelt.com"
>     gpg: Good signature from "Palmer Dabbelt <palmer@dabbelt.com>" [ultimate]
>     gpg:                 aka "Palmer Dabbelt <palmerdabbelt@google.com>" [ultimate]
>     merged tag 'efi-riscv-shared-for-v5.10'
>     gpg: Signature made Wed 16 Sep 2020 08:57:07 AM PDT
>     gpg:                using RSA key 9CD2A0DA6AD8F7330175E2BBC237207E9574FA7D
>     gpg: Good signature from "Adriaan (Ard) Biesheuvel <ard.biesheuvel@linaro.org>" [unknown]
>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@gmail.com>" [unknown]
>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ardb@kernel.org>" [unknown]
>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@arm.com>" [unknown]
>     gpg: WARNING: This key is not certified with a trusted signature!
>     gpg:          There is no indication that the signature belongs to the owner.
>     Primary key fingerprint: F43D 0332 8115 A198 C900  1688 3D20 0E9C A632 9909
>          Subkey fingerprint: 9CD2 A0DA 6AD8 F733 0175  E2BB C237 207E 9574 FA7D
>     Merge: 54701a0d12e2 762cd288fc4a
>     Author: Palmer Dabbelt <palmerdabbelt@google.com>
>     Date:   Fri Oct 2 14:29:51 2020 -0700
>
>         Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi into for-next
>
>         Stable branch for v5.10 shared between the EFI and RISC-V trees
>
>         The RISC-V EFI boot and runtime support will be merged for v5.10 via
>         the RISC-V tree. However, it incorporates some changes that conflict
>         with other EFI changes that are in flight, so this tag serves as a
>         shared base that allows those conflicts to be resolved beforehand.
>
>         * tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi:
>           efi/libstub: arm32: Use low allocation for the uncompressed kernel
>           efi/libstub: Export efi_low_alloc_above() to other units
>           efi/libstub: arm32: Base FDT and initrd placement on image address
>           efi: Rename arm-init to efi-init common for all arch
>           include: pe.h: Add RISC-V related PE definition
>
> I think the actual issue here is just that whatever I pointed git to when
> generating the PR didn't contain the merge of the shared code yet, so
> git-shortlog included it?
>

This all looks fine. Usually in such cases, you don't know which
branch will gets pulled first, so it makes sense for each PR to
describe the shared changes.
Palmer Dabbelt Oct. 19, 2020, 9:30 p.m. UTC | #4
On Mon, 19 Oct 2020 14:21:33 PDT (-0700), ardb@kernel.org wrote:
> On Mon, 19 Oct 2020 at 23:00, Palmer Dabbelt <palmer@dabbelt.com> wrote:
>>
>> On Mon, 19 Oct 2020 13:43:27 PDT (-0700), atishp@atishpatra.org wrote:
>> > On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@dabbelt.com> wrote:
>> >>
>> >> The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:
>> >>
>> >>   Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)
>> >>
>> >> are available in the Git repository at:
>> >>
>> >>   git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0
>> >>
>> >> for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:
>> >>
>> >>   RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)
>> >>
>> >> ----------------------------------------------------------------
>> >> RISC-V Patches for the 5.10 Merge Window, Part 1
>> >>
>> >> This contains a handful of cleanups and new features, including:
>> >>
>> >> * A handful of cleanups for our page fault handling.
>> >> * Improvements to how we fill out cacheinfo.
>> >> * Support for EFI-based systems.
>> >>
>> >> ---
>> >>
>> >> This contains a merge from the EFI tree that was necessary as some of the EFI
>> >> support landed over there.  It's my first time doing something like this,
>> >>
>> >> I haven't included the set_fs stuff because the base branch it depends on
>> >> hasn't been merged yet.  I'll probably have another merge window PR, as
>> >> there's more in flight (most notably the fix for new binutils I just sent out),
>> >> but I figured there was no reason to delay this any longer.
>> >>
>> >> There is one merge conflict, which is between my fixes and for-next branches:
>> >>
>> >>     diff --cc arch/riscv/kernel/vmlinux.lds.S
>> >>     index 67db80e12d1f,9795359cb9da..ffaa3da375c2
>> >>     --- a/arch/riscv/kernel/vmlinux.lds.S
>> >>     +++ b/arch/riscv/kernel/vmlinux.lds.S
>> >>     @@@ -66,8 -71,11 +70,13 @@@ SECTION
>> >>                     _etext = .;
>> >>             }
>> >>
>> >>      +      INIT_DATA_SECTION(16)
>> >>      +
>> >>     + #ifdef CONFIG_EFI
>> >>     +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
>> >>     +       __pecoff_text_end = .;
>> >>     + #endif
>> >>     +
>> >>             /* Start of data section */
>> >>             _sdata = .;
>> >>             RO_DATA(SECTION_ALIGN)
>> >>
>> >> ----------------------------------------------------------------
>> >> Anup Patel (1):
>> >>       RISC-V: Move DT mapping outof fixmap
>> >>
>> >> Ard Biesheuvel (3):
>> >>       efi/libstub: arm32: Base FDT and initrd placement on image address
>> >>       efi/libstub: Export efi_low_alloc_above() to other units
>> >>       efi/libstub: arm32: Use low allocation for the uncompressed kernel
>> >>
>> >
>> > I thought these 3 were being taken through the EFI tree. I already see
>> > them in the master branch.
>> >
>> > 762cd288fc4a efi/libstub: arm32: Use low allocation for the uncompressed kernel
>> > 1a895dbf4b66 efi/libstub: Export efi_low_alloc_above() to other units
>> > 6208857b8f7e efi/libstub: arm32: Base FDT and initrd placement on image address
>>
>> I see them in Linus' master with those exact hashes, so IIUC this is all OK?  I
>> guess I just assumed they were supposed to show up in the shortlog, but it's my
>> first time trying one of these multi-tree merges so maybe I screwed something
>> up?
>>
>> I obtained these by merging a tag from the EFI tree (that's already been
>> merged) into my tree, which looks OK to me:
>>
>>     commit 8a3f30c4319dc70547f11c18da2e7b5987543aa1
>>     gpg: Signature made Fri 02 Oct 2020 02:30:05 PM PDT
>>     gpg:                using RSA key 2B3C3747446843B24A943A7A2E1319F35FBB1889
>>     gpg:                issuer "palmer@dabbelt.com"
>>     gpg: Good signature from "Palmer Dabbelt <palmer@dabbelt.com>" [ultimate]
>>     gpg:                 aka "Palmer Dabbelt <palmerdabbelt@google.com>" [ultimate]
>>     merged tag 'efi-riscv-shared-for-v5.10'
>>     gpg: Signature made Wed 16 Sep 2020 08:57:07 AM PDT
>>     gpg:                using RSA key 9CD2A0DA6AD8F7330175E2BBC237207E9574FA7D
>>     gpg: Good signature from "Adriaan (Ard) Biesheuvel <ard.biesheuvel@linaro.org>" [unknown]
>>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@gmail.com>" [unknown]
>>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ardb@kernel.org>" [unknown]
>>     gpg:                 aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@arm.com>" [unknown]
>>     gpg: WARNING: This key is not certified with a trusted signature!
>>     gpg:          There is no indication that the signature belongs to the owner.
>>     Primary key fingerprint: F43D 0332 8115 A198 C900  1688 3D20 0E9C A632 9909
>>          Subkey fingerprint: 9CD2 A0DA 6AD8 F733 0175  E2BB C237 207E 9574 FA7D
>>     Merge: 54701a0d12e2 762cd288fc4a
>>     Author: Palmer Dabbelt <palmerdabbelt@google.com>
>>     Date:   Fri Oct 2 14:29:51 2020 -0700
>>
>>         Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi into for-next
>>
>>         Stable branch for v5.10 shared between the EFI and RISC-V trees
>>
>>         The RISC-V EFI boot and runtime support will be merged for v5.10 via
>>         the RISC-V tree. However, it incorporates some changes that conflict
>>         with other EFI changes that are in flight, so this tag serves as a
>>         shared base that allows those conflicts to be resolved beforehand.
>>
>>         * tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi:
>>           efi/libstub: arm32: Use low allocation for the uncompressed kernel
>>           efi/libstub: Export efi_low_alloc_above() to other units
>>           efi/libstub: arm32: Base FDT and initrd placement on image address
>>           efi: Rename arm-init to efi-init common for all arch
>>           include: pe.h: Add RISC-V related PE definition
>>
>> I think the actual issue here is just that whatever I pointed git to when
>> generating the PR didn't contain the merge of the shared code yet, so
>> git-shortlog included it?
>>
>
> This all looks fine. Usually in such cases, you don't know which
> branch will gets pulled first, so it makes sense for each PR to
> describe the shared changes.

OK, good to know -- I'd just been pointing my PRs at Linus' latest tag, rather
than directly at master, as it's less of a moving target.  Sounds like that's a
reasonable thing to do, so I'll probably keep doing it (unless I forget ;))

Linus: Looks like this was all actually fine, but LMK if you have any issues.
Linus Torvalds Oct. 20, 2020, 1:23 a.m. UTC | #5
On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@dabbelt.com> wrote:
>
> There is one merge conflict, which is between my fixes and for-next branches:
>
>     diff --cc arch/riscv/kernel/vmlinux.lds.S
>     index 67db80e12d1f,9795359cb9da..ffaa3da375c2
>     --- a/arch/riscv/kernel/vmlinux.lds.S
>     +++ b/arch/riscv/kernel/vmlinux.lds.S
>     @@@ -66,8 -71,11 +70,13 @@@ SECTION
>                     _etext = .;
>             }
>
>      +      INIT_DATA_SECTION(16)
>      +
>     + #ifdef CONFIG_EFI
>     +       . = ALIGN(PECOFF_SECTION_ALIGNMENT);
>     +       __pecoff_text_end = .;
>     + #endif
>     +
>             /* Start of data section */
>             _sdata = .;
>             RO_DATA(SECTION_ALIGN)

Hmm.

I put the INIT_DATA_SECTION after the __pecoff_text_end symbol. I
don't think INIT_DATA_SECTION should be considered text

I suspect it doesn't matter, but if there is some odd dependency that
I missed, this is a heads-up that my resolution doesn't look exactly
like the above.

               Linus
pr-tracker-bot@kernel.org Oct. 20, 2020, 1:23 a.m. UTC | #6
The pull request you sent on Mon, 19 Oct 2020 12:08:11 -0700 (PDT):

> git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/270315b8235e3d10c2e360cff56c2f9e0915a252

Thank you!