@@ -14,14 +14,10 @@
#include <xen/stdarg.h>
#include <xen/string.h>
#include <xen/early_printk.h>
-#include <asm/early_printk.h>
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') {
@@ -37,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);
-}
@@ -37,7 +37,6 @@
#include <public/memory.h>
#include <xen/sched.h>
#include <xen/vmap.h>
-#include <asm/early_printk.h>
#include <xsm/xsm.h>
#include <xen/pfn.h>
@@ -649,8 +648,8 @@ void __init setup_xenheap_mappings(unsigned long base_mfn,
xenheap_mfn_start = base_mfn;
if ( base_mfn < xenheap_mfn_start )
- early_panic("cannot add xenheap mapping at %lx below heap start %lx",
- base_mfn, xenheap_mfn_start);
+ panic("cannot add xenheap mapping at %lx below heap start %lx",
+ base_mfn, xenheap_mfn_start);
end_mfn = base_mfn + nr_mfns;
@@ -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());
@@ -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;
@@ -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);
}
@@ -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,22 +326,22 @@ 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;
}
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;
}
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;
}
@@ -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;
}
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;
}
uart->regs = ioremap_nocache(addr, size);
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;
}
@@ -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,22 +242,22 @@ 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;
}
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;
}
uart->regs = ioremap_nocache(addr, size);
if ( !uart->regs )
{
- early_printk("pl011: Unable to map the UART memory\n");
+ printk("pl011: Unable to map the UART memory\n");
return -ENOMEM;
}
@@ -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);
@@ -18,29 +18,6 @@
#define EARLY_UART_VIRTUAL_ADDRESS \
(FIXMAP_ADDR(FIXMAP_CONSOLE) +(EARLY_UART_BASE_ADDRESS & ~PAGE_MASK))
-#endif
-
-#ifndef __ASSEMBLY__
-
-#ifdef CONFIG_EARLY_PRINTK
-
-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 __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 /* !CONFIG_EARLY_PRINTK */
-#endif /* __ASSEMBLY__ */
-
#endif