Thread (45 messages) 45 messages, 7 authors, 2011-06-06

Re: [RFC 1/5] platform-drivers-x86: add support for Technologic Systems TS-5xxx detection

From: Vivien Didelot <hidden>
Date: 2011-05-04 15:15:55
Also in: lkml, platform-driver-x86

Excerpts from Alan Cox's message of 2011-04-30 06:07:05 -0400:
quoted
+
+/**
+ * ts_sbcinfo_detect() - detect the TS board
+ * @sbcinfo:        structure where to store the detected board's info.
+ */
+static int ts_sbcinfo_detect(struct ts5xxx_sbcinfo *sbcinfo)
+{
+    u8 temp;
+    struct ts_sbc_config *sbc;
+    int ret = 0;
+
+    memset(sbcinfo, 0, sizeof(*sbcinfo));
+
+    if (!request_region(IOADDR_SBCID, 4, "TS-SBC"))
+        return -EBUSY;
+
+    temp = inb(IOADDR_SBCID);
+    /* If it is a 3x00 SBC only match against the first 3 bits */
+    if (temp & 0x07)
+        temp &= 0x07;
So if this is compiled into a kernel we blindly inb this address and some
platform just crashed on boot. Is this board like other embedded ones in
that there is some safe way to check if its such a board first ?
It is possible to make a BIOS call (Int 15h / Function B000h) to get
board information, like the manufacturer ("TS"). It should be a safer
way to check if we are on a Technologic Systems board. a intcall(0x15,
&ireg, &oreg) should do the trick to check the platform, before checking
the SBC ID. What do you think?

Thanks,
Vivien.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help