svn commit: r195412 - projects/mips/sys/mips/octeon1/dev/rgmii
Warner Losh
imp at FreeBSD.org
Mon Jul 6 18:15:58 UTC 2009
Author: imp
Date: Mon Jul 6 18:15:57 2009
New Revision: 195412
URL: http://svn.freebsd.org/changeset/base/195412
Log:
64-bit fixes:
(1) fix printf formats.
(2) Prefer FreeBSD's MIPS_PHYS_TO_KSEG0 to hand-rolled one from Cavium.
(3) Mark a few 64-bit cleanliness issues (possible).
(4) Minor formatting fixes.
Modified:
projects/mips/sys/mips/octeon1/dev/rgmii/octeon_fpa.h
projects/mips/sys/mips/octeon1/dev/rgmii/octeon_pko.c
projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.c
projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.h
Modified: projects/mips/sys/mips/octeon1/dev/rgmii/octeon_fpa.h
==============================================================================
--- projects/mips/sys/mips/octeon1/dev/rgmii/octeon_fpa.h Mon Jul 6 18:12:49 2009 (r195411)
+++ projects/mips/sys/mips/octeon1/dev/rgmii/octeon_fpa.h Mon Jul 6 18:15:57 2009 (r195412)
@@ -168,7 +168,7 @@ static inline void octeon_fpa_free (void
{
octeon_addr_t free_ptr;
- free_ptr.word64 = (uint64_t) OCTEON_PTR2PHYS(ptr);
+ free_ptr.word64 = (uint64_t)OCTEON_PTR2PHYS(ptr);
free_ptr.sfilldidspace.didspace = OCTEON_ADDR_DIDSPACE(
OCTEON_ADDR_FULL_DID(OCTEON_DID_FPA, pool));
@@ -200,16 +200,15 @@ static inline void *octeon_fpa_alloc (u_
/*
* 32 bit FPA pointers only
*/
-
/*
* We only use 32 bit pointers at this time
*/
- return ((void *) OCTEON_PHYS2PTR(address & 0xffffffff));
+/*XXX mips64 issue */
+ return ((void *) MIPS_PHYS_TO_KSEG0(address & 0xffffffff));
}
return (NULL);
}
-
static inline uint64_t octeon_fpa_alloc_phys (u_int pool)
{
@@ -217,30 +216,4 @@ static inline uint64_t octeon_fpa_alloc_
pool))));
}
-
-#if 0
-
-/*
- * octeon_fpa_alloc
- *
- * Allocate a new block from the FPA
- *
- * Buffer passes away from FPA management to SW control
- */
-static inline void *octeon_fpa_alloc (u_int pool)
-{
- uint64_t address;
-
- address = oct_read64(OCTEON_ADDR_DID(OCTEON_ADDR_FULL_DID(OCTEON_DID_FPA,
- pool)));
- if (address) {
- return ((void *) (oct_ptr_size) OCTEON_PHYS2PTR(address));
- }
- return (NULL);
-}
-
-#endif
-
-
-
#endif /* ___OCTEON_FPA__H___ */
Modified: projects/mips/sys/mips/octeon1/dev/rgmii/octeon_pko.c
==============================================================================
--- projects/mips/sys/mips/octeon1/dev/rgmii/octeon_pko.c Mon Jul 6 18:12:49 2009 (r195411)
+++ projects/mips/sys/mips/octeon1/dev/rgmii/octeon_pko.c Mon Jul 6 18:15:57 2009 (r195412)
@@ -174,7 +174,9 @@ static void octeon_pko_doorbell_data_dum
octeon_pko_get_port_status(port, 0, &status);
printf("\n Port #%lld Pkts %ld Bytes %lld DoorBell %lld",
- port, status.packets, status.octets, status.doorbell);
+ (unsigned long long)port, status.packets,
+ (unsigned long long)status.octets,
+ (unsigned long long)status.doorbell);
}
/*
@@ -229,7 +231,7 @@ void octeon_pko_show (u_int start_port,
printf("\n Port # %d Queue %3d [%d] BufPtr: 0x%llX Mask: %X%s",
octeon_pko_queue_cfg.bits.port, octeon_pko_queue_cfg.bits.queue,
octeon_pko_queue_cfg.bits.index,
- (uint64_t)octeon_pko_queue_cfg.bits.buf_ptr,
+ (unsigned long long)octeon_pko_queue_cfg.bits.buf_ptr,
octeon_pko_queue_cfg.bits.qos_mask,
(octeon_pko_queue_cfg.bits.tail)? " Last":"");
}
@@ -238,8 +240,6 @@ void octeon_pko_show (u_int start_port,
for (port = start_port; port < (end_port + 1); port++) {
octeon_pko_get_port_status(port, 0, &status);
- printf("\n Port #%d Packets %ld Bytes %lld DoorBell %lld",
- port, status.packets, status.octets, status.doorbell);
octeon_pko_doorbell_data_dump(port);
}
Modified: projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.c
==============================================================================
--- projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.c Mon Jul 6 18:12:49 2009 (r195411)
+++ projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.c Mon Jul 6 18:15:57 2009 (r195412)
@@ -696,7 +696,7 @@ static struct mbuf *octeon_rgmx_build_ne
}
if (m == m0) {
- newdata = (caddr_t) ALIGN(m->m_data + ETHER_HDR_LEN) - ETHER_HDR_LEN;
+ newdata = (caddr_t)ALIGN(m->m_data + ETHER_HDR_LEN) - ETHER_HDR_LEN;
len -= newdata - m->m_data;
m->m_data = newdata;
}
@@ -969,7 +969,7 @@ static u_int octeon_rgmx_pko_xmit_packet
#ifdef DEBUG_TX
printf(" temp: 0x%X ", temp);
#endif
- xmit_cmd_ptr = (uint64_t *) OCTEON_PHYS2PTR(temp);
+ xmit_cmd_ptr = (uint64_t *) MIPS_PHYS_TO_KSEG0(temp);
xmit_cmd_index = xmit_cmd_state & OCTEON_PKO_INDEX_MASK;
xmit_cmd_ptr += xmit_cmd_index;
Modified: projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.h
==============================================================================
--- projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.h Mon Jul 6 18:12:49 2009 (r195411)
+++ projects/mips/sys/mips/octeon1/dev/rgmii/octeon_rgmx.h Mon Jul 6 18:15:57 2009 (r195412)
@@ -423,7 +423,7 @@ static inline octeon_wqe_t *octeon_pow_w
if (result.s_work.no_work || !result.s_work.addr) {
return NULL;
}
- return (octeon_wqe_t *) OCTEON_PHYS2PTR(result.s_work.addr);
+ return (octeon_wqe_t *) MIPS_PHYS_TO_KSEG0(result.s_work.addr);
}
static inline octeon_wqe_t *octeon_pow_work_request_sync_nocheck_debug (octeon_pow_wait_t wait)
@@ -440,13 +440,14 @@ static inline octeon_wqe_t *octeon_pow_w
result.word64 = oct_read64(ptr.word64);
printf("WQE Result: 0x%llX No-work %X Addr %llX Ptr: %p\n",
- result.word64, result.s_work.no_work, (uint64_t)result.s_work.addr,
- OCTEON_PHYS2PTR(result.s_work.addr));
+ (unsigned long long)result.word64, result.s_work.no_work,
+ (unsigned long long)result.s_work.addr,
+ (void *)MIPS_PHYS_TO_KSEG0(result.s_work.addr));
if (result.s_work.no_work || !result.s_work.addr) {
return NULL;
}
- return (octeon_wqe_t *) OCTEON_PHYS2PTR(result.s_work.addr);
+ return (octeon_wqe_t *) MIPS_PHYS_TO_KSEG0(result.s_work.addr);
}
static inline octeon_wqe_t *octeon_pow_work_request_sync (octeon_pow_wait_t wait)
@@ -482,7 +483,7 @@ static inline octeon_wqe_t *octeon_pow_w
if (result.s_work.no_work) {
return NULL;
}
- return (octeon_wqe_t*) OCTEON_PHYS2PTR(result.s_work.addr);
+ return (octeon_wqe_t*) MIPS_PHYS_TO_KSEG0(result.s_work.addr);
}
@@ -493,18 +494,14 @@ static inline octeon_wqe_t *octeon_pow_w
*/
static inline void *octeon_pow_pktptr_to_kbuffer (octeon_buf_ptr_t pkt_ptr)
{
- return (OCTEON_PHYS2PTR(((pkt_ptr.bits.addr >> 7) - pkt_ptr.bits.back) << 7));
+ return ((void *)MIPS_PHYS_TO_KSEG0(
+ ((pkt_ptr.bits.addr >> 7) - pkt_ptr.bits.back) << 7));
}
-
-
-
#define INTERFACE(port) (port >> 4) /* Ports 0-15 are interface 0, 16-31 are interface 1 */
#define INDEX(port) (port & 0xf)
-
-
#define OCTEON_RGMX_PRTX_CFG(index,interface) (0x8001180008000010ull+((index)*2048)+((interface)*0x8000000ull))
#define OCTEON_RGMX_SMACX(offset,block_id) (0x8001180008000230ull+((offset)*2048)+((block_id)*0x8000000ull))
#define OCTEON_RGMX_RXX_ADR_CAM0(offset,block_id) (0x8001180008000180ull+((offset)*2048)+((block_id)*0x8000000ull))
More information about the svn-src-projects
mailing list