Module Name: src Committed By: kiyohara Date: Mon Apr 25 13:07:03 UTC 2016
Modified Files: src/sys/arch/arm/omap: omap2_reg.h omap3_scm.c Log Message: Print OMAP3 ChipID. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/omap/omap2_reg.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/omap/omap3_scm.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/omap/omap2_reg.h diff -u src/sys/arch/arm/omap/omap2_reg.h:1.30 src/sys/arch/arm/omap/omap2_reg.h:1.31 --- src/sys/arch/arm/omap/omap2_reg.h:1.30 Sat Jun 6 14:00:32 2015 +++ src/sys/arch/arm/omap/omap2_reg.h Mon Apr 25 13:07:03 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: omap2_reg.h,v 1.30 2015/06/06 14:00:32 jmcneill Exp $ */ +/* $NetBSD: omap2_reg.h,v 1.31 2016/04/25 13:07:03 kiyohara Exp $ */ /* * Copyright (c) 2007 Microsoft @@ -141,6 +141,12 @@ #define TI_DM37XX_L4_EMULATION_BASE 0x54000000 #define TI_DM37XX_L4_EMULATION_SIZE 0x00800000 /* 8MB */ + +#define CHIPID_OMAP3503 0x5c00 +#define CHIPID_OMAP3515 0x1c00 +#define CHIPID_OMAP3525 0x4c00 +#define CHIPID_OMAP3530 0x0c00 + /* * Clock Management registers base, offsets, and size */ Index: src/sys/arch/arm/omap/omap3_scm.c diff -u src/sys/arch/arm/omap/omap3_scm.c:1.2 src/sys/arch/arm/omap/omap3_scm.c:1.3 --- src/sys/arch/arm/omap/omap3_scm.c:1.2 Wed Mar 13 03:08:17 2013 +++ src/sys/arch/arm/omap/omap3_scm.c Mon Apr 25 13:07:03 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: omap3_scm.c,v 1.2 2013/03/13 03:08:17 khorben Exp $ */ +/* $NetBSD: omap3_scm.c,v 1.3 2016/04/25 13:07:03 kiyohara Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill <jmcne...@invisible.ca> @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: omap3_scm.c,v 1.2 2013/03/13 03:08:17 khorben Exp $"); +__KERNEL_RCSID(0, "$NetBSD: omap3_scm.c,v 1.3 2016/04/25 13:07:03 kiyohara Exp $"); #include "opt_omap.h" @@ -67,6 +67,8 @@ __KERNEL_RCSID(0, "$NetBSD: omap3_scm.c, #define CONTROL_TEMP_SENSOR_EOCZ __BIT(7) #define CONTROL_TEMP_SENSOR_TEMP_MASK __BITS(6,0) +#define CONTROL_OMAP_STATUS 0x44c + /* CONTROL_TEMP_SENSOR TEMP bits to tenths of a degree */ static const int omap3_scm_adc2temp[128] = { -400, -400, -400, -400, -400, @@ -103,6 +105,8 @@ struct omap3_scm_softc { bus_space_tag_t sc_iot; bus_space_handle_t sc_ioh; + uint32_t sc_cid; + /* GENERAL */ struct sysmon_envsys *sc_sme; envsys_data_t sc_sensor; @@ -140,6 +144,8 @@ omap3_scm_attach(device_t parent, device struct omap3_scm_softc *sc = device_private(self); struct obio_attach_args *obio = opaque; uint32_t rev; + char buf[256]; + const char *cid; aprint_naive("\n"); @@ -156,6 +162,29 @@ omap3_scm_attach(device_t parent, device rev = SCM_READ_REG(sc, CONTROL_REVISION); aprint_normal(": rev. 0x%x\n", rev & 0xff); + sc->sc_cid = SCM_READ_REG(sc, CONTROL_OMAP_STATUS & 0xffff); + switch (sc->sc_cid) { + case CHIPID_OMAP3503: cid = "OMAP3503"; break; + case CHIPID_OMAP3515: cid = "OMAP3515"; break; + case CHIPID_OMAP3525: cid = "OMAP3525"; break; + case CHIPID_OMAP3530: cid = "OMAP3530"; break; + default: cid = "unknwon"; break; + } + aprint_normal_dev(self, "%s: ", cid); + snprintb(buf, sizeof(buf), "\177\020" + "b\0TO_OUT\0" + "b\1four_bit_mmc\0" + "b\2CCP2_CSI1\0" + "b\3CMADS_FL3G\0" + "b\4NEON_VFPLite\0" + "b\5ISP_disable\0" + "f\6\2IVA2_MHz\0=\0 430\0=\2 266\0" + "f\10\2ARM_MHz\0=\0 600\0=\1 400\0=\2 266\0" + "f\12\2MPU_L2_cache_size\0=\0 0KB\0=\1 64KB\0=\2 128KB\0=\3 Full\0" + "b\14IVA_disable_acc\0" + "f\15\2SGX_scalable_control\0=\0Full\0=\1Half\0=\2not-present\0\0", + sc->sc_cid); + aprint_normal("%s\n", buf); omap3_scm_sensor_attach(sc); }