* [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes
@ 2013-09-13 4:33 Antony Pavlov
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov
0 siblings, 2 replies; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13 4:33 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Richard Henderson, Aurelien Jarno, Stefan Weil
Changes since v1:
* include/sizes.h -> include/qemu/sizes.h
* fix copyright header;
* fix formatting: drop tabs;
* use the BIT() macro, so it's easy-to-read the constants column;
also the BIT() macro casts constant to UL;
* rebase on updated master;
* take into account the "mips_malta: support up to 2GiB RAM" commit.
[RFC v2 1/2] include/qemu: introduce sizes.h
[RFC v2 2/2] hw/mips: use sizes.h macros
The sizes.h macros is a easy-to-read method of
power-of-two memory sizes representation. The sizes.h
macros are actively used in linux kernel and other
projects, so let's use them in QEMU too.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h
2013-09-13 4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
@ 2013-09-13 4:33 ` Antony Pavlov
2013-09-13 5:53 ` Stefan Weil
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov
1 sibling, 1 reply; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13 4:33 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Richard Henderson, Antony Pavlov, Aurelien Jarno,
Stefan Weil
The header file sizes.h is used in linux kernel,
barebox bootloader and u-boot bootloader. It provides
the short and easy-to-read names for power-of-two
numbers. The numbers like this are othen used
for memory range sizes.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Richard Henderson <rth@twiddle.net>
---
include/qemu/sizes.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 include/qemu/sizes.h
diff --git a/include/qemu/sizes.h b/include/qemu/sizes.h
new file mode 100644
index 0000000..a683b60
--- /dev/null
+++ b/include/qemu/sizes.h
@@ -0,0 +1,61 @@
+/*
+ * Handy size definitions
+ *
+ * Copyright (C) 2013 Antony Pavlov <antonynpavlov@gmail.com>
+ *
+ * Inspired by linux/sizes.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef QEMU_SIZES_H
+#define QEMU_SIZES_H
+
+#include <qemu/bitops.h>
+
+#define SZ_1 BIT(0)
+#define SZ_2 BIT(1)
+#define SZ_4 BIT(2)
+#define SZ_8 BIT(3)
+#define SZ_16 BIT(4)
+#define SZ_32 BIT(5)
+#define SZ_64 BIT(6)
+#define SZ_128 BIT(7)
+#define SZ_256 BIT(8)
+#define SZ_512 BIT(9)
+
+#define SZ_1K BIT(10)
+#define SZ_2K BIT(11)
+#define SZ_4K BIT(12)
+#define SZ_8K BIT(13)
+#define SZ_16K BIT(14)
+#define SZ_32K BIT(15)
+#define SZ_64K BIT(16)
+#define SZ_128K BIT(17)
+#define SZ_256K BIT(18)
+#define SZ_512K BIT(19)
+
+#define SZ_1M BIT(20)
+#define SZ_2M BIT(21)
+#define SZ_4M BIT(22)
+#define SZ_8M BIT(23)
+#define SZ_16M BIT(24)
+#define SZ_32M BIT(25)
+#define SZ_64M BIT(26)
+#define SZ_128M BIT(27)
+#define SZ_256M BIT(28)
+#define SZ_512M BIT(29)
+
+#define SZ_1G BIT(30)
+#define SZ_2G BIT(31)
+
+#endif /* QEMU_SIZES_H */
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros
2013-09-13 4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
@ 2013-09-13 4:33 ` Antony Pavlov
1 sibling, 0 replies; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13 4:33 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Richard Henderson, Antony Pavlov, Aurelien Jarno,
Stefan Weil
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
---
hw/mips/mips_malta.c | 25 +++++++++++++------------
include/hw/mips/bios.h | 3 ++-
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 05c8771..604832f 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -51,6 +51,7 @@
#include "sysemu/qtest.h"
#include "qemu/error-report.h"
#include "hw/empty_slot.h"
+#include "qemu/sizes.h"
//#define DEBUG_BOARD_INIT
@@ -63,7 +64,7 @@
#define FPGA_ADDRESS 0x1f000000ULL
#define RESET_ADDRESS 0x1fc00000ULL
-#define FLASH_SIZE 0x400000
+#define FLASH_SIZE SZ_4M
#define MAX_IDE_BUS 2
@@ -827,8 +828,8 @@ static int64_t load_kernel (void)
}
prom_set(prom_buf, prom_index++, "memsize");
- prom_set(prom_buf, prom_index++, "%i",
- MIN(loaderparams.ram_size, 256 << 20));
+ prom_set(prom_buf, prom_index++, "%li",
+ MIN(loaderparams.ram_size, SZ_256M));
prom_set(prom_buf, prom_index++, "modetty0");
prom_set(prom_buf, prom_index++, "38400n8r");
prom_set(prom_buf, prom_index++, NULL);
@@ -954,10 +955,10 @@ void mips_malta_init(QEMUMachineInitArgs *args)
env = &cpu->env;
/* allocate RAM */
- if (ram_size > (2048u << 20)) {
+ if (ram_size > SZ_2G) {
fprintf(stderr,
- "qemu: Too much memory for this machine: %d MB, maximum 2048 MB\n",
- ((unsigned int)ram_size / (1 << 20)));
+ "qemu: Too much memory for this machine: %ld MB, maximum 2048 MB\n",
+ ((unsigned long)ram_size / SZ_1M));
exit(1);
}
@@ -968,17 +969,17 @@ void mips_malta_init(QEMUMachineInitArgs *args)
/* alias for pre IO hole access */
memory_region_init_alias(ram_low_preio, NULL, "mips_malta_low_preio.ram",
- ram_high, 0, MIN(ram_size, (256 << 20)));
+ ram_high, 0, MIN(ram_size, SZ_256M));
memory_region_add_subregion(system_memory, 0, ram_low_preio);
/* alias for post IO hole access, if there is enough RAM */
- if (ram_size > (512 << 20)) {
+ if (ram_size > SZ_512M) {
ram_low_postio = g_new(MemoryRegion, 1);
memory_region_init_alias(ram_low_postio, NULL,
"mips_malta_low_postio.ram",
- ram_high, 512 << 20,
- ram_size - (512 << 20));
- memory_region_add_subregion(system_memory, 512 << 20, ram_low_postio);
+ ram_high, SZ_512M,
+ ram_size - SZ_512M);
+ memory_region_add_subregion(system_memory, SZ_512M, ram_low_postio);
}
/* generate SPD EEPROM data */
@@ -1012,7 +1013,7 @@ void mips_malta_init(QEMUMachineInitArgs *args)
fl_idx++;
if (kernel_filename) {
/* Write a small bootloader to the flash location. */
- loaderparams.ram_size = MIN(ram_size, 256 << 20);
+ loaderparams.ram_size = MIN(ram_size, SZ_256M);
loaderparams.kernel_filename = kernel_filename;
loaderparams.kernel_cmdline = kernel_cmdline;
loaderparams.initrd_filename = initrd_filename;
diff --git a/include/hw/mips/bios.h b/include/hw/mips/bios.h
index b4b88ac..3d7da4b 100644
--- a/include/hw/mips/bios.h
+++ b/include/hw/mips/bios.h
@@ -1,6 +1,7 @@
#include "cpu.h"
+#include "qemu/sizes.h"
-#define BIOS_SIZE (4 * 1024 * 1024)
+#define BIOS_SIZE SZ_4M
#ifdef TARGET_WORDS_BIGENDIAN
#define BIOS_FILENAME "mips_bios.bin"
#else
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
@ 2013-09-13 5:53 ` Stefan Weil
0 siblings, 0 replies; 4+ messages in thread
From: Stefan Weil @ 2013-09-13 5:53 UTC (permalink / raw)
To: Antony Pavlov
Cc: Paolo Bonzini, qemu-devel, Aurelien Jarno, Richard Henderson
Am 13.09.2013 06:33, schrieb Antony Pavlov:
> The header file sizes.h is used in linux kernel,
> barebox bootloader and u-boot bootloader. It provides
> the short and easy-to-read names for power-of-two
> numbers. The numbers like this are othen used
> for memory range sizes.
>
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> Reviewed-by: Stefan Weil <sw@weilnetz.de>
> Reviewed-by: Richard Henderson <rth@twiddle.net>
This list is an incorrect interpretation of Reviewed-by.
Only people who sent a Reviewed-by signed with their name
may be cited here (not everybody who sent a comment).
> ---
> include/qemu/sizes.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 61 insertions(+)
> create mode 100644 include/qemu/sizes.h
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-09-13 5:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-13 4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
2013-09-13 5:53 ` Stefan Weil
2013-09-13 4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).