mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-27 03:47:43 +00:00
sparc64 - add mem to iomem resource
This patch adds sparc RAM to /proc/iomem. It also identifies the code, data and bss regions of the kernel. Signed-off-by: Bob Picco <bob.picco@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9a3c4145af
commit
f6d4fb5cc0
@ -22,6 +22,7 @@
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/cache.h>
|
||||
#include <linux/sort.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/percpu.h>
|
||||
#include <linux/memblock.h>
|
||||
#include <linux/mmzone.h>
|
||||
@ -2699,3 +2700,67 @@ void hugetlb_setup(struct pt_regs *regs)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct resource code_resource = {
|
||||
.name = "Kernel code",
|
||||
.flags = IORESOURCE_BUSY | IORESOURCE_MEM
|
||||
};
|
||||
|
||||
static struct resource data_resource = {
|
||||
.name = "Kernel data",
|
||||
.flags = IORESOURCE_BUSY | IORESOURCE_MEM
|
||||
};
|
||||
|
||||
static struct resource bss_resource = {
|
||||
.name = "Kernel bss",
|
||||
.flags = IORESOURCE_BUSY | IORESOURCE_MEM
|
||||
};
|
||||
|
||||
static inline resource_size_t compute_kern_paddr(void *addr)
|
||||
{
|
||||
return (resource_size_t) (addr - KERNBASE + kern_base);
|
||||
}
|
||||
|
||||
static void __init kernel_lds_init(void)
|
||||
{
|
||||
code_resource.start = compute_kern_paddr(_text);
|
||||
code_resource.end = compute_kern_paddr(_etext - 1);
|
||||
data_resource.start = compute_kern_paddr(_etext);
|
||||
data_resource.end = compute_kern_paddr(_edata - 1);
|
||||
bss_resource.start = compute_kern_paddr(__bss_start);
|
||||
bss_resource.end = compute_kern_paddr(_end - 1);
|
||||
}
|
||||
|
||||
static int __init report_memory(void)
|
||||
{
|
||||
int i;
|
||||
struct resource *res;
|
||||
|
||||
kernel_lds_init();
|
||||
|
||||
for (i = 0; i < pavail_ents; i++) {
|
||||
res = kzalloc(sizeof(struct resource), GFP_KERNEL);
|
||||
|
||||
if (!res) {
|
||||
pr_warn("Failed to allocate source.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
res->name = "System RAM";
|
||||
res->start = pavail[i].phys_addr;
|
||||
res->end = pavail[i].phys_addr + pavail[i].reg_size - 1;
|
||||
res->flags = IORESOURCE_BUSY | IORESOURCE_MEM;
|
||||
|
||||
if (insert_resource(&iomem_resource, res) < 0) {
|
||||
pr_warn("Resource insertion failed.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
insert_resource(res, &code_resource);
|
||||
insert_resource(res, &data_resource);
|
||||
insert_resource(res, &bss_resource);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
device_initcall(report_memory);
|
||||
|
Loading…
Reference in New Issue
Block a user