mirror of
https://xff.cz/git/u-boot/
synced 2025-09-30 23:11:32 +02:00
console: Use map_sysmem() for the pre-relocation console
At present this feature casts the address to a pointer. Use the map_sysmem() function so that it will work correctly on sandbox. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <iomux.h>
|
#include <iomux.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#include <mapmem.h>
|
||||||
#include <os.h>
|
#include <os.h>
|
||||||
#include <serial.h>
|
#include <serial.h>
|
||||||
#include <stdio_dev.h>
|
#include <stdio_dev.h>
|
||||||
@@ -416,9 +417,13 @@ int tstc(void)
|
|||||||
|
|
||||||
static void pre_console_putc(const char c)
|
static void pre_console_putc(const char c)
|
||||||
{
|
{
|
||||||
char *buffer = (char *)CONFIG_PRE_CON_BUF_ADDR;
|
char *buffer;
|
||||||
|
|
||||||
|
buffer = map_sysmem(CONFIG_PRE_CON_BUF_ADDR, CONFIG_PRE_CON_BUF_SZ);
|
||||||
|
|
||||||
buffer[CIRC_BUF_IDX(gd->precon_buf_idx++)] = c;
|
buffer[CIRC_BUF_IDX(gd->precon_buf_idx++)] = c;
|
||||||
|
|
||||||
|
unmap_sysmem(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pre_console_puts(const char *s)
|
static void pre_console_puts(const char *s)
|
||||||
@@ -430,14 +435,16 @@ static void pre_console_puts(const char *s)
|
|||||||
static void print_pre_console_buffer(int flushpoint)
|
static void print_pre_console_buffer(int flushpoint)
|
||||||
{
|
{
|
||||||
unsigned long in = 0, out = 0;
|
unsigned long in = 0, out = 0;
|
||||||
char *buf_in = (char *)CONFIG_PRE_CON_BUF_ADDR;
|
|
||||||
char buf_out[CONFIG_PRE_CON_BUF_SZ + 1];
|
char buf_out[CONFIG_PRE_CON_BUF_SZ + 1];
|
||||||
|
char *buf_in;
|
||||||
|
|
||||||
|
buf_in = map_sysmem(CONFIG_PRE_CON_BUF_ADDR, CONFIG_PRE_CON_BUF_SZ);
|
||||||
if (gd->precon_buf_idx > CONFIG_PRE_CON_BUF_SZ)
|
if (gd->precon_buf_idx > CONFIG_PRE_CON_BUF_SZ)
|
||||||
in = gd->precon_buf_idx - CONFIG_PRE_CON_BUF_SZ;
|
in = gd->precon_buf_idx - CONFIG_PRE_CON_BUF_SZ;
|
||||||
|
|
||||||
while (in < gd->precon_buf_idx)
|
while (in < gd->precon_buf_idx)
|
||||||
buf_out[out++] = buf_in[CIRC_BUF_IDX(in++)];
|
buf_out[out++] = buf_in[CIRC_BUF_IDX(in++)];
|
||||||
|
unmap_sysmem(buf_in);
|
||||||
|
|
||||||
buf_out[out] = 0;
|
buf_out[out] = 0;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user