[PATCH] hw/loongarch: Modify flash block size to 256K

Xianglai Li posted 1 patch 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240624033319.999631-1-lixianglai@loongson.cn
Maintainers: Song Gao <gaosong@loongson.cn>
include/hw/loongarch/virt.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] hw/loongarch: Modify flash block size to 256K
Posted by Xianglai Li 5 months ago
loongarch added a common library for edk2 to
parse flash base addresses through fdt.
For compatibility with other architectures,
the flash block size in qemu is now changed to 256k.

Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
---
Cc: Bibo Mao <maobibo@loongson.cn>
Cc: Song Gao <gaosong@loongson.cn>

 include/hw/loongarch/virt.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h
index 8fdfacf268..603c1cebdb 100644
--- a/include/hw/loongarch/virt.h
+++ b/include/hw/loongarch/virt.h
@@ -20,7 +20,7 @@
 #define VIRT_FWCFG_BASE         0x1e020000UL
 #define VIRT_BIOS_BASE          0x1c000000UL
 #define VIRT_BIOS_SIZE          (16 * MiB)
-#define VIRT_FLASH_SECTOR_SIZE  (128 * KiB)
+#define VIRT_FLASH_SECTOR_SIZE  (256 * KiB)
 #define VIRT_FLASH0_BASE        VIRT_BIOS_BASE
 #define VIRT_FLASH0_SIZE        VIRT_BIOS_SIZE
 #define VIRT_FLASH1_BASE        0x1d000000UL
-- 
2.39.1
Re: [PATCH] hw/loongarch: Modify flash block size to 256K
Posted by gaosong 4 months, 2 weeks ago
在 2024/6/24 上午11:33, Xianglai Li 写道:
> loongarch added a common library for edk2 to
> parse flash base addresses through fdt.
> For compatibility with other architectures,
> the flash block size in qemu is now changed to 256k.
>
> Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
> ---
> Cc: Bibo Mao <maobibo@loongson.cn>
> Cc: Song Gao <gaosong@loongson.cn>
Reviewed-by: Song Gao <gaosong@loongson.cn>

Thanks.
Song Gao
>   include/hw/loongarch/virt.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h
> index 8fdfacf268..603c1cebdb 100644
> --- a/include/hw/loongarch/virt.h
> +++ b/include/hw/loongarch/virt.h
> @@ -20,7 +20,7 @@
>   #define VIRT_FWCFG_BASE         0x1e020000UL
>   #define VIRT_BIOS_BASE          0x1c000000UL
>   #define VIRT_BIOS_SIZE          (16 * MiB)
> -#define VIRT_FLASH_SECTOR_SIZE  (128 * KiB)
> +#define VIRT_FLASH_SECTOR_SIZE  (256 * KiB)
>   #define VIRT_FLASH0_BASE        VIRT_BIOS_BASE
>   #define VIRT_FLASH0_SIZE        VIRT_BIOS_SIZE
>   #define VIRT_FLASH1_BASE        0x1d000000UL


Re: [PATCH] hw/loongarch: Modify flash block size to 256K
Posted by Philippe Mathieu-Daudé 5 months ago
Hi Xianglai,

On 24/6/24 05:33, Xianglai Li wrote:
> loongarch added a common library for edk2 to
> parse flash base addresses through fdt.
> For compatibility with other architectures,
> the flash block size in qemu is now changed to 256k.

Why is that an issue / concern?

> Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
> ---
> Cc: Bibo Mao <maobibo@loongson.cn>
> Cc: Song Gao <gaosong@loongson.cn>
> 
>   include/hw/loongarch/virt.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h
> index 8fdfacf268..603c1cebdb 100644
> --- a/include/hw/loongarch/virt.h
> +++ b/include/hw/loongarch/virt.h
> @@ -20,7 +20,7 @@
>   #define VIRT_FWCFG_BASE         0x1e020000UL
>   #define VIRT_BIOS_BASE          0x1c000000UL
>   #define VIRT_BIOS_SIZE          (16 * MiB)
> -#define VIRT_FLASH_SECTOR_SIZE  (128 * KiB)
> +#define VIRT_FLASH_SECTOR_SIZE  (256 * KiB)
>   #define VIRT_FLASH0_BASE        VIRT_BIOS_BASE
>   #define VIRT_FLASH0_SIZE        VIRT_BIOS_SIZE
>   #define VIRT_FLASH1_BASE        0x1d000000UL
Re: [PATCH] hw/loongarch: Modify flash block size to 256K
Posted by lixianglai 5 months ago
Hi Philippe:
> Hi Xianglai,
>
> On 24/6/24 05:33, Xianglai Li wrote:
>> loongarch added a common library for edk2 to
>> parse flash base addresses through fdt.
>> For compatibility with other architectures,
>> the flash block size in qemu is now changed to 256k.
>
> Why is that an issue / concern?
>

The patch submitted in edk2 is as follows:
https://edk2.groups.io/g/devel/message/118988
The commit ID is:
cac1ea6c2a6eac1772556e718154a00fcb093b88

+
+#include <Protocol/FdtClient.h>
+#include <stdbool.h>
+
+#define QEMU_NOR_BLOCK_SIZE  SIZE_256KB

In this patch, only the flash base address is resolved from the fdt,
and there is no flash block size information.
The default flash block size of the old implementation is 256K.
In order to be compatible with the flash block size used by the existing
architecture to achieve the purpose of minimum modification,
The default flash block size in this patch is 256K.

The subsequent bios of loongarch will also use the lib library provided by this patch,
so the flash block size needs to be changed to 256K。

Thanks,
Xianglai.

>> Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
>> ---
>> Cc: Bibo Mao <maobibo@loongson.cn>
>> Cc: Song Gao <gaosong@loongson.cn>
>>
>>   include/hw/loongarch/virt.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h
>> index 8fdfacf268..603c1cebdb 100644
>> --- a/include/hw/loongarch/virt.h
>> +++ b/include/hw/loongarch/virt.h
>> @@ -20,7 +20,7 @@
>>   #define VIRT_FWCFG_BASE         0x1e020000UL
>>   #define VIRT_BIOS_BASE          0x1c000000UL
>>   #define VIRT_BIOS_SIZE          (16 * MiB)
>> -#define VIRT_FLASH_SECTOR_SIZE  (128 * KiB)
>> +#define VIRT_FLASH_SECTOR_SIZE  (256 * KiB)
>>   #define VIRT_FLASH0_BASE        VIRT_BIOS_BASE
>>   #define VIRT_FLASH0_SIZE        VIRT_BIOS_SIZE
>>   #define VIRT_FLASH1_BASE        0x1d000000UL
>