Module Name: src
Committed By: rin
Date: Mon Aug 30 00:04:31 UTC 2021
Modified Files:
src/sys/arch/arm/marvell: armadaxp.c dove.c kirkwood.c mv78xx0.c
mvsoc.c mvsoc_space.c mvsocvar.h orion.c
src/sys/arch/evbarm/marvell: marvell_machdep.c
Log Message:
Add ARMEB support to {evb,}arm/marvell.
Combined with upcoming commit to dev/marvell, all peripheral devices
seem to work just fine for KUROBOX_PRO in big-endian mode.
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/marvell/armadaxp.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/marvell/dove.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/marvell/kirkwood.c \
src/sys/arch/arm/marvell/mvsoc_space.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/marvell/mv78xx0.c
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/marvell/mvsoc.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/marvell/mvsocvar.h
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/marvell/orion.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/evbarm/marvell/marvell_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/marvell/armadaxp.c
diff -u src/sys/arch/arm/marvell/armadaxp.c:1.23 src/sys/arch/arm/marvell/armadaxp.c:1.24
--- src/sys/arch/arm/marvell/armadaxp.c:1.23 Fri Oct 30 18:54:36 2020
+++ src/sys/arch/arm/marvell/armadaxp.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: armadaxp.c,v 1.23 2020/10/30 18:54:36 skrll Exp $ */
+/* $NetBSD: armadaxp.c,v 1.24 2021/08/30 00:04:30 rin Exp $ */
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates
@@ -37,7 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
*******************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: armadaxp.c,v 1.23 2020/10/30 18:54:36 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: armadaxp.c,v 1.24 2021/08/30 00:04:30 rin Exp $");
#define _INTR_PRIVATE
@@ -86,7 +86,7 @@ bus_space_handle_t mpic_cpu_handle;
static bus_space_handle_t mpic_handle, l2_handle;
int l2cache_state = 0;
int iocc_state = 0;
-#define read_miscreg(r) (*(volatile uint32_t *)(misc_base + (r)))
+#define read_miscreg(r) le32toh(*(volatile uint32_t *)(misc_base + (r)))
vaddr_t misc_base;
vaddr_t armadaxp_l2_barrier_reg;
Index: src/sys/arch/arm/marvell/dove.c
diff -u src/sys/arch/arm/marvell/dove.c:1.1 src/sys/arch/arm/marvell/dove.c:1.2
--- src/sys/arch/arm/marvell/dove.c:1.1 Sat Jan 7 16:19:28 2017
+++ src/sys/arch/arm/marvell/dove.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: dove.c,v 1.1 2017/01/07 16:19:28 kiyohara Exp $ */
+/* $NetBSD: dove.c,v 1.2 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2016 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dove.c,v 1.1 2017/01/07 16:19:28 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dove.c,v 1.2 2021/08/30 00:04:30 rin Exp $");
#define _INTR_PRIVATE
@@ -61,7 +61,7 @@ __KERNEL_RCSID(0, "$NetBSD: dove.c,v 1.1
bus_space_write_4((sc)->sc_iot, (sc)->sc_pmch, (o), (v))
#else
vaddr_t pmu_base = -1;
-#define READ_PMUREG(sc, o) (*(volatile uint32_t *)(pmu_base + (o)))
+#define READ_PMUREG(sc, o) le32toh(*(volatile uint32_t *)(pmu_base + (o)))
#endif
static void dove_intr_init(void);
@@ -279,8 +279,8 @@ dove_getclks(bus_addr_t iobase)
#define MHz * 1000 * 1000
- val = *(volatile uint32_t *)(iobase + DOVE_MISC_BASE +
- DOVE_MISC_SAMPLE_AT_RESET0);
+ val = le32toh(*(volatile uint32_t *)(iobase + DOVE_MISC_BASE +
+ DOVE_MISC_SAMPLE_AT_RESET0));
switch (val & 0x01800000) {
case 0x00000000: mvTclk = 166 MHz; break;
Index: src/sys/arch/arm/marvell/kirkwood.c
diff -u src/sys/arch/arm/marvell/kirkwood.c:1.10 src/sys/arch/arm/marvell/kirkwood.c:1.11
--- src/sys/arch/arm/marvell/kirkwood.c:1.10 Sat Jan 7 16:19:28 2017
+++ src/sys/arch/arm/marvell/kirkwood.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: kirkwood.c,v 1.10 2017/01/07 16:19:28 kiyohara Exp $ */
+/* $NetBSD: kirkwood.c,v 1.11 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2010 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kirkwood.c,v 1.10 2017/01/07 16:19:28 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kirkwood.c,v 1.11 2021/08/30 00:04:30 rin Exp $");
#define _INTR_PRIVATE
@@ -244,8 +244,8 @@ kirkwood_getclks(vaddr_t iobase)
else /* 166MHz */
mvTclk = 166666667;
- reg = *(volatile uint32_t *)(iobase + KIRKWOOD_MPP_BASE +
- KIRKWOOD_MPP_SAMPLE_AT_RESET);
+ reg = le32toh(*(volatile uint32_t *)(iobase + KIRKWOOD_MPP_BASE +
+ KIRKWOOD_MPP_SAMPLE_AT_RESET));
if (model == MARVELL_KIRKWOOD_88F6180) {
switch (reg & 0x0000001c) {
case 0x00000014: mvPclk = 600 MHz; break;
Index: src/sys/arch/arm/marvell/mvsoc_space.c
diff -u src/sys/arch/arm/marvell/mvsoc_space.c:1.10 src/sys/arch/arm/marvell/mvsoc_space.c:1.11
--- src/sys/arch/arm/marvell/mvsoc_space.c:1.10 Fri Mar 16 17:56:32 2018
+++ src/sys/arch/arm/marvell/mvsoc_space.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsoc_space.c,v 1.10 2018/03/16 17:56:32 ryo Exp $ */
+/* $NetBSD: mvsoc_space.c,v 1.11 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2007 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvsoc_space.c,v 1.10 2018/03/16 17:56:32 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvsoc_space.c,v 1.11 2021/08/30 00:04:30 rin Exp $");
#include "opt_mvsoc.h"
#include "mvpex.h"
@@ -42,6 +42,11 @@ __KERNEL_RCSID(0, "$NetBSD: mvsoc_space.
#include <arm/marvell/mvsocreg.h>
#include <arm/marvell/mvsocvar.h>
+#ifdef __ARMEB__
+#define NSWAP(n) n ## _swap
+#else
+#define NSWAP(n) n
+#endif
/* Proto types for all the bus_space structure functions */
bs_protos(mvsoc);
@@ -52,75 +57,75 @@ bs_protos(bs_notimpl);
#define MVSOC_BUS_SPACE_NORMAL_FUNCS \
/* read (single) */ \
.bs_r_1 = generic_bs_r_1, \
- .bs_r_2 = generic_armv4_bs_r_2, \
- .bs_r_4 = generic_bs_r_4, \
+ .bs_r_2 = NSWAP(generic_armv4_bs_r_2), \
+ .bs_r_4 = NSWAP(generic_bs_r_4), \
.bs_r_8 = bs_notimpl_bs_r_8, \
\
/* read multiple */ \
.bs_rm_1 = generic_bs_rm_1, \
- .bs_rm_2 = generic_armv4_bs_rm_2, \
- .bs_rm_4 = generic_bs_rm_4, \
+ .bs_rm_2 = NSWAP(generic_armv4_bs_rm_2),\
+ .bs_rm_4 = NSWAP(generic_bs_rm_4), \
.bs_rm_8 = bs_notimpl_bs_rm_8, \
\
/* read region */ \
.bs_rr_1 = generic_bs_rr_1, \
- .bs_rr_2 = generic_armv4_bs_rr_2, \
- .bs_rr_4 = generic_bs_rr_4, \
+ .bs_rr_2 = NSWAP(generic_armv4_bs_rr_2),\
+ .bs_rr_4 = NSWAP(generic_bs_rr_4), \
.bs_rr_8 = bs_notimpl_bs_rr_8, \
\
/* write (single) */ \
.bs_w_1 = generic_bs_w_1, \
- .bs_w_2 = generic_armv4_bs_w_2, \
- .bs_w_4 = generic_bs_w_4, \
+ .bs_w_2 = NSWAP(generic_armv4_bs_w_2), \
+ .bs_w_4 = NSWAP(generic_bs_w_4), \
.bs_w_8 = bs_notimpl_bs_w_8, \
\
/* write multiple */ \
.bs_wm_1 = generic_bs_wm_1, \
- .bs_wm_2 = generic_armv4_bs_wm_2, \
- .bs_wm_4 = generic_bs_wm_4, \
+ .bs_wm_2 = NSWAP(generic_armv4_bs_wm_2),\
+ .bs_wm_4 = NSWAP(generic_bs_wm_4), \
.bs_wm_8 = bs_notimpl_bs_wm_8, \
\
/* write region */ \
.bs_wr_1 = generic_bs_wr_1, \
- .bs_wr_2 = generic_armv4_bs_wr_2, \
- .bs_wr_4 = generic_bs_wr_4, \
+ .bs_wr_2 = NSWAP(generic_armv4_bs_wr_2),\
+ .bs_wr_4 = NSWAP(generic_bs_wr_4), \
.bs_wr_8 = bs_notimpl_bs_wr_8
#define MVSOC_BUS_SPACE_STREAM_FUNCS \
/* read stream (single) */ \
.bs_r_1_s = generic_bs_r_1, \
- .bs_r_2_s = generic_armv4_bs_r_2, \
- .bs_r_4_s = generic_bs_r_4, \
+ .bs_r_2_s = NSWAP(generic_armv4_bs_r_2),\
+ .bs_r_4_s = NSWAP(generic_bs_r_4), \
.bs_r_8_s = bs_notimpl_bs_r_8, \
\
/* read multiple stream */ \
.bs_rm_1_s = generic_bs_rm_1, \
- .bs_rm_2_s = generic_armv4_bs_rm_2, \
- .bs_rm_4_s = generic_bs_rm_4, \
+ .bs_rm_2_s = NSWAP(generic_armv4_bs_rm_2),\
+ .bs_rm_4_s = NSWAP(generic_bs_rm_4), \
.bs_rm_8_s = bs_notimpl_bs_rm_8, \
\
/* read region stream */ \
.bs_rr_1_s = generic_bs_rr_1, \
- .bs_rr_2_s = generic_armv4_bs_rr_2, \
- .bs_rr_4_s = generic_bs_rr_4, \
+ .bs_rr_2_s = NSWAP(generic_armv4_bs_rr_2),\
+ .bs_rr_4_s = NSWAP(generic_bs_rr_4), \
.bs_rr_8_s = bs_notimpl_bs_rr_8, \
\
/* write stream (single) */ \
.bs_w_1_s = generic_bs_w_1, \
- .bs_w_2_s = generic_armv4_bs_w_2, \
- .bs_w_4_s = generic_bs_w_4, \
+ .bs_w_2_s = NSWAP(generic_armv4_bs_w_2),\
+ .bs_w_4_s = NSWAP(generic_bs_w_4, \
.bs_w_8_s = bs_notimpl_bs_w_8, \
\
/* write multiple stream */ \
.bs_wm_1_s = generic_bs_wm_1, \
- .bs_wm_2_s = generic_armv4_bs_wm_2, \
- .bs_wm_4_s = generic_bs_wm_4, \
+ .bs_wm_2_s = NSWAP(generic_armv4_bs_wm_2),\
+ .bs_wm_4_s = NSWAP(generic_bs_wm_4), \
.bs_wm_8_s = bs_notimpl_bs_wm_8, \
\
/* write region stream */ \
.bs_wr_1_s = generic_bs_wr_1, \
- .bs_wr_2_s = generic_armv4_bs_wr_2, \
- .bs_wr_4_s = generic_bs_wr_4, \
+ .bs_wr_2_s = NSWAP(generic_armv4_bs_wr_2),\
+ .bs_wr_4_s = NSWAP(generic_bs_wr_4), \
.bs_wr_8_s = bs_notimpl_bs_wr_8
#define MVSOC_BUS_SPACE_DEFAULT_FUNCS \
@@ -130,7 +135,7 @@ bs_protos(bs_notimpl);
.bs_subregion = mvsoc_bs_subregion, \
\
/* allocation/deallocation */ \
- .bs_alloc =mvsoc_bs_alloc, \
+ .bs_alloc = mvsoc_bs_alloc, \
.bs_free = mvsoc_bs_free, \
\
/* get kernel virtual address */ \
@@ -152,8 +157,8 @@ bs_protos(bs_notimpl);
\
/* set region */ \
.bs_sr_1 = bs_notimpl_bs_sr_1, \
- .bs_sr_2 = generic_armv4_bs_sr_2, \
- .bs_sr_4 = generic_bs_sr_4, \
+ .bs_sr_2 = NSWAP(generic_armv4_bs_sr_2),\
+ .bs_sr_4 = NSWAP(generic_bs_sr_4), \
.bs_sr_8 = bs_notimpl_bs_sr_8, \
\
/* copy */ \
Index: src/sys/arch/arm/marvell/mv78xx0.c
diff -u src/sys/arch/arm/marvell/mv78xx0.c:1.2 src/sys/arch/arm/marvell/mv78xx0.c:1.3
--- src/sys/arch/arm/marvell/mv78xx0.c:1.2 Sat Jan 7 16:19:28 2017
+++ src/sys/arch/arm/marvell/mv78xx0.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mv78xx0.c,v 1.2 2017/01/07 16:19:28 kiyohara Exp $ */
+/* $NetBSD: mv78xx0.c,v 1.3 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2010 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mv78xx0.c,v 1.2 2017/01/07 16:19:28 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mv78xx0.c,v 1.3 2021/08/30 00:04:30 rin Exp $");
#define _INTR_PRIVATE
@@ -214,14 +214,16 @@ mv78xx0_getclks(vaddr_t iobase)
#define MHz * 1000 * 1000
- reg = *(volatile uint32_t *)(iobase + MV78XX0_SAMPLE_AT_RESET_HIGH);
+ reg = le32toh(*(volatile uint32_t *)(iobase +
+ MV78XX0_SAMPLE_AT_RESET_HIGH));
switch (reg & 0x180) {
case 0x000: mvTclk = 166666667; break;
case 0x080: mvTclk = 200 MHz; break;
default: mvTclk = 200 MHz; break;
}
- reg = *(volatile uint32_t *)(iobase + MV78XX0_SAMPLE_AT_RESET_LOW);
+ reg = le32toh(*(volatile uint32_t *)(iobase +
+ MV78XX0_SAMPLE_AT_RESET_LOW));
switch (reg & 0x0e0) {
case 0x020: mvSysclk = 200 MHz; break;
Index: src/sys/arch/arm/marvell/mvsoc.c
diff -u src/sys/arch/arm/marvell/mvsoc.c:1.31 src/sys/arch/arm/marvell/mvsoc.c:1.32
--- src/sys/arch/arm/marvell/mvsoc.c:1.31 Sat Aug 7 16:18:44 2021
+++ src/sys/arch/arm/marvell/mvsoc.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsoc.c,v 1.31 2021/08/07 16:18:44 thorpej Exp $ */
+/* $NetBSD: mvsoc.c,v 1.32 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2007, 2008, 2013, 2014, 2016 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvsoc.c,v 1.31 2021/08/07 16:18:44 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvsoc.c,v 1.32 2021/08/30 00:04:30 rin Exp $");
#include "opt_cputypes.h"
#include "opt_mvsoc.h"
@@ -92,13 +92,13 @@ static vaddr_t com_base;
static inline uint32_t
uart_read(bus_size_t o)
{
- return *(volatile uint32_t *)(com_base + (o << 2));
+ return le32toh(*(volatile uint32_t *)(com_base + (o << 2)));
}
static inline void
uart_write(bus_size_t o, uint32_t v)
{
- *(volatile uint32_t *)(com_base + (o << 2)) = v;
+ *(volatile uint32_t *)(com_base + (o << 2)) = htole32(v);
}
static int
@@ -1195,21 +1195,21 @@ mvsoc_model(void)
KASSERT(regbase != 0xffffffff);
- reg = *(volatile uint32_t *)(pex_base + PCI_ID_REG);
+ reg = le32toh(*(volatile uint32_t *)(pex_base + PCI_ID_REG));
model = PCI_PRODUCT(reg);
#if defined(ORION)
if (model == PCI_PRODUCT_MARVELL_88F5182) {
- reg = *(volatile uint32_t *)(regbase + ORION_PMI_BASE +
- ORION_PMI_SAMPLE_AT_RESET);
+ reg = le32toh(*(volatile uint32_t *)(regbase + ORION_PMI_BASE +
+ ORION_PMI_SAMPLE_AT_RESET));
if ((reg & ORION_PMISMPL_TCLK_MASK) == 0)
model = PCI_PRODUCT_MARVELL_88F5082;
}
#endif
#if defined(KIRKWOOD)
if (model == PCI_PRODUCT_MARVELL_88F6281) {
- reg = *(volatile uint32_t *)(regbase + KIRKWOOD_MISC_BASE +
- KIRKWOOD_MISC_DEVICEID);
+ reg = le32toh(*(volatile uint32_t *)(regbase +
+ KIRKWOOD_MISC_BASE + KIRKWOOD_MISC_DEVICEID));
if (reg == 1) /* 88F6192 is 1 */
model = MARVELL_KIRKWOOD_88F6192;
}
@@ -1226,7 +1226,7 @@ mvsoc_rev(void)
KASSERT(regbase != 0xffffffff);
- reg = *(volatile uint32_t *)(pex_base + PCI_CLASS_REG);
+ reg = le32toh(*(volatile uint32_t *)(pex_base + PCI_CLASS_REG));
rev = PCI_REVISION(reg);
return rev;
@@ -1311,10 +1311,11 @@ mvsoc_target_ddr(uint32_t attr, uint32_t
aprint_error("unknwon ATTR: 0x%x", attr);
return -1;
}
- sizereg = *(volatile uint32_t *)(dsc_base + MVSOC_DSC_CSSR(cs));
+ sizereg = le32toh(*(volatile uint32_t *)(dsc_base +
+ MVSOC_DSC_CSSR(cs)));
if (sizereg & MVSOC_DSC_CSSR_WINEN) {
- baseaddrreg =
- *(volatile uint32_t *)(dsc_base + MVSOC_DSC_CSBAR(cs));
+ baseaddrreg = le32toh(*(volatile uint32_t *)(dsc_base +
+ MVSOC_DSC_CSBAR(cs)));
if (base != NULL)
*base = baseaddrreg & MVSOC_DSC_CSBAR_BASE_MASK;
@@ -1401,7 +1402,7 @@ mvsoc_target_axi(int tag, uint32_t *base
aprint_error("unknwon TAG: 0x%x", tag);
return -1;
}
- val = *(volatile uint32_t *)(regbase + MVSOC_AXI_MMAP1(cs));
+ val = le32toh(*(volatile uint32_t *)(regbase + MVSOC_AXI_MMAP1(cs)));
if (val & MVSOC_AXI_MMAP1_VALID) {
if (base != NULL)
*base = MVSOC_AXI_MMAP1_STARTADDRESS(val);
Index: src/sys/arch/arm/marvell/mvsocvar.h
diff -u src/sys/arch/arm/marvell/mvsocvar.h:1.12 src/sys/arch/arm/marvell/mvsocvar.h:1.13
--- src/sys/arch/arm/marvell/mvsocvar.h:1.12 Fri Mar 10 15:44:24 2017
+++ src/sys/arch/arm/marvell/mvsocvar.h Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsocvar.h,v 1.12 2017/03/10 15:44:24 skrll Exp $ */
+/* $NetBSD: mvsocvar.h,v 1.13 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2007, 2010 KIYOHARA Takashi
* All rights reserved.
@@ -48,8 +48,10 @@ extern int gpp_npins, gpp_irqbase;
extern struct bus_space mvsoc_bs_tag;
extern struct arm32_bus_dma_tag mvsoc_bus_dma_tag;
-#define read_mlmbreg(o) (*(volatile uint32_t *)(mlmb_base + (o)))
-#define write_mlmbreg(o, v) (*(volatile uint32_t *)(mlmb_base + (o)) = (v))
+#define read_mlmbreg(o) \
+ le32toh(*(volatile uint32_t *)(mlmb_base + (o)))
+#define write_mlmbreg(o, v) \
+ (*(volatile uint32_t *)(mlmb_base + (o)) = htole32(v))
void mvsoc_bootstrap(bus_addr_t);
uint16_t mvsoc_model(void);
Index: src/sys/arch/arm/marvell/orion.c
diff -u src/sys/arch/arm/marvell/orion.c:1.6 src/sys/arch/arm/marvell/orion.c:1.7
--- src/sys/arch/arm/marvell/orion.c:1.6 Sat Jan 7 16:19:28 2017
+++ src/sys/arch/arm/marvell/orion.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: orion.c,v 1.6 2017/01/07 16:19:28 kiyohara Exp $ */
+/* $NetBSD: orion.c,v 1.7 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2010 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: orion.c,v 1.6 2017/01/07 16:19:28 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: orion.c,v 1.7 2021/08/30 00:04:30 rin Exp $");
#define _INTR_PRIVATE
@@ -224,8 +224,8 @@ orion_getclks(vaddr_t iobase)
tclk_shift = 8;
}
- reg = *(volatile uint32_t *)(iobase + ORION_PMI_BASE +
- ORION_PMI_SAMPLE_AT_RESET);
+ reg = le32toh(*(volatile uint32_t *)(iobase + ORION_PMI_BASE +
+ ORION_PMI_SAMPLE_AT_RESET));
armddrclk = (reg >> armddrclk_shift) & ORION_PMISMPL_ARMDDRCLK_MASK;
if (model == PCI_PRODUCT_MARVELL_88F5281)
if (reg & ORION_PMISMPL_ARMDDRCLK_H_MASK)
Index: src/sys/arch/evbarm/marvell/marvell_machdep.c
diff -u src/sys/arch/evbarm/marvell/marvell_machdep.c:1.36 src/sys/arch/evbarm/marvell/marvell_machdep.c:1.37
--- src/sys/arch/evbarm/marvell/marvell_machdep.c:1.36 Tue Jul 16 14:41:47 2019
+++ src/sys/arch/evbarm/marvell/marvell_machdep.c Mon Aug 30 00:04:30 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: marvell_machdep.c,v 1.36 2019/07/16 14:41:47 skrll Exp $ */
+/* $NetBSD: marvell_machdep.c,v 1.37 2021/08/30 00:04:30 rin Exp $ */
/*
* Copyright (c) 2007, 2008, 2010 KIYOHARA Takashi
* All rights reserved.
@@ -25,7 +25,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: marvell_machdep.c,v 1.36 2019/07/16 14:41:47 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: marvell_machdep.c,v 1.37 2021/08/30 00:04:30 rin Exp $");
#include "opt_arm_debug.h"
#include "opt_console.h"
@@ -208,7 +208,8 @@ armadaxp_system_reset(void)
{
extern vaddr_t misc_base;
-#define write_miscreg(r, v) (*(volatile uint32_t *)(misc_base + (r)) = (v))
+#define write_miscreg(r, v) \
+ (*(volatile uint32_t *)(misc_base + (r)) = htole32(v))
/* Unmask soft reset */
write_miscreg(ARMADAXP_MISC_RSTOUTNMASKR,