[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/7] ppc/pnv: Use skiboot addresses to load kernel and ramfs
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH 3/7] ppc/pnv: Use skiboot addresses to load kernel and ramfs |
Date: |
Wed, 27 Jan 2021 08:10:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
On 1/27/21 2:27 AM, Murilo Opsfelder Araújo wrote:
> Bonjour, Cédric.
>
> On Tuesday, January 26, 2021 2:10:55 PM -03 Cédric Le Goater wrote:
>> The current settings are useful to load large kernels (with debug) but
>> it moves the initrd image in a memory region not protected by
>> skiboot. If skiboot is compiled with DEBUG=1, memory poisoning will
>> corrupt the initrd.
>>
>> Cc: Murilo Opsfelder Araujo <muriloo@linux.ibm.com>
>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
>> ---
>>
>> If we want to increase the kernel size limit as commit b45b56baeecd
>> ("ppc/pnv: increase kernel size limit to 256MiB") intented to do, I
>> think we should add a machine option.
>
> Is this a problem on bare-metal as well?
>
> I'm wondering if we should address this the other way around by increasing
> KERNEL_LOAD_SIZE and INITRAMFS_LOAD_SIZE in skiboot to accomodate large kernel
> and initramfs images.
The different memory areas are all strictly defined here :
https://github.com/open-power/skiboot/blob/master/include/mem-map.h
C.
> I think Linux debuginfo images won't get smaller with time and, assuming this
> also happens on bare-metal (I haven't verified), updating skiboot looks more
> appropriate.
>
> Bear in mind that I'm not an skiboot expert, I'm just considering the
> possibilities.
>
>>
>> hw/ppc/pnv.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
>> index 14fc9758a973..e500c2e2437e 100644
>> --- a/hw/ppc/pnv.c
>> +++ b/hw/ppc/pnv.c
>> @@ -65,9 +65,9 @@
>> #define FW_MAX_SIZE (16 * MiB)
>>
>> #define KERNEL_LOAD_ADDR 0x20000000
>> -#define KERNEL_MAX_SIZE (256 * MiB)
>> -#define INITRD_LOAD_ADDR 0x60000000
>> -#define INITRD_MAX_SIZE (256 * MiB)
>> +#define KERNEL_MAX_SIZE (128 * MiB)
>> +#define INITRD_LOAD_ADDR 0x28000000
>> +#define INITRD_MAX_SIZE (128 * MiB)
>>
>> static const char *pnv_chip_core_typename(const PnvChip *o)
>> {
>
> Cheers!
>