Skip to content

Commit

Permalink
Merge tag 'for-linus' of git://github.com/openrisc/linux
Browse files Browse the repository at this point in the history
Pull OpenRISC updates from Stafford Horne:
 "Few small things for 5.4:

   - Fixup ethoc ethernet device tree descriptors which were previously
     broken, now ethernet works on FPGAs running OpenRISC!

   - Switch ioremap to use uncached semantics - from Christoph Hellwig"

* tag 'for-linus' of git://github.com/openrisc/linux:
  openrisc: map as uncached in ioremap
  or1k: dts: Add ethoc device to SMP devicetree
  or1k: dts: Fix ethoc network configuration in or1ksim devicetree
  • Loading branch information
torvalds committed Sep 17, 2019
2 parents 16da096 + f3b1732 commit 1e24aaa
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 24 deletions.
5 changes: 3 additions & 2 deletions arch/openrisc/boot/dts/or1ksim.dts
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@
};

enet0: ethoc@92000000 {
compatible = "opencores,ethmac-rtlsvn338";
reg = <0x92000000 0x100>;
compatible = "opencores,ethoc";
reg = <0x92000000 0x800>;
interrupts = <4>;
big-endian;
};
};
6 changes: 6 additions & 0 deletions arch/openrisc/boot/dts/simple_smp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,10 @@
clock-frequency = <20000000>;
};

enet0: ethoc@92000000 {
compatible = "opencores,ethoc";
reg = <0x92000000 0x800>;
interrupts = <4>;
big-endian;
};
};
20 changes: 3 additions & 17 deletions arch/openrisc/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,25 +25,11 @@
#define PIO_OFFSET 0
#define PIO_MASK 0

#define ioremap_nocache ioremap_nocache
#define ioremap_nocache ioremap
#include <asm-generic/io.h>
#include <asm/pgtable.h>

extern void __iomem *__ioremap(phys_addr_t offset, unsigned long size,
pgprot_t prot);

static inline void __iomem *ioremap(phys_addr_t offset, size_t size)
{
return __ioremap(offset, size, PAGE_KERNEL);
}

/* #define _PAGE_CI 0x002 */
static inline void __iomem *ioremap_nocache(phys_addr_t offset,
unsigned long size)
{
return __ioremap(offset, size,
__pgprot(pgprot_val(PAGE_KERNEL) | _PAGE_CI));
}

void __iomem *ioremap(phys_addr_t offset, unsigned long size);
extern void iounmap(void *addr);

#endif
2 changes: 1 addition & 1 deletion arch/openrisc/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ extern void paging_init(void);
/* Define some higher level generic page attributes.
*
* If you change _PAGE_CI definition be sure to change it in
* io.h for ioremap_nocache() too.
* io.h for ioremap() too.
*/

/*
Expand Down
8 changes: 4 additions & 4 deletions arch/openrisc/mm/ioremap.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ static unsigned int fixmaps_used __initdata;
* have to convert them into an offset in a page-aligned mapping, but the
* caller shouldn't need to know that small detail.
*/
void __iomem *__ref
__ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot)
void __iomem *__ref ioremap(phys_addr_t addr, unsigned long size)
{
phys_addr_t p;
unsigned long v;
Expand Down Expand Up @@ -66,7 +65,8 @@ __ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot)
fixmaps_used += (size >> PAGE_SHIFT);
}

if (ioremap_page_range(v, v + size, p, prot)) {
if (ioremap_page_range(v, v + size, p,
__pgprot(pgprot_val(PAGE_KERNEL) | _PAGE_CI))) {
if (likely(mem_init_done))
vfree(area->addr);
else
Expand All @@ -76,7 +76,7 @@ __ioremap(phys_addr_t addr, unsigned long size, pgprot_t prot)

return (void __iomem *)(offset + (char *)v);
}
EXPORT_SYMBOL(__ioremap);
EXPORT_SYMBOL(ioremap);

void iounmap(void *addr)
{
Expand Down

0 comments on commit 1e24aaa

Please sign in to comment.