You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
microblaze: PCI early support for noMMU system
Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/cache.h>
|
#include <asm/cache.h>
|
||||||
|
#include <asm/pgtable.h>
|
||||||
|
|
||||||
#define PGDIR_ORDER 0
|
#define PGDIR_ORDER 0
|
||||||
|
|
||||||
@@ -111,7 +112,6 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
|
|||||||
unsigned long address)
|
unsigned long address)
|
||||||
{
|
{
|
||||||
pte_t *pte;
|
pte_t *pte;
|
||||||
extern int mem_init_done;
|
|
||||||
extern void *early_get_page(void);
|
extern void *early_get_page(void);
|
||||||
if (mem_init_done) {
|
if (mem_init_done) {
|
||||||
pte = (pte_t *)__get_free_page(GFP_KERNEL |
|
pte = (pte_t *)__get_free_page(GFP_KERNEL |
|
||||||
|
|||||||
@@ -16,6 +16,10 @@
|
|||||||
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
|
||||||
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
remap_pfn_range(vma, vaddr, pfn, size, prot)
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
extern int mem_init_done;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_MMU
|
#ifndef CONFIG_MMU
|
||||||
|
|
||||||
#define pgd_present(pgd) (1) /* pages are always present on non MMU */
|
#define pgd_present(pgd) (1) /* pages are always present on non MMU */
|
||||||
@@ -51,6 +55,8 @@ static inline int pte_file(pte_t pte) { return 0; }
|
|||||||
|
|
||||||
#define arch_enter_lazy_cpu_mode() do {} while (0)
|
#define arch_enter_lazy_cpu_mode() do {} while (0)
|
||||||
|
|
||||||
|
#define pgprot_noncached_wc(prot) prot
|
||||||
|
|
||||||
#else /* CONFIG_MMU */
|
#else /* CONFIG_MMU */
|
||||||
|
|
||||||
#include <asm-generic/4level-fixup.h>
|
#include <asm-generic/4level-fixup.h>
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/tlb.h>
|
#include <asm/tlb.h>
|
||||||
|
|
||||||
|
/* Use for MMU and noMMU because of PCI generic code */
|
||||||
|
int mem_init_done;
|
||||||
|
|
||||||
#ifndef CONFIG_MMU
|
#ifndef CONFIG_MMU
|
||||||
unsigned int __page_offset;
|
unsigned int __page_offset;
|
||||||
EXPORT_SYMBOL(__page_offset);
|
EXPORT_SYMBOL(__page_offset);
|
||||||
@@ -30,7 +33,6 @@ EXPORT_SYMBOL(__page_offset);
|
|||||||
#else
|
#else
|
||||||
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
||||||
|
|
||||||
int mem_init_done;
|
|
||||||
static int init_bootmem_done;
|
static int init_bootmem_done;
|
||||||
#endif /* CONFIG_MMU */
|
#endif /* CONFIG_MMU */
|
||||||
|
|
||||||
@@ -202,9 +204,7 @@ void __init mem_init(void)
|
|||||||
printk(KERN_INFO "Memory: %luk/%luk available\n",
|
printk(KERN_INFO "Memory: %luk/%luk available\n",
|
||||||
nr_free_pages() << (PAGE_SHIFT-10),
|
nr_free_pages() << (PAGE_SHIFT-10),
|
||||||
num_physpages << (PAGE_SHIFT-10));
|
num_physpages << (PAGE_SHIFT-10));
|
||||||
#ifdef CONFIG_MMU
|
|
||||||
mem_init_done = 1;
|
mem_init_done = 1;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_MMU
|
#ifndef CONFIG_MMU
|
||||||
@@ -216,6 +216,10 @@ int ___range_ok(unsigned long addr, unsigned long size)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(___range_ok);
|
EXPORT_SYMBOL(___range_ok);
|
||||||
|
|
||||||
|
int page_is_ram(unsigned long pfn)
|
||||||
|
{
|
||||||
|
return __range_ok(pfn, 0);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
int page_is_ram(unsigned long pfn)
|
int page_is_ram(unsigned long pfn)
|
||||||
{
|
{
|
||||||
@@ -344,6 +348,8 @@ void __init *early_get_page(void)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_MMU */
|
||||||
|
|
||||||
void * __init_refok alloc_maybe_bootmem(size_t size, gfp_t mask)
|
void * __init_refok alloc_maybe_bootmem(size_t size, gfp_t mask)
|
||||||
{
|
{
|
||||||
if (mem_init_done)
|
if (mem_init_done)
|
||||||
@@ -365,5 +371,3 @@ void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask)
|
|||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_MMU */
|
|
||||||
|
|||||||
@@ -561,11 +561,13 @@ int pci_mmap_legacy_page_range(struct pci_bus *bus,
|
|||||||
* memory, effectively behaving just like /dev/zero
|
* memory, effectively behaving just like /dev/zero
|
||||||
*/
|
*/
|
||||||
if ((offset + size) > hose->isa_mem_size) {
|
if ((offset + size) > hose->isa_mem_size) {
|
||||||
|
#ifdef CONFIG_MMU
|
||||||
printk(KERN_DEBUG
|
printk(KERN_DEBUG
|
||||||
"Process %s (pid:%d) mapped non-existing PCI"
|
"Process %s (pid:%d) mapped non-existing PCI"
|
||||||
"legacy memory for 0%04x:%02x\n",
|
"legacy memory for 0%04x:%02x\n",
|
||||||
current->comm, current->pid, pci_domain_nr(bus),
|
current->comm, current->pid, pci_domain_nr(bus),
|
||||||
bus->number);
|
bus->number);
|
||||||
|
#endif
|
||||||
if (vma->vm_flags & VM_SHARED)
|
if (vma->vm_flags & VM_SHARED)
|
||||||
return shmem_zero_setup(vma);
|
return shmem_zero_setup(vma);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user