|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 6/6] xen/arm: Replace early_printk call to printk call
Now that the console supports earlyprintk, we can get a rid of
early_printk call.
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
---
xen/arch/arm/early_printk.c | 32 --------------------------------
xen/arch/arm/setup.c | 28 +++++++++++++---------------
xen/common/device_tree.c | 36 +++++++++++++-----------------------
xen/drivers/char/dt-uart.c | 9 ++++-----
xen/drivers/char/exynos4210-uart.c | 13 +++++--------
xen/drivers/char/omap-uart.c | 13 ++++++-------
xen/drivers/char/pl011.c | 13 ++++++-------
xen/drivers/video/arm_hdlcd.c | 29 ++++++++++++++---------------
xen/include/asm-arm/early_printk.h | 23 +----------------------
9 files changed, 62 insertions(+), 134 deletions(-)
diff --git a/xen/arch/arm/early_printk.c b/xen/arch/arm/early_printk.c
index affe424..9119c8c 100644
--- a/xen/arch/arm/early_printk.c
+++ b/xen/arch/arm/early_printk.c
@@ -18,9 +18,6 @@
void early_putch(char c);
void early_flush(void);
-/* Early printk buffer */
-static char __initdata buf[512];
-
void early_puts(const char *s)
{
while (*s != '\0') {
@@ -36,32 +33,3 @@ void early_puts(const char *s)
*/
early_flush();
}
-
-static void __init early_vprintk(const char *fmt, va_list args)
-{
- vsnprintf(buf, sizeof(buf), fmt, args);
- early_puts(buf);
-}
-
-void __init early_printk(const char *fmt, ...)
-{
- va_list args;
-
- va_start(args, fmt);
- early_vprintk(fmt, args);
- va_end(args);
-}
-
-void __attribute__((noreturn)) __init
-early_panic(const char *fmt, ...)
-{
- va_list args;
-
- va_start(args, fmt);
- early_vprintk(fmt, args);
- va_end(args);
-
- early_printk("\n\nEarly Panic: Stopping\n");
-
- while(1);
-}
diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 840b04b..76b4273 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -39,7 +39,6 @@
#include <asm/page.h>
#include <asm/current.h>
#include <asm/setup.h>
-#include <asm/early_printk.h>
#include <asm/gic.h>
#include <asm/cpufeature.h>
#include <asm/platform.h>
@@ -346,10 +345,10 @@ static paddr_t __init get_xen_paddr(void)
}
if ( !paddr )
- early_panic("Not enough memory to relocate Xen");
+ panic("Not enough memory to relocate Xen");
- early_printk("Placing Xen at 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
- paddr, paddr + min_size);
+ printk("Placing Xen at 0x%"PRIpaddr"-0x%"PRIpaddr"\n",
+ paddr, paddr + min_size);
early_info.modules.module[MOD_XEN].start = paddr;
early_info.modules.module[MOD_XEN].size = min_size;
@@ -371,7 +370,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t
dtb_size)
void *fdt;
if ( !early_info.mem.nr_banks )
- early_panic("No memory bank");
+ panic("No memory bank");
/*
* We are going to accumulate two regions here.
@@ -430,8 +429,8 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t
dtb_size)
if ( i != early_info.mem.nr_banks )
{
- early_printk("WARNING: only using %d out of %d memory banks\n",
- i, early_info.mem.nr_banks);
+ printk("WARNING: only using %d out of %d memory banks\n",
+ i, early_info.mem.nr_banks);
early_info.mem.nr_banks = i;
}
@@ -465,14 +464,13 @@ static void __init setup_mm(unsigned long dtb_paddr,
size_t dtb_size)
} while ( xenheap_pages > 128<<(20-PAGE_SHIFT) );
if ( ! e )
- early_panic("Not not enough space for xenheap");
+ panic("Not not enough space for xenheap");
domheap_pages = heap_pages - xenheap_pages;
- early_printk("Xen heap: %"PRIpaddr"-%"PRIpaddr" (%lu pages)\n",
- e - (pfn_to_paddr(xenheap_pages)), e,
- xenheap_pages);
- early_printk("Dom heap: %lu pages\n", domheap_pages);
+ printk("Xen heap: %"PRIpaddr"-%"PRIpaddr" (%lu pages)\n",
+ e - (pfn_to_paddr(xenheap_pages)), e, xenheap_pages);
+ printk("Dom heap: %lu pages\n", domheap_pages);
setup_xenheap_mappings((e >> PAGE_SHIFT) - xenheap_pages, xenheap_pages);
@@ -606,8 +604,8 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t
dtb_size)
if ( bank != early_info.mem.nr_banks )
{
- early_printk("WARNING: only using %d out of %d memory banks\n",
- bank, early_info.mem.nr_banks);
+ printk("WARNING: only using %d out of %d memory banks\n",
+ bank, early_info.mem.nr_banks);
early_info.mem.nr_banks = bank;
}
@@ -672,7 +670,7 @@ void __init start_xen(unsigned long boot_phys_offset,
fdt_size = device_tree_early_init(device_tree_flattened, fdt_paddr);
cmdline = device_tree_bootargs(device_tree_flattened);
- early_printk("Command line: %s\n", cmdline);
+ printk("Command line: %s\n", cmdline);
cmdline_parse(cmdline);
setup_pagetables(boot_phys_offset, get_xen_paddr());
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 84e709d..c35aee1 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -23,7 +23,6 @@
#include <xen/cpumask.h>
#include <xen/ctype.h>
#include <xen/lib.h>
-#include <asm/early_printk.h>
struct dt_early_info __initdata early_info;
const void *device_tree_flattened;
@@ -54,16 +53,7 @@ struct dt_alias_prop {
static LIST_HEAD(aliases_lookup);
-/* Some device tree functions may be called both before and after the
- console is initialized. */
-#define dt_printk(fmt, ...) \
- do \
- { \
- if ( system_state == SYS_STATE_early_boot ) \
- early_printk(fmt, ## __VA_ARGS__); \
- else \
- printk(fmt, ## __VA_ARGS__); \
- } while (0)
+#define dt_printk(fmt, ...) printk(fmt, ## __VA_ARGS__);
// #define DEBUG_DT
@@ -316,7 +306,7 @@ static void __init process_memory_node(const void *fdt, int
node,
if ( address_cells < 1 || size_cells < 1 )
{
- early_printk("fdt: node `%s': invalid #address-cells or #size-cells",
+ dt_printk("fdt: node `%s': invalid #address-cells or #size-cells",
name);
return;
}
@@ -324,7 +314,7 @@ static void __init process_memory_node(const void *fdt, int
node,
prop = fdt_get_property(fdt, node, "reg", NULL);
if ( !prop )
{
- early_printk("fdt: node `%s': missing `reg' property\n", name);
+ dt_printk("fdt: node `%s': missing `reg' property\n", name);
return;
}
@@ -355,16 +345,16 @@ static void __init process_multiboot_node(const void
*fdt, int node,
else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0)
nr = MOD_INITRD;
else
- early_panic("%s not a known xen multiboot type\n", name);
+ panic("%s not a known xen multiboot type\n", name);
mod = &early_info.modules.module[nr];
prop = fdt_get_property(fdt, node, "reg", &len);
if ( !prop )
- early_panic("node %s missing `reg' property\n", name);
+ panic("node %s missing `reg' property\n", name);
if ( len < dt_cells_to_size(address_cells + size_cells) )
- early_panic("fdt: node `%s': `reg` property length is too short\n",
+ panic("fdt: node `%s': `reg` property length is too short\n",
name);
cell = (const __be32 *)prop->data;
@@ -375,7 +365,7 @@ static void __init process_multiboot_node(const void *fdt,
int node,
if ( prop )
{
if ( len > sizeof(mod->cmdline) )
- early_panic("module %d command line too long\n", nr);
+ panic("module %d command line too long\n", nr);
safe_strcpy(mod->cmdline, prop->data);
}
@@ -458,12 +448,12 @@ static void __init early_print_info(void)
int i, nr_rsvd;
for ( i = 0; i < mi->nr_banks; i++ )
- early_printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
+ dt_printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n",
mi->bank[i].start,
mi->bank[i].start + mi->bank[i].size - 1);
- early_printk("\n");
+ dt_printk("\n");
for ( i = 1 ; i < mods->nr_mods + 1; i++ )
- early_printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %s\n",
+ dt_printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %s\n",
i,
mods->module[i].start,
mods->module[i].start + mods->module[i].size,
@@ -476,10 +466,10 @@ static void __init early_print_info(void)
continue;
/* fdt_get_mem_rsv returns length */
e += s;
- early_printk(" RESVD[%d]: %"PRIpaddr" - %"PRIpaddr"\n",
+ dt_printk(" RESVD[%d]: %"PRIpaddr" - %"PRIpaddr"\n",
i, s, e);
}
- early_printk("\n");
+ dt_printk("\n");
}
/**
@@ -495,7 +485,7 @@ size_t __init device_tree_early_init(const void *fdt,
paddr_t paddr)
ret = fdt_check_header(fdt);
if ( ret < 0 )
- early_panic("No valid device tree\n");
+ panic("No valid device tree\n");
mod = &early_info.modules.module[MOD_FDT];
mod->start = paddr;
diff --git a/xen/drivers/char/dt-uart.c b/xen/drivers/char/dt-uart.c
index d7204fb..fa92b5c 100644
--- a/xen/drivers/char/dt-uart.c
+++ b/xen/drivers/char/dt-uart.c
@@ -18,7 +18,6 @@
*/
#include <asm/device.h>
-#include <asm/early_printk.h>
#include <asm/types.h>
#include <xen/console.h>
#include <xen/device_tree.h>
@@ -44,7 +43,7 @@ void __init dt_uart_init(void)
if ( !console_has("dtuart") || !strcmp(opt_dtuart, "") )
{
- early_printk("No console\n");
+ printk("No console\n");
return;
}
@@ -54,7 +53,7 @@ void __init dt_uart_init(void)
else
options = "";
- early_printk("Looking for UART console %s\n", devpath);
+ printk("Looking for UART console %s\n", devpath);
if ( *devpath == '/' )
dev = dt_find_node_by_path(devpath);
else
@@ -62,12 +61,12 @@ void __init dt_uart_init(void)
if ( !dev )
{
- early_printk("Unable to find device \"%s\"\n", devpath);
+ printk("Unable to find device \"%s\"\n", devpath);
return;
}
ret = device_init(dev, DEVICE_SERIAL, options);
if ( ret )
- early_printk("Unable to initialize serial: %d\n", ret);
+ printk("Unable to initialize serial: %d\n", ret);
}
diff --git a/xen/drivers/char/exynos4210-uart.c
b/xen/drivers/char/exynos4210-uart.c
index 0a2ac17..17ba010 100644
--- a/xen/drivers/char/exynos4210-uart.c
+++ b/xen/drivers/char/exynos4210-uart.c
@@ -24,7 +24,6 @@
#include <xen/init.h>
#include <xen/irq.h>
#include <xen/mm.h>
-#include <asm/early_printk.h>
#include <asm/device.h>
#include <asm/exynos4210-uart.h>
#include <asm/io.h>
@@ -314,9 +313,7 @@ static int __init exynos4210_uart_init(struct
dt_device_node *dev,
u64 addr, size;
if ( strcmp(config, "") )
- {
- early_printk("WARNING: UART configuration is not supported\n");
- }
+ printk("WARNING: UART configuration is not supported\n");
uart = &exynos4210_com;
@@ -329,21 +326,21 @@ static int __init exynos4210_uart_init(struct
dt_device_node *dev,
res = dt_device_get_address(dev, 0, &addr, &size);
if ( res )
{
- early_printk("exynos4210: Unable to retrieve the base"
- " address of the UART\n");
+ printk("exynos4210: Unable to retrieve the base"
+ " address of the UART\n");
return res;
}
uart->regs = ioremap_nocache(addr, size);
if ( !uart->regs )
{
- early_printk("exynos4210: Unable to map the UART memory\n");
+ printk("exynos4210: Unable to map the UART memory\n");
return -ENOMEM;
}
res = dt_device_get_irq(dev, 0, &uart->irq);
if ( res )
{
- early_printk("exynos4210: Unable to retrieve the IRQ\n");
+ printk("exynos4210: Unable to retrieve the IRQ\n");
return res;
}
diff --git a/xen/drivers/char/omap-uart.c b/xen/drivers/char/omap-uart.c
index 321e636..ad5aabb 100644
--- a/xen/drivers/char/omap-uart.c
+++ b/xen/drivers/char/omap-uart.c
@@ -15,7 +15,6 @@
#include <xen/serial.h>
#include <xen/init.h>
#include <xen/irq.h>
-#include <asm/early_printk.h>
#include <xen/device_tree.h>
#include <asm/device.h>
#include <xen/errno.h>
@@ -301,14 +300,14 @@ static int __init omap_uart_init(struct dt_device_node
*dev,
u64 addr, size;
if ( strcmp(config, "") )
- early_printk("WARNING: UART configuration is not supported\n");
+ printk("WARNING: UART configuration is not supported\n");
uart = &omap_com;
res = dt_property_read_u32(dev, "clock-frequency", &clkspec);
if ( !res )
{
- early_printk("omap-uart: Unable to retrieve the clock frequency\n");
+ printk("omap-uart: Unable to retrieve the clock frequency\n");
return -EINVAL;
}
@@ -321,22 +320,22 @@ static int __init omap_uart_init(struct dt_device_node
*dev,
res = dt_device_get_address(dev, 0, &addr, &size);
if ( res )
{
- early_printk("omap-uart: Unable to retrieve the base"
- " address of the UART\n");
+ printk("omap-uart: Unable to retrieve the base"
+ " address of the UART\n");
return res;
}
uart->regs = ioremap_attr(addr, size, PAGE_HYPERVISOR_NOCACHE);
if ( !uart->regs )
{
- early_printk("omap-uart: Unable to map the UART memory\n");
+ printk("omap-uart: Unable to map the UART memory\n");
return -ENOMEM;
}
res = dt_device_get_irq(dev, 0, &uart->irq);
if ( res )
{
- early_printk("omap-uart: Unable to retrieve the IRQ\n");
+ printk("omap-uart: Unable to retrieve the IRQ\n");
return res;
}
diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c
index 613b9eb..378d37e 100644
--- a/xen/drivers/char/pl011.c
+++ b/xen/drivers/char/pl011.c
@@ -22,7 +22,6 @@
#include <xen/serial.h>
#include <xen/init.h>
#include <xen/irq.h>
-#include <asm/early_printk.h>
#include <xen/device_tree.h>
#include <xen/errno.h>
#include <asm/device.h>
@@ -107,7 +106,7 @@ static void __init pl011_init_preirq(struct serial_port
*port)
/* Baud rate already set: read it out from the divisor latch. */
divisor = (pl011_read(uart, IBRD) << 6) | (pl011_read(uart, FBRD));
if (!divisor)
- early_panic("pl011: No Baud rate configured\n");
+ panic("pl011: No Baud rate configured\n");
uart->baud = (uart->clock_hz << 2) / divisor;
}
/* This write must follow FBRD and IBRD writes. */
@@ -229,7 +228,7 @@ static int __init pl011_uart_init(struct dt_device_node
*dev,
if ( strcmp(config, "") )
{
- early_printk("WARNING: UART configuration is not supported\n");
+ printk("WARNING: UART configuration is not supported\n");
}
uart = &pl011_com;
@@ -243,15 +242,15 @@ static int __init pl011_uart_init(struct dt_device_node
*dev,
res = dt_device_get_address(dev, 0, &addr, &size);
if ( res )
{
- early_printk("pl011: Unable to retrieve the base"
- " address of the UART\n");
+ printk("pl011: Unable to retrieve the base"
+ " address of the UART\n");
return res;
}
uart->regs = ioremap_attr(addr, size, PAGE_HYPERVISOR_NOCACHE);
if ( !uart->regs )
{
- early_printk("pl011: Unable to map the UART memory\n");
+ printk("pl011: Unable to map the UART memory\n");
return -ENOMEM;
}
@@ -259,7 +258,7 @@ static int __init pl011_uart_init(struct dt_device_node
*dev,
res = dt_device_get_irq(dev, 0, &uart->irq);
if ( res )
{
- early_printk("pl011: Unable to retrieve the IRQ\n");
+ printk("pl011: Unable to retrieve the IRQ\n");
return res;
}
diff --git a/xen/drivers/video/arm_hdlcd.c b/xen/drivers/video/arm_hdlcd.c
index 647f22c..2a5f72e 100644
--- a/xen/drivers/video/arm_hdlcd.c
+++ b/xen/drivers/video/arm_hdlcd.c
@@ -25,7 +25,6 @@
#include <xen/libfdt/libfdt.h>
#include <xen/init.h>
#include <xen/mm.h>
-#include <asm/early_printk.h>
#include "font.h"
#include "lfb.h"
#include "modelines.h"
@@ -123,21 +122,21 @@ void __init video_init(void)
if ( !dev )
{
- early_printk("HDLCD: Cannot find node compatible with
\"arm,hdcld\"\n");
+ printk("HDLCD: Cannot find node compatible with \"arm,hdcld\"\n");
return;
}
res = dt_device_get_address(dev, 0, &hdlcd_start, &hdlcd_size);
if ( !res )
{
- early_printk("HDLCD: Unable to retrieve MMIO base address\n");
+ printk("HDLCD: Unable to retrieve MMIO base address\n");
return;
}
cells = dt_get_property(dev, "framebuffer", &lenp);
if ( !cells )
{
- early_printk("HDLCD: Unable to retrieve framebuffer property\n");
+ printk("HDLCD: Unable to retrieve framebuffer property\n");
return;
}
@@ -146,13 +145,13 @@ void __init video_init(void)
if ( !hdlcd_start )
{
- early_printk(KERN_ERR "HDLCD: address missing from device tree,
disabling driver\n");
+ printk(KERN_ERR "HDLCD: address missing from device tree, disabling
driver\n");
return;
}
if ( !framebuffer_start )
{
- early_printk(KERN_ERR "HDLCD: framebuffer address missing from device
tree, disabling driver\n");
+ printk(KERN_ERR "HDLCD: framebuffer address missing from device tree,
disabling driver\n");
return;
}
@@ -166,13 +165,13 @@ void __init video_init(void)
else if ( strlen(mode_string) < strlen("800x600@60") ||
strlen(mode_string) > sizeof(_mode_string) - 1 )
{
- early_printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string);
+ printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string);
return;
} else {
char *s = strchr(mode_string, '-');
if ( !s )
{
- early_printk(KERN_INFO "HDLCD: bpp not found in modeline %s,
assume 32 bpp\n",
+ printk(KERN_INFO "HDLCD: bpp not found in modeline %s, assume 32
bpp\n",
mode_string);
get_color_masks("32", &c);
memcpy(_mode_string, mode_string, strlen(mode_string) + 1);
@@ -180,13 +179,13 @@ void __init video_init(void)
} else {
if ( strlen(s) < 6 )
{
- early_printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string);
+ printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string);
return;
}
s++;
if ( get_color_masks(s, &c) < 0 )
{
- early_printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s);
+ printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s);
return;
}
bytes_per_pixel = simple_strtoll(s, NULL, 10) / 8;
@@ -205,23 +204,23 @@ void __init video_init(void)
}
if ( !videomode )
{
- early_printk(KERN_WARNING "HDLCD: unsupported videomode %s\n",
- _mode_string);
+ printk(KERN_WARNING "HDLCD: unsupported videomode %s\n",
+ _mode_string);
return;
}
if ( framebuffer_size < bytes_per_pixel * videomode->xres *
videomode->yres )
{
- early_printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling
the HDLCD driver\n");
+ printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling the
HDLCD driver\n");
return;
}
- early_printk(KERN_INFO "Initializing HDLCD driver\n");
+ printk(KERN_INFO "Initializing HDLCD driver\n");
lfb = ioremap_wc(framebuffer_start, framebuffer_size);
if ( !lfb )
{
- early_printk(KERN_ERR "Couldn't map the framebuffer\n");
+ printk(KERN_ERR "Couldn't map the framebuffer\n");
return;
}
memset(lfb, 0x00, bytes_per_pixel * videomode->xres * videomode->yres);
diff --git a/xen/include/asm-arm/early_printk.h
b/xen/include/asm-arm/early_printk.h
index a58e3e7..6569397 100644
--- a/xen/include/asm-arm/early_printk.h
+++ b/xen/include/asm-arm/early_printk.h
@@ -18,33 +18,12 @@
#define EARLY_UART_VIRTUAL_ADDRESS \
(FIXMAP_ADDR(FIXMAP_CONSOLE) +(EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
-#endif
-
#ifndef __ASSEMBLY__
-#ifdef CONFIG_EARLY_PRINTK
-
void early_puts(const char *s);
-void early_printk(const char *fmt, ...)
- __attribute__((format (printf, 1, 2)));
-void early_panic(const char *fmt, ...) __attribute__((noreturn))
- __attribute__((format (printf, 1, 2)));
-#else
-
-static inline void early_puts(const char *)
-{}
-
-static inline __attribute__((format (printf, 1, 2))) void
-early_printk(const char *fmt, ...)
-{}
-
-static inline void __attribute__((noreturn))
-__attribute__((format (printf, 1, 2))) early_panic(const char *fmt, ...)
-{while(1);}
+#endif /* !__ASSEMBLY__ */
#endif /* !CONFIG_EARLY_PRINTK */
-#endif /* __ASSEMBLY__ */
-
#endif
--
1.8.3.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |