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,