struct cb_memory_range *range =
(struct cb_memory_range *)MEM_RANGE_PTR(mem, i);
-#if MEMMAP_RAM_ONLY
+#ifdef CONFIG_MEMMAP_RAM_ONLY
if (range->type != CB_MEM_RAM)
continue;
#endif
info->memrange[info->n_memranges].base =
- UNPACK_CB64(range->start);
+ cb_unpack64(range->start);
info->memrange[info->n_memranges].size =
- UNPACK_CB64(range->size);
+ cb_unpack64(range->size);
info->memrange[info->n_memranges].type = range->type;
static void cb_parse_serial(unsigned char *ptr, struct sysinfo_t *info)
{
struct cb_serial *ser = (struct cb_serial *)ptr;
- info->ser_ioport = ser->ioport;
+ if (ser->type != CB_SERIAL_TYPE_IO_MAPPED)
+ return;
+ info->ser_ioport = ser->baseaddr;
+}
+
+static void cb_parse_version(unsigned char *ptr, struct sysinfo_t *info)
+{
+ struct cb_string *ver = (struct cb_string *)ptr;
+ info->cb_version = (char *)ver->string;
}
#ifdef CONFIG_NVRAM
case CB_TAG_SERIAL:
cb_parse_serial(ptr, info);
break;
+ case CB_TAG_VERSION:
+ cb_parse_version(ptr, info);
+ break;
#ifdef CONFIG_NVRAM
case CB_TAG_CMOS_OPTION_TABLE:
cb_parse_optiontable(ptr, info);