1 1.4 rkujawa /* $NetBSD: sam460ex.h,v 1.4 2026/06/22 12:34:19 rkujawa Exp $ */ 2 1.1 rkujawa 3 1.1 rkujawa /* 4 1.1 rkujawa * Copyright (c) 2012, 2014, 2024, 2026 The NetBSD Foundation, Inc. 5 1.1 rkujawa * All rights reserved. 6 1.1 rkujawa * 7 1.1 rkujawa * This code is derived from software contributed to The NetBSD Foundation 8 1.1 rkujawa * by Radoslaw Kujawa. 9 1.1 rkujawa * 10 1.1 rkujawa * Redistribution and use in source and binary forms, with or without 11 1.1 rkujawa * modification, are permitted provided that the following conditions 12 1.1 rkujawa * are met: 13 1.1 rkujawa * 1. Redistributions of source code must retain the above copyright 14 1.1 rkujawa * notice, this list of conditions and the following disclaimer. 15 1.1 rkujawa * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 rkujawa * notice, this list of conditions and the following disclaimer in the 17 1.1 rkujawa * documentation and/or other materials provided with the distribution. 18 1.1 rkujawa * 19 1.1 rkujawa * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 20 1.1 rkujawa * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21 1.1 rkujawa * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22 1.1 rkujawa * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 23 1.1 rkujawa * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 24 1.1 rkujawa * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 1.1 rkujawa * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 1.1 rkujawa * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 1.1 rkujawa * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 1.1 rkujawa * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 1.1 rkujawa */ 30 1.1 rkujawa 31 1.1 rkujawa /* 32 1.1 rkujawa * ACube Sam460ex board definitions. 33 1.1 rkujawa */ 34 1.1 rkujawa 35 1.1 rkujawa #ifndef _EVBPPC_SAM460EX_H_ 36 1.1 rkujawa #define _EVBPPC_SAM460EX_H_ 37 1.1 rkujawa 38 1.1 rkujawa #include <powerpc/ibm4xx/amcc460ex.h> 39 1.1 rkujawa 40 1.1 rkujawa /* Boot loader handoff (set in machdep.c initppc()) */ 41 1.1 rkujawa #ifndef _LOCORE 42 1.1 rkujawa extern paddr_t sam460ex_fdt_pa; 43 1.1 rkujawa extern uint32_t sam460ex_epapr_magic; 44 1.1 rkujawa 45 1.1 rkujawa /* Values extracted from the U-Boot/QEMU device tree (0 = absent) */ 46 1.1 rkujawa #define SAM460EX_NEMAC 2 47 1.1 rkujawa struct sam460ex_fdt_info { 48 1.1 rkujawa uint32_t fi_memsize; 49 1.1 rkujawa uint32_t fi_cpu_freq; 50 1.1 rkujawa uint32_t fi_timebase_freq; 51 1.1 rkujawa uint32_t fi_opb_freq; 52 1.1 rkujawa uint32_t fi_uart_freq; 53 1.1 rkujawa const char *fi_bootargs; 54 1.1 rkujawa /* EMAC MAC addresses (all-zero = absent/not fixed up) */ 55 1.1 rkujawa uint8_t fi_enaddr[SAM460EX_NEMAC][6]; 56 1.1 rkujawa bool fi_enaddr_valid[SAM460EX_NEMAC]; 57 1.1 rkujawa }; 58 1.1 rkujawa extern struct sam460ex_fdt_info sam460ex_fdt_info; 59 1.1 rkujawa 60 1.1 rkujawa bool sam460ex_fdt_parse(paddr_t); 61 1.1 rkujawa #endif 62 1.1 rkujawa 63 1.2 rkujawa /* 64 1.2 rkujawa * UART input clock for the console and com devices 65 1.2 rkujawa */ 66 1.2 rkujawa uint32_t sam460ex_com_freq(void); 67 1.2 rkujawa 68 1.3 rkujawa /* 69 1.3 rkujawa * Console target, selected by the "console=" bootarg 70 1.3 rkujawa */ 71 1.3 rkujawa enum sam460ex_console { 72 1.3 rkujawa SAM460EX_CONS_COM, 73 1.3 rkujawa SAM460EX_CONS_SM502, 74 1.3 rkujawa SAM460EX_CONS_PCI, 75 1.3 rkujawa }; 76 1.3 rkujawa extern enum sam460ex_console sam460ex_console; 77 1.3 rkujawa extern int sam460ex_console_pci_bdf[3]; 78 1.1 rkujawa 79 1.1 rkujawa /* ePAPR magic passed in r6 by U-Boot and QEMU */ 80 1.1 rkujawa #define SAM460EX_EPAPR_MAGIC 0x45504150 81 1.1 rkujawa 82 1.1 rkujawa /* 83 1.4 rkujawa * Kernel VA for I/O 84 1.4 rkujawa * 0xe0000000 PCIE1 local-config (XCFG: inbound BAR/PIM regs, 16MB) 85 1.4 rkujawa * 0xef000000 OPB (16MB) 86 1.1 rkujawa * 0xf0000000 PCI memory window (AMCC460EX_PCIX0_MEM_SIZE) 87 1.1 rkujawa * 0xf5000000 PCI I/O window (16MB entry, 64KB used) 88 1.1 rkujawa * 0xf6000000 PCIX config + internal registers (16MB entry) 89 1.1 rkujawa * 0xf7000000 PCIE0 config window (ECAM, 16MB) 90 1.1 rkujawa * 0xf8000000 PCIE1 config window (ECAM, 16MB) 91 1.1 rkujawa * 0xf9000000 PCIE0 memory window (16MB) 92 1.1 rkujawa * 0xfa000000 PCIE1 memory window (16MB) 93 1.1 rkujawa * 0xfb000000 AHB peripherals: USB OTG/OHCI/EHCI (16MB) 94 1.3 rkujawa * 0xfc000000 PCI prefetchable window (POM1, 64MB pinned of 256MB) 95 1.1 rkujawa */ 96 1.4 rkujawa #define SAM460EX_PCIE1XCFG_VA 0xe0000000 97 1.1 rkujawa #define SAM460EX_PCIMEM_VA 0xf0000000 98 1.1 rkujawa #define SAM460EX_PCIIO_VA 0xf5000000 99 1.1 rkujawa #define SAM460EX_PCICFG_VA 0xf6000000 100 1.1 rkujawa #define SAM460EX_PCIE0CFG_VA 0xf7000000 101 1.1 rkujawa #define SAM460EX_PCIE1CFG_VA 0xf8000000 102 1.1 rkujawa #define SAM460EX_PCIE0MEM_VA 0xf9000000 103 1.1 rkujawa #define SAM460EX_PCIE1MEM_VA 0xfa000000 104 1.1 rkujawa #define SAM460EX_AHB_VA 0xfb000000 105 1.3 rkujawa #define SAM460EX_PCIPREFMEM_VA 0xfc000000 106 1.1 rkujawa 107 1.1 rkujawa #endif /* _EVBPPC_SAM460EX_H_ */ 108